2024-10-12 02:23:32 +00:00
|
|
|
|
/*
|
|
|
|
|
* hy_protocol.c
|
|
|
|
|
*
|
|
|
|
|
* Created on: 2024<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>11<EFBFBD><EFBFBD>
|
|
|
|
|
* Author: psx
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "hy_protocol.h"
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include "inflash.h"
|
|
|
|
|
#include "pdebug.h"
|
|
|
|
|
#include "mppt_control.h"
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include "task.h"
|
|
|
|
|
#include "tim.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HY_default_Value HY_defaultValue = {0x68\
|
|
|
|
|
, 0x48, 0x59, 0x30, 0x30, 0x30, 0x31\
|
|
|
|
|
, 0x00, 0x00, 0x00, 0x01\
|
|
|
|
|
, 0x16};
|
|
|
|
|
|
|
|
|
|
/* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
static uint8_t rs485_buff[100]={0x00};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>ݱ<EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_batteryStatus(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_electricityStatistics(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_sensorNumberConfiguration(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ */
|
|
|
|
|
static void HY_MsgProcFunc_sensorNumberInquiry(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_chargingThresholdVoltageConfiguration(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ѹ<EFBFBD><D1B9>ѯ */
|
|
|
|
|
static void HY_MsgProcFunc_chargingRangeVoltageQuery(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><>λָ<CEBB><D6B8> */
|
|
|
|
|
static void HY_MsgProcFunc_resetInstruction(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_chargingControlConfiguration(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD>ѯ */
|
|
|
|
|
static void HY_MsgProcFunc_chargingControlQuery(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_configureProtocolType(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
///* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
//static void HY_MsgProcFunc_batteryStatus(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD>ؿ<EFBFBD><D8BF>ƺе<C6BA>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_queryControlBoxConfiguration(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD>ؿ<EFBFBD><D8BF>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾 */
|
|
|
|
|
static void HY_MsgProcFunc_querySoftwareVersion(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ */
|
|
|
|
|
static void HY_MsgProcFunc_enterConfigurationMode(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD>ÿ<EFBFBD><C3BF>ƺ<EFBFBD>Ӳ<EFBFBD><D3B2>ID<49><44> */
|
|
|
|
|
static void HY_MsgProcFunc_configureHardwareID(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><><EFBFBD>ƺ<EFBFBD>Ӳ<EFBFBD><D3B2>ID<49>ż<EFBFBD>ͨ<EFBFBD><CDA8>ID<49>ţ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ѯ */
|
|
|
|
|
static void HY_MsgProcFunc_hardwareID_communicationIDQuery(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><EFBFBD>ͨ<EFBFBD><CDA8>ID<49>ţ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> */
|
|
|
|
|
static void HY_MsgProcFunc_modifyCommunicationID(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>ֵ */
|
|
|
|
|
static void HY_MsgProcFunc_checkMotherboardTemperature(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>봦<EFBFBD><EBB4A6><EFBFBD><EFBFBD> */
|
|
|
|
|
HY_FuncionMsgProcTable g_hyMsgTbl[] =
|
|
|
|
|
{
|
|
|
|
|
{HY_batteryStatus, HY_MsgProcFunc_batteryStatus},
|
|
|
|
|
{HY_electricityStatistics, HY_MsgProcFunc_electricityStatistics},
|
|
|
|
|
{HY_sensorNumberConfiguration, HY_MsgProcFunc_sensorNumberConfiguration},
|
|
|
|
|
{HY_sensorNumberInquiry, HY_MsgProcFunc_sensorNumberInquiry},
|
|
|
|
|
{HY_chargingThresholdVoltageConfiguration, HY_MsgProcFunc_chargingThresholdVoltageConfiguration},
|
|
|
|
|
{HY_chargingRangeVoltageQuery, HY_MsgProcFunc_chargingRangeVoltageQuery},
|
|
|
|
|
{HY_resetInstruction, HY_MsgProcFunc_resetInstruction},
|
|
|
|
|
{HY_chargingControlConfiguration, HY_MsgProcFunc_chargingControlConfiguration},
|
|
|
|
|
{HY_chargingControlQuery, HY_MsgProcFunc_chargingControlQuery},
|
|
|
|
|
{HY_configureProtocolType, HY_MsgProcFunc_configureProtocolType},
|
|
|
|
|
// {HY_responseConfigureProtocolType, HY_MsgProcFunc_batteryStatus},
|
|
|
|
|
{HY_queryControlBoxConfiguration, HY_MsgProcFunc_queryControlBoxConfiguration},
|
|
|
|
|
{HY_querySoftwareVersion, HY_MsgProcFunc_querySoftwareVersion},
|
|
|
|
|
{HY_enterConfigurationMode, HY_MsgProcFunc_enterConfigurationMode},
|
|
|
|
|
{HY_configureHardwareID, HY_MsgProcFunc_configureHardwareID},
|
|
|
|
|
{HY_hardwareID_communicationIDQuery, HY_MsgProcFunc_hardwareID_communicationIDQuery},
|
|
|
|
|
{HY_modifyCommunicationID, HY_MsgProcFunc_modifyCommunicationID},
|
|
|
|
|
{HY_checkMotherboardTemperature, HY_MsgProcFunc_checkMotherboardTemperature},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>485<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>æ
|
|
|
|
|
* @param
|
|
|
|
|
* @retval 1 <EFBFBD><EFBFBD>æ
|
|
|
|
|
* 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
2024-10-12 09:51:15 +00:00
|
|
|
|
uint8_t HY_Check_485_bus_busy(device_handle device)
|
2024-10-12 02:23:32 +00:00
|
|
|
|
{
|
|
|
|
|
if (device == g_bat485_uart3_handle) {
|
|
|
|
|
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
|
|
|
|
|
} else {
|
|
|
|
|
USART_ITConfig(USART4, USART_IT_RXNE, ENABLE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
uint16_t num_ago = ring_queue_length(device);
|
|
|
|
|
Delay_Ms(2);
|
|
|
|
|
uint16_t num_now = ring_queue_length(device);
|
|
|
|
|
|
|
|
|
|
if (device == g_bat485_uart3_handle) {
|
|
|
|
|
USART_ITConfig(USART3, USART_IT_RXNE, DISABLE);
|
|
|
|
|
} else {
|
|
|
|
|
USART_ITConfig(USART4, USART_IT_RXNE, DISABLE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (num_now == num_ago) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief У<EFBFBD><EFBFBD><EFBFBD>㷨
|
|
|
|
|
* @param <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼӺ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>鷽ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն˺<EFBFBD><EFBFBD>롢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
uint8_t HY_CheckFunc(uint8_t *arr_buff, uint8_t len)
|
|
|
|
|
{
|
|
|
|
|
uint8_t temp = 0x00;
|
|
|
|
|
uint32_t sum = 0x00;
|
|
|
|
|
|
|
|
|
|
for(uint8_t i = 0; i < len; i++) {
|
|
|
|
|
sum += *arr_buff++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
temp = (~sum) & 0xff;
|
|
|
|
|
|
|
|
|
|
return temp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief ƥ<EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD>ַ
|
|
|
|
|
* @param address <EFBFBD><EFBFBD>ַ
|
|
|
|
|
* @retval 1 ƥ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
* 0 ƥ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
static int HY_matchhardwareID(u_int8_t hardwareID[6])
|
|
|
|
|
{
|
2024-10-12 09:51:15 +00:00
|
|
|
|
//// if (!strcmp(address, g_slConfigInfo.address)) {
|
|
|
|
|
//// log_info("Match_address fail \r\n");
|
|
|
|
|
//// return 1;
|
|
|
|
|
//// }
|
|
|
|
|
// if ((hardwareID[0] == g_slConfigInfo.address[0]) && \
|
|
|
|
|
// (hardwareID[1] == g_slConfigInfo.address[1]) && \
|
|
|
|
|
// (hardwareID[2] == g_slConfigInfo.address[2]) && \
|
|
|
|
|
// (hardwareID[3] == g_slConfigInfo.address[3]) && \
|
|
|
|
|
// (hardwareID[4] == g_slConfigInfo.address[4]) && \
|
|
|
|
|
// (hardwareID[5] == g_slConfigInfo.address[5]) && \
|
|
|
|
|
// (hardwareID[6] == g_slConfigInfo.address[6])) {
|
|
|
|
|
// log_info("Match_address success \r\n");
|
2024-10-12 02:23:32 +00:00
|
|
|
|
// return 1;
|
|
|
|
|
// }
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief ƥ<EFBFBD><EFBFBD><EFBFBD>㲥<EFBFBD><EFBFBD>ַ
|
|
|
|
|
* @param address <EFBFBD><EFBFBD>ַ
|
|
|
|
|
* @retval 1 ƥ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
* 0 ƥ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
static int Match_Broadcastaddress(u_int8_t address[6])
|
|
|
|
|
{
|
|
|
|
|
if (address[0] == 0xFF && \
|
|
|
|
|
address[1] == 0xFF && \
|
|
|
|
|
address[2] == 0xFF && \
|
|
|
|
|
address[3] == 0xFF && \
|
|
|
|
|
address[4] == 0xFF && \
|
|
|
|
|
address[5] == 0xFF && \
|
|
|
|
|
address[6] == 0xFF) {
|
|
|
|
|
log_info("Match_Broadcastaddress success\r\n");
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param uart_handle <EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param buff <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param buff_size <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
static int HY_uart_read_climate_pack(device_handle uart_handle,uint8_t *buff, uint32_t buff_size)
|
|
|
|
|
{
|
|
|
|
|
uint32_t offset = 0;
|
|
|
|
|
uint32_t len = 0;
|
|
|
|
|
uint8_t flag_run = 0;
|
|
|
|
|
char c = 0;
|
|
|
|
|
|
|
|
|
|
HY_Recv_pack *pack = (HY_Recv_pack *)buff;
|
|
|
|
|
|
|
|
|
|
buff_size--; //Ԥ<><D4A4>һ<EFBFBD><D2BB>'\0'λ<><CEBB>
|
|
|
|
|
for (; offset < buff_size;){
|
|
|
|
|
if (ring_queue_length(uart_handle) == 0) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
c = uart_dev_in_char(uart_handle);
|
|
|
|
|
|
|
|
|
|
buff[offset++] = c;
|
|
|
|
|
|
|
|
|
|
/* ƥ<><C6A5><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>־λ */
|
|
|
|
|
if (offset == HY_analyzeStartFlag || (flag_run > 0)) {
|
|
|
|
|
if (pack->start_Flag != HY_defaultValue.start_Flag) {
|
|
|
|
|
memcpy(buff, buff+1, offset-1);
|
|
|
|
|
offset--;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ƥ<><C6A5>Ӳ<EFBFBD><D3B2>ID */
|
|
|
|
|
if (offset == HY_analyzeHardwareID || (flag_run > 1)) {
|
|
|
|
|
if (HY_matchhardwareID(pack->hardwareID) || Match_Broadcastaddress(pack->hardwareID)) {
|
|
|
|
|
if (flag_run < 1) {
|
|
|
|
|
flag_run = 1;
|
|
|
|
|
}
|
|
|
|
|
memcpy(buff, buff+1, offset-1);
|
|
|
|
|
offset--;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
static void HY_FRT_MsgHandler(device_handle device, uint8_t *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
HY_Recv_pack *pack = (HY_Recv_pack *)pMsg;
|
|
|
|
|
|
|
|
|
|
for (u_int16_t i = 0; i < sizeof(g_hyMsgTbl) / sizeof(HY_FuncionMsgProcTable); i++){
|
|
|
|
|
if (pack->controlWord == g_hyMsgTbl[i].msgId){
|
|
|
|
|
g_hyMsgTbl[i].pMsgProc(device, pMsg, MsgLen);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param
|
|
|
|
|
* @retval
|
|
|
|
|
*/
|
|
|
|
|
void HY_read_and_process_uart_data(device_handle device)
|
|
|
|
|
{
|
|
|
|
|
// printf("ring_queue_length = %d \n", ring_queue_length(device));
|
|
|
|
|
// if (ring_queue_length(device) > 10) {uart_dev_char_present(device_handle device)
|
|
|
|
|
if (uart_dev_char_present(device)) {
|
|
|
|
|
Delay_Ms(20);
|
|
|
|
|
// printf("ring_queue_length = %d \n", ring_queue_length(device));
|
|
|
|
|
memset(rs485_buff, 0, sizeof(rs485_buff));
|
|
|
|
|
int ret = HY_uart_read_climate_pack(device, rs485_buff, sizeof(rs485_buff));
|
|
|
|
|
if(ret > 0){
|
|
|
|
|
HY_FRT_MsgHandler(device, rs485_buff, ret);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>ݱ<EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_batteryStatus(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_electricityStatistics(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_sensorNumberConfiguration(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ */
|
|
|
|
|
void HY_MsgProcFunc_sensorNumberInquiry(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_chargingThresholdVoltageConfiguration(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ѹ<EFBFBD><D1B9>ѯ */
|
|
|
|
|
void HY_MsgProcFunc_chargingRangeVoltageQuery(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><>λָ<CEBB><D6B8> */
|
|
|
|
|
void HY_MsgProcFunc_resetInstruction(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_chargingControlConfiguration(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD>ѯ */
|
|
|
|
|
static void HY_MsgProcFunc_chargingControlQuery(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_configureProtocolType(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
//static void HY_MsgProcFunc_batteryStatus(device_handle device, void *pMsg, uint32_t MsgLen);
|
|
|
|
|
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD>ؿ<EFBFBD><D8BF>ƺе<C6BA>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_queryControlBoxConfiguration(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD>ؿ<EFBFBD><D8BF>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾 */
|
|
|
|
|
void HY_MsgProcFunc_querySoftwareVersion(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ */
|
|
|
|
|
void HY_MsgProcFunc_enterConfigurationMode(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD>ÿ<EFBFBD><C3BF>ƺ<EFBFBD>Ӳ<EFBFBD><D3B2>ID<49><44> */
|
|
|
|
|
void HY_MsgProcFunc_configureHardwareID(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD>ƺ<EFBFBD>Ӳ<EFBFBD><D3B2>ID<49>ż<EFBFBD>ͨ<EFBFBD><CDA8>ID<49>ţ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ѯ */
|
|
|
|
|
void HY_MsgProcFunc_hardwareID_communicationIDQuery(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><EFBFBD>ͨ<EFBFBD><CDA8>ID<49>ţ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> */
|
|
|
|
|
void HY_MsgProcFunc_modifyCommunicationID(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>ֵ */
|
|
|
|
|
void HY_MsgProcFunc_checkMotherboardTemperature(device_handle device, void *pMsg, uint32_t MsgLen)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|