diff --git a/.vscode/settings.json b/.vscode/settings.json index 13e620d..f675c8a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -91,7 +91,7 @@ "heart_rate_sensor_protocol.h": "c", "ble_cmd_process_service.h": "c", "heart_wave_sample_service.h": "c", - "znordic_device_info_mgr.h": "c", + "basic/device_version_info_mgr.h": "c", "nrf_uart.h": "c", "ads_cfg.h": "c", "sdk_config.h": "c", @@ -109,7 +109,8 @@ "sample_data_manager_service.h": "c", "app_event.h": "c", "compiler_abstraction.h": "c", - "ble_nus_c.h": "c" + "ble_nus_c.h": "c", + "device_version_info_mgr.h": "c" }, "files.encoding": "gbk" } \ No newline at end of file diff --git a/README.md b/README.md index 6e6cd79..a6f9d73 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,9 @@ ``` # TODO: - 1. 修改蓝牙测试Server程序,测试程序蓝牙名称过滤标志为 iflytop_ble_test_device - 2. 修改蓝牙名称生成规则,规则为,当device_id为0或者全F,蓝牙名称为iflytop_ble_test_device,否则蓝牙名称为产品SN码 + 1. 修改蓝牙测试Server程序,测试程序蓝牙名称过滤标志为 iflytop_ble_test_device OK + 2. 修改蓝牙名称生成规则,规则为,当device_id为0或者全F,蓝牙名称为iflytop_ble_test_device,否则蓝牙名称为产品SN码 OK + 3. 修改电量检测,电量过低时,指示灯闪烁三下后进入低功耗。 3. 电量过低上报低电量事件。电量不足%1时,设备自动断开连接,并关机。 4. 设备充电时候,不允许采集。 @@ -15,6 +16,8 @@ 9. 设备断开连接后,停止采集(临时代码) 10. 添加一条新的开始采集指令,支持定时参数。(或者使用旧的开始采集指令) 11. 导联断开检测触发后,上报事件(不停止采集),蜂鸣器响三声。 + 12. 低电量进入关机模式而非休眠模式 + 13. 添加指令上传最新一条记录 ``` diff --git a/app/app.uvoptx b/app/app.uvoptx index 695a346..cef9d60 100644 --- a/app/app.uvoptx +++ b/app/app.uvoptx @@ -379,7 +379,7 @@ Application - 0 + 1 0 0 0 @@ -551,6 +551,18 @@ 0 0 + + 1 + 15 + 1 + 0 + 0 + 0 + .\src\basic\device_version_info_mgr.c + device_version_info_mgr.c + 0 + 0 + @@ -561,7 +573,7 @@ 0 2 - 15 + 16 1 0 0 @@ -581,7 +593,7 @@ 0 3 - 16 + 17 1 0 0 @@ -593,7 +605,7 @@ 3 - 17 + 18 1 0 0 @@ -613,7 +625,7 @@ 0 4 - 18 + 19 1 0 0 @@ -633,7 +645,7 @@ 0 5 - 19 + 20 1 0 0 @@ -645,7 +657,7 @@ 5 - 20 + 21 1 0 0 @@ -657,7 +669,7 @@ 5 - 21 + 22 1 0 0 @@ -669,7 +681,7 @@ 5 - 22 + 23 1 0 0 @@ -681,7 +693,7 @@ 5 - 23 + 24 1 0 0 @@ -693,7 +705,7 @@ 5 - 24 + 25 1 0 0 @@ -705,7 +717,7 @@ 5 - 25 + 26 1 0 0 @@ -717,7 +729,7 @@ 5 - 26 + 27 1 0 0 @@ -737,7 +749,7 @@ 0 6 - 27 + 28 1 0 0 @@ -757,7 +769,7 @@ 0 7 - 28 + 29 1 0 0 @@ -769,7 +781,7 @@ 7 - 29 + 30 1 0 0 @@ -781,7 +793,7 @@ 7 - 30 + 31 1 0 0 @@ -793,7 +805,7 @@ 7 - 31 + 32 1 0 0 @@ -805,7 +817,7 @@ 7 - 32 + 33 1 0 0 @@ -817,7 +829,7 @@ 7 - 33 + 34 1 0 0 @@ -829,7 +841,7 @@ 7 - 34 + 35 1 0 0 @@ -841,7 +853,7 @@ 7 - 35 + 36 1 0 0 @@ -853,7 +865,7 @@ 7 - 36 + 37 1 0 0 @@ -865,7 +877,7 @@ 7 - 37 + 38 1 0 0 @@ -877,7 +889,7 @@ 7 - 38 + 39 1 0 0 @@ -889,7 +901,7 @@ 7 - 39 + 40 1 0 0 @@ -901,7 +913,7 @@ 7 - 40 + 41 1 0 0 @@ -913,7 +925,7 @@ 7 - 41 + 42 1 0 0 @@ -925,7 +937,7 @@ 7 - 42 + 43 1 0 0 @@ -937,7 +949,7 @@ 7 - 43 + 44 1 0 0 @@ -949,7 +961,7 @@ 7 - 44 + 45 1 0 0 @@ -961,7 +973,7 @@ 7 - 45 + 46 1 0 0 @@ -973,7 +985,7 @@ 7 - 46 + 47 1 0 0 @@ -985,7 +997,7 @@ 7 - 47 + 48 1 0 0 @@ -1005,7 +1017,7 @@ 0 8 - 48 + 49 1 0 0 @@ -1017,7 +1029,7 @@ 8 - 49 + 50 1 0 0 @@ -1029,7 +1041,7 @@ 8 - 50 + 51 1 0 0 @@ -1041,7 +1053,7 @@ 8 - 51 + 52 1 0 0 @@ -1053,7 +1065,7 @@ 8 - 52 + 53 1 0 0 @@ -1065,7 +1077,7 @@ 8 - 53 + 54 1 0 0 @@ -1077,7 +1089,7 @@ 8 - 54 + 55 1 0 0 @@ -1089,7 +1101,7 @@ 8 - 55 + 56 1 0 0 @@ -1101,7 +1113,7 @@ 8 - 56 + 57 1 0 0 @@ -1113,7 +1125,7 @@ 8 - 57 + 58 1 0 0 @@ -1125,7 +1137,7 @@ 8 - 58 + 59 1 0 0 @@ -1137,7 +1149,7 @@ 8 - 59 + 60 1 0 0 @@ -1149,7 +1161,7 @@ 8 - 60 + 61 1 0 0 @@ -1161,7 +1173,7 @@ 8 - 61 + 62 1 0 0 @@ -1173,7 +1185,7 @@ 8 - 62 + 63 1 0 0 @@ -1185,7 +1197,7 @@ 8 - 63 + 64 1 0 0 @@ -1197,7 +1209,7 @@ 8 - 64 + 65 1 0 0 @@ -1209,7 +1221,7 @@ 8 - 65 + 66 1 0 0 @@ -1221,7 +1233,7 @@ 8 - 66 + 67 1 0 0 @@ -1233,7 +1245,7 @@ 8 - 67 + 68 1 0 0 @@ -1245,7 +1257,7 @@ 8 - 68 + 69 1 0 0 @@ -1257,7 +1269,7 @@ 8 - 69 + 70 1 0 0 @@ -1269,7 +1281,7 @@ 8 - 70 + 71 1 0 0 @@ -1281,7 +1293,7 @@ 8 - 71 + 72 1 0 0 @@ -1293,7 +1305,7 @@ 8 - 72 + 73 1 0 0 @@ -1305,7 +1317,7 @@ 8 - 73 + 74 1 0 0 @@ -1317,7 +1329,7 @@ 8 - 74 + 75 1 0 0 @@ -1337,7 +1349,7 @@ 0 9 - 75 + 76 1 0 0 @@ -1349,7 +1361,7 @@ 9 - 76 + 77 1 0 0 @@ -1361,7 +1373,7 @@ 9 - 77 + 78 1 0 0 @@ -1373,7 +1385,7 @@ 9 - 78 + 79 1 0 0 @@ -1385,7 +1397,7 @@ 9 - 79 + 80 1 0 0 @@ -1397,7 +1409,7 @@ 9 - 80 + 81 1 0 0 @@ -1417,7 +1429,7 @@ 0 10 - 81 + 82 1 0 0 @@ -1429,7 +1441,7 @@ 10 - 82 + 83 1 0 0 @@ -1441,7 +1453,7 @@ 10 - 83 + 84 1 0 0 @@ -1461,7 +1473,7 @@ 0 11 - 84 + 85 1 0 0 @@ -1473,7 +1485,7 @@ 11 - 85 + 86 1 0 0 @@ -1485,7 +1497,7 @@ 11 - 86 + 87 1 0 0 @@ -1499,13 +1511,13 @@ libznordic - 0 + 1 0 0 0 12 - 87 + 88 1 0 0 @@ -1517,7 +1529,7 @@ 12 - 88 + 89 1 0 0 @@ -1529,7 +1541,7 @@ 12 - 89 + 90 1 0 0 @@ -1539,18 +1551,6 @@ 0 0 - - 12 - 90 - 1 - 0 - 0 - 0 - ..\libznordic\src\znordic_device_info_mgr.c - znordic_device_info_mgr.c - 0 - 0 - diff --git a/app/app.uvprojx b/app/app.uvprojx index 4c4a5ae..aeed717 100644 --- a/app/app.uvprojx +++ b/app/app.uvprojx @@ -453,6 +453,11 @@ 1 .\src\board\board_sdcard_driver.c + + device_version_info_mgr.c + 1 + .\src\basic\device_version_info_mgr.c + @@ -3790,11 +3795,6 @@ 1 ..\libznordic\src\zdatachannel_service.c - - znordic_device_info_mgr.c - 1 - ..\libznordic\src\znordic_device_info_mgr.c - @@ -4292,6 +4292,11 @@ 1 .\src\board\board_sdcard_driver.c + + device_version_info_mgr.c + 1 + .\src\basic\device_version_info_mgr.c + @@ -7629,11 +7634,6 @@ 1 ..\libznordic\src\zdatachannel_service.c - - znordic_device_info_mgr.c - 1 - ..\libznordic\src\znordic_device_info_mgr.c - diff --git a/app/src/ads1293_simple_tester.c b/app/src/ads1293_simple_tester.c index e0cc6c7..34abf97 100644 --- a/app/src/ads1293_simple_tester.c +++ b/app/src/ads1293_simple_tester.c @@ -14,7 +14,7 @@ #include "sample_data_manager_service.h" #include "zble_module.h" #include "zdatachannel_service.h" -#include "znordic_device_info_mgr.h" +#include "basic/device_version_info_mgr.h" // ZDATACHANNEL_DEF(m_zhrs, 2 /*优先级*/, 1 /*client num*/); static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(ADS1293_SPI_INSTANCE); /**< SPI instance. */ diff --git a/app/src/app_ble_service.c b/app/src/app_ble_service.c index fc4f17f..3cee149 100644 --- a/app/src/app_ble_service.c +++ b/app/src/app_ble_service.c @@ -12,7 +12,7 @@ #include "zble_module.h" #include "zdatachannel_service.h" #include "znordic.h" -#include "znordic_device_info_mgr.h" +#include "basic/device_version_info_mgr.h" static uint8_t rxbufcache[256]; static bool is_rxbufcache_used = false; // 接收到的消息是否正在被处理中 diff --git a/app/src/basic/device_version_info_mgr.c b/app/src/basic/device_version_info_mgr.c new file mode 100644 index 0000000..666cd61 --- /dev/null +++ b/app/src/basic/device_version_info_mgr.c @@ -0,0 +1,34 @@ +#include "app_ble_service.h" +#include "app_event_distribute.h" +#include "basic/ads1293/ads1293.h" +#include "board/board.h" +#include "device_ctrl_service.h" +#include "zble_module.h" +#include "zdatachannel_service.h" +#include "device_version_info_mgr.h" +// +#include "znordic.h" +#include "version.h" +void device_info_read_sn(sn_t *sn) +{ + uint32_t lot = NRF_UICR->CUSTOMER[0]; + uint32_t id = NRF_UICR->CUSTOMER[1]; + static char sn_str[15]; + sprintf(sn_str, CATEGORY "%04d%05d", lot, id); + if (lot == 0 || id == 0 || lot == 0xffffffff || id == 0xffffffff) + { + sprintf(sn_str, "iflytop_test_d", 0, 0); + } + memcpy(sn->sn, sn_str, sizeof(sn->sn)); +} + +const char *device_info_read_sn_str() +{ + static char sn_str[15]; + device_info_read_sn((sn_t *)sn_str); + return sn_str; +} +uint16_t device_info_read_blestack_version(void) { return 1; } +uint16_t device_info_read_bootloader_version(void) { return 1; } +uint16_t device_info_read_firmware_version(void) { return 1; } +uint16_t device_info_read_hardware_version(void) { return 1; } \ No newline at end of file diff --git a/app/src/basic/device_version_info_mgr.h b/app/src/basic/device_version_info_mgr.h new file mode 100644 index 0000000..f523659 --- /dev/null +++ b/app/src/basic/device_version_info_mgr.h @@ -0,0 +1,14 @@ +#pragma once +#include "znordic.h" + +typedef struct { + uint8_t sn[14]; +} sn_t; + +void device_info_read_sn(sn_t *sn); +const char *device_info_read_sn_str(); + +uint16_t device_info_read_blestack_version(void); +uint16_t device_info_read_bootloader_version(void); +uint16_t device_info_read_firmware_version(void); +uint16_t device_info_read_hardware_version(void); \ No newline at end of file diff --git a/app/src/basic/version.h b/app/src/basic/version.h index 0c3edf1..e78674c 100644 --- a/app/src/basic/version.h +++ b/app/src/basic/version.h @@ -1,3 +1,8 @@ #pragma once -#define VERSION 1 -#define MANUFACTURER_NAME "iflytop" \ No newline at end of file +#define CATEGORY "M1002" // 三导联 +#define MANUFACTURER_NAME "iflytop" + +#define FIRMWARE_VERSION 1 +#define BLESTACK_VERSION 1 +#define BOOTLOADER_VERSION 1 +#define HARDWARE_VERSION 1 \ No newline at end of file diff --git a/app/src/main.c b/app/src/main.c index a863d02..0b73883 100644 --- a/app/src/main.c +++ b/app/src/main.c @@ -13,14 +13,13 @@ #include "device_ctrl_service.h" #include "zble_module.h" #include "zdatachannel_service.h" -#include "znordic_device_info_mgr.h" +#include "basic/device_version_info_mgr.h" // int main() { APP_SCHED_INIT(APP_MAX_EVEN_SIZE, APP_EVENT_QUEUE_SIZE); znordic_init(); NRF_LOG_INFO("compile time :%s", __TIME__); - ZLOGI("CUSTOMER :%d", NRF_UICR->CUSTOMER[0]); /******************************************************************************* * 蓝牙服务初始化 * *******************************************************************************/ diff --git a/doc/SSD1312_Datasheet (1).pdf b/doc/SSD1312_Datasheet (1).pdf new file mode 100644 index 0000000..c718859 Binary files /dev/null and b/doc/SSD1312_Datasheet (1).pdf differ diff --git a/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf b/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf new file mode 100644 index 0000000..5ef088b Binary files /dev/null and b/doc/TXW64128-41-TSWG13P096G-A-VER1.0.pdf differ diff --git a/doc/ads1293.pdf b/doc/ads1293.pdf new file mode 100644 index 0000000..6301615 Binary files /dev/null and b/doc/ads1293.pdf differ diff --git a/doc/m24m02-dr.pdf b/doc/m24m02-dr.pdf new file mode 100644 index 0000000..67a6ec6 Binary files /dev/null and b/doc/m24m02-dr.pdf differ diff --git a/doc/nRF52833_PS_v1.6.pdf b/doc/nRF52833_PS_v1.6.pdf new file mode 100644 index 0000000..37d09c6 Binary files /dev/null and b/doc/nRF52833_PS_v1.6.pdf differ diff --git a/libznordic b/libznordic index 867c66a..032987d 160000 --- a/libznordic +++ b/libznordic @@ -1 +1 @@ -Subproject commit 867c66a76c1c27033173350cce6507bd1b9d4006 +Subproject commit 032987dd30793e1e0b1086b3218160a41b9c80e7 diff --git a/scripter/README.md b/scripter/README.md index 2f90789..af8856e 100644 --- a/scripter/README.md +++ b/scripter/README.md @@ -1,3 +1,9 @@ + nrfjprog --recover nrfjprog --eraseall -f NRF52 -nrfjprog -f nrf52 --memwr 0x10001208 --val 0x0000005A \ No newline at end of file +nrfjprog -f nrf52 --memwr 0x10001208 --val 0x0000005A + +nrfjprog -f nrf52 --memwr 0x10001080 --val 0x00000001 + +nrfjprog -f nrf52 --memwr 0x10001084 --val 0x00000001 +