Esempio n. 1
0
def control_power_info(datas):
    """
    主控板,功率信息
    uint8_t		1字节		0x00(单次读成功)
				            0x01(单次读失败, 数据无效)
    uint16_t	0或2字节	输入功率.
    uint16_t	0或2字节	正向功率.
    uint16_t	0或2字节	反向功率.
    uint16_t	0或2字节	保留
    uint16_t	0或2字节	保留							
    uint16_t	0或2字节	保留
    uint16_t	0或2字节	保留
    uint16_t	0或2字节	保留
    """
    try:
        data = {"error": datas[0], "power_data": []}
        if not data["error"]:
            data["power_data"] = [
                datas[i] + datas[i + 1] * 256 for i in range(1, len(datas), 2)
            ]
        else:
            systemlog.log_warning(u"获取主控板功率信息失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 2
0
def get_fan_info(datas):
    """
    获取风扇信息
    uint8_t		1字节		0x00(单次读成功)							
				            0x01(单次读失败, 数据无效)							
    uint16_t	2字节		从Bit0~Bit15分别代表16个风扇的工作状态(0为停转, 1为工作).							
    """
    try:
        data = {"error": datas[0], "values": []}
        if not data['error']:
            data['values'] = datas[1] + datas[2] * 256
        else:
            systemlog.log_warning(u"获取风扇信息失败,数据无效" + str(datas))
            data = {}
    except Exception:
        data = None
    return data
Esempio n. 3
0
def control_status_info(datas):
    """
    主控板,工作状态信息
    uint8_t		1字节		工作信息操作状态(Work_Status), 详细说明见附录
    Bit0		1位		    保留
    Bit1		1位		    射频开关: 0为关闭, 1为打开
    Bit2		1位		    保留
    Bit3~7				    保留
    """
    try:
        data = {"error": datas[0]}
        if not data["error"]:
            data["RF_switch"] = datas[1] >> 1 & 0x01
        else:
            systemlog.log_warning(u"获取主控板工作状态信息失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 4
0
def get_fan_rate_info(datas):
    """
    获取风扇转速信息
    uint8_t		1字节		0x00(单次读成功)
				            0x01(单次读失败, 数据组为空)
    uint8_t		0或16字节  (16个风扇,每个风扇1个字节)
                            0~100%的速度比例, 比例越大, 速度越快
    """
    try:
        data = {"error": datas[0], "values": []}
        if not data['error']:
            data['values'] = [datas[i] for i in range(1, len(datas))]
        else:
            systemlog.log_warning(u"获取风扇信息速度失败,数据无效" + str(datas))
            data = {}
    except Exception:
        data = None
    return data
Esempio n. 5
0
def gate_voltage_once_write_info(datas):
    """
    单次写栅压返回信息
    uint8_t		1字节		栅压状态(GATE_Status), 详细说明见附录							
    uint8_t		1字节		栅压通道编号(0~138)							
    uint16_t	2字节		栅压通道电压值(-mV)							
    """
    try:
        data = {
            "GATE_status": datas[0],
            "gate_num": datas[1],
            "gate_voltage": datas[2] + datas[3] * 256
        }
        if data["GATE_status"]:
            systemlog.log_warning(u"单次写栅压失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 6
0
def control_push_info(datas):
    """
    主控板,按键信息
    uint8_t		1字节		0x00(单次读成功)
				            0x01(单次读失败, 数据无效)
    Bit0		1字节		保留
    Bit1				    射频按键: 0为松开, 1为摁下
    Bit2				    保留
    Bit3~7				    保留
    """
    try:
        data = {"error": datas[0]}
        if not data["error"]:
            data["RF_button"] = datas[1] >> 1 & 0x01
        else:
            systemlog.log_warning(u"获取主控板按键信息失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 7
0
def vol_boardB_info(datas):
    """
    过欠压检测板数据处理
    uint8_t		1字节		0x00(单次读成功)							
				            0x01(单次读失败, 数据组为空)							
    uint16_t	0或26字节	1~13路的普通电流数据组(单位: mA), 详见文档<2000W功放部分约定>
    """
    try:
        data = {"error": datas[0], "values": []}
        if not data['error']:
            data['values'] = [
                datas[i] + datas[i + 1] * 256 for i in range(1, len(datas), 2)
            ]
        else:
            systemlog.log_warning(u"获取过欠压信息失败,数据无效" + str(datas))
            data = {}
    except Exception:
        data = None
    return data
Esempio n. 8
0
def get_gate_voltage_channel_configure_info(datas):
    """
    获取旋钮信息
    uint8_t		1字节		旋钮状态(KNOB_Status), 详细说明见附录							
    uint16_t	0或2字节	增益控制的电压值, 详见文档<2000W功放部分约定>							
    uint16_t	0或2字节	频率控制的电压值, 详见文档<2000W功放部分约定>							
    uint16_t	0或2字节	功率控制的电压值, 详见文档<2000W功放部分约定>
    """
    try:
        data = {"error": datas[0]}
        if not data["error"]:
            data["gain"] = datas[1] + datas[2] * 256
            data["freq"] = datas[3] + datas[4] * 256
            data["power"] = datas[5] + datas[6] * 256
        else:
            systemlog.log_warning(u"获取旋钮信息失败,数据无效" + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 9
0
def get_temp_info(datas):
    """
    获取温度信息
    uint8_t		1字节		0x00(单次读成功)							
				            0x01(单次读失败, 数据组为空)
    int16_t		0或32字节	1~16路的温度数据组(单位: 0.1度)							
    """
    try:
        data = {"error": datas[0], "temp_list": []}
        if not data["error"]:
            data["temp_list"] = [
                datas[i] + datas[i + 1] * 256 for i in range(1, len(datas), 2)
            ]
        else:
            systemlog.log_warning(u"读取温度信息失败" + str(datas))
            data = {}
    except Exception:
        data = None
    return data
Esempio n. 10
0
def gate_voltage_continuous_write_info(datas):
    """
    连续写栅压返回信息
    uint8_t		1字节		栅压状态(GATE_Status), 详细说明见附录							
    uint8_t		1字节		栅压起始通道编号(0~138)							
    uint8_t		1字节		栅压通道数量(n)							
    uint8_t		1字节		旋钮状态(KNOB_Status), 详细说明见附录							
    """
    try:
        data = {
            "GATE_status": datas[0],
            "gate_num_start": datas[1],
            "gate_num": datas[2],
            "KNOB_status": datas[3]
        }
        if data["GATE_status"]:
            systemlog.log_warning(u"连续写栅压失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data
Esempio n. 11
0
def warning_data_info(datas):
    """
    告警板,告警信息
    uint8_t		1字节		0x00(无告警, 数据组为空)							
				            0x01(有告警, 数据组有效)							
    uint16_t	0或20字节	详见附录 register 1							
    uint16_t				详见附录 register 2							
    uint16_t				详见附录 register 3							
    uint16_t				详见附录 register 4							
    uint16_t				详见附录 register 5							
    uint16_t				详见附录 register 6							
    uint16_t				详见附录 register 7							
    uint16_t				详见附录 register 8							
    uint16_t				详见附录 register 9							
    uint16_t				详见附录 register 10
    """
    # 检测标识符和告警标识符
    try:
        if datas[0] == 0x01:
            res_data = [
                datas[i] + datas[i + 1] * 256 for i in range(1, len(datas), 2)
            ]
            data = {
                "register1": res_data[0],
                "register2": res_data[1],
                "register3": res_data[2],
                "register4": res_data[3],
                "register5": res_data[4],
                "register6": res_data[5],
                "register7": res_data[6],
                "register8": res_data[7],
                "register9": res_data[8],
                "register10": res_data[9],
            }
        else:
            systemlog.log_warning(u"无告警信息" + str(datas))
            data = {}
    except Exception:
        data = None
    return data
Esempio n. 12
0
def gate_voltage_continuous_read_info(datas):
    """
    连续读栅压返回信息
    uint8_t		1字节		栅压状态(GATE_Status), 详细说明见附录							
    uint8_t		1字节		栅压起始通道编号(0~138)							
    uint8_t		1字节		栅压通道数量(n)							
    uint16_t	0或n*2字节	栅压通道电压值(-mV)数据组							
    """
    try:
        data = {
            "GATE_status": datas[0],
            "gate_num_start": datas[1],
            "gate_num": datas[2],
            "gate_voltage": []
        }
        if not data['GATE_status']:
            data['gate_voltage'] = [
                datas[i] + datas[i + 1] * 256 for i in range(3, len(datas), 2)
            ]
        else:
            systemlog.log_warning(u"连续读栅压信息失败,数据无效: " + str(datas))
    except Exception:
        data = None
    return data