thingsboards.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package protocol
  2. import (
  3. "time"
  4. )
  5. type ThingsBoards struct {
  6. Name string
  7. }
  8. /*
  9. {
  10. "Device A": [
  11. {
  12. "ts": 1483228800000,
  13. "values": {
  14. "temperature": 42,
  15. "humidity": 80
  16. }
  17. },
  18. {
  19. "ts": 1483228801000,
  20. "values": {
  21. "temperature": 43,
  22. "humidity": 82
  23. }
  24. }
  25. ],
  26. "Device B": [
  27. {
  28. "ts": 1483228800000,
  29. "values": {
  30. "temperature": 42,
  31. "humidity": 80
  32. }
  33. }
  34. ]
  35. {
  36. "UEMIS61748803":[
  37. {
  38. "ts":1633471518102004,
  39. "values":{
  40. "CH2O-Rtd":"0.007",
  41. "CO2-Rtd":"399.0",
  42. "HUMI-Rtd":"38.8",
  43. "PM25-Rtd":"1.0",
  44. "TEMP-Rtd":"20.4",
  45. "VOC-Rtd":"0.022"
  46. }
  47. }
  48. ]
  49. }
  50. }
  51. */
  52. func (tbs *ThingsBoards) Init(name string) error {
  53. return nil
  54. }
  55. func (tbs *ThingsBoards) Uninit() {
  56. }
  57. func (tbs *ThingsBoards) ChannelDispatch(b []byte) int {
  58. return 0
  59. }
  60. func (tbs *ThingsBoards) ParsePacket(buff []byte, param ...interface{}) interface{} {
  61. return nil
  62. }
  63. func (tbs *ThingsBoards) rptDevTelemetry(devName string, telemetry interface{}) interface{} {
  64. tbObj := make(map[string]interface{})
  65. devVal := make(map[string]interface{})
  66. devVal["ts"] = time.Now().UnixNano() / (1000 * 1000)
  67. devVal["values"] = telemetry
  68. devList := make([]interface{}, 1)
  69. devList[0] = devVal
  70. tbObj[devName] = devList
  71. return tbObj
  72. }
  73. func (tbs *ThingsBoards) PackageCmd(dev string, param ...interface{}) interface{} {
  74. v := param[0].(map[string]interface{})
  75. return tbs.rptDevTelemetry(dev, v)
  76. }
  77. func NewThingsboard() IProtocol {
  78. p := &ThingsBoards{}
  79. p.Init("ThingsBoards")
  80. return p
  81. }
  82. func init() {
  83. ProtReg["ThingsBoards"] = NewThingsboard
  84. }