diff --git a/conf/gateway.conf b/conf/gateway.conf index 3a566a7..e8776c8 100644 --- a/conf/gateway.conf +++ b/conf/gateway.conf @@ -90,6 +90,13 @@ } }, "rs485devices": { + "deb03e28-ddcb-4e5d-aa31-d870a1f0f09b": { + "version": "yunhorn_ys_l_v1", + "num": "1", + "command": [ + [8, 3, 0, 1, 0, 2, 149, 82] + ] + }, "15394892-E8B0-4FF2-BC35-1BF380BD1B68": { "version": "yunhorn_xsy_c_v1", "num": "1", @@ -167,4 +174,4 @@ "websocketurl": ["192.168.3.216:8080", "/echo"], "post_to_server": "https://smartoilets.cn/socketServer/statis/push", "debug": true -} \ No newline at end of file +} diff --git a/db/gateway.db b/db/gateway.db index 2e276bc..2257eba 100644 Binary files a/db/gateway.db and b/db/gateway.db differ diff --git a/loadconfig.go b/loadconfig.go index 19bd69f..5fe6a51 100644 --- a/loadconfig.go +++ b/loadconfig.go @@ -6,6 +6,8 @@ import ( _ "github.com/mattn/go-sqlite3" "os" "time" + "strconv" + "log" ) type Traffic struct { @@ -60,6 +62,8 @@ type Serialconf struct { var conf Conf var DEVICEDATAS Devicedatas +var demoDevice Device + var db, _ = sql.Open("sqlite3", "./db/gateway.db") @@ -74,6 +78,7 @@ func init() { DEVICEDATAS.Lock() DEVICEDATAS.DATA = make(map[string]Device) + //初始化设备,目前conf.DEVICES_LIST 指的是lora for _, i := range conf.DEVICES_LIST { device.DATA = make(map[string]interface{}) device.ID = i[0] @@ -81,7 +86,20 @@ func init() { DEVICEDATAS.DATA[i[2]+"_"+i[3]] = device } DEVICEDATAS.Unlock() + + + demoDevice.ID="deb03e28-ddcb-4e5d-aa31-d870a1f0f09b" + demoDevice.VERSION="yunhorn_kgl_c8_v1" + demoDevice.DATA = make(map[string]interface{}) + for a:=0;a<8;a++ { + demoDevice.DATA["data"+strconv.Itoa(a+1)]=0 + } + demoDevice.ONLINE=true + log.Println("init demoDevice success:",demoDevice) + + dbdata_init() + } var good, bad float64 @@ -122,6 +140,7 @@ func savedata_cron() { } // 每天0点插入一条数据 +//TODO 刚好有人流量数据 func insertdata() { T := time.Now().Format("2006-01-02") stmt, _ := db.Prepare(`INSERT INTO traffic (traffic, create_time) values (?, ?)`) diff --git a/router.go b/router.go index e8c0c8d..1a81af3 100644 --- a/router.go +++ b/router.go @@ -205,6 +205,7 @@ func seat_api(c *gin.Context) { for _, i := range conf.GATEWAY_INFO.CONFIG { arr := get_seat_device_data(i.ID) version, num := arr[0], arr[1] + log.Println("conf.data:",i.DATA) for k, j := range i.DATA { if DEVICEDATAS.DATA[version+"_"+num].DATA != nil { if DEVICEDATAS.DATA[version+"_"+num].DATA["data"+strconv.Itoa(k+1)] != nil { @@ -234,8 +235,12 @@ func seat_api(c *gin.Context) { func get_seat_device_data(id string) []string { var data = make([]string, 2) for _, i := range conf.DEVICES_LIST { + //[4E5D52DD-EB81-43C0-A2B6-04E432412EBA loraport yunhorn_kgl_l_v1 1] + log.Println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") + log.Println(i) if id == i[0] { data[0], data[1] = i[2], i[3] + log.Println(data) break } else { data[0], data[1] = "null", "null" diff --git a/worker.go b/worker.go index 2310745..16158e6 100644 --- a/worker.go +++ b/worker.go @@ -13,6 +13,7 @@ type Devicedatas struct { DATA map[string]Device } + type Device struct { sync.RWMutex ID string `json:"id"` @@ -22,20 +23,30 @@ type Device struct { } func yunhorn_ys_l_v1(data_buf []byte){ + + // for _, i := range conf.RS485DEVICES { + // log.Println("################################",i) + // } + //log.Println(data_buf) - log.Println(data_buf[3:4]) - data_int := Bytes2Bits(data_buf[3:4]) + // for i, k := range b_buf { + // log.Println(binary.BigEndian.Uint16(append([]byte{0x00}, k)) + // } + + data_int := Bytes2Bits(data_buf[3:4]) + + log.Println("data_int:",data_int[0]) var device Device - device.ID="deb03e28-ddcb-4e5d-aa31-d870a1f0f09b" - device.VERSION="yunhorn_ys_l_v1" - device.ONLINE=true - device.DATA=make(map[string]interface{}) - device.DATA["data"]=data_int[0] + device.ID=demoDevice.ID + device.VERSION=demoDevice.VERSION + device.ONLINE=demoDevice.ONLINE + demoDevice.DATA["data"+strconv.Itoa(7)]=data_int[0] + device.DATA=demoDevice.DATA + if conf.DEBUG { - log.Println(device) - } - - // send_data(1005, device) + log.Println(device) + } + send_data(1005, device) }