Browse Source

数据上传OK

master
zhaohe 1 year ago
parent
commit
c38e94f0ae
  1. 28
      app/src/app_ble_service.c
  2. 27
      app/src/basic/config.h
  3. 2
      app/src/board/board.h
  4. 80
      app/src/heart_wave_sample_service.c
  5. 2
      ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha

28
app/src/app_ble_service.c

@ -121,26 +121,14 @@ void prvf_report_sample_data(uint32_t frameIndex, uint32_t data, uint32_t data2,
/** /**
* @brief * @brief
*/ */
reportpacket->data[0] = (data >> 0) & 0xFF;
reportpacket->data[1] = (data >> 8) & 0xFF;
reportpacket->data[2] = (data >> 16) & 0xFF;
reportpacket->data[3] = 0;
/**
* @brief
*/
reportpacket->data[4] = (data2 >> 0) & 0xFF;
reportpacket->data[5] = (data2 >> 8) & 0xFF;
reportpacket->data[6] = (data2 >> 16) & 0xFF;
reportpacket->data[7] = 0;
/**
* @brief
*/
reportpacket->data[8] = (data3 >> 0) & 0xFF;
reportpacket->data[9] = (data3 >> 8) & 0xFF;
reportpacket->data[10] = (data3 >> 16) & 0xFF;
reportpacket->data[11] = 0;
// reportpacket->data[0] = (data >> 0) & 0xFF;
// reportpacket->data[1] = (data >> 8) & 0xFF;
// reportpacket->data[2] = (data >> 16) & 0xFF;
// reportpacket->data[3] =
*(uint32_t*)(reportpacket->data) = data;
*(uint32_t*)(reportpacket->data + 4) = data2;
*(uint32_t*)(reportpacket->data + 8) = data3;
// reportpacket->data[12] = 0xFE; // reportpacket->data[12] = 0xFE;
// reportpacket->data[13] = 0xEF; // reportpacket->data[13] = 0xEF;

27
app/src/basic/config.h

@ -1,27 +0,0 @@
#pragma once
/**
* @brief
*
* 200HZ,16bit
* ->
* 1s => 200*2 => 400BYTE
* 248k
* ->
* 1s => 248*1024/400 => 634_S => 10.5min
*/
#define MAX_STORAGE_TIMEOUT_S (60 * 10)
#define MAX_STORAGE_SIZE (MAX_STORAGE_TIMEOUT_S * 400) // ´æ´¢×î´óÏÞÖÆÎª (256-8)kbyte
#define MAX_FILE_NUM 10
#define SAMPLE_RATE 200
#define SAMPLE_PRECISION 12
#define AUTOMATIC_SLEEP_TIME 15000
#define SAMPLE_MIN_TIME_S (30.0)
/*******************************************************************************
* ÓÅÏȼ *
*******************************************************************************/

2
app/src/board/board.h

@ -60,7 +60,7 @@
#define FILE_MAX_COUNT 1 #define FILE_MAX_COUNT 1
#define SDCARD_MAX_FILE_SIZE (uint32_t)(3 * 1024 * 1024 * 1024) #define SDCARD_MAX_FILE_SIZE (uint32_t)(3 * 1024 * 1024 * 1024)
// //
#define SAMPLE_RATE 800
#define SAMPLE_RATE 500
#define SAMPLE_PRECISION 24 #define SAMPLE_PRECISION 24
#define APP_MAX_EVEN_SIZE MAX(APP_TIMER_SCHED_EVENT_DATA_SIZE, sizeof(app_event_t)) #define APP_MAX_EVEN_SIZE MAX(APP_TIMER_SCHED_EVENT_DATA_SIZE, sizeof(app_event_t))

80
app/src/heart_wave_sample_service.c

@ -12,6 +12,7 @@
#define SENSOR0_ID 0 #define SENSOR0_ID 0
#define SENSOR1_ID 3 #define SENSOR1_ID 3
#define SENSOR2_ID 4 #define SENSOR2_ID 4
static const nrfx_timer_t m_timer = NRFX_TIMER_INSTANCE(1); /**< Timer used for channel sweeps and tx with duty cycle. */
/******************************************************************************* /*******************************************************************************
* STRUCT * * STRUCT *
@ -26,16 +27,20 @@ typedef struct {
*******************************************************************************/ *******************************************************************************/
static adscfg_t m_prvads0cfg[] = // static adscfg_t m_prvads0cfg[] = //
{{0x00, 0x00}, {0x01, 0x19}, {0x02, 0x11}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x07}, {0x0b, 0x07}, {0x0c, 0x74}, {0x0d, 0x01}, {0x0e, 0x02}, {0x0f, 0x03}, {0x10, 0x04},
{
{0x00, 0x00}, {0x01, 0x19}, {0x02, 0x11}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x07}, {0x0b, 0x07}, {0x0c, 0x74}, {0x0d, 0x01}, {0x0e, 0x02}, {0x0f, 0x03}, {0x10, 0x04},
{0x11, 0x00}, {0x12, 0x05}, {0x13, 0x39}, {0x14, 0x36}, {0x15, 0x06}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02}, {0x11, 0x00}, {0x12, 0x05}, {0x13, 0x39}, {0x14, 0x36}, {0x15, 0x06}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02},
{0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x08}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00}, {0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x08}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00},
{0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}};
{0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00},
};
static adscfg_t m_prvads1cfg[] = // static adscfg_t m_prvads1cfg[] = //
{{0x00, 0x00}, {0x01, 0x19}, {0x02, 0x11}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x07}, {0x0b, 0x07}, {0x0c, 0x74}, {0x0d, 0x01}, {0x0e, 0x02}, {0x0f, 0x03}, {0x10, 0x04},
{0x11, 0x00}, {0x12, 0x05}, {0x13, 0x39}, {0x14, 0x36}, {0x15, 0x06}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02},
{0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x08}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00},
{0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}};
{
{0x00, 0x00}, {0x01, 0x0c}, {0x02, 0x14}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x00}, {0x0b, 0x07}, {0x0c, 0x78}, {0x0d, 0x00}, {0x0e, 0x00}, {0x0f, 0x00}, {0x10, 0x04},
{0x11, 0x00}, {0x12, 0x07}, {0x13, 0x3b}, {0x14, 0x24}, {0x15, 0x04}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02},
{0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x40}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00},
{0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00},
};
/******************************************************************************* /*******************************************************************************
* VARIABLE * * VARIABLE *
*******************************************************************************/ *******************************************************************************/
@ -124,7 +129,17 @@ static inline void prvf_light_block_cache_clear(void) { m_little_frame_index = 0
static inline void prvf_light_block_trigger_event() { static inline void prvf_light_block_trigger_event() {
static app_event_t event; static app_event_t event;
event.eventType = kevent_capture_little_data_block_event; event.eventType = kevent_capture_little_data_block_event;
memcpy(event.val.little_data_block.data, m_sensor_little_frame_cache, LITTLE_DATA_BLOCK_FRAME_NUM);
// memcpy(event.val.little_data_block.data, m_sensor_little_frame_cache, LITTLE_DATA_BLOCK_FRAME_NUM * sizeof(one_frame_data_t));
for (uint32_t i = 0; i < LITTLE_DATA_BLOCK_FRAME_NUM; i++) {
event.val.little_data_block.data[i].data0 = m_sensor_little_frame_cache[0].data0;
event.val.little_data_block.data[i].data1 = m_sensor_little_frame_cache[0].data1;
event.val.little_data_block.data[i].data2 = m_sensor_little_frame_cache[0].data2;
// event.val.little_data_block.data[0].data0 = 1111111111;
// event.val.little_data_block.data[0].data1 = 2222222222;
// event.val.little_data_block.data[0].data2 = 3333333333;
}
event.val.little_data_block.frameIndex = m_frame_index - LITTLE_DATA_BLOCK_FRAME_NUM; event.val.little_data_block.frameIndex = m_frame_index - LITTLE_DATA_BLOCK_FRAME_NUM;
AppEvent_pushEvent(&event); AppEvent_pushEvent(&event);
} }
@ -227,22 +242,22 @@ static void ads1293_init() {
{ {
// nrf_gpio_cfg_input(ADS1293_READY_PIN, NRF_GPIO_PIN_PULLUP); // nrf_gpio_cfg_input(ADS1293_READY_PIN, NRF_GPIO_PIN_PULLUP);
// ZERROR_CHECK(nrfx_gpiote_init()); // ZERROR_CHECK(nrfx_gpiote_init());
nrf_drv_gpiote_in_config_t inConfig = GPIOTE_CONFIG_IN_SENSE_TOGGLE(false); // 沿
inConfig.pull = NRF_GPIO_PIN_PULLUP; //
inConfig.sense = NRF_GPIOTE_POLARITY_LOTOHI; // 沿
ZERROR_CHECK(nrfx_gpiote_in_init(ADS1293_READY_PIN, &inConfig, ads1293_ready_pin_irq));
nrfx_gpiote_in_event_enable(ADS1293_READY_PIN, true);
// nrf_drv_gpiote_in_config_t inConfig = GPIOTE_CONFIG_IN_SENSE_TOGGLE(false); // 沿
// inConfig.pull = NRF_GPIO_PIN_PULLUP; //
// inConfig.sense = NRF_GPIOTE_POLARITY_LOTOHI; // 沿
// ZERROR_CHECK(nrfx_gpiote_in_init(ADS1293_READY_PIN, &inConfig, ads1293_ready_pin_irq));
// nrfx_gpiote_in_event_enable(ADS1293_READY_PIN, true);
} }
{}
} }
/**
* @brief
*
* @param pin
* @param action
*/
static void ads1293_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action) {
void ads1293_sample_one_frame();
void nrfx_timer_event_handler(nrf_timer_event_t event_type, void* p_context) { //
ads1293_sample_one_frame();
}
static void ads1293_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action) { ads1293_sample_one_frame(); }
static void ads1293_sample_one_frame() {
if (!m_work_flag) { if (!m_work_flag) {
return; return;
} }
@ -310,20 +325,41 @@ static void ads1293_uninit() {
void hwss_init(void) { void hwss_init(void) {
/** /**
* @brief ads1293硬件接口
* @brief
*/ */
nrfx_err_t err;
nrfx_timer_config_t timer_cfg = {
.frequency = NRF_TIMER_FREQ_125kHz,
.mode = NRF_TIMER_MODE_TIMER,
.bit_width = NRF_TIMER_BIT_WIDTH_24,
.p_context = NULL,
.interrupt_priority = NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY,
};
err = nrfx_timer_init(&m_timer, &timer_cfg, nrfx_timer_event_handler);
if (err != NRFX_SUCCESS) {
NRF_LOG_ERROR("nrfx_timer_init failed with: %d\n", err);
}
uint32_t timer_ticks = nrfx_timer_ms_to_ticks(&m_timer, 2); // 500HZ
nrfx_timer_extended_compare(&m_timer, NRF_TIMER_CC_CHANNEL0, timer_ticks, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK, true);
} }
void hwss_load(void) { ads1293_init(); } void hwss_load(void) { ads1293_init(); }
void hwss_unload(void) { ads1293_uninit(); }
void hwss_unload(void) {
nrfx_timer_disable(&m_timer);
ads1293_uninit();
}
void hwss_start_capture(void) { void hwss_start_capture(void) {
m_drop_state_triggered = false; m_drop_state_triggered = false;
m_work_flag = true; m_work_flag = true;
ads1293_start_conversion(&m_ads1293_0); ads1293_start_conversion(&m_ads1293_0);
ads1293_start_conversion(&m_ads1293_1); ads1293_start_conversion(&m_ads1293_1);
nrfx_timer_enable(&m_timer);
} }
void hwss_stop_capture(void) { void hwss_stop_capture(void) {
nrfx_timer_disable(&m_timer);
m_work_flag = false; m_work_flag = false;
ads1293_stop_conversion(&m_ads1293_0); ads1293_stop_conversion(&m_ads1293_0);
ads1293_stop_conversion(&m_ads1293_1); ads1293_stop_conversion(&m_ads1293_1);

2
ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha

@ -1822,7 +1822,7 @@
<Name>Build</Name> <Name>Build</Name>
<Buttons> <Buttons>
<Len>1024</Len> <Len>1024</Len>
<Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D6E726635323833335F78786161960000000000000002000D6E726635323833335F7878616121666C6173685F733132325F6E726635325F382E302E305F736F667464657669636500000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
<Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000D6E726635323833335F78786161960000000000000002000D6E726635323833335F7878616121666C6173685F733132325F6E726635325F382E302E305F736F667464657669636500000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
</Buttons> </Buttons>
<OriginalItems> <OriginalItems>
<Len>583</Len> <Len>583</Len>

Loading…
Cancel
Save