add:增加文档和上位机

This commit is contained in:
2026-05-21 12:56:29 +08:00
parent 8ee0849831
commit a1d1f19585
95 changed files with 8594 additions and 43 deletions

View File

@@ -92,11 +92,11 @@ void drv_air724_set_server(const char *ip, uint16_t port)
void drv_air724_connect_channel(uint8_t channel)
{
if (channel < 1 || channel > AIR724_SOCKET_MAX) {
printf("4G: 通道 %d 无效 \r\n", channel);
printf("[ 4G ] 通道 %d 无效 \r\n", channel);
return;
}
drv_air724_send_cmd(0x03, 0x01, &channel, 1);
printf("4G: 通道 %d 连接请求已发送 \r\n", channel);
printf("[ 4G ] 通道 %d 连接请求已发送 \r\n", channel);
}
/**
@@ -108,11 +108,11 @@ void drv_air724_connect_channel(uint8_t channel)
void drv_air724_disconnect_channel(uint8_t channel)
{
if (channel < 1 || channel > AIR724_SOCKET_MAX) {
printf("4G: 通道 %d 无效\r\n", channel);
printf("[ 4G ] 通道 %d 无效\r\n", channel);
return;
}
drv_air724_send_cmd(0x03, 0x02, &channel, 1);
printf("4G: 通道 %d 断开请求已发送\r\n", channel);
printf("[ 4G ] 通道 %d 断开请求已发送\r\n", channel);
}
/**
@@ -186,15 +186,15 @@ void drv_air724_parse_response(const uint8_t *frame, uint16_t len)
switch (sub_cmd) {
case 0x01:
g_air724_info.socket_connected[socket_id - 1] = 1;
printf("4G: 通道 %d 连接成功\r\n", socket_id);
printf("[ 4G ] 通道 %d 连接成功\r\n", socket_id);
break;
case 0x02:
g_air724_info.socket_connected[socket_id - 1] = 0;
printf("4G: 通道 %d 已断开\r\n", socket_id);
printf("[ 4G ] 通道 %d 已断开\r\n", socket_id);
break;
case 0x03:
g_air724_info.socket_connected[socket_id - 1] = 0;
printf("4G: 通道 %d 连接失败\r\n", socket_id);
printf("[ 4G ] 通道 %d 连接失败\r\n", socket_id);
break;
}
}
@@ -210,17 +210,17 @@ void drv_air724_parse_response(const uint8_t *frame, uint16_t len)
case 0x01:
memcpy(g_air724_info.iccid, &frame[5], data_len < 23 ? data_len : 23);
g_air724_info.iccid[data_len < 23 ? data_len : 23] = '\0';
printf("4G: ICCID=%s\r\n", g_air724_info.iccid);
printf("[ 4G ] ICCID=%s\r\n", g_air724_info.iccid);
break;
case 0x02:
memcpy(g_air724_info.imsi, &frame[5], data_len < 15 ? data_len : 15);
g_air724_info.imsi[data_len < 15 ? data_len : 15] = '\0';
printf("4G: IMSI=%s\r\n", g_air724_info.imsi);
printf("[ 4G ] IMSI=%s\r\n", g_air724_info.imsi);
break;
case 0x03:
memcpy(g_air724_info.imei, &frame[5], data_len < 15 ? data_len : 15);
g_air724_info.imei[data_len < 15 ? data_len : 15] = '\0';
printf("4G: IMEI=%s\r\n", g_air724_info.imei);
printf("[ 4G ] IMEI=%s\r\n", g_air724_info.imei);
break;
}
break;
@@ -231,7 +231,7 @@ void drv_air724_parse_response(const uint8_t *frame, uint16_t len)
if (len >= 7) {
g_air724_info.csq = frame[4];
g_air724_info.ber = frame[5];
printf("4G: CSQ=%d, BER=%d\r\n", g_air724_info.csq, g_air724_info.ber);
printf("[ 4G ] CSQ=%d, BER=%d\r\n", g_air724_info.csq, g_air724_info.ber);
}
break;
@@ -241,7 +241,7 @@ void drv_air724_parse_response(const uint8_t *frame, uint16_t len)
for (uint8_t i = 0; i < count; i++) {
g_air724_info.socket_connected[i] = frame[4 + i];
}
printf("4G: 链路[");
printf("[ 4G ] 链路[");
for (uint8_t i = 0; i < AIR724_SOCKET_MAX; i++) {
printf("%d", g_air724_info.socket_connected[i]);
}
@@ -252,7 +252,7 @@ void drv_air724_parse_response(const uint8_t *frame, uint16_t len)
/* ── 0x87: 服务器配置结果 ── */
case 0x87:
if (len >= 6) {
printf("4G: 服务器配置%s\r\n", frame[4] == 0 ? "成功" : "失败");
printf("[ 4G ] 服务器配置%s\r\n", frame[4] == 0 ? "成功" : "失败");
}
break;
}

View File

@@ -134,7 +134,7 @@ void host_computer_on_get_status(uint8_t id, cJSON *json_pack)
udp_send_to_server(str, strlen(str));
free(str);
cJSON_Delete(root);
printf("get_status 回复已发送 \r\n");
printf("[ 上位机 ] get_status 回复已发送 \r\n");
}
/**
@@ -146,7 +146,7 @@ void host_computer_on_get_status(uint8_t id, cJSON *json_pack)
void host_computer_on_reboot(uint8_t id, cJSON *json)
{
(void) id;
printf("host_computer_on_reboot\r\n");
printf("[ 上位机 ] host_computer_on_reboot\r\n");
__ASM volatile("cpsid i");
HAL_NVIC_SystemReset();
}
@@ -285,11 +285,11 @@ void host_computer_report_data(uint8_t stake_index, uint8_t gun_id)
{
udp_send_to_server(str, strlen(str));
free(str);
printf("南向:主动上报桩 %d 枪 %d 主动上报数据成功 \r\n", stake_index, gun_id);
printf("[ 上位机 ] 南向:主动上报桩 %d 枪 %d 主动上报数据成功 \r\n", stake_index, gun_id);
}
else
{
printf("Failed to print JSON for report_data\r\n");
printf("[ 上位机 ] Failed to print JSON for report_data\r\n");
}
cJSON_Delete(root);

View File

@@ -30,7 +30,7 @@ void charger_to_server_0X01(uint8_t stake_index)
data.net_conn_type = g_charger_manager.charger_piles[stake_index - 1].login_info.net_conn_type;
data.tele_factory = g_charger_manager.charger_piles[stake_index - 1].login_info.tele_factory;
memcpy(data.sim, g_charger_manager.charger_piles[stake_index - 1].login_info.sim, 10);
printf("北向:对电桩 %d 发送登录认证\r\n", stake_index);
printf("[ 北向 ] 对电桩 %d 发送登录认证\r\n", stake_index);
pack_and_send_server_data(FRAME_TYPE_0X01, (uint8_t *)&data, sizeof(PACK_DATA_0X01), stake_index);
}
@@ -47,7 +47,7 @@ void charger_to_server_0X03(uint8_t stake_index, uint8_t gun_index)
load_charger_serial(stake_index, data.charger_serial); // 加载充电桩序列号
data.gun_index = ((gun_index / 10) << 4) | (gun_index % 10);
data.gun_status = g_charger_manager.charger_piles[stake_index - 1].guns[gun_index - 1].heartbeat_status_data.gun_status;
printf("北向:对电桩 %d 发送心跳请求,枪号:%d状态%d\r\n", stake_index, gun_index, data.gun_status);
printf("[ 北向 ] 对电桩 %d 发送心跳请求,枪号:%d状态%d\r\n", stake_index, gun_index, data.gun_status);
pack_and_send_server_data(FRAME_TYPE_0X03, (uint8_t *)&data, sizeof(PACK_DATA_0X03), stake_index);
}
@@ -63,7 +63,7 @@ void charger_to_server_0X05(uint16_t num, uint8_t stake_index)
load_charger_serial(stake_index, data.charger_serial); // 加载充电桩序列号
data.fee_model_no = num;
printf("北向:对电桩 %d 计费模型验证请求,模型号:%d\r\n", stake_index, num);
printf("[ 北向 ] 对电桩 %d 计费模型验证请求,模型号:%d\r\n", stake_index, num);
pack_and_send_server_data(FRAME_TYPE_0X05, (uint8_t *)&data, sizeof(PACK_DATA_0X05), stake_index);
}
@@ -76,7 +76,7 @@ void charger_to_server_0X09(uint8_t stake_index)
{
PACK_DATA_0X09 data = {0};
load_charger_serial(stake_index, data.charger_serial); // 加载充电桩序列号
printf("北向:对电桩 %d 计费模型请求\r\n", stake_index);
printf("[ 北向 ] 对电桩 %d 计费模型请求\r\n", stake_index);
pack_and_send_server_data(FRAME_TYPE_0X09, (uint8_t *)&data, sizeof(PACK_DATA_0X09), stake_index);
}
@@ -123,7 +123,7 @@ void charger_to_server_0X19(uint8_t stake_index, uint8_t gun_index)
load_charger_serial(stake_index, data.charger_serial);
load_trade_serial(stake_index, gun_index, data.trade_serial);
data.gun_index = ((gun_index / 10) << 4) | (gun_index % 10);
printf("北向:对电桩 %d 枪 %d 的充电结束上报 \r\n", stake_index, gun_index);
printf("[ 北向 ] 对电桩 %d 枪 %d 的充电结束上报 \r\n", stake_index, gun_index);
pack_and_send_server_data(FRAME_TYPE_0X19, (uint8_t *)&data, sizeof(PACK_DATA_0X19), stake_index);
}
@@ -164,7 +164,7 @@ void charger_to_server_0X35(uint8_t stake_index, uint8_t gun_index, uint8_t resu
data.result = result;
data.err_code = err_code;
printf("北向:对电桩 %d 的平台停机回复,结果:%d错误码%d\r\n", stake_index, result, err_code);
printf("[ 北向 ] 对电桩 %d 的平台停机回复,结果:%d错误码%d\r\n", stake_index, result, err_code);
pack_and_send_server_data(FRAME_TYPE_0X35, (uint8_t *)&data, sizeof(PACK_DATA_0X35), stake_index);
}
@@ -219,7 +219,7 @@ void charger_to_server_0X3B(uint8_t stake_index, uint8_t gun_index)
memcpy(data.phy_cardid, gun->fee_data.phy_cardid, 8); // 物理卡号
printf("========================================\r\n");
printf("北向:对电桩 %d 枪 %d 上传交易记录(0x3B),电量:%.2f,金额:%.2f\r\n",
printf("[ 北向 ] 对电桩 %d 枪 %d 上传交易记录(0x3B),电量:%.2f,金额:%.2f\r\n",
stake_index, gun_index, data.total_energy / 10000.0f, data.consumption / 10000.0f);
printf("\r\n========================================\r\n");
pack_and_send_server_data(FRAME_TYPE_0X3B, (uint8_t *)&data, sizeof(PACK_DATA_0X3B), stake_index);
@@ -237,6 +237,6 @@ void charger_to_server_0x57(uint8_t stake_index)
load_charger_serial(stake_index, data.charger_serial);
data.result = 0x01;
printf("北向:对电桩 %d 的计费模型主动更新回复\r\n", stake_index);
printf("[ 北向 ] 对电桩 %d 的计费模型主动更新回复\r\n", stake_index);
pack_and_send_server_data(FRAME_TYPE_0X57, (uint8_t *)&data, sizeof(PACK_DATA_0X57), stake_index);
}

View File

@@ -27,7 +27,7 @@ void on_cmd_frame_type_0X02(uint8_t stake_index, SERVER_PACK *pack)
{
g_charger_manager.charger_piles[stake_index - 1].is_online = 1;
#ifdef DEBUG
printf("北向:桩ID %d 登陆成功!\r\n", stake_index);
printf("[ 北向 ] 桩ID %d 登陆成功!\r\n", stake_index);
#endif
}
}
@@ -43,7 +43,7 @@ void on_cmd_frame_type_0X04(uint8_t stake_index, SERVER_PACK *pack)
PACK_DATA_0X04 data;
memcpy(&data, pack->data, sizeof(PACK_DATA_0X04));
#ifdef DEBUG
printf("北向:桩ID %d 收到心跳应答!\r\n", stake_index);
printf("[ 北向 ] 桩ID %d 收到心跳应答!\r\n", stake_index);
#endif
}
@@ -59,7 +59,7 @@ void on_cmd_frame_type_0X06(uint8_t stake_index, SERVER_PACK *pack)
if (is_my_charger_serial(stake_index, data.charger_serial))
{
#ifdef DEBUG
printf("北向:接收到计费模型验证应答模型ID%d, 验证结果:%d\r\n", data.fee_model_no, data.result);
printf("[ 北向 ] 接收到计费模型验证应答模型ID%d, 验证结果:%d\r\n", data.fee_model_no, data.result);
#endif
}
}
@@ -81,7 +81,7 @@ void on_cmd_frame_type_0X0A(uint8_t stake_index, SERVER_PACK *pack)
#ifdef DEBUG
printf("北向:接收到计费模型应答,模型ID:%d\r\n", g_charger_manager.fee_model_global.fee_model_no);
printf("[ 北向 ] 接收到计费模型应答,模型ID:%d\r\n", g_charger_manager.fee_model_global.fee_model_no);
printf("尖电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.shark_fee_ratio, g_charger_manager.fee_model_global.shark_service_ratio);
printf("峰电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.peak_fee_ratio, g_charger_manager.fee_model_global.peak_service_ratio);
printf("平电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.flat_fee_ratio, g_charger_manager.fee_model_global.flat_service_ratio);
@@ -167,7 +167,7 @@ void on_cmd_frame_type_0X58(uint8_t stake_index, SERVER_PACK *pack)
#ifdef DEBUG
printf("北向:接收到计费模型应答,模型ID:%d\r\n", g_charger_manager.fee_model_global.fee_model_no);
printf("[ 北向 ] 接收到计费模型应答,模型ID:%d\r\n", g_charger_manager.fee_model_global.fee_model_no);
printf("尖电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.shark_fee_ratio, g_charger_manager.fee_model_global.shark_service_ratio);
printf("峰电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.peak_fee_ratio, g_charger_manager.fee_model_global.peak_service_ratio);
printf("平电费率:%d 服务费:%d\r\n", g_charger_manager.fee_model_global.flat_fee_ratio, g_charger_manager.fee_model_global.flat_service_ratio);
@@ -275,7 +275,7 @@ void on_cmd_frame_type_0X36(uint8_t stake_index, SERVER_PACK *pack)
uint8_t result = TRUE; // 默认停止结果成功
uint8_t err_code = 0; // 默认错误码为0
memcpy(&data, pack->data, sizeof(PACK_DATA_0X36));
printf("北向:平台控制停止充电,桩ID:%d, 枪ID:%d\r\n", stake_index, data.gun_index);
printf("[ 北向 ] 平台控制停止充电,桩ID:%d, 枪ID:%d\r\n", stake_index, data.gun_index);
if (!is_my_charger_serial(stake_index, data.charger_serial))
{
@@ -305,7 +305,7 @@ void on_cmd_frame_type_0X40(uint8_t stake_index, SERVER_PACK *pack)
memcpy(&data, pack->data, sizeof(PACK_DATA_0X40));
if (data.result == 0)
{
printf("北向:平台接收到交易记录,桩ID:%d, 交易记录:%s\r\n", stake_index, data.trade_serial);
printf("[ 北向 ] 平台接收到交易记录,桩ID:%d, 交易记录:%s\r\n", stake_index, data.trade_serial);
return;
}
}