5 changed files with 27 additions and 741 deletions
-
8app/config/sdk_config.h
-
73app/main.c
-
638app/main.hardtest.c
-
6app/src/device_state.h
-
43app/src/one_conduction_main.c
@ -1,638 +0,0 @@ |
|||||
#include "zble_module.h" |
|
||||
#include "zdatachannel_service.h" |
|
||||
#include "znordic.h" |
|
||||
// |
|
||||
|
|
||||
#include <stdarg.h> |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
// |
|
||||
#include "app_uart.h" |
|
||||
#include "basic/ssd1306/driver_ssd1306_basic.h" |
|
||||
#include "basic\zdatachannel_service.h" |
|
||||
#include "one_conduction/one_conduction_board.h" |
|
||||
#include "three_lead\three_lead_board.h" |
|
||||
#if defined(UART_PRESENT) |
|
||||
#include "nrf_uart.h" |
|
||||
#endif |
|
||||
#if defined(UARTE_PRESENT) |
|
||||
#include "nrf_uarte.h" |
|
||||
#endif |
|
||||
|
|
||||
#if 0 |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
ZLOGI("tim cb %d", data); |
|
||||
// ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset(); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
|
|
||||
ThreeLeadECG_beep_init(); |
|
||||
|
|
||||
ThreeLeadECG_sdcard_base_init(); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(3000), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
// EEPROM_TEST |
|
||||
#if 1 |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
// ZLOGI("test_tx_timer_cb %d", data); |
|
||||
|
|
||||
static uint8_t eepromw_test_data[256]; |
|
||||
static uint8_t eepromw_rx_data[256]; |
|
||||
for (size_t i = 0; i < 256; i++) { |
|
||||
eepromw_test_data[i] = i; |
|
||||
} |
|
||||
// SingleLeadECG_eeprom_write(0, eepromw_test_data, 256); |
|
||||
|
|
||||
SingleLeadECG_eeprom_read(0, eepromw_rx_data, 256); |
|
||||
// for (size_t i = 0; i < 256; i++) { |
|
||||
// ZLOGI("eepromw_rx_data[%d] = %d", i, eepromw_rx_data[i]); |
|
||||
// NRF_LOG_INTERNAL_FLUSH(); |
|
||||
// } |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
// SingleLeadECG_beep_init(); |
|
||||
// SingleLeadECG_beep_set_state(false); |
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
SingleLeadECG_eeprom_init(); |
|
||||
|
|
||||
// nrf_delay_ms(20); |
|
||||
// SingleLeadECG_eeprom_read(0, eepromw_rx_data, 256); |
|
||||
// for (size_t i = 0; i < 256; i++) { |
|
||||
// ZLOGI("eepromw_rx_data[%d] = %d", i, eepromw_rx_data[i]); |
|
||||
// NRF_LOG_INTERNAL_FLUSH(); |
|
||||
// } |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************* |
|
||||
* 屏幕测试+LED测试 * |
|
||||
*******************************************************************************/ |
|
||||
#if 0 |
|
||||
const unsigned char gImage_0[1024] = { /* 0X22,0X01,0X80,0X00,0X40,0X00, */ |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0, |
|
||||
0XF8,0XFC,0X1E,0X0E,0X0E,0X0E,0X1E,0XFC,0XF8,0XF0,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, |
|
||||
0X03,0X07,0X0F,0X0E,0X0E,0X0E,0X0F,0X07,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, |
|
||||
}; |
|
||||
|
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
ZLOGI("test_tx_timer_cb %d", data); |
|
||||
|
|
||||
SingleLeadECG_led_green_set_state(data % 2 == 0); |
|
||||
SingleLeadECG_led_blue_set_state(data % 3 == 0); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
int main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
SingleLeadECG_screen_init(); |
|
||||
ssd1306_basic_init(SSD1306_INTERFACE_SPI, SSD1306_ADDR_SA0_0); |
|
||||
ssd1306_basic_display_on(); |
|
||||
// ssd1306_basic_string(0, 0, "123456789123456789123", 21, 0, SSD1306_FONT_12); |
|
||||
// ssd1306_basic_string(0, 16, "123456789123456789123", 21, 0, SSD1306_FONT_12); |
|
||||
// ssd1306_basic_string(0, 32, "123456789123456789123", 21, 0, SSD1306_FONT_12); |
|
||||
// ssd1306_basic_string(0, 48, "123456789123456789123", 21, 0, SSD1306_FONT_12); |
|
||||
|
|
||||
// gImage_0 |
|
||||
ssd1306_basic_draw_screen(gImage_0); |
|
||||
|
|
||||
// for (size_t i = 0; i < 127; i++) { |
|
||||
// for (size_t j = 0; j < 64; j++) |
|
||||
// { |
|
||||
// ssd1306_basic_write_point(i, j, 1); |
|
||||
// } |
|
||||
// } |
|
||||
ssd1306_gram_update(ssd1306_handler()); |
|
||||
|
|
||||
|
|
||||
SingleLeadECG_led_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************* |
|
||||
* ECG * |
|
||||
*******************************************************************************/ |
|
||||
|
|
||||
#if 0 |
|
||||
#define UART_TX_BUF_SIZE 256 /**< UART TX buffer size. */ |
|
||||
#define UART_RX_BUF_SIZE 256 /**< UART RX buffer size. */ |
|
||||
uint32_t err_code; |
|
||||
app_uart_comm_params_t const comm_params = // |
|
||||
{ |
|
||||
.rx_pin_no = UART_PIN_DISCONNECTED, |
|
||||
.tx_pin_no = 41, |
|
||||
.rts_pin_no = UART_PIN_DISCONNECTED, |
|
||||
.cts_pin_no = UART_PIN_DISCONNECTED, |
|
||||
.flow_control = APP_UART_FLOW_CONTROL_DISABLED, |
|
||||
.use_parity = false, |
|
||||
.baud_rate = NRF_UARTE_BAUDRATE_921600, |
|
||||
}; |
|
||||
|
|
||||
void uart_error_handle(app_uart_evt_t* p_event) {} |
|
||||
|
|
||||
void uartinit() { |
|
||||
APP_UART_FIFO_INIT(&comm_params, UART_RX_BUF_SIZE, UART_TX_BUF_SIZE, uart_error_handle, APP_IRQ_PRIORITY_LOWEST, err_code); |
|
||||
APP_ERROR_CHECK(err_code); |
|
||||
} |
|
||||
|
|
||||
void zchip_log(const char* fmt, ...) { |
|
||||
static char tx[256] = {0}; |
|
||||
va_list args; |
|
||||
va_start(args, fmt); |
|
||||
|
|
||||
vsprintf(tx, fmt, args); |
|
||||
for (size_t i = 0; i < strlen(tx); i++) { |
|
||||
app_uart_put(tx[i]); |
|
||||
} |
|
||||
|
|
||||
va_end(args); |
|
||||
} |
|
||||
|
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
// SingleLeadECG_ecg_nlod_get_connected_state(); |
|
||||
// SingleLeadECG_ecg_plod_get_connected_state(); |
|
||||
// SingleLeadECG_ecg_plod_get_ecg_val(); |
|
||||
// ZLOGI("%d nlod %d plod %d ecg:%d", data, SingleLeadECG_ecg_nlod_get_connected_state(), SingleLeadECG_ecg_plod_get_connected_state(), SingleLeadECG_ecg_plod_get_ecg_val()); |
|
||||
// ZLOGI("%d,%d,%d", SingleLeadECG_ecg_nlod_get_connected_state(), SingleLeadECG_ecg_plod_get_connected_state(), SingleLeadECG_ecg_plod_get_ecg_val()); |
|
||||
|
|
||||
zchip_log("%d,%d,%d\n", SingleLeadECG_ecg_nlod_get_connected_state(), SingleLeadECG_ecg_plod_get_connected_state(), SingleLeadECG_ecg_plod_get_ecg_val()); |
|
||||
// app_uart_put('c'); |
|
||||
// app_uart_put('c'); |
|
||||
// app_uart_put('c'); |
|
||||
// app_uart_put('c'); |
|
||||
// app_uart_put('c'); |
|
||||
// NRF_LOG_INFO("......"); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
// g_nrf_log_tx_pin = 41; |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
SingleLeadECG_adc_module_init(); |
|
||||
|
|
||||
uartinit(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
SingleLeadECG_ecg_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(5), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
/******************************************************************************* |
|
||||
* 蓝牙测试 * |
|
||||
*******************************************************************************/ |
|
||||
#if 0 |
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
ZDATACHANNEL_DEF(m_zhrs, 2 /*回调事件优先??*/, 1 /*client num*/); |
|
||||
static const char* hex2str(const uint8_t* data, int32_t len) { |
|
||||
static char rx[64] = {0}; |
|
||||
memset(rx, 0, sizeof(rx)); |
|
||||
for (int32_t i = 0; i < len; i++) { |
|
||||
sprintf(rx + i * 2, "%02X", data[i]); |
|
||||
} |
|
||||
return rx; |
|
||||
} |
|
||||
|
|
||||
static void zdatachannel_data_handler(zdatachannel_evt_t* p_evt) { |
|
||||
/** |
|
||||
* @brief 接收到指令数?? |
|
||||
*/ |
|
||||
if (p_evt->type == ZDATACHANNEL_EVT_RX_DATA) { |
|
||||
ZLOGI("rx:%s", hex2str(p_evt->params.rx_data.p_data, p_evt->params.rx_data.length)); |
|
||||
} |
|
||||
} |
|
||||
static void on_service_init(void) { |
|
||||
/** |
|
||||
* @brief 数据通道初始?? |
|
||||
*/ |
|
||||
ZLOGI("init zdatachannel service"); |
|
||||
zdatachannel_init_t zdatachannle_init; |
|
||||
memset(&zdatachannle_init, 0, sizeof(zdatachannle_init)); |
|
||||
zdatachannle_init.data_handler = zdatachannel_data_handler; |
|
||||
ZERROR_CHECK(zdatachannel_init(&m_zhrs, &zdatachannle_init)); |
|
||||
} |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
|
|
||||
ThreeLeadECG_sdcard_base_init(); |
|
||||
|
|
||||
znordic_init(0, 20); |
|
||||
NRF_LOG_INFO("compile time :%s", __TIME__); |
|
||||
NRF_LOG_INFO("Version :%d", VERSION); |
|
||||
NRF_LOG_INFO("Manufacturer :%s", MANUFACTURER_NAME); |
|
||||
|
|
||||
static zble_module_cfg_t cfg = // |
|
||||
{ |
|
||||
.deviceName = BLE_NAME, |
|
||||
.on_service_init = on_service_init, |
|
||||
}; |
|
||||
zble_module_init(&cfg); |
|
||||
|
|
||||
zble_module_start_adv(); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* ADCTEST * |
|
||||
*******************************************************************************/ |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
// ZLOGI("test_tx_timer_cb %d", data); |
|
||||
|
|
||||
static uint8_t eepromw_test_data[256]; |
|
||||
static uint8_t eepromw_rx_data[256]; |
|
||||
for (size_t i = 0; i < 256; i++) { |
|
||||
eepromw_test_data[i] = i; |
|
||||
} |
|
||||
|
|
||||
int16_t adc = SingleLeadECG_battery_get_adc_val(); |
|
||||
int16_t mv = adc * 1.0 / 4096 * 3.6 * 1000 / 2.0 * 3; |
|
||||
ZLOGI("battery:%d", mv); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
SingleLeadECG_adc_module_init(); |
|
||||
SingleLeadECG_battery_init(); |
|
||||
|
|
||||
// SingleLeadECG_beep_init(); |
|
||||
// SingleLeadECG_beep_set_state(false); |
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
// nrf_delay_ms(20); |
|
||||
// SingleLeadECG_eeprom_read(0, eepromw_rx_data, 256); |
|
||||
// for (size_t i = 0; i < 256; i++) { |
|
||||
// ZLOGI("eepromw_rx_data[%d] = %d", i, eepromw_rx_data[i]); |
|
||||
// NRF_LOG_INTERNAL_FLUSH(); |
|
||||
// } |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* 3导联-ADS1293-测试 * |
|
||||
*******************************************************************************/ |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
static void zdatachanel_send_log(const char* fmt, ...) { |
|
||||
static char tx[256] = {0}; |
|
||||
static uint16_t len = 0; |
|
||||
va_list args; |
|
||||
va_start(args, fmt); |
|
||||
|
|
||||
len = vsprintf(tx, fmt, args); |
|
||||
zdatachannel_data_send((uint8_t*)tx, &len); |
|
||||
va_end(args); |
|
||||
} |
|
||||
|
|
||||
static const char* dumplodstate(uint16_t lodstate) { |
|
||||
static char buf[64]; |
|
||||
memset(buf, 0, sizeof(buf)); |
|
||||
/** |
|
||||
* @brief |
|
||||
* 1111_0000_0000_0000 |
|
||||
*/ |
|
||||
|
|
||||
sprintf(buf, "%d%d%d%d_%d%d%d%d_%d%d%d%d_%d%d%d%d", // |
|
||||
lodstate >> 15 & 0x1, lodstate >> 14 & 0x1, lodstate >> 13 & 0x1, lodstate >> 12 & 0x1, // |
|
||||
lodstate >> 11 & 0x1, lodstate >> 10 & 0x1, lodstate >> 9 & 0x1, lodstate >> 8 & 0x1, // |
|
||||
lodstate >> 7 & 0x1, lodstate >> 6 & 0x1, lodstate >> 5 & 0x1, lodstate >> 4 & 0x1, // |
|
||||
lodstate >> 3 & 0x1, lodstate >> 2 & 0x1, lodstate >> 1 & 0x1, lodstate >> 0 & 0x1); |
|
||||
return buf; |
|
||||
} |
|
||||
|
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
uint16_t val; |
|
||||
ThreeLeadECG_ads1293_get_lod_state(&val); |
|
||||
#if 0 |
|
||||
uint32_t sample0; |
|
||||
uint32_t sample1; |
|
||||
uint32_t sample2; |
|
||||
ThreeLeadECG_ads1293_sample(&sample0, &sample1, &sample2); |
|
||||
zdatachanel_send_log("%d,%d,%d\n", sample0, sample1, sample2); |
|
||||
#endif |
|
||||
|
|
||||
uint32_t sample0; |
|
||||
uint32_t sample1; |
|
||||
uint32_t sample2; |
|
||||
uint32_t sample10; |
|
||||
uint32_t sample11; |
|
||||
uint32_t sample12; |
|
||||
|
|
||||
ThreeLeadECG_ads1293_sample_all(&sample0, &sample1, &sample2, &sample10, &sample11, &sample12); |
|
||||
|
|
||||
zdatachanel_send_log("%d,%d,%d,%d,%d,%d\n", sample0, sample1, sample2, sample10, sample11, sample12); |
|
||||
// zdatachanel_send_log("%d,%d\n", sample0, sample1); |
|
||||
|
|
||||
// zdatachanel_send_log("%d,%d,%d\n", data, data, data); |
|
||||
// zdatachanel_send_log("%d %d %s\n", ThreeLeadECG_ready_pin_state_get(), ThreeLeadECG_LineInputDet_get_state(), dumplodstate(val)); |
|
||||
|
|
||||
// zdatachannel_data_send(tx, &p_length); |
|
||||
} |
|
||||
|
|
||||
ZDATACHANNEL_DEF(m_zhrs, 2 /*回调事件优先??*/, 1 /*client num*/); |
|
||||
static const char* hex2str(const uint8_t* data, int32_t len) { |
|
||||
static char rx[64] = {0}; |
|
||||
memset(rx, 0, sizeof(rx)); |
|
||||
for (int32_t i = 0; i < len; i++) { |
|
||||
sprintf(rx + i * 2, "%02X", data[i]); |
|
||||
} |
|
||||
return rx; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
char cmdcache[256] = {0}; |
|
||||
static void zdatachannel_data_handler(zdatachannel_evt_t* p_evt) { |
|
||||
/** |
|
||||
* @brief 接收到指令数?? |
|
||||
*/ |
|
||||
if (p_evt->type == ZDATACHANNEL_EVT_RX_DATA) { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
static void on_service_init(void) { |
|
||||
/** |
|
||||
* @brief 数据通道初始?? |
|
||||
*/ |
|
||||
ZLOGI("init zdatachannel service"); |
|
||||
zdatachannel_init_t zdatachannle_init; |
|
||||
memset(&zdatachannle_init, 0, sizeof(zdatachannle_init)); |
|
||||
zdatachannle_init.data_handler = zdatachannel_data_handler; |
|
||||
ZERROR_CHECK(zdatachannel_init(&m_zhrs, &zdatachannle_init)); |
|
||||
} |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
|
|
||||
ThreeLeadECG_sdcard_base_init(); |
|
||||
|
|
||||
znordic_init(0, 20); |
|
||||
NRF_LOG_INFO("compile time :%s", __TIME__); |
|
||||
NRF_LOG_INFO("Version :%d", VERSION); |
|
||||
NRF_LOG_INFO("Manufacturer :%s", MANUFACTURER_NAME); |
|
||||
|
|
||||
static zble_module_cfg_t cfg = // |
|
||||
{ |
|
||||
.deviceName = BLE_NAME, |
|
||||
.on_service_init = on_service_init, |
|
||||
}; |
|
||||
zble_module_init(&cfg); |
|
||||
|
|
||||
ThreeLeadECG_ecg_init(); |
|
||||
ThreeLeadECG_LineInputDet_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(5), NULL)); |
|
||||
|
|
||||
zble_module_start_adv(); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
|
|
||||
#endif |
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* 3导联-led测试 * |
|
||||
*******************************************************************************/ |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
ZLOGI("test_tx_timer_cb %d", data); |
|
||||
|
|
||||
ThreeLeadECG_led_green_set_state(data % 2 == 0); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
ThreeLeadECG_led_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* 3导联-电池电量测试 * |
|
||||
*******************************************************************************/ |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
int16_t mv = ThreeLeadECG_battery_get_adc_val() * 1.0 / 4096 * 3.3 * 1000 / 2.0 * 3; |
|
||||
ZLOGI("battery:%d", mv); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
ThreeLeadECG_adc_module_init(); |
|
||||
ThreeLeadECG_battery_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* 3导联-flash测试 * |
|
||||
*******************************************************************************/ |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
ThreeLeadECG_sdcard_base_init(); |
|
||||
ThreeLeadECG_sdcard_mount(); |
|
||||
ThreeLeadECG_sdcard_umount(); |
|
||||
ThreeLeadECG_sdcard_mount(); |
|
||||
ThreeLeadECG_sdcard_umount(); |
|
||||
|
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#if 0 |
|
||||
/******************************************************************************* |
|
||||
* 3导联-flash测试 * |
|
||||
*******************************************************************************/ |
|
||||
static void test_tx_timer_cb(void* p_context) { |
|
||||
static uint32_t data; |
|
||||
data++; |
|
||||
ZLOGI("button %d", ThreeLeadECG_button_get_state()); |
|
||||
} |
|
||||
|
|
||||
extern uint32_t g_nrf_log_tx_pin; |
|
||||
APP_TIMER_DEF(m_test_tx_timer); |
|
||||
|
|
||||
void main() { |
|
||||
APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); |
|
||||
znordic_init(); |
|
||||
|
|
||||
NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); |
|
||||
NRF_LOG_INTERNAL_FLUSH(); |
|
||||
|
|
||||
ThreeLeadECG_button_init(); |
|
||||
|
|
||||
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); |
|
||||
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(300), NULL)); |
|
||||
znordic_loop(); |
|
||||
} |
|
||||
#endif |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue