/** ****************************************************************************** * @file User\Global\g_dcpile.c * @author 路淮 * @version v0.1 * @date 2026-05-21 * @brief 充电桩管理器 ****************************************************************************** */ #include "g_dcpile.h" /*全局充电桩管理器*/ ChargerManager g_charger_manager = {0}; /*充电桩序列号*/ const uint8_t piles_serial[6][7] = { {0x32, 0x01, 0x06, 0x01, 0x16, 0x92, 0x45}, {0x32, 0x01, 0x06, 0x01, 0x16, 0x92, 0x44}, {0x32, 0x01, 0x06, 0x01, 0x16, 0x92, 0x43}, {0x32, 0x01, 0x06, 0x01, 0x16, 0x92, 0x42}, {0x32, 0x01, 0x06, 0x01, 0x11, 0x15, 0x58}, {0x32, 0x01, 0x06, 0x01, 0x11, 0x15, 0x54}, }; /** * @brief init_chargers:初始化充电桩管理器 * @note 初始化充电桩管理器,设置充电桩数量和每个充电桩的初始状态 * @retval none */ void init_chargers(void) { g_charger_manager.charger_count = MAX_CHARGER_COUNT; for (int i = 0; i < g_charger_manager.charger_count; i++) { ChargerPile *ctx = &g_charger_manager.charger_piles[i]; memcpy(ctx->charger_serial, piles_serial[i], CHARGER_SERIAL_LENGTH); memcpy(ctx->login_info.charger_serial, piles_serial[i], CHARGER_SERIAL_LENGTH); ctx->get_model = false; ctx->is_udp_online = false; ctx->step = 0; ctx->step_tick = 0; ctx->login_info.charger_type = CHARGER_TYPE_DC; ctx->login_info.gun_num = MAX_GUN_PER_CHARGER; ctx->login_info.protocol_ver = 0x10; // V1.6 strcpy((char *)ctx->login_info.software_ver, "V4.1.50"); ctx->login_info.net_conn_type = 0; // SIM memset(ctx->login_info.sim, 0, 10); ctx->login_info.tele_factory = 0x00; // 移动 // 初始化枪 for (int g = 0; g < ctx->login_info.gun_num; g++) { ctx->guns[g].gun_index = g + 1; ctx->guns[g].gun_step = 0; ctx->guns[g].gun_step_tick = 0; ctx->guns[g].real_time_data.status = 0; // 离线 } } }