29 #define DEBUG_LINE_LENGTH 80
30 #define EVT_STRING_LENGTH_MAX 20
31 #define VTX_INCREMENT 1000
32 #define ITX_INCREMENT 100
33 #define TEMPERATURE_INCREMENT 10
34 #define EXTENDED_BEACON_THRESHOLD_MS 500
35 #define MAX_RTC_COUNTER_VAL 0x00FFFFFF
52 uint8_t extended_beacon_currently_running;
75 override_values.
vtx = 1;
101 case PTU_SM_STATE_CONFIGURATION:
103 case PTU_SM_STATE_POWER_SAVE:
105 case PTU_SM_STATE_LOW_POWER:
107 case PTU_SM_STATE_POWER_TRANSFER:
109 case PTU_SM_STATE_LATCH_FAULT:
111 case PTU_SM_STATE_LOCAL_FAULT:
114 return "Invalid state";
127 return (NRF_UART0->EVENTS_RXDRDY == 1);
140 bool cmd_processed =
true;
156 print_string(
"\n\rCommand: Beacon debug print disabled\r\n");
158 print_string(
"\n\rCommand: Beacon debug print enabled\r\n");
225 print_string(
"\n\rCommand: TX power set to -40dBm\n\r");
226 err_code = sd_ble_gap_tx_power_set(-40);
227 APP_ERROR_CHECK(err_code);
231 print_string(
"\n\rCommand: TX power set to PTU_OUTPUT_TX_POWER\n\r");
233 APP_ERROR_CHECK(err_code);
237 print_string(
"\n\rCommand: Set Load Variation TRUE\n\r");
284 cmd_processed =
false;
290 return cmd_processed;
301 uint32_t current_tick;
302 uint32_t delta_ticks;
304 (void) app_timer_cnt_get(¤t_tick);
305 if(tick>current_tick)
313 return (1000*delta_ticks)/APP_TIMER_CLOCK_FREQ;
339 bool b_cmd_processed;
347 #ifdef PTU_TEST_HW_UART_CMD_ENABLE
354 if (!b_cmd_processed)
380 bool changed =
false;
383 uint16_t current_powerlevel;
384 bool current_poweramp_status;
385 static bool prev_poweramp_status;
386 static uint32_t prev_powerlevel;
387 static uint32_t ticks_at_last_beacon_changed;
388 static uint8_t currently_in_long_beacon =
false;
392 APP_ERROR_CHECK(err_code);
398 uint32_t delta=
ms_since(ticks_at_last_beacon_changed);
401 if(prev_poweramp_status != current_poweramp_status ||
402 prev_powerlevel != current_powerlevel)
404 err_code = app_timer_cnt_get(&ticks_at_last_beacon_changed);
405 APP_ERROR_CHECK(err_code);
408 currently_in_long_beacon =
false;
415 currently_in_long_beacon =
true;
423 if(!current_poweramp_status){
424 currently_in_long_beacon =
false;
433 currently_in_long_beacon =
false;
440 prev_poweramp_status = current_poweramp_status;
441 prev_powerlevel = current_powerlevel;
500 (void) app_timer_cnt_get(&curr_ticks);
512 print_string(
"State\tSubst\tLddet\tLoadvar\tRobj\tResimp\tVina\tIina\tTemp\tX Beacon\r\n");
520 char * x_beacon_status[]={
"Off",
"On"};
521 sprintf(temp_string,
"%u\t%u\t%u\t%u\t%u\t%u\t%d\t%s\r\n",
529 x_beacon_status[
m_debug_output.extended_beacon_currently_running]);
538 print_string(
"#\tVrect\tIrect\tVout\tIout\tPrect\tPutil\tTemp\tCharged\tEncrypt\r\n");
543 sprintf(temp_string,
"%u\t%u\t%u\t%u\t%u\t%u\t%u\t%i\t%u\t%u\t",
557 sprintf(temp_string,
"%u\t-\t-\t-\t-\t-\t-\t-\t-\t-", i);
578 simple_uart_config(UART_BAUDRATE_BAUDRATE_Baud460800, RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);
uint8_t simple_uart_get(void)
Function for reading a character from UART. Execution is blocked until UART peripheral detects charac...
void ptu_tmux_override_values_set(ptu_tmux_override_t *values)
Set override values.
uint32_t ptu_sensors_read(void)
Read sensors. This function should typically be called regularly by a timer and can generate events b...
static bool m_ptu_process_command_common(uint8_t cmd)
Function for processing common test commands.
#define PTU_POWERAMP_INPUT_BEACON_LONG
static bool m_simplified_beacon_print
uint32_t ptu_reg_item_get_from_index(uint8_t index, ptu_reg_item_t **item_p)
Get registry item from index in database. Index must be < PTU_MAX_CONNECTIONS.
uint8_t ptu_reg_n_entries_get(void)
Get the number of devices currently in registry. This will include all connected devices, as well as all devices which is currently being registered.
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.
static ptu_tmux_override_t override_values
#define PTU_POWERAMP_INPUT_BEACON_SHORT
static char m_evt_evt_string[EVT_STRING_LENGTH_MAX]
void debug_add_string(const char *s)
Add string to debug output.
static char * sm_state_string_get(ptu_sm_state_t state)
Convert state to string.
static uint32_t ms_since(uint32_t tick)
Function for getting the time, in ms, that have passed since the argument system tick.
#define PTU_Z_TX_IN_LOAD_DETECT
ptu_reg_item_state_t
Registry item status.
#define EXTENDED_BEACON_THRESHOLD_MS
void ptu_tmux_override_values_get(ptu_tmux_override_t *values)
Get ovveride values.
#define PTU_OUTPUT_TX_POWER
void print_hex(uint32_t number, uint8_t byte_size)
Converts hex number into char and send it through UART TX.
static bool force_debug_print
#define MAX_RTC_COUNTER_VAL
ptu_sm_state_t
PTU states.
#define POWERAMP_TEST_VAR_STEP_SIZE
static bool m_uart_initialized
void print_string(char *char_array)
Decomposes char array and send chars through UART TX.
Collection of PTU HAL variables that can be overrided by test multiplexer.
#define EVT_STRING_LENGTH_MAX
#define DEBUG_LINE_LENGTH
uint32_t ptu_tmux_poweramp_enable_get(bool *enable)
Test wrapper for ptu_hal_poweramp_enable_get();.
bool ptu_process_command_board(uint8_t cmd)
Function for processing board related test commands.
uint32_t ptu_sensors_data_get(const ptu_sensor_data_t **sensors_data)
Get the latest data read from the PTU sensors.
void tmux_get_select(tmux_select_t select)
Select source for all **tmux**get() functions.
#define PTU_Z_MEAS_BUF_LENGTH
pru_dynamic_t prev_pru_dynamic
static void m_set_load_variation_detected(void)
Will syntesize a load representing a load variation to the sensors module. This will be set to true f...
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.
uint32_t ptu_tmux_poweramp_level_get(uint16_t *p_level)
Test wrapper for ptu_hal_poweramp_level_get().
void sm_uart_rx_poll(void)
Get and process uart commands.
static char temp_string[DEBUG_LINE_LENGTH]
#define PTU_MAX_CONNECTIONS
void dfu_start(void)
Starts DFU mode. The function writes a special value to retention register to tell bootloader to star...
#define TEMPERATURE_INCREMENT
ptu_reg_item_state_t state
static debug_output_t m_debug_output
void line_print(void)
Print a DEBUG_LINE_LENGTH character long "horizontal line" to UART.
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.
PRU Dynamic Parameter structure.
static void debug_output_print(void)
Print contents of m_debug_output to UART.
Definition of PTU sensor data.
ptu_sm_state_t ptu_sm_execute(ptu_sm_signal_type_t signal, ptu_sm_state_vars_t *p_state)
State machine input signal handler.