Demo.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package main
  2. // 协议基础信息
  3. var ProductMode = map[string]string{
  4. "Id": "0", // 此行不能乱改,需要联系管理员 分配ID
  5. "T_name": "http", // 协议名称
  6. "T_connect": "bj-3-mqtt.iot-api.com:1883", // 连接地址
  7. "T_describe": "描述内容", // 协议描述
  8. "T_state": "0", // 连接状态 0停用 1启用
  9. }
  10. // 参数配置模版
  11. var ProductModeConfig = map[string]map[string]string{
  12. "port": {
  13. "T_name": "端口号", // 名称 用于参数显示与数据获取标识
  14. "T_describe": "填写连接端口号", // 描述
  15. "T_value": "1883", // 默认值
  16. },
  17. }
  18. // 设备上下线状态推送 T_State:(0 验证 1 在线 2 离线 3 添加 ) T_Reason:备注内容
  19. var FunStateHandle func(T_sn, T_password string, T_State int, T_Reason string) error
  20. // 设备->平台
  21. var FunPullHandle func(T_sn, T_password, T_topic string, T_data []byte) error
  22. // 平台->设备
  23. func FunPushHandle(T_topic string, T_data []byte) error {
  24. return nil
  25. }
  26. // 初始化服务
  27. func GoInit(FunPluginStateHandle func(T_sn, T_password string, T_State int, T_Reason string) error, FunPluginPullHandle func(T_sn, T_password, T_topic string, T_data []byte) error) {
  28. FunStateHandle = FunPluginStateHandle // 设备上下线状态推送 方法指针
  29. FunPullHandle = FunPluginPullHandle // 设备->平台 方法指针
  30. }
  31. // 开启服务
  32. func GoRun(TConfig_map map[string]string) (map[string]string, error) {
  33. println(ProductMode["T_name"])
  34. // TConfig_map["port"] // 获取配置参数
  35. ProductMode["T_state"] = "1"
  36. return ProductMode, nil
  37. }
  38. // 通知服务
  39. func GoStop() (map[string]string, error) {
  40. // 关闭服务
  41. println(ProductMode["T_name"], " 关闭服务!!")
  42. ProductMode["T_state"] = "0"
  43. return ProductMode, nil
  44. }
  45. //打包 SO 文件时,一定要注释 main主函数
  46. //func main() {
  47. //
  48. //
  49. // GoRun(map[string]string{
  50. // "port":"8080",
  51. // })
  52. //
  53. // //GoStop()
  54. //
  55. // // 等待信号或其他事件来退出程序
  56. // select {}
  57. //}
  58. //