wechat_press_label = lv.label(wechat_screen)
wechat_press_label.set_text("请按住说话")
-wechat_press_label.set_size(240, 56)
+wechat_press_label.set_size(240, 38)
wechat_press_label.set_pos(0,282)
wechat_press_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
wechat_press_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
def send(self, event, msg):
- # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
- #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
- arm_data = msg[1]
- arm_sec = msg[0]
- Wechat_log("TK_ProtoCol:msgtype:{} arm_sec:{}".format(type(msg),arm_sec))
-
- arm = bytearray()
- for i in range(len(arm_data)):
- if arm_data[i] == 0x7d:
- arm.extend(b'\x7d\x01')
- elif arm_data[i] == 0x5b :
- arm.extend(b'\x7d\x02')
- elif arm_data[i] == 0x5d :
- arm.extend(b'\x7d\x03')
- elif arm_data[i] == 0x2c :
- arm.extend(b'\x7d\x04')
- elif arm_data[i] == 0x2a :
- arm.extend(b'\x7d\x05')
- else :
- arm.append(arm_data[i])
-
- datalen = len(arm) + 4+len(str(arm_sec))+1
- #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
- send_data = bytearray("SZKW*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec))
- send_data.extend(arm)
- MD5_SIGN = self.pack_MD5_head(send_data)
- data = bytearray('[')
- data.extend(MD5_SIGN)
- data.extend(send_data)
- data.extend(']')
- EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+ # print("TK send:{}".format(msg))
+ if len(str(msg)) == 1:
+
+ len_size = len(str(msg))+len("TKS,")
+ # 实例:[XT*334588000000156*0009*TK,1]
+ send_data = self.PID+"*%s*%04X*TKS"%(self.imei,len_size)
+ MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"TKS")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
+ print("TK:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ else:
+ # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
+ #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
+ arm_data = msg[1]
+ arm_sec = msg[0]
+ # print("TK_ProtoCol:msgtype:{} arm_sec:{}".format(len(msg[1]),arm_sec))
+
+ arm = bytearray()
+ for i in range(len(arm_data)):
+ if arm_data[i] == 0x7d:
+ arm.extend(b'\x7d\x01')
+ elif arm_data[i] == 0x5b :
+ arm.extend(b'\x7d\x02')
+ elif arm_data[i] == 0x5d :
+ arm.extend(b'\x7d\x03')
+ elif arm_data[i] == 0x2c :
+ arm.extend(b'\x7d\x04')
+ elif arm_data[i] == 0x2a :
+ arm.extend(b'\x7d\x05')
+ else :
+ arm.append(arm_data[i])
+
+ datalen = len(arm) + 4+len(str(arm_sec))+1
+ #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
+ send_data = bytearray("SZKW*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec))
+ send_data.extend(arm)
+ MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"TKS")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = bytearray('[')
+ data.extend(MD5_SIGN)
+ data.extend(send_data)
+ data.extend(']')
+ # print("TK:send data:%s MD5_head_data:%s"%(data,MD5_head_data))
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
def recv(self, event, msg):
"""
-
+ ("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
@param event: 微聊
@param msg: 接收到的下行数据
[SZKW*860132060004322*20BD*TK,#!AMR...]
"""
#Wechat_log("K_ProtoCol:recv:data:{}".format(msg))
+ # print("TK recv:{}".format(msg))
msg_tmp = msg.decode('ascii')
str = msg_tmp.split('TK,')
# Wechat_log("TK_ProtoCol:recv:len:{} {} {}".format(len(msg),len(str),msg_tmp.find("#!AMR")))
if j >= len(arm_data):
break
fd.write(arm)
+ EventMesh.publish(constants.PROTOCOL.TK_SEND,1)
+
self.hsensor.activate()
self.hsensor.init()
self.hsensor.close()
+ self.old_temp_time = 0
# #print("hsensor.open_heart:%d\r\n"%(self.hsensor.open_heart()))
print("DeviceInfoManager:3")
self.i2c0 = I2C(I2C.I2C0, I2C.FAST_MODE)
get_temp_state = EventMesh.publish("get_temp_state")
hr_time = {}
hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
- if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "1":
+ if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "0":
# print("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
if get_temp_time != None:#定时测量体温
if get_temp_time > 0:
self.temp_state = 0
self.temp_time = time_tmp
- if self.old_time != get_temp_time:#重复修改测量间隔时间
+ if self.old_temp_time != get_temp_time:#重复修改测量间隔时间
self.temp_one_state = 0
self.temp_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
self.temp_state = 0
- self.old_time = get_temp_time
+ self.old_temp_time = get_temp_time
if (time_tmp-self.temp_time) == 0 and self.temp_state == 0:#一开始就测量 测量一分钟停止测量体温
self.temp_state = 1
else:
self.temp_one_state = 0
self.temp_state = 0
+ self.old_temp_time = 0
else:
+ self.old_temp_time = 0
+ get_temp_end_state = EventMesh.publish("get_temp_state")
if self.temp_state != 0:
if self.temp_state == 2:
self.temp_state = 0
EventMesh.publish(constants.EVENT.STOP_TEMP)
- if get_temp_state == 0 or get_temp_state == 1:
+ if get_temp_end_state == 1:
self.temp_one_state = 0
- if get_temp_state == 3:#单次测量
+ if get_temp_end_state == 3:#单次测量
self.temp_one_state+=1
if self.temp_one_state == 1:
print("AUTO one temp:2")
EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
self.HR_Onestate = 0
else:
+ if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
+ if self.get_hr_state == 2:
+ EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ elif self.get_spo2_state == 2:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+ self.HR_state = 0
self.HR_Onestate = 0
self.HR_OneTime = 0
+ self.set_hsenor_crt = 0
else:
#print("hr......01....{} {} self.HR_Onestate {} {}".format(self.get_hr_state,self.get_spo2_state,self.HR_OneTime,self.HR_Onestate))
self.SENSOR_time = time_tmp#进入最后一次的时间戳
+ self.old_time = 0
+ self.set_hsenor_crt = 0
if self.get_hr_state != 1 and self.get_spo2_state != 1:#没有设置间隔时间单次测量
if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
self.HR_state = 0
EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
self.HR_Onestate = 0
else:
+ if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
+ if self.get_hr_state == 2:
+ EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ elif self.get_spo2_state == 2:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
self.HR_Onestate = 0
self.HR_OneTime = 0
+ self.old_time = 0
+
else:
+ self.old_temp_time = 0
+ self.old_time = 0
if battery[0] == "1":
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
def set_callnumer_cb(self, event, msg):
self.callnumer = msg
- self.call_timer.start(5000, 0, self.call_timer_cb)#延迟1S 继续拨打
+ self.call_timer.start(10000, 0, self.call_timer_cb)#延迟10S 继续拨打
def call_timer_cb(self, *args, **kwargs):
# print("call_timer_cb:{}".format(self.callnumer))
self.newip = "api.xcloudtech.com"#默认防走丢协议
self.newcom = 9000
# self.newmd5 = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
-
+ print("config.json:{}".format(self.read_data))
# server_addr = "tcptest.tx.kidxin.com"
# #SETIP:api.xcloudtech.com:9000
# server_port = 11500
def socket_send_queue_thread(self):
while True:
data = self.socket_send_queue.get()
- print("TCP:send data1 len:{}".format(data))
+ print("TCP:send data1 len:{}".format(len(data)))
#print("ui_queue_thread:data = {}".format(data))
socketsta = self.sock.getsocketsta()
def send(self, event, msg):
# [SZKW*334588000000156*len*heart,x]
# print("HEART:send:{}".format(msg))
- len_size = len(str(msg))+6
+ len_size = len(str(msg))+len("heart,")
send_data = self.PID+"*%s*%04X*heart"%(self.imei,len_size)
MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"heart")
MD5_SIGN = self.pack_MD5_head(MD5_head_data)
def send(self, event, msg):
# [SZKW*334588000000156*len*heart,x]
# print("oxstart:send:{}".format(msg))
- len_size = len(str(msg))+6
+ len_size = len(str(msg))+len("oxygen,")
send_data = self.PID+"*%s*%04X*oxygen"%(self.imei,len_size)
MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"oxygen")
MD5_SIGN = self.pack_MD5_head(MD5_head_data)
def send(self, event, msg):
# [SZKW*334588000000156*len*heart,x]
# print("temp:send:{}".format(msg))
- len_size = len(str(msg))+5
+ len_size = len(str(msg[0]))+len("temp,")+1+len(str(msg[1]))
+ print("temp:send:{} len:{}".format(msg,len_size))
# 实例:[XT*334588000000156*0009*temp,36.2]
# 代表终端的温度为:36.2
# 平台回复: