Update IC acknowledgements for write/read IC.
This commit is contained in:
parent
dad3d7d48d
commit
0fcbbf06bf
61
main.c
61
main.c
@ -94,35 +94,14 @@ void reset_counters(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// For sending two-byte prefixed messages
|
// #DO NOT USE THIS. IT BREAKS THE PACKET FORMAT. USE
|
||||||
void usb_send_push_ex(uint8_t message_prefix, uint8_t message_part_two, uint8_t* message, uint8_t message_length) {
|
// void usb_send_message_1byte(uint8_t message) {
|
||||||
usb_send_buffer[0] = message_prefix;
|
// usb_send_buffer[0] = message;
|
||||||
usb_send_buffer[1] = message_part_two;
|
// ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, 1);
|
||||||
usb_send_buffer[2] = message_length + 3;
|
// NRF_LOG_INFO("[push]Writing message of length %d, ret: %d", 1, ret);
|
||||||
memcpy(&usb_send_buffer[3], message, message_length);
|
|
||||||
ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, message_length + 3);
|
|
||||||
|
|
||||||
NRF_LOG_INFO("[ex]Writing message of length %d, ret: %d", message_length + 3, ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
// void usb_transmit_message(uint8_t message_prefix, uint8_t* message, uint8_t message_length) {
|
|
||||||
// usb_send_buffer[0] = message_prefix;
|
|
||||||
// usb_send_buffer[1] = message_length + 2;
|
|
||||||
// memcpy(&usb_send_buffer[2], message, message_length);
|
|
||||||
// ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, message_length + 2);
|
|
||||||
|
|
||||||
// NRF_LOG_INFO("[0]Writing message of length %d, ret: %d", message_length + 2, ret);
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
void usb_send_push(void) {
|
// 1. For mushing together small messages into a 64-byte packet:
|
||||||
ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, usb_send_buffer_offset);
|
|
||||||
|
|
||||||
NRF_LOG_INFO("[1]Writing message of length %d, ret: %d", usb_send_buffer_offset, ret);
|
|
||||||
|
|
||||||
usb_send_buffer_offset = 0; // reset.
|
|
||||||
}
|
|
||||||
|
|
||||||
// For mushing together small messages into a 64-byte packet:
|
|
||||||
void usb_send_append_message(uint8_t message_prefix, uint8_t* message, uint8_t message_length) {
|
void usb_send_append_message(uint8_t message_prefix, uint8_t* message, uint8_t message_length) {
|
||||||
usb_send_buffer[usb_send_buffer_offset] = message_prefix;
|
usb_send_buffer[usb_send_buffer_offset] = message_prefix;
|
||||||
usb_send_buffer[usb_send_buffer_offset + 1] = message_length + 2;
|
usb_send_buffer[usb_send_buffer_offset + 1] = message_length + 2;
|
||||||
@ -136,6 +115,28 @@ void usb_send_append_message(uint8_t message_prefix, uint8_t* message, uint8_t m
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 2. For pushing all messages queued with usb_send_append_message
|
||||||
|
void usb_send_push(void) {
|
||||||
|
ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, usb_send_buffer_offset);
|
||||||
|
|
||||||
|
NRF_LOG_INFO("[push]Writing message of length %d, ret: %d", usb_send_buffer_offset, ret);
|
||||||
|
|
||||||
|
usb_send_buffer_offset = 0; // reset.
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. For sending two-byte prefixed messages
|
||||||
|
void usb_send_push_ex(uint8_t message_prefix, uint8_t message_part_two, uint8_t* message, uint8_t message_length) {
|
||||||
|
usb_send_buffer[0] = message_prefix;
|
||||||
|
usb_send_buffer[1] = message_part_two;
|
||||||
|
usb_send_buffer[2] = message_length + 3;
|
||||||
|
memcpy(&usb_send_buffer[3], message, message_length);
|
||||||
|
ret_code_t ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, usb_send_buffer, message_length + 3);
|
||||||
|
|
||||||
|
NRF_LOG_INFO("[push ex]Writing message of length %d, ret: %d", message_length + 3, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// length is always `READ_SIZE`
|
// length is always `READ_SIZE`
|
||||||
void write_ic_settings(uint8_t* new_packet) {
|
void write_ic_settings(uint8_t* new_packet) {
|
||||||
switch (SECOND_NIBBLE(new_packet[0])) {
|
switch (SECOND_NIBBLE(new_packet[0])) {
|
||||||
@ -151,6 +152,8 @@ void write_ic_settings(uint8_t* new_packet) {
|
|||||||
ads1298_start_rdatac();
|
ads1298_start_rdatac();
|
||||||
ads1298_standby();
|
ads1298_standby();
|
||||||
// #TODO: readback registers into m_info.registers to confirm correct write.
|
// #TODO: readback registers into m_info.registers to confirm correct write.
|
||||||
|
uint8_t message[] = {0x00}; // LENGTH OF ZERO.
|
||||||
|
usb_send_push_ex(CTRL_ACK_WRITE_IC_REGISTER, IC_ID_ADS1298, message, strlen(message));
|
||||||
#endif
|
#endif
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
@ -235,7 +238,9 @@ static void process_new_packet(uint8_t* new_packet) {
|
|||||||
run_throughput_test = true;
|
run_throughput_test = true;
|
||||||
}
|
}
|
||||||
if (SECOND_NIBBLE(new_packet[0]) == TN_MISC_RTT_REQUEST) {
|
if (SECOND_NIBBLE(new_packet[0]) == TN_MISC_RTT_REQUEST) {
|
||||||
// [↓] #TODO [Later]
|
uint8_t message[] = {0x00}; // LENGTH OF ZERO.
|
||||||
|
usb_send_append_message(CTRL_ACK_RTT_REQUEST, message, strlen(message));
|
||||||
|
usb_send_push();
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@ -59,7 +59,7 @@
|
|||||||
// some devices have more than 62 bytes worth of registers, so it may
|
// some devices have more than 62 bytes worth of registers, so it may
|
||||||
// need to be split up into pages.
|
// need to be split up into pages.
|
||||||
#define CTRL_REGISTER_READBACK 0xC8
|
#define CTRL_REGISTER_READBACK 0xC8
|
||||||
|
#define CTRL_ACK_WRITE_IC_REGISTER 0xDF
|
||||||
#define CTRL_ACK_RTT_REQUEST 0xE0
|
#define CTRL_ACK_RTT_REQUEST 0xE0
|
||||||
|
|
||||||
// %%% IC Identifiers %%%
|
// %%% IC Identifiers %%%
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user