chenyc
2024-11-15 ce5e351b48a0a8bb666a579324586caeba8eba8a
src/app_uart485.py
@@ -6,6 +6,13 @@
import utime   # 延时函数在utime库中
uart = UART()
#电量
g_dianlaing = 0
g_dianya=0
g_dianlaingbaojing=0
#打开串口通讯
def uart_init():
    uart.open("serial3")
@@ -41,6 +48,7 @@
    
#发送指令到串口
def sundSos(hex_data,type):
    global g_dianlaing,g_dianya,g_dianlaingbaojing
    # 将16进制数据列表转换为字节串
    byte_data = bytes(hex_data)
    uart.write(byte_data)
@@ -69,18 +77,28 @@
        print("CRC 校验正确")
        if type=='sos':
            print("输出计算得到的电量: {}".format(readBuf[4]))
            app_aliyunIot.sudDataPostProps({"Dsos":readBuf[4]})
            # app_aliyunIot.sudDataPostProps({"Dsos":readBuf[4]})
            g_dianlaing=readBuf[4]
        elif type=='alert':
            print("输出计算得到的电池报警: {}".format(readBuf[4]))
            app_aliyunIot.sudDataPostProps({"Dalert":readBuf[4]})
            g_dianlaingbaojing=readBuf[4]
            # app_aliyunIot.sudDataPostProps({"Dalert":readBuf[4]})
        elif type=='dianya':
            print(readBuf[3],readBuf[4])
            dianyasun=hex_to_decimal_divide(readBuf[3],readBuf[4])
            print("输出计算得到的电压: {}".format(dianyasun))
            app_aliyunIot.sudDataPostProps({"Dv":dianyasun})
            g_dianya=dianyasun
            # app_aliyunIot.sudDataPostProps({"Dv":dianyasun})
            
    else:
        print("CRC 校验不正确")
        if type=='sos':
            g_dianlaing=0
        elif type=='alert':
            g_dianlaingbaojing=0
        elif type=='dianya':
            g_dianya=0
            # app_aliyunIot.sudDataPostProps({"Dv":dianyasun})
def hex_to_decimal_divide(dec1, dec2):
    hex1 = '{:02X}'.format(dec1)
@@ -89,4 +107,7 @@
    decimal_value = int(hex1 + hex2, 16)
    # 除以 100 并保留一位小数
    result = round(decimal_value / 100, 1)
    return result
    return result
def getG_dian():
    global g_dianlaing,g_dianya,g_dianlaingbaojing
    return  [g_dianlaing,g_dianya,g_dianlaingbaojing]