From 1ca945f9002077dd2ccfcd9ba258a5d0ee27efe0 Mon Sep 17 00:00:00 2001 From: Roy_01 Date: Fri, 28 Mar 2025 15:35:02 +0800 Subject: [PATCH] style: organize code --- cpg.c | 546 +++++++++++++++++++++++++++++----------------------------- cpg.h | 2 +- 2 files changed, 274 insertions(+), 274 deletions(-) diff --git a/cpg.c b/cpg.c index 3a16deb..9ee3596 100644 --- a/cpg.c +++ b/cpg.c @@ -140,50 +140,93 @@ static void set_single_pin_as_output(uint16_t pin_number, uint16_t high_low) } } -static void dev_mode_gpio(uint8_t *ins) +static uint16_t current_mA_convert_tw1508_value(float current_mA) { - struct __PACKED +#define TW1508_REXR 1.5 // 1.5kohm + +#define TW1508_BOUNDARY_GAIN0 13.3 +#define TW1508_BOUNDARY_GAIN1 26.6 +#define TW1508_BOUNDARY_GAIN2 39.9 +#define TW1508_BOUNDARY_GAIN3 53.3 +#define TW1508_BOUNDARY_GAIN4 66.6 +#define TW1508_BOUNDARY_GAIN5 79.9 +#define TW1508_BOUNDARY_GAIN6 93.3 +#define TW1508_BOUNDARY_GAIN7 106.6 + + uint16_t tw1508_value; + uint8_t dac_7bit; + uint8_t dac_3bit; + float rext; + + if (current_mA > TW1508_BOUNDARY_GAIN7) { - uint8_t id : 4; - uint8_t ins_type : 4; - uint8_t pkg_size; - uint8_t mode; - uint8_t mode_opcode; // dev mode could ignore - uint8_t dev_feat; - uint8_t dev_feat_opcode; - uint8_t param[]; - } *p_ins = (void *)ins; - - switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) - { - case 0xA000: { - // gpio - CPGv1.1 default gpio state - // 3000FFFF A000 - cpg11_io_init(); - break; - } - - case 0xA001: { - // gpio - set single pin as output - // 3000FFFF A001 0006 0001 - uint16_t pin_number = u8_to_u16(p_ins->param[0], p_ins->param[1]); - uint16_t high_low = u8_to_u16(p_ins->param[2], p_ins->param[3]); - set_single_pin_as_output(pin_number, high_low); - break; - } - - case 0xA002: { - // gpio - set all pin as output - // 3000FFFF A002 0001 - uint16_t high_low = u8_to_u16(p_ins->param[0], p_ins->param[1]); - for (int i = 1; i < ARRAY_SIZE(pin_to_gpio_table); i++) - { - set_single_pin_as_output(i, high_low); - nrf_delay_us(100); - } - break; - } + current_mA = TW1508_BOUNDARY_GAIN7; + NRF_LOG_INFO("current is too large"); } + + if (current_mA <= TW1508_BOUNDARY_GAIN0) + { + dac_3bit = 0b000; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN1) + { + dac_3bit = 0b001; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN2) + { + dac_3bit = 0b010; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN3) + { + dac_3bit = 0b011; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN4) + { + dac_3bit = 0b100; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN5) + { + dac_3bit = 0b101; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN6) + { + dac_3bit = 0b110; + rext = TW1508_REXR; + } + else if (current_mA <= TW1508_BOUNDARY_GAIN7) + { + dac_3bit = 0b111; + rext = TW1508_REXR; + } + + dac_7bit = current_mA * 8 * TW1508_REXR / 1.25 / (dac_3bit + 1); + tw1508_value = dac_3bit << 7 | dac_7bit; + + return tw1508_value; +} + +static void tw1508_set_mA(float out_0_mA, float out_1_mA) +{ + uint16_t out_0; + uint16_t out_1; + + { + char str[128]; + snprintf(str, sizeof(str), "%s: %.3f", "out_0_mA float", out_0_mA); + NRF_LOG_INFO("%s", str); + snprintf(str, sizeof(str), "%s: %.3f", "out_1_mA float", out_1_mA); + NRF_LOG_INFO("%s", str); + } + + out_0 = current_mA_convert_tw1508_value(out_0_mA); + out_1 = current_mA_convert_tw1508_value(out_1_mA); + tw1508_set(out_0, out_1); } static void electrode_pulse_channel(uint16_t elec_ch_setting) @@ -275,7 +318,63 @@ static void electrode_pulse_channel(uint16_t elec_ch_setting) } } -void set_cpg_pulse_parameter(two_set_electrodes_task_t *params) +static void adapter_channel(uint16_t channel) +{ + union + { + uint16_t val; + struct + { + uint16_t adpt0_s1 : 1; + uint16_t adpt0_s2 : 1; + uint16_t adpt0_s3 : 1; + uint16_t adpt0_s4 : 1; + uint16_t adpt1_s1 : 1; + uint16_t adpt1_s2 : 1; + uint16_t adpt1_s3 : 1; + uint16_t adpt1_s4 : 1; + uint16_t adpt_rsvd : 8; + }; + } adap_ch; + + adap_ch.val = channel; + NRF_LOG_INFO("ADPT0_S1_PIN(%d)", adap_ch.adpt0_s1); + NRF_LOG_INFO("ADPT0_S2_PIN(%d)", adap_ch.adpt0_s2); + NRF_LOG_INFO("ADPT0_S3_PIN(%d)", adap_ch.adpt0_s3); + NRF_LOG_INFO("ADPT0_S4_PIN(%d)", adap_ch.adpt0_s4); + NRF_LOG_INFO("ADPT1_S1_PIN(%d)", adap_ch.adpt1_s1); + NRF_LOG_INFO("ADPT1_S2_PIN(%d)", adap_ch.adpt1_s2); + NRF_LOG_INFO("ADPT1_S3_PIN(%d)", adap_ch.adpt1_s3); + NRF_LOG_INFO("ADPT1_S4_PIN(%d)", adap_ch.adpt1_s4); + + adap_ch.adpt0_s1 ? nrf_gpio_pin_set(ADPT0_S1_PIN) : nrf_gpio_pin_clear(ADPT0_S1_PIN); + adap_ch.adpt0_s2 ? nrf_gpio_pin_set(ADPT0_S2_PIN) : nrf_gpio_pin_clear(ADPT0_S2_PIN); + adap_ch.adpt0_s3 ? nrf_gpio_pin_set(ADPT0_S3_PIN) : nrf_gpio_pin_clear(ADPT0_S3_PIN); + adap_ch.adpt0_s4 ? nrf_gpio_pin_set(ADPT0_S4_PIN) : nrf_gpio_pin_clear(ADPT0_S4_PIN); + adap_ch.adpt1_s1 ? nrf_gpio_pin_set(ADPT1_S1_PIN) : nrf_gpio_pin_clear(ADPT1_S1_PIN); + adap_ch.adpt1_s2 ? nrf_gpio_pin_set(ADPT1_S2_PIN) : nrf_gpio_pin_clear(ADPT1_S2_PIN); + adap_ch.adpt1_s3 ? nrf_gpio_pin_set(ADPT1_S3_PIN) : nrf_gpio_pin_clear(ADPT1_S3_PIN); + adap_ch.adpt1_s4 ? nrf_gpio_pin_set(ADPT1_S4_PIN) : nrf_gpio_pin_clear(ADPT1_S4_PIN); +} + +static void high_volt_channel(uint16_t channel) +{ + sw_t sw; + sw.val = channel; + NRF_LOG_INFO("HV_sw.val= 0x%04X", sw.val); + { + char str[128]; + snprintf(str, sizeof(str), "%4d, %4d, %4d, %4d, %4d, %4d, %3d, %3d", sw.sw15, sw.sw14, sw.sw13, sw.sw12, sw.sw11, sw.sw10, sw.sw9, sw.sw8); + NRF_LOG_INFO("sw15, sw14, sw13, sw12, sw11, sw10, sw9, sw8"); + NRF_LOG_INFO("%s", str); + snprintf(str, sizeof(str), "%3d, %3d, %3d, %3d, %3d, %3d, %3d, %3d", sw.sw7, sw.sw6, sw.sw5, sw.sw4, sw.sw3, sw.sw2, sw.sw1, sw.sw0); + NRF_LOG_INFO("sw7, sw6, sw5, sw4, sw3, sw2, sw1, sw0"); + NRF_LOG_INFO("%s", str); + } + sw_write(sw); +} + +static void set_cpg_pulse_parameter(two_set_electrodes_task_t *params) { NRF_LOG_INFO("%s", __FUNCTION__); @@ -596,96 +695,7 @@ static void resume_which_electrodes(uint16_t channel) } } -uint16_t current_mA_convert_tw1508_value(float current_mA) -{ -#define TW1508_REXR 1.5 // 1.5kohm - -#define TW1508_BOUNDARY_GAIN0 13.3 -#define TW1508_BOUNDARY_GAIN1 26.6 -#define TW1508_BOUNDARY_GAIN2 39.9 -#define TW1508_BOUNDARY_GAIN3 53.3 -#define TW1508_BOUNDARY_GAIN4 66.6 -#define TW1508_BOUNDARY_GAIN5 79.9 -#define TW1508_BOUNDARY_GAIN6 93.3 -#define TW1508_BOUNDARY_GAIN7 106.6 - - uint16_t tw1508_value; - uint8_t dac_7bit; - uint8_t dac_3bit; - float rext; - - if (current_mA > TW1508_BOUNDARY_GAIN7) - { - current_mA = TW1508_BOUNDARY_GAIN7; - NRF_LOG_INFO("current is too large"); - } - - if (current_mA <= TW1508_BOUNDARY_GAIN0) - { - dac_3bit = 0b000; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN1) - { - dac_3bit = 0b001; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN2) - { - dac_3bit = 0b010; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN3) - { - dac_3bit = 0b011; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN4) - { - dac_3bit = 0b100; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN5) - { - dac_3bit = 0b101; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN6) - { - dac_3bit = 0b110; - rext = TW1508_REXR; - } - else if (current_mA <= TW1508_BOUNDARY_GAIN7) - { - dac_3bit = 0b111; - rext = TW1508_REXR; - } - - dac_7bit = current_mA * 8 * TW1508_REXR / 1.25 / (dac_3bit + 1); - tw1508_value = dac_3bit << 7 | dac_7bit; - - return tw1508_value; -} - -void tw1508_set_mA(float out_0_mA, float out_1_mA) -{ - uint16_t out_0; - uint16_t out_1; - - { - char str[128]; - snprintf(str, sizeof(str), "%s: %.3f", "out_0_mA float", out_0_mA); - NRF_LOG_INFO("%s", str); - snprintf(str, sizeof(str), "%s: %.3f", "out_1_mA float", out_1_mA); - NRF_LOG_INFO("%s", str); - } - - out_0 = current_mA_convert_tw1508_value(out_0_mA); - out_1 = current_mA_convert_tw1508_value(out_1_mA); - tw1508_set(out_0, out_1); -} - -void start_electrodes_api(uint8_t *ins) +static void start_electrodes_api(uint8_t *ins) { struct __PACKED { @@ -729,7 +739,7 @@ void start_electrodes_api(uint8_t *ins) NRF_LOG_INFO("..........................."); } -void stop_electrodes_api(uint8_t *ins) +static void stop_electrodes_api(uint8_t *ins) { struct __PACKED { @@ -752,86 +762,27 @@ void stop_electrodes_api(uint8_t *ins) NRF_LOG_INFO("HV_EN_PIN(0)"); } -void dev_mode_electrode_switch(uint8_t *ins) +static void cis_version(uint8_t *ins, uint16_t size) { - struct __PACKED - { - uint8_t id : 4; - uint8_t ins_type : 4; - uint8_t pkg_size; - uint8_t mode; - uint8_t mode_opcode; // dev mode could ignore - uint8_t dev_feat; - uint8_t dev_feat_opcode; - uint8_t param[]; - } *p_ins = (void *)ins; - - switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) - { - case 0x0400: { - // electrode_switch default - // 3000FFFF 0400 - electrode_pulse_channel(ELEC_CH_ALL_HIGHZ); - break; - } - - case 0x0401: { - // electrode_switch set val - // 3000FFFF 0401 0000 - uint16_t elec_ch_setting = u8_to_u16(p_ins->param[0], p_ins->param[1]); - electrode_pulse_channel(elec_ch_setting); - break; - } - } + NRF_LOG_INFO("%s", __FUNCTION__); + uint8_t cis_ver[] = { + CIS_VERSION, + VERSION_DATE_YEAR, + VERSION_DATE_MONTH, + VERSION_DATE_DAY, + VERSION_DATE_HOUR, + VERSION_DATE_MINUTE, + }; + extern ret_code_t le_data_update(uint8_t * p_value, uint16_t len); + le_data_update((void *)cis_ver, sizeof(cis_ver)); } -void dev_mode_tw1508(uint8_t *ins) +static void vis_rst(uint8_t *ins, uint16_t size) { - struct __PACKED - { - uint8_t id : 4; - uint8_t ins_type : 4; - uint8_t pkg_size; - uint8_t mode; - uint8_t mode_opcode; // dev mode could ignore - uint8_t dev_feat; - uint8_t dev_feat_opcode; - uint8_t param[]; - } *p_ins = (void *)ins; - - switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) - { - case 0x0100: { - // tw1508 init - // 3000FFFF 0100 - tw1508_init(); - break; - } - - case 0x0101: { - // tw1508 set raw value - // 3000FFFF 0101 0005 0008 - uint16_t out_0 = u8_to_u16(p_ins->param[0], p_ins->param[1]); - uint16_t out_1 = u8_to_u16(p_ins->param[2], p_ins->param[3]); - tw1508_set(out_0, out_1); - break; - } - case 0x0102: { - // tw1508 set mA float value - // 3000FFFF 0102 3F800000 40B00000 - uint32_t out_0_mA_u32 = u8_to_u32(p_ins->param[0], p_ins->param[1], p_ins->param[2], p_ins->param[3]); - uint32_t out_1_mA_u32 = u8_to_u32(p_ins->param[4], p_ins->param[5], p_ins->param[6], p_ins->param[7]); - float out_0_mA_f; - float out_1_mA_f; - memcpy(&out_0_mA_f, &out_0_mA_u32, sizeof(out_0_mA_f)); - memcpy(&out_1_mA_f, &out_1_mA_u32, sizeof(out_1_mA_f)); - tw1508_set_mA(out_0_mA_f, out_1_mA_f); - break; - } - } + NRF_LOG_INFO("%s", __FUNCTION__); } -void dev_mode_ctrl_electrodes_task(uint8_t *ins) +static void dev_mode_ctrl_electrodes_task(uint8_t *ins) { struct __PACKED { @@ -877,63 +828,86 @@ void dev_mode_ctrl_electrodes_task(uint8_t *ins) } } -void adapter_channel(uint16_t channel) +static void dev_mode_tw1508(uint8_t *ins) { - union + struct __PACKED { - uint16_t val; - struct - { - uint16_t adpt0_s1 : 1; - uint16_t adpt0_s2 : 1; - uint16_t adpt0_s3 : 1; - uint16_t adpt0_s4 : 1; - uint16_t adpt1_s1 : 1; - uint16_t adpt1_s2 : 1; - uint16_t adpt1_s3 : 1; - uint16_t adpt1_s4 : 1; - uint16_t adpt_rsvd : 8; - }; - } adap_ch; + uint8_t id : 4; + uint8_t ins_type : 4; + uint8_t pkg_size; + uint8_t mode; + uint8_t mode_opcode; // dev mode could ignore + uint8_t dev_feat; + uint8_t dev_feat_opcode; + uint8_t param[]; + } *p_ins = (void *)ins; - adap_ch.val = channel; - NRF_LOG_INFO("ADPT0_S1_PIN(%d)", adap_ch.adpt0_s1); - NRF_LOG_INFO("ADPT0_S2_PIN(%d)", adap_ch.adpt0_s2); - NRF_LOG_INFO("ADPT0_S3_PIN(%d)", adap_ch.adpt0_s3); - NRF_LOG_INFO("ADPT0_S4_PIN(%d)", adap_ch.adpt0_s4); - NRF_LOG_INFO("ADPT1_S1_PIN(%d)", adap_ch.adpt1_s1); - NRF_LOG_INFO("ADPT1_S2_PIN(%d)", adap_ch.adpt1_s2); - NRF_LOG_INFO("ADPT1_S3_PIN(%d)", adap_ch.adpt1_s3); - NRF_LOG_INFO("ADPT1_S4_PIN(%d)", adap_ch.adpt1_s4); - - adap_ch.adpt0_s1 ? nrf_gpio_pin_set(ADPT0_S1_PIN) : nrf_gpio_pin_clear(ADPT0_S1_PIN); - adap_ch.adpt0_s2 ? nrf_gpio_pin_set(ADPT0_S2_PIN) : nrf_gpio_pin_clear(ADPT0_S2_PIN); - adap_ch.adpt0_s3 ? nrf_gpio_pin_set(ADPT0_S3_PIN) : nrf_gpio_pin_clear(ADPT0_S3_PIN); - adap_ch.adpt0_s4 ? nrf_gpio_pin_set(ADPT0_S4_PIN) : nrf_gpio_pin_clear(ADPT0_S4_PIN); - adap_ch.adpt1_s1 ? nrf_gpio_pin_set(ADPT1_S1_PIN) : nrf_gpio_pin_clear(ADPT1_S1_PIN); - adap_ch.adpt1_s2 ? nrf_gpio_pin_set(ADPT1_S2_PIN) : nrf_gpio_pin_clear(ADPT1_S2_PIN); - adap_ch.adpt1_s3 ? nrf_gpio_pin_set(ADPT1_S3_PIN) : nrf_gpio_pin_clear(ADPT1_S3_PIN); - adap_ch.adpt1_s4 ? nrf_gpio_pin_set(ADPT1_S4_PIN) : nrf_gpio_pin_clear(ADPT1_S4_PIN); -} - -void high_volt_channel(uint16_t channel) -{ - sw_t sw; - sw.val = channel; - NRF_LOG_INFO("HV_sw.val= 0x%04X", sw.val); + switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) { - char str[128]; - snprintf(str, sizeof(str), "%4d, %4d, %4d, %4d, %4d, %4d, %3d, %3d", sw.sw15, sw.sw14, sw.sw13, sw.sw12, sw.sw11, sw.sw10, sw.sw9, sw.sw8); - NRF_LOG_INFO("sw15, sw14, sw13, sw12, sw11, sw10, sw9, sw8"); - NRF_LOG_INFO("%s", str); - snprintf(str, sizeof(str), "%3d, %3d, %3d, %3d, %3d, %3d, %3d, %3d", sw.sw7, sw.sw6, sw.sw5, sw.sw4, sw.sw3, sw.sw2, sw.sw1, sw.sw0); - NRF_LOG_INFO("sw7, sw6, sw5, sw4, sw3, sw2, sw1, sw0"); - NRF_LOG_INFO("%s", str); + case 0x0100: { + // tw1508 init + // 3000FFFF 0100 + tw1508_init(); + break; + } + + case 0x0101: { + // tw1508 set raw value + // 3000FFFF 0101 0005 0008 + uint16_t out_0 = u8_to_u16(p_ins->param[0], p_ins->param[1]); + uint16_t out_1 = u8_to_u16(p_ins->param[2], p_ins->param[3]); + tw1508_set(out_0, out_1); + break; + } + case 0x0102: { + // tw1508 set mA float value + // 3000FFFF 0102 3F800000 40B00000 + uint32_t out_0_mA_u32 = u8_to_u32(p_ins->param[0], p_ins->param[1], p_ins->param[2], p_ins->param[3]); + uint32_t out_1_mA_u32 = u8_to_u32(p_ins->param[4], p_ins->param[5], p_ins->param[6], p_ins->param[7]); + float out_0_mA_f; + float out_1_mA_f; + memcpy(&out_0_mA_f, &out_0_mA_u32, sizeof(out_0_mA_f)); + memcpy(&out_1_mA_f, &out_1_mA_u32, sizeof(out_1_mA_f)); + tw1508_set_mA(out_0_mA_f, out_1_mA_f); + break; + } } - sw_write(sw); } -void dev_mode_adapter_block_switch(uint8_t *ins) +static void dev_mode_electrode_switch(uint8_t *ins) +{ + struct __PACKED + { + uint8_t id : 4; + uint8_t ins_type : 4; + uint8_t pkg_size; + uint8_t mode; + uint8_t mode_opcode; // dev mode could ignore + uint8_t dev_feat; + uint8_t dev_feat_opcode; + uint8_t param[]; + } *p_ins = (void *)ins; + + switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) + { + case 0x0400: { + // electrode_switch default + // 3000FFFF 0400 + electrode_pulse_channel(ELEC_CH_ALL_HIGHZ); + break; + } + + case 0x0401: { + // electrode_switch set val + // 3000FFFF 0401 0000 + uint16_t elec_ch_setting = u8_to_u16(p_ins->param[0], p_ins->param[1]); + electrode_pulse_channel(elec_ch_setting); + break; + } + } +} + +static void dev_mode_adapter_block_switch(uint8_t *ins) { struct __PACKED { @@ -981,24 +955,50 @@ void dev_mode_adapter_block_switch(uint8_t *ins) } } -static void cis_version(uint8_t *ins, uint16_t size) +static void dev_mode_gpio(uint8_t *ins) { - NRF_LOG_INFO("%s", __FUNCTION__); - uint8_t cis_ver[] = { - CIS_VERSION, - VERSION_DATE_YEAR, - VERSION_DATE_MONTH, - VERSION_DATE_DAY, - VERSION_DATE_HOUR, - VERSION_DATE_MINUTE, - }; - extern ret_code_t le_data_update(uint8_t * p_value, uint16_t len); - le_data_update((void *)cis_ver, sizeof(cis_ver)); -} + struct __PACKED + { + uint8_t id : 4; + uint8_t ins_type : 4; + uint8_t pkg_size; + uint8_t mode; + uint8_t mode_opcode; // dev mode could ignore + uint8_t dev_feat; + uint8_t dev_feat_opcode; + uint8_t param[]; + } *p_ins = (void *)ins; -static void vis_rst(uint8_t *ins, uint16_t size) -{ - NRF_LOG_INFO("%s", __FUNCTION__); + switch (u8_to_u16(p_ins->dev_feat, p_ins->dev_feat_opcode)) + { + case 0xA000: { + // gpio - CPGv1.1 default gpio state + // 3000FFFF A000 + cpg11_io_init(); + break; + } + + case 0xA001: { + // gpio - set single pin as output + // 3000FFFF A001 0006 0001 + uint16_t pin_number = u8_to_u16(p_ins->param[0], p_ins->param[1]); + uint16_t high_low = u8_to_u16(p_ins->param[2], p_ins->param[3]); + set_single_pin_as_output(pin_number, high_low); + break; + } + + case 0xA002: { + // gpio - set all pin as output + // 3000FFFF A002 0001 + uint16_t high_low = u8_to_u16(p_ins->param[0], p_ins->param[1]); + for (int i = 1; i < ARRAY_SIZE(pin_to_gpio_table); i++) + { + set_single_pin_as_output(i, high_low); + nrf_delay_us(100); + } + break; + } + } } void dev_mode(uint8_t *ins, uint16_t size) diff --git a/cpg.h b/cpg.h index fd10de6..d54dec9 100644 --- a/cpg.h +++ b/cpg.h @@ -14,7 +14,7 @@ extern "C" #define VERSION_DATE_MONTH 3 #define VERSION_DATE_DAY 28 #define VERSION_DATE_HOUR 15 -#define VERSION_DATE_MINUTE 24 +#define VERSION_DATE_MINUTE 35 const elite_instance_t *cpg_init(void);