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
+