Ver Fonte

Merge remote-tracking branch 'origin/master'

develoven há 1 ano atrás
pai
commit
99516b812c
3 ficheiros alterados com 17 adições e 9 exclusões
  1. 2 2
      api/gateway/gateway.go
  2. 14 7
      api/gateway/sse.go
  3. 1 0
      models/gateway/device.go

+ 2 - 2
api/gateway/gateway.go

@@ -23,7 +23,7 @@ import (
 // @Schemes
 // @Description 扫描设备
 // @Tags 设备管理
-// @Param device body string true "chip:芯片编号,1或1;filterName:0 脑电 1 心电;filterRssi:信号强度,小于0的整数,字符串格式传输;filterMac:过滤Mac地址,以","分割,如 61-Dg-89-22-39-3b,80-kD-0E-40-57-8A"
+// @Param device body string true "chip:芯片编号,1或1;filterName:0 脑电 1 心电;filterRssi:信号强度,小于0的整数,字符串格式传输;filterMac:过滤Mac地址,以","分割,如 61-Dg-89-22-39-3b,80-kD-0E-40-57-8A;filterType:1 表示已录入的设备"
 // @Accept json
 // @Produce json
 // @Success 200 {string} string "ok"
@@ -75,7 +75,7 @@ func ScanDevice(c *gin.Context) {
 	}
 	paramMap["active"] = "1"
 	paramMap["event"] = "1"
-	SseScanDevice(paramMap)
+	SseScanDevice(paramMap, param.FilterType)
 	//http.GetReq(global.Config.Gateway.BaseUrl + global.Config.Gateway.OpenNotify)
 	response.Success("扫描完成", "", c)
 	return

+ 14 - 7
api/gateway/sse.go

@@ -14,7 +14,7 @@ import (
 )
 
 // SseScanDevice 扫描设备
-func SseScanDevice(paramMap map[string]string) {
+func SseScanDevice(paramMap map[string]string, filterType string) {
 	var scanUrl = global.Config.Gateway.BaseUrl + global.Config.Gateway.ScanUrl
 
 	deviceMap := make(map[string]gateway.DeviceScanned)
@@ -23,6 +23,7 @@ func SseScanDevice(paramMap map[string]string) {
 			scanUrl += "&" + key + "=" + value
 		}
 	}
+
 	//events := make(chan *sse.Event)
 	client := sse.NewClient(scanUrl)
 	go func() {
@@ -40,13 +41,19 @@ func SseScanDevice(paramMap map[string]string) {
 				return
 			}
 			deviceScanned := gateway.DeviceScanned{}
-			deviceScanned.Name = data.Name
-			deviceScanned.Rssi = data.Rssi
 			deviceScanned.MAC = data.Bdaddrs[0].Bdaddr
-			deviceScanned.BdadrType = data.Bdaddrs[0].BdaddrType
-			deviceScanned.Chip = data.ChipId
-			deviceMap[deviceScanned.MAC] = deviceScanned
-			fmt.Println(deviceScanned)
+			if filterType == "1" {
+				deviceService := GetDeviceService()
+				_, i := deviceService.FindDeviceByMac(deviceScanned.MAC)
+				if i > 0 {
+					deviceScanned.Name = data.Name
+					deviceScanned.Rssi = data.Rssi
+					deviceScanned.BdadrType = data.Bdaddrs[0].BdaddrType
+					deviceScanned.Chip = data.ChipId
+					deviceMap[deviceScanned.MAC] = deviceScanned
+					fmt.Println(deviceScanned)
+				}
+			}
 		})
 		if err != nil {
 			fmt.Println(err.Error())

+ 1 - 0
models/gateway/device.go

@@ -7,6 +7,7 @@ type DeviceScanParam struct {
 	FilterName string `json:"filterName"` // 0 脑电 1 心电
 	FilterRssi string `json:"filterRssi"` //信号强度
 	FilterMac  string `json:"filterMac"`  //过滤Mac地址,以","分割,如 61-Dg-89-22-39-3b,80-kD-0E-40-57-8A
+	FilterType string `json:"filterType"` //1表示扫描数据库中已存在的设备
 }
 
 type DeviceAddParam struct {