diff --git a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c index a39e75c..484cadb 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c +++ b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c @@ -534,8 +534,28 @@ static void load_connectivity_side_screen(SettingsScreen_t *settingsScreen) lv_obj_set_style_text_color(dev_name_label, lv_color_make(130, 130, 130), LV_PART_MAIN); lv_obj_align_to(dev_name_label, label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(label, "Device MAC :"); + lv_obj_align_to(label, dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + settingsScreen->ble_mac_addr.label = lv_label_create(settingsScreen->side_screen); + const uint8_t *ble_dev_mac = NULL; + if(settingsScreen->settingsScreenAPIInterface.getBLEDeviceMACCb) settingsScreen->settingsScreenAPIInterface.getBLEDeviceMACCb(&ble_dev_mac); + if(ble_dev_mac) + { + sprintf(settingsScreen->ble_mac_addr.text, "%02X:%02X:%02X:%02X:%02X:%02X", + ble_dev_mac[5],ble_dev_mac[4],ble_dev_mac[3],ble_dev_mac[2],ble_dev_mac[1],ble_dev_mac[0]); + } + else + { + strcpy(settingsScreen->ble_mac_addr.text, "XX:XX:XX:XX:XX:XX"); + } + lv_label_set_text_static(settingsScreen->ble_mac_addr.label, settingsScreen->ble_mac_addr.text); + lv_obj_set_style_text_color(settingsScreen->ble_mac_addr.label, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(settingsScreen->ble_mac_addr.label, label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + settingsScreen->wifi_switch = lv_switch_create(settingsScreen->side_screen); - lv_obj_align_to(settingsScreen->wifi_switch, dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); + lv_obj_align_to(settingsScreen->wifi_switch, settingsScreen->ble_mac_addr.label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); if(settingsScreen->settingsScreenAPIInterface.setWiFiEnabledSettingsCb)settingsScreen->settingsScreenAPIInterface.setWiFiEnabledSettingsCb(&toggled, SETTING_MODE_GET); if(toggled) lv_obj_add_state(settingsScreen->wifi_switch, LV_STATE_CHECKED); lv_obj_add_state(settingsScreen->wifi_switch, LV_STATE_DISABLED); diff --git a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h index 11ba482..5f485a6 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h +++ b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h @@ -24,6 +24,8 @@ typedef struct SettingsScreenAPIInterface void (*setWiFiEnabledSettingsCb)(bool *enabled, SettingMode_e mode); void (*setLanguageSettingsCb)(uint8_t *language, SettingMode_e mode); void (*getBLEDeviceNameCb)(const char **dev_name); + void (*getBLEDeviceMACCb)(const uint8_t **dev_mac); + void (*getBLEDevicePairingKeyCb)(const uint32_t *pairing_key); void (*getBatteryVoltageCb)(uint16_t *battery_voltage); void (*getMagnetometerRawDataCb)(int16_t *field_x, int16_t *field_y, int16_t *field_z, float *temperature); void (*getBMP280DataCb)(float *temperature, float *pressure); @@ -81,6 +83,18 @@ typedef struct SettingsScreen lv_obj_t *label; char text[13]; } bmp280_pressure; + + struct + { + lv_obj_t *label; + char text[18]; + } ble_mac_addr; + + struct + { + lv_obj_t *label; + char text[7]; + } ble_pairing_key; /* Main screen */ lv_obj_t *display;