iot_server/internal/pkg/constants/product.go

207 lines
6.0 KiB
Go

/*******************************************************************************
* Copyright 2017 Dell Inc.
* Copyright (c) 2019 Intel Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*******************************************************************************/
package constants
import (
"github.com/winc-link/edge-driver-proto/drivercommon"
"github.com/winc-link/edge-driver-proto/driverproduct"
)
type IotPlatform string
const (
IotPlatform_LocalIot IotPlatform = "本地"
IotPlatform_CustomerIot IotPlatform = "用户自定义" //用户自定义
IotPlatform_WinCLinkIot IotPlatform = "赢创万联" //赢创万联
IotPlatform_AliIot IotPlatform = "阿里云" //阿里
IotPlatform_HuaweiIot IotPlatform = "华为云" //华为
IotPlatform_TencentIot IotPlatform = "腾讯云" //腾讯
IotPlatform_TuyaIot IotPlatform = "涂鸦云" //涂鸦
IotPlatform_OneNetIot IotPlatform = "OneNET" //中国移动
)
func (i IotPlatform) TransformToCloudInstancePlatform() string {
switch i {
case IotPlatform_WinCLinkIot:
return CloudServiceWincLinkName
case IotPlatform_AliIot:
return CloudServiceAliyunName
case IotPlatform_HuaweiIot:
return CloudServiceHuaweiName
case IotPlatform_TencentIot:
return CloudServiceTencentName
case IotPlatform_TuyaIot:
return CloudServiceTuyaName
case IotPlatform_OneNetIot:
return CloudServiceOneNETName
default:
return ""
}
}
func (i IotPlatform) TransformToDriverDevicePlatform() drivercommon.IotPlatform {
switch i {
case IotPlatform_LocalIot:
return drivercommon.IotPlatform_LocalIot
case IotPlatform_WinCLinkIot:
return drivercommon.IotPlatform_WinCLinkIot
case IotPlatform_AliIot:
return drivercommon.IotPlatform_AliIot
case IotPlatform_HuaweiIot:
return drivercommon.IotPlatform_HuaweiIot
case IotPlatform_TencentIot:
return drivercommon.IotPlatform_TencentIot
case IotPlatform_TuyaIot:
return drivercommon.IotPlatform_TuyaIot
case IotPlatform_OneNetIot:
return drivercommon.IotPlatform_OneNetIot
default:
return drivercommon.IotPlatform_LocalIot
}
}
func TransformEdgePlatformToDbPlatform(platform drivercommon.IotPlatform) IotPlatform {
switch platform {
case drivercommon.IotPlatform_CustomerIot:
return IotPlatform_CustomerIot
case drivercommon.IotPlatform_WinCLinkIot:
return IotPlatform_WinCLinkIot
case drivercommon.IotPlatform_AliIot:
return IotPlatform_AliIot
case drivercommon.IotPlatform_HuaweiIot:
return IotPlatform_HuaweiIot
case drivercommon.IotPlatform_TencentIot:
return IotPlatform_TencentIot
case drivercommon.IotPlatform_TuyaIot:
return IotPlatform_TuyaIot
case drivercommon.IotPlatform_OneNetIot:
return IotPlatform_OneNetIot
case drivercommon.IotPlatform_LocalIot:
return IotPlatform_LocalIot
default:
return IotPlatform("")
}
}
type SpecsType string
const (
SpecsTypeInt SpecsType = "int"
SpecsTypeFloat SpecsType = "float"
SpecsTypeText SpecsType = "text"
SpecsTypeDate SpecsType = "date"
SpecsTypeBool SpecsType = "bool"
SpecsTypeEnum SpecsType = "enum"
SpecsTypeStruct SpecsType = "struct"
SpecsTypeArray SpecsType = "array"
)
func (i SpecsType) AllowSendInEkuiper() bool {
if i == SpecsTypeInt || i == SpecsTypeFloat || i == SpecsTypeText || i == SpecsTypeBool || i == SpecsTypeEnum {
return true
}
return false
}
type ProductNodeType string
const (
ProductNodeTypeUnKnow ProductNodeType = "其他"
ProductNodeTypeGateway ProductNodeType = "网关"
ProductNodeTypeDevice ProductNodeType = "直连设备"
ProductNodeTypeSubDevice ProductNodeType = "网关子设备"
)
func (i ProductNodeType) TransformToDriverProductNodeType() driverproduct.ProductNodeType {
switch i {
case ProductNodeTypeUnKnow:
return driverproduct.ProductNodeType_UnKnow
case ProductNodeTypeGateway:
return driverproduct.ProductNodeType_Gateway
case ProductNodeTypeDevice:
return driverproduct.ProductNodeType_Device
case ProductNodeTypeSubDevice:
return driverproduct.ProductNodeType_SubDevice
default:
return driverproduct.ProductNodeType_UnKnow
}
}
type ProductStatus string
const (
ProductRelease ProductStatus = "已发布"
ProductUnRelease ProductStatus = "未发布"
)
type ProductNetType string
const (
ProductNetTypeOther ProductNetType = "其他"
ProductNetTypeCellular ProductNetType = "蜂窝"
ProductNetTypeWifi ProductNetType = "WIFI"
ProductNetTypeEthernet ProductNetType = "以太网"
ProductNetTypeNB ProductNetType = "NB"
)
func (i ProductNetType) TransformToDriverProductNetType() driverproduct.ProductNetType {
switch i {
case ProductNetTypeOther:
return driverproduct.ProductNetType_Other
case ProductNetTypeCellular:
return driverproduct.ProductNetType_Cellular
case ProductNetTypeWifi:
return driverproduct.ProductNetType_Wifi
case ProductNetTypeEthernet:
return driverproduct.ProductNetType_Ethernet
case ProductNetTypeNB:
return driverproduct.ProductNetType_NB
default:
return driverproduct.ProductNetType_Other
}
}
type ProductProtocol string
const (
ProductProtocolMQTT ProductProtocol = "MQTT"
ProductProtocolCoAP ProductProtocol = "CoAP"
ProductProtocolLwM2M ProductProtocol = "LwM2M"
ProductProtocolHttp ProductProtocol = "HTTP"
ProductProtocolOther ProductProtocol = "其他"
)
type TagName string
const (
TagNameCustom TagName = "自定义"
TagNameSystem TagName = "系统"
)
type EventType string
const (
EventTypeInfo EventType = "info"
EventTypeAlert EventType = "alert"
EventTypeError EventType = "error"
)
type CallType string
const (
CallTypeSync CallType = "SYNC" //同步
CallTypeAsync CallType = "ASYNC" //异步
)