Compare commits
3 Commits
f31b3a2896
...
6b06e28394
Author | SHA1 | Date | |
---|---|---|---|
|
6b06e28394 | ||
|
01ba704adc | ||
|
627754a5e6 |
@ -12,13 +12,15 @@
|
|||||||
* @brief Defines for which platform to compile the firmware for :
|
* @brief Defines for which platform to compile the firmware for :
|
||||||
*
|
*
|
||||||
* SMART_WATCH_BREADBOARD : the smart watch dev hardware which is on a breadboard
|
* SMART_WATCH_BREADBOARD : the smart watch dev hardware which is on a breadboard
|
||||||
* SMART_WATCH_PCB : the smart watch using the PCB
|
* SMART_WATCH_PCB_DEV : the smart watch using the PCB which serves as the development platform
|
||||||
|
* SMART_WATCH_PCB_RELEASE : the smart watch using the PCB for every day use (production)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define SMART_WATCH_BREADBOARD (0)
|
#define SMART_WATCH_BREADBOARD (0)
|
||||||
#define SMART_WATCH_PCB (1)
|
#define SMART_WATCH_PCB_DEV (1)
|
||||||
|
#define SMART_WATCH_PCB_RELEASE (2)
|
||||||
|
|
||||||
#define HARDWARE_PLATFORM SMART_WATCH_PCB
|
#define HARDWARE_PLATFORM SMART_WATCH_PCB_RELEASE
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Define which kind of logs to display :
|
* @brief Define which kind of logs to display :
|
||||||
@ -103,6 +105,12 @@
|
|||||||
* @brief BLE advertised device name
|
* @brief BLE advertised device name
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define BLE_DEVICE_NAME "MDBT42Q_W800SW"
|
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
||||||
|
#define BLE_DEVICE_NAME "MDBT42Q_BRDDEV"
|
||||||
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV
|
||||||
|
#define BLE_DEVICE_NAME "MDBT42Q_PCBDEV"
|
||||||
|
#else
|
||||||
|
#define BLE_DEVICE_NAME "MDBT42Q_W800SW"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif //APP_CONFIG_H
|
#endif //APP_CONFIG_H
|
@ -80,7 +80,7 @@ const uint8_t gc9a01_init_seq[] = {
|
|||||||
0x03, 0, 0xB6, 0x00, 0x00,
|
0x03, 0, 0xB6, 0x00, 0x00,
|
||||||
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
||||||
0x02, 0, 0x36, 0x88,
|
0x02, 0, 0x36, 0x88,
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
0x02, 0, 0x36, 0x48,
|
0x02, 0, 0x36, 0x48,
|
||||||
#endif
|
#endif
|
||||||
0x02, 0, 0x3A, 0x55,
|
0x02, 0, 0x3A, 0x55,
|
||||||
@ -449,7 +449,7 @@ void lcd_orientation(LCDConfig_t *const LCDConfig, LCDOrientation_e orientation)
|
|||||||
break;
|
break;
|
||||||
default: //Is default orientation eg : 0
|
default: //Is default orientation eg : 0
|
||||||
mmc_sdio_driver_write_one(0x88);
|
mmc_sdio_driver_write_one(0x88);
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
case LCD_ORIENTATION_90:
|
case LCD_ORIENTATION_90:
|
||||||
mmc_sdio_driver_write_one(0x28);
|
mmc_sdio_driver_write_one(0x28);
|
||||||
break;
|
break;
|
||||||
|
@ -99,7 +99,7 @@ static void vibration_motor_timer_irq_cb(void *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == POLL_POLICY && HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == POLL_POLICY && (HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE)
|
||||||
static uint8_t _battery_status_timer_id = WM_TIMER_ID_INVALID;
|
static uint8_t _battery_status_timer_id = WM_TIMER_ID_INVALID;
|
||||||
|
|
||||||
static void battery_status_timer_irq_cb(void *p)
|
static void battery_status_timer_irq_cb(void *p)
|
||||||
@ -128,7 +128,7 @@ static void battery_status_timer_irq_cb(void *p)
|
|||||||
if(_BatteryControllerStatusChangeCb) _BatteryControllerStatusChangeCb(old_battery_status, _battery_fsm);
|
if(_BatteryControllerStatusChangeCb) _BatteryControllerStatusChangeCb(old_battery_status, _battery_fsm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#elif BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == INTERRUPT_POLICY && HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == INTERRUPT_POLICY && (HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE)
|
||||||
static void battery_controller_irq_cb(void *p)
|
static void battery_controller_irq_cb(void *p)
|
||||||
{
|
{
|
||||||
enum tls_io_name gpio_pin = (enum tls_io_name)p;
|
enum tls_io_name gpio_pin = (enum tls_io_name)p;
|
||||||
@ -209,7 +209,7 @@ static void watch_peripherals_io_init(void)
|
|||||||
tls_gpio_cfg(BATTERY_CONTROLLER_CHARGED_STATUS, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_FLOATING);
|
tls_gpio_cfg(BATTERY_CONTROLLER_CHARGED_STATUS, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_FLOATING);
|
||||||
tls_gpio_cfg(BATTERY_CONTROLLER_CHARGING_STATUS, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_FLOATING);
|
tls_gpio_cfg(BATTERY_CONTROLLER_CHARGING_STATUS, WM_GPIO_DIR_INPUT, WM_GPIO_ATTR_FLOATING);
|
||||||
|
|
||||||
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == INTERRUPT_POLICY && HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == INTERRUPT_POLICY && (HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE)
|
||||||
tls_gpio_isr_register(BATTERY_CONTROLLER_CHARGED_STATUS, &(battery_controller_irq_cb), (int*) BATTERY_CONTROLLER_CHARGED_STATUS);
|
tls_gpio_isr_register(BATTERY_CONTROLLER_CHARGED_STATUS, &(battery_controller_irq_cb), (int*) BATTERY_CONTROLLER_CHARGED_STATUS);
|
||||||
tls_gpio_irq_enable(BATTERY_CONTROLLER_CHARGED_STATUS, WM_GPIO_IRQ_TRIG_DOUBLE_EDGE); // Enabled when level is changing edge
|
tls_gpio_irq_enable(BATTERY_CONTROLLER_CHARGED_STATUS, WM_GPIO_IRQ_TRIG_DOUBLE_EDGE); // Enabled when level is changing edge
|
||||||
|
|
||||||
@ -262,7 +262,7 @@ void watch_peripherals_init(int8_t adcOffset)
|
|||||||
if(WM_TIMER_ID_INVALID == _vibration_motor_timer_id)
|
if(WM_TIMER_ID_INVALID == _vibration_motor_timer_id)
|
||||||
APP_LOG_ERROR("Failed to create vibration motor timer");
|
APP_LOG_ERROR("Failed to create vibration motor timer");
|
||||||
}
|
}
|
||||||
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == POLL_POLICY && HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#if BATTERY_CONTROLLER_STATUS_DETECTION_POLICY == POLL_POLICY && (HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE)
|
||||||
if(WM_TIMER_ID_INVALID == _battery_status_timer_id)
|
if(WM_TIMER_ID_INVALID == _battery_status_timer_id)
|
||||||
{
|
{
|
||||||
struct tls_timer_cfg battery_status_timer_cfg =
|
struct tls_timer_cfg battery_status_timer_cfg =
|
||||||
|
@ -94,7 +94,7 @@ static void rotate_cardinal(CompassCardinal_t *cardinal, uint16_t azimuth)
|
|||||||
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
||||||
rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) - (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x;
|
rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) - (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x;
|
||||||
rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) + (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y;
|
rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) + (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y;
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) + (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x;
|
rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) + (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x;
|
||||||
rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) - (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y;
|
rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) - (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y;
|
||||||
#endif
|
#endif
|
||||||
@ -151,7 +151,7 @@ void compass_screen_set_azimuth(CompassScreen_t * const compassScreen, uint16_t
|
|||||||
azimuth %= 360;
|
azimuth %= 360;
|
||||||
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
||||||
uint16_t azimuthAdjusted = 359 - azimuth;
|
uint16_t azimuthAdjusted = 359 - azimuth;
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
uint16_t azimuthAdjusted = azimuth;
|
uint16_t azimuthAdjusted = azimuth;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ void compass_screen_set_azimuth(CompassScreen_t * const compassScreen, uint16_t
|
|||||||
rotate_cardinal(&compassScreen->northCardinal, azimuth);
|
rotate_cardinal(&compassScreen->northCardinal, azimuth);
|
||||||
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
#if HARDWARE_PLATFORM == SMART_WATCH_BREADBOARD
|
||||||
lv_img_set_angle(compassScreen->northMarker, azimuth*10);
|
lv_img_set_angle(compassScreen->northMarker, azimuth*10);
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
lv_img_set_angle(compassScreen->northMarker, -azimuth*10);
|
lv_img_set_angle(compassScreen->northMarker, -azimuth*10);
|
||||||
#endif
|
#endif
|
||||||
//lv_meter_set_scale_range(compassScreen->compassGraduation.meter, compassScreen->compassGraduation.scale, 0, 330, 330, azimuth-90);
|
//lv_meter_set_scale_range(compassScreen->compassGraduation.meter, compassScreen->compassGraduation.scale, 0, 330, 330, azimuth-90);
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include "app_config.h"
|
||||||
#include "app_common.h"
|
#include "app_common.h"
|
||||||
#include "app_utils.h"
|
#include "app_utils.h"
|
||||||
#include "lvgl.h"
|
#include "lvgl.h"
|
||||||
@ -386,10 +387,13 @@ static void getBMP280DataCb(float *temperature, float *pressure)
|
|||||||
|
|
||||||
static void saveSettingsToFlashCb(void)
|
static void saveSettingsToFlashCb(void)
|
||||||
{
|
{
|
||||||
/*if(!persistency_save_settings_to_flash())
|
// Only enable the settings save feature if we compile in SMART_WATCH_PCB_RELEASE mode
|
||||||
|
#if HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
|
if(!persistency_save_settings_to_flash())
|
||||||
{
|
{
|
||||||
APP_LOG_ERROR("Failed to save watch settings to flash");
|
APP_LOG_ERROR("Failed to save watch settings to flash");
|
||||||
}*/
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void performFactoryResetCb()
|
static void performFactoryResetCb()
|
||||||
|
@ -152,7 +152,7 @@ static void touchpad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
|
|||||||
data->point.x = 239-last_x;
|
data->point.x = 239-last_x;
|
||||||
data->point.y = 239-last_y;
|
data->point.y = 239-last_y;
|
||||||
break;
|
break;
|
||||||
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB
|
#elif HARDWARE_PLATFORM == SMART_WATCH_PCB_DEV || HARDWARE_PLATFORM == SMART_WATCH_PCB_RELEASE
|
||||||
case LCD_ORIENTATION_90:
|
case LCD_ORIENTATION_90:
|
||||||
data->point.x = last_y;
|
data->point.x = last_y;
|
||||||
data->point.y = 239-last_x;
|
data->point.y = 239-last_x;
|
||||||
|
Loading…
Reference in New Issue
Block a user