|
|
@ -57,44 +57,42 @@ static const char* zhex2str(uint8_t* data, size_t len) { |
|
|
|
return str; |
|
|
|
} |
|
|
|
|
|
|
|
#define STRUCT_SET(dest, src) memcpy(&dest, src, sizeof(dest)) |
|
|
|
|
|
|
|
static void on_sdk_event_cb(sdk_event_t* event) { |
|
|
|
#if 1 |
|
|
|
|
|
|
|
switch (event->event) { |
|
|
|
case kevent_connected: |
|
|
|
NRF_LOG_INFO("on connected...."); |
|
|
|
m_connected_state = true; |
|
|
|
nrf_gpio_pin_write(CONNECTED_STATE_GPIO, 1); |
|
|
|
|
|
|
|
// { // tx report |
|
|
|
// zble_proto_packet_t* report = ble_proto_get_and_clear_report_buf(); |
|
|
|
// ble_master_connected_event_t* content = &report->d.ble_master_connected_event; |
|
|
|
|
|
|
|
// report->cmd = kproto_report_ble_master_connected_event; |
|
|
|
// content->connected = true; |
|
|
|
// strcpy(content->blename, "empty"); |
|
|
|
// strcpy(content->bleid, "empty"); |
|
|
|
|
|
|
|
// ble_proto_packet_and_send_report(report, sizeof(*content)); |
|
|
|
// } |
|
|
|
{ |
|
|
|
zble_connected_event_t revent; |
|
|
|
STRUCT_SET(revent.blename, &event->data.on_scan_result.blename); |
|
|
|
STRUCT_SET(revent.peeradd, &event->data.on_scan_result.peeradd); |
|
|
|
STRUCT_SET(revent.rssi, &event->data.on_scan_result.rssi); |
|
|
|
STRUCT_SET(revent.tx_power, &event->data.on_scan_result.tx_power); |
|
|
|
send_report_zble_connected_event(&revent); |
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
case kevent_disConnected: |
|
|
|
NRF_LOG_INFO("on disconnected...."); |
|
|
|
m_connected_state = false; |
|
|
|
nrf_gpio_pin_write(CONNECTED_STATE_GPIO, 0); |
|
|
|
|
|
|
|
// { // tx report |
|
|
|
// zble_proto_packet_t* report = ble_proto_get_and_clear_report_buf(); |
|
|
|
// ble_master_connected_event_t* content = &report->d.ble_master_connected_event; |
|
|
|
|
|
|
|
// report->cmd = kproto_report_ble_master_connected_event; |
|
|
|
// content->connected = false; |
|
|
|
// strcpy(content->blename, ""); |
|
|
|
// strcpy(content->bleid, ""); |
|
|
|
|
|
|
|
// ble_proto_packet_and_send_report(report, sizeof(*content)); |
|
|
|
// } |
|
|
|
|
|
|
|
send_report_zble_disconnect_event(); |
|
|
|
break; |
|
|
|
case kevent_scanResult: |
|
|
|
NRF_LOG_INFO("on scan result...."); |
|
|
|
{ |
|
|
|
zble_scan_result_t revent; |
|
|
|
STRUCT_SET(revent.blename, &event->data.on_scan_result.blename); |
|
|
|
STRUCT_SET(revent.peeradd, &event->data.on_scan_result.peeradd); |
|
|
|
STRUCT_SET(revent.rssi, &event->data.on_scan_result.rssi); |
|
|
|
STRUCT_SET(revent.tx_power, &event->data.on_scan_result.tx_power); |
|
|
|
send_report_zble_scan_result(&revent); |
|
|
|
} |
|
|
|
break; |
|
|
|
case kevent_onRxData: |
|
|
|
// ͸´«ÏûÏ¢µ½ÉÏλ»ú |
|
|
@ -118,6 +116,11 @@ static void on_uart_data(uint8_t* data, int32_t len) { |
|
|
|
send_read_version_receipt(rx, FIRMWARE_VERSION, BLESTACK_VERSION, BOOTLOADER_VERSION, HARDWARE_VERSION); |
|
|
|
} else if (rx->cmd == kzble_cmd_start_scan) { |
|
|
|
// TODO |
|
|
|
// const char* slaveName, bool autoconnected |
|
|
|
zble_start_scan_t* param = (zble_start_scan_t*)rx->data; |
|
|
|
param->auto_connect; |
|
|
|
param->auto_connect_client_name; |
|
|
|
zble_master_sdk_rescan(param->auto_connect_client_name, param->auto_connect); |
|
|
|
send_success_receipt(rx, NULL, 0); |
|
|
|
} else if (rx->cmd == kzble_cmd_stop_scan) { |
|
|
|
// TODO |
|
|
@ -141,6 +144,7 @@ static void debug_light_tmr_cb(void* p_context) { // |
|
|
|
} |
|
|
|
|
|
|
|
static void heart_state_report_tmr_cb(void* p_context) { // |
|
|
|
send_report_heart(100, m_reset_flag, m_connected_state); |
|
|
|
} |
|
|
|
|
|
|
|
static void board_init() { |
|
|
@ -156,11 +160,6 @@ int main(void) { |
|
|
|
zappcore_init(); |
|
|
|
board_init(); |
|
|
|
|
|
|
|
// void zble_master_sdk_init(const char* bleScanFilterName, const char* slaveName, bool autoConnect, on_sdk_event_t onSdkEvent); |
|
|
|
// void zble_master_sdk_ble_tx(uint8_t* data, int32_t len); |
|
|
|
// void zble_master_sdk_rescan(const char* slaveName, bool autoconnected); |
|
|
|
// void zble_master_sdk_set_slave_name(const char* slaveName); |
|
|
|
|
|
|
|
zble_master_sdk_init("AciDisp", "AciDisp00000", true, on_sdk_event_cb); |
|
|
|
|
|
|
|
uart_initer_init(on_uart_data); |
|
|
@ -172,6 +171,7 @@ int main(void) { |
|
|
|
app_timer_start(m_heart_report_event_tmr, APP_TIMER_TICKS(5000), NULL); |
|
|
|
|
|
|
|
zappcore_start_schedule(); |
|
|
|
send_report_power_on_event(); |
|
|
|
|
|
|
|
for (;;) { |
|
|
|
if (NRF_LOG_PROCESS() == false) { |
|
|
|