29#ifndef RCBENCH_ESC_SIM_H
30#define RCBENCH_ESC_SIM_H
81#define ESC_SIM_LOOP_MAX 64u
83#define ESC_SIM_PULSE_MAX 16u
ESC (electronic speed controller) programming profiles: how to enter an ESC's throttle-stick programm...
esc_throttle_t
Throttle stick position that a step uses.
Definition esc_profile.h:99
int32_t esc_sim_step(esc_sim_t *s, uint32_t now_ms, bool powered, float throttle_pct)
Advance the simulated ESC to a time and return its supply current.
Definition esc_sim.c:637
void esc_sim_init(esc_sim_t *s, const esc_profile_t *p, const esc_sim_cfg_t *c)
Start a simulated ESC on a profile.
Definition esc_sim.c:46
unsigned esc_sim_store_moves(const esc_profile_t *p, uint8_t item, uint8_t value, esc_throttle_t *out, size_t cap)
List the moves that store a selected value.
Definition esc_sim.c:456
void esc_sim_hand(esc_sim_t *s, uint32_t now_ms)
Record the person's action at the ESC.
Definition esc_sim.c:700
uint8_t esc_sim_stored(const esc_sim_t *s, uint8_t item)
Value stored for an item.
Definition esc_sim.c:63
void esc_sim_defaults(esc_sim_cfg_t *c)
Fill a simulator config with its default settings.
Definition esc_sim.c:30
#define ESC_SIM_PULSE_MAX
Most pulses in one group's beep sequence.
Definition esc_sim.h:83
esc_sim_mode_t
Mode of the simulated ESC's menu.
Definition esc_sim.h:69
@ ESC_SIM_WAIT_LISTEN
Definition esc_sim.h:73
@ ESC_SIM_DONE
Definition esc_sim.h:77
@ ESC_SIM_PENDING
Definition esc_sim.h:76
@ ESC_SIM_IDLE
Definition esc_sim.h:71
#define ESC_SIM_LOOP_MAX
Most group numbers in the loop being sounded.
Definition esc_sim.h:81
#define s
Short name for esc_stick_s inside the five stick-class files.
Definition esc_stick_panel_int.h:295
One ESC programming profile: its family, menu and steps.
Definition esc_profile.h:233
Timing and fault settings of the simulated ESC.
Definition esc_sim.h:43
uint8_t extra
Definition esc_sim.h:57
uint32_t gap_ms
Definition esc_sim.h:45
uint32_t idle_ma
Definition esc_sim.h:53
uint32_t seed
Definition esc_sim.h:56
uint32_t pause_ms
Definition esc_sim.h:47
uint32_t noise_ma
Definition esc_sim.h:55
uint32_t entry_ms
Definition esc_sim.h:48
uint32_t window_ms
Definition esc_sim.h:50
uint32_t long_ms
Definition esc_sim.h:46
bool wait_hand
Definition esc_sim.h:63
bool deaf
Definition esc_sim.h:61
bool mute
Definition esc_sim.h:62
int32_t drop_group
Definition esc_sim.h:59
uint32_t beep_ms
Definition esc_sim.h:44
uint32_t beep_ma
Definition esc_sim.h:54
Full state of one simulated ESC.
Definition esc_sim.h:86
uint8_t item
Definition esc_sim.h:110
bool dropped
Definition esc_sim.h:116
bool menu_group
Definition esc_sim.h:106
esc_sim_cfg_t c
Definition esc_sim.h:88
esc_throttle_t stored_from[256]
Definition esc_sim.h:124
uint32_t ended_ms
Definition esc_sim.h:109
uint32_t menu_groups
Definition esc_sim.h:115
uint8_t pulse_i
Definition esc_sim.h:103
uint8_t pend_item
Definition esc_sim.h:111
uint8_t sounding
Definition esc_sim.h:107
uint8_t pend_value
Definition esc_sim.h:112
bool powered
Definition esc_sim.h:90
uint32_t stores
Definition esc_sim.h:125
uint8_t pulse_n
Definition esc_sim.h:102
uint8_t loop_n
Definition esc_sim.h:98
bool answering
Definition esc_sim.h:120
bool hand_done
Definition esc_sim.h:118
uint32_t seg_end
Definition esc_sim.h:105
esc_sim_mode_t mode
Definition esc_sim.h:89
bool tones_done
Definition esc_sim.h:117
uint8_t stored[256]
Definition esc_sim.h:123
const esc_profile_t * p
Definition esc_sim.h:87
uint32_t misplaced
Definition esc_sim.h:126
esc_throttle_t entry
Definition esc_sim.h:93
uint8_t seg
Definition esc_sim.h:104
uint32_t resets
Definition esc_sim.h:114
uint8_t rep
Definition esc_sim.h:100
uint8_t pend_step
Definition esc_sim.h:113
uint32_t on_ms
Definition esc_sim.h:91
uint8_t loop_i
Definition esc_sim.h:99
uint8_t pulse[ESC_SIM_PULSE_MAX]
Definition esc_sim.h:101
uint8_t loop[ESC_SIM_LOOP_MAX]
Definition esc_sim.h:96
uint8_t ended
Definition esc_sim.h:108
esc_throttle_t pos
Definition esc_sim.h:92
uint32_t lcg
Definition esc_sim.h:128