29 #include "softdevice_handler.h"
34 #define EVT_STRING_LENGTH_MAX 20
35 #define DEBUG_LINE_LENGTH 80
36 #define VRECT_INCREMENT 500
37 #define IRECT_INCREMENT 100
38 #define VOUT_INCREMENT 500
39 #define IOUT_INCREMENT 100
40 #define TEMPERATURE_INCREMENT 5
42 #define DEBUG_CONN_HANDLE 0
43 #define DEBUG_ALERT_VALUE_HANDLE 0x0f
67 {.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_STATIC,
68 .addr = {0xee, 0xee, 0xff, 0xff, 0xee, 0xee}};
106 return (NRF_UART0->EVENTS_RXDRDY == 1);
119 ble_gatts_hvx_params_t params;
124 params.type = BLE_GATT_HVX_INDICATION;
125 params.p_data = alert;
126 params.p_len = &hvx_len;
138 APP_ERROR_CHECK(err_code);
143 memset(¶ms.p_data[1], 0, 6);
147 APP_ERROR_CHECK(err_code);
161 bool b_cmd_processed =
true;
284 print_string(
"Command: Send Slave Security Request\n\r");
286 ble_gap_sec_params_t sec_params;
287 memset(&sec_params, 0,
sizeof(ble_gap_sec_params_t));
292 APP_ERROR_CHECK(err_code);
352 (void)sd_softdevice_disable();
359 nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
360 SOFTDEVICE_HANDLER_INIT(&clock_lf_cfg, NULL);
372 #endif // DFU_SUPPORT
380 b_cmd_processed =
false;
386 return b_cmd_processed;
394 bool b_cmd_processed;
403 #ifdef PRU_TEST_HW_UART_CMD_ENABLE
410 if (!b_cmd_processed)
436 bool changed =
false;
474 case PRU_SM_STATE_NULL:
476 case PRU_SM_STATE_BOOT:
478 case PRU_SM_STATE_PRU_ON:
480 case PRU_SM_STATE_SYSTEM_ERROR:
481 return "PRU System Er-or";
483 return "Invalid state";
506 print_string(
"Vrect\tIrect\tVout\tIout\tTemp\tCharged\tP_adj\r\n");
507 sprintf(temp_string,
"%u\t%u\t%u\t%u\t%d\t%u\t%u\r\n",
522 print_string(
"Vrset\tVrmin\tVrhigh\tTempmax\tVrmax\tPrmax\r\n");
523 sprintf(temp_string,
"%u\t%u\t%u\t%u\t%u\t%u\r\n",
537 print_string(
"En_out\tEn_Chin\tAdj_pow\tPerm\tTset\r\n");
538 sprintf(temp_string,
"%u\t%u\t%u\t%u\t%u\r\n",
568 simple_uart_config(UART_BAUDRATE_BAUDRATE_Baud460800, RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);
static void debug_output_print(void)
Print contents of m_debug_output to UART.
uint8_t simple_uart_get(void)
Function for reading a character from UART. Execution is blocked until UART peripheral detects charac...
bool pru_process_command_board(uint8_t cmd)
Function for processing board specific test commands.
static bool m_transmission_stopped
static char * m_state_string_get(pru_sm_state_t state)
Convert state enum to string.
#define BLE_WPTS_PRU_ALERT_POS
PRU alert characteristic byte positions.
static bool m_uart_chars_available(void)
Check if there are any characters in the UART receive buffer.
static bool debug_output_changed(void)
Update m_debug_output variable.
#define BLE_WPTS_PRU_ALERT_MODE_TRANSITION_BITPOS
#define BLE_WPTS_PRU_ALERT_MAX_LEN
const pru_sensor_data_t * pru_sensors_data_get(void)
Get the latest data from the PRU sensors.
void debug_add_string(const char *s)
Add string to debug output.
Definition of PRU reporting data.
#define BLE_WPTS_BITFIELD_WRITE(bitfield, msk, pos, val)
Write bitfield.
void wpts_test_evt_handle_cb(ble_wpts_t *p_wpts, ble_wpts_evt_t *p_evt)
Override weak wpts_test_evt_handle_cb()
static char m_evt_evt_string[EVT_STRING_LENGTH_MAX]
#define BLE_WPTS_PRU_ALERT_MODE_TRANSITION_BITMSK
pru_sm_state_t
PRU states.
ble_wpts_evt_type_t evt_type
#define BLE_WPTS_PRU_ALERT_MODE_6S_MODE_TRANSITION_VAL
void pru_tmux_override_values_set(pru_tmux_override_t *values)
Set override values.
void print_hex(uint32_t number, uint8_t byte_size)
Converts hex number into char and send it through UART TX.
static bool m_pru_process_command_common(uint8_t cmd)
Function for processing common test commands.
#define BLE_WPTS_PRU_ALERT_MODE_3S_MODE_TRANSITION_VAL
static bool m_uart_initialized
static pru_tmux_override_t override_values
#define DEBUG_LINE_LENGTH
union ble_wpts_evt_t::@0 data
Collection of PRU HAL variables that can be overrided by test multiplexer.
void print_string(char *char_array)
Decomposes char array and send chars through UART TX.
static void line_print(void)
Print a DEBUG_LINE_LENGTH character long "horizontal line" to UART.
#define EVT_STRING_LENGTH_MAX
pru_control_t pru_control
static const ble_gap_addr_t MODE_TRANS_ADDRESS
void pru_tmux_override_values_get(pru_tmux_override_t *values)
Get ovveride values.
void tmux_get_select(tmux_select_t select)
Select source for all **tmux**get() functions.
static pru_control_t m_latest_control_data_received
pru_sm_state_t pru_sm_execute(pru_sm_signal_type_t sig, pru_sm_state_vars_t *p_state)
Execute state machine.
static void sm_uart_rx_poll(void)
Get and process uart commands.
void debug(void)
Process debug commands.
void tmux_set_select(tmux_select_t select)
Select whether override values shall be used when writing to **hal**set() functions.
static char temp_string[DEBUG_LINE_LENGTH]
void dfu_start(void)
Starts DFU mode. The function writes a special value to retention register to tell bootloader to star...
WPT Service status structure.
#define DEBUG_CONN_HANDLE
#define TEMPERATURE_INCREMENT
void simple_uart_config(uint32_t baudrate, uint8_t rts_pin_number, uint8_t txd_pin_number, uint8_t cts_pin_number, uint8_t rxd_pin_number, bool hwfc)
UART configuration.
static debug_output_t m_debug_output
static void m_send_mode_transition_alert(uint8_t mode_trans_val, bool include_address)
Send Mode Transition alert to PTU.
#define DEBUG_ALERT_VALUE_HANDLE