| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- #include "../uhf_app_i.h"
- #include "../uhf_module.h"
- char* yes_no[] = {"No", "Yes"};
- void uhf_settings_set_module_baudrate(VariableItem* item) {
- M100Module* module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- if(index >= BAUD_RATES_COUNT) {
- return;
- }
- uint32_t baudrate = BAUD_RATES[index];
- m100_set_baudrate(module, baudrate);
- char text_buf[10];
- snprintf(text_buf, sizeof(text_buf), "%lu", module->uart->baudrate);
- variable_item_set_current_value_text(item, text_buf);
- }
- void uhf_settings_set_module_powerdb(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- if(index >= POWER_DBM_COUNT) {
- return;
- }
- uint16_t power = POWER_DBM[index];
- m100_set_transmitting_power(uhf_module, power);
- char text_buf[10];
- snprintf(text_buf, sizeof(text_buf), "%ddBm", uhf_module->transmitting_power);
- variable_item_set_current_value_text(item, text_buf);
- }
- void uhf_settings_set_module_working_region(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- if(index >= WORKING_REGIONS_COUNT) {
- return;
- }
- WorkingRegion region = WORKING_REGIONS[index];
- m100_set_working_region(uhf_module, region);
- variable_item_set_current_value_text(item, WORKING_REGIONS_STR[index]);
- }
- void uhf_settings_set_epc_write_mask(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, yes_no[index]);
- if(index) {
- m100_enable_write_mask(uhf_module, WRITE_EPC);
- return;
- }
- m100_disable_write_mask(uhf_module, WRITE_EPC);
- }
- void uhf_settings_set_tid_write_mask(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, yes_no[index]);
- if(index) {
- m100_enable_write_mask(uhf_module, WRITE_TID);
- return;
- }
- m100_disable_write_mask(uhf_module, WRITE_TID);
- }
- void uhf_settings_set_user_write_mask(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, yes_no[index]);
- if(index) {
- m100_enable_write_mask(uhf_module, WRITE_USER);
- return;
- }
- m100_disable_write_mask(uhf_module, WRITE_USER);
- }
- void uhf_settings_set_rfu_write_mask(VariableItem* item) {
- M100Module* uhf_module = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, yes_no[index]);
- if(index) {
- m100_enable_write_mask(uhf_module, WRITE_RFU);
- return;
- }
- m100_disable_write_mask(uhf_module, WRITE_RFU);
- }
- uint8_t uhf_settings_get_module_baudrate_index(M100Module* module) {
- for(uint8_t i = 0; i < BAUD_RATES_COUNT; i++) {
- if(BAUD_RATES[i] == module->uart->baudrate) {
- return i;
- }
- }
- return 0;
- }
- uint8_t uhf_settings_get_module_power_index(M100Module* module) {
- for(uint8_t i = 0; i < BAUD_RATES_COUNT; i++) {
- if(POWER_DBM[i] == module->transmitting_power) {
- return i;
- }
- }
- return 0;
- }
- uint8_t uhf_settings_get_module_working_region_index(M100Module* module) {
- for(uint8_t i = 0; i < WORKING_REGIONS_COUNT; i++) {
- if(WORKING_REGIONS[i] == module->region) {
- return i;
- }
- }
- return 0;
- }
- void uhf_scene_settings_on_enter(void* ctx) {
- UHFApp* uhf_app = ctx;
- M100Module* uhf_module = uhf_app->worker->module;
- VariableItem* item;
- VariableItemList* variable_item_list = uhf_app->variable_item_list;
- // Add baudrate item
- uint8_t value_index = uhf_settings_get_module_baudrate_index(uhf_module);
- char text_buf[10];
- snprintf(text_buf, sizeof(text_buf), "%lu", uhf_module->uart->baudrate);
- item = variable_item_list_add(
- variable_item_list,
- "Baudrate:",
- BAUD_RATES_COUNT,
- uhf_settings_set_module_baudrate,
- uhf_module);
- variable_item_set_current_value_text(item, text_buf);
- variable_item_set_current_value_index(item, value_index);
- // Add power item
- value_index = uhf_settings_get_module_power_index(uhf_module);
- item = variable_item_list_add(
- variable_item_list,
- "Power(DBM):",
- POWER_DBM_COUNT,
- uhf_settings_set_module_powerdb,
- uhf_module);
- snprintf(text_buf, sizeof(text_buf), "%ddBm", uhf_module->transmitting_power);
- variable_item_set_current_value_text(item, text_buf);
- variable_item_set_current_value_index(item, value_index);
- // Add working region item
- value_index = uhf_settings_get_module_working_region_index(uhf_module);
- item = variable_item_list_add(
- variable_item_list,
- "Region:",
- WORKING_REGIONS_COUNT,
- uhf_settings_set_module_working_region,
- uhf_module);
- variable_item_set_current_value_text(item, WORKING_REGIONS_STR[value_index]);
- variable_item_set_current_value_index(item, value_index);
- view_dispatcher_switch_to_view(uhf_app->view_dispatcher, UHFViewVariableItemList);
- // Add write modes
- value_index = m100_is_write_mask_enabled(uhf_module, WRITE_EPC) ? 1 : 0;
- item = variable_item_list_add(
- variable_item_list, "Write EPC:", 2, uhf_settings_set_epc_write_mask, uhf_module);
- variable_item_set_current_value_text(item, yes_no[value_index]);
- variable_item_set_current_value_index(item, value_index);
- value_index = m100_is_write_mask_enabled(uhf_module, WRITE_TID) ? 1 : 0;
- item = variable_item_list_add(
- variable_item_list, "Write TID:", 2, uhf_settings_set_tid_write_mask, uhf_module);
- variable_item_set_current_value_text(item, yes_no[value_index]);
- variable_item_set_current_value_index(item, value_index);
- value_index = m100_is_write_mask_enabled(uhf_module, WRITE_USER) ? 1 : 0;
- item = variable_item_list_add(
- variable_item_list, "Write User:", 2, uhf_settings_set_user_write_mask, uhf_module);
- variable_item_set_current_value_text(item, yes_no[value_index]);
- variable_item_set_current_value_index(item, value_index);
- value_index = m100_is_write_mask_enabled(uhf_module, WRITE_RFU) ? 1 : 0;
- item = variable_item_list_add(
- variable_item_list, "Write RFU:", 2, uhf_settings_set_rfu_write_mask, uhf_module);
- variable_item_set_current_value_text(item, yes_no[value_index]);
- variable_item_set_current_value_index(item, value_index);
- }
- bool uhf_scene_settings_on_event(void* ctx, SceneManagerEvent event) {
- UHFApp* uhf_app = ctx;
- UNUSED(uhf_app);
- UNUSED(event);
- return false;
- }
- void uhf_scene_settings_on_exit(void* ctx) {
- UHFApp* uhf_app = ctx;
- variable_item_list_set_selected_item(uhf_app->variable_item_list, 0);
- variable_item_list_reset(uhf_app->variable_item_list);
- }
|