#include "elite_dev.h" #include "nrf_log.h" #if (DEF_ELITE_MODEL == DEF_ELITE_DEV) #define VERSION_DATE_YEAR 24 #define VERSION_DATE_MONTH 5 #define VERSION_DATE_DAY 30 #define VERSION_DATE_HOUR 22 #define VERSION_DATE_MINUTE 20 static void cis_version(uint8_t *ins, uint16_t size) { 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_upadate(uint8_t * p_value, uint16_t len); le_data_upadate((void *)cis_ver, sizeof(cis_ver)); } static void vis_rst(uint8_t *ins, uint16_t size) { NRF_LOG_INFO("%s", __FUNCTION__); } #define MAGIC_NUM 0xFF00 static void dev_mode(uint8_t *ins, uint16_t size) { NRF_LOG_INFO("%s", __FUNCTION__); struct __PACKED { uint8_t id : 4; uint8_t : 4; uint16_t magic : 16; uint8_t opcode; uint8_t param[]; } *p_ins = (void *)ins; if (p_ins->magic != MAGIC_NUM) { return; } // TODO... switch (p_ins->opcode) { default: break; } } const elite_instance_t pel_elite_instance = { .cis_func = { [CIS_VERSION] = cis_version, }, .vis_func = { [VIS_RST] = vis_rst, }, .ris_func = { [DEV_MODE] = dev_mode, } }; const elite_instance_t *dev_init(void) { return &pel_elite_instance; } #endif /* !DEF_ELITE_MODEL */