58#define SENSE_LIMIT_LINK_SETTLE_MS 500u
60#define SENSE_LIMIT_LINK_READ_MS 200u
62#define SENSE_LIMIT_LINK_GAP_MS 5000u
65#define SENSE_LIMIT_LINK_REPEAT_MS 30000u
69#define SENSE_LIMIT_LINK_ACK 0
71#define SENSE_LIMIT_LINK_NO_ANSWER (-1)
75 SENSE_LIMIT_LINK_OP_NONE = 0,
92 SENSE_LIMIT_LINK_EV_NONE = 0,
199 const uint16_t *regs, uint32_t now_ms);
212 uint32_t now_ms,
unsigned *ch,
#define s
Short name for esc_stick_s inside the five stick-class files.
Definition esc_stick_panel_int.h:295
The page map: what the panel can ask the IOmcu for, and set.
@ LINK_SL_KEPT
Definition link_pages.h:1137
sense_limit_link_op_kind_t
The exchanges the page is served with.
Definition sense_limit_link.h:74
@ SENSE_LIMIT_LINK_OP_OVER
Definition sense_limit_link.h:78
@ SENSE_LIMIT_LINK_OP_READ
Definition sense_limit_link.h:76
@ SENSE_LIMIT_LINK_OP_WRITE
Definition sense_limit_link.h:77
void sense_limit_link_came_up(sense_limit_link_t *s, uint16_t minor, uint32_t now_ms)
An IOmcu answered.
Definition sense_limit_link.c:40
void sense_limit_link_init(sense_limit_link_t *s)
Clears the service: no link, no limits asked.
Definition sense_limit_link.c:12
void sense_limit_link_lost(sense_limit_link_t *s)
The link went: what was read is no longer the IOmcu's.
Definition sense_limit_link.c:19
sense_limit_st_t sense_limit_link_status(const sense_limit_link_t *s)
What SETUP > SENSORS shows of the limits.
Definition sense_limit_link.c:288
uint16_t sense_limit_link_unheld(const sense_limit_link_t *s)
The channels whose LIMIT row SETUP marks.
Definition sense_limit_link.c:305
sense_limit_link_ev_t
What sense_limit_link_event() hands out.
Definition sense_limit_link.h:91
@ SENSE_LIMIT_LINK_EV_LOST
Definition sense_limit_link.h:94
@ SENSE_LIMIT_LINK_EV_OVER
Definition sense_limit_link.h:93
@ SENSE_LIMIT_LINK_EV_REFUSED
Definition sense_limit_link.h:95
void sense_limit_link_done(sense_limit_link_t *s, int result, const uint16_t *regs, uint32_t now_ms)
How the exchange sense_limit_link_next() named went.
Definition sense_limit_link.c:183
void sense_limit_link_want(sense_limit_link_t *s, const uint16_t *ma, uint32_t now_ms)
The limits SETUP > SENSORS asks. A change clears a refusal.
Definition sense_limit_link.c:53
uint16_t sense_limit_link_held_ma(const sense_limit_link_t *s, unsigned ch)
A channel's limit the page holds.
Definition sense_limit_link.c:283
bool sense_limit_link_next(sense_limit_link_t *s, uint32_t now_ms, sense_limit_link_op_t *op)
The next exchange owed.
Definition sense_limit_link.c:101
sense_limit_st_t
What SETUP > SENSORS shows of the limits (sensors_rows_set_limits()).
Definition sense_limit_link.h:100
@ SENSE_LIMIT_ST_PENDING
Definition sense_limit_link.h:103
@ SENSE_LIMIT_ST_UNKNOWN
Definition sense_limit_link.h:101
@ SENSE_LIMIT_ST_HELD
Definition sense_limit_link.h:102
@ SENSE_LIMIT_ST_OLD
Definition sense_limit_link.h:105
@ SENSE_LIMIT_ST_REFUSED
Definition sense_limit_link.h:104
sense_limit_link_ev_t sense_limit_link_event(sense_limit_link_t *s, uint32_t now_ms, unsigned *ch, uint16_t *ma)
The next band alert.
Definition sense_limit_link.c:232
One exchange for the caller to make.
Definition sense_limit_link.h:82
bool write
Definition sense_limit_link.h:84
uint8_t off
Definition sense_limit_link.h:85
uint8_t n
Definition sense_limit_link.h:86
const uint16_t * regs
Definition sense_limit_link.h:87
sense_limit_link_op_kind_t kind
Definition sense_limit_link.h:83
The service's state; zeroed by sense_limit_link_init().
Definition sense_limit_link.h:109
uint16_t told_ch
Definition sense_limit_link.h:136
bool known
Definition sense_limit_link.h:112
bool have_count
Definition sense_limit_link.h:127
bool flushed
Definition sense_limit_link.h:125
uint16_t held[LINK_SL_KEPT]
Definition sense_limit_link.h:117
uint8_t turn
Definition sense_limit_link.h:138
bool want_set
Definition sense_limit_link.h:114
bool page
Definition sense_limit_link.h:111
bool ev_refused
Definition sense_limit_link.h:133
bool told
Definition sense_limit_link.h:134
uint16_t over
Definition sense_limit_link.h:130
bool pre_read
Definition sense_limit_link.h:123
uint16_t ch_lim[LINK_SL_KEPT]
Definition sense_limit_link.h:131
uint32_t want_ms
Definition sense_limit_link.h:116
bool up
Definition sense_limit_link.h:110
uint32_t ch_ms[LINK_SL_KEPT]
Definition sense_limit_link.h:137
bool lost
Definition sense_limit_link.h:132
bool asked
Definition sense_limit_link.h:121
uint16_t want[LINK_SL_KEPT]
Definition sense_limit_link.h:115
bool bad_page
Definition sense_limit_link.h:126
uint32_t asked_ms
Definition sense_limit_link.h:122
bool refused
Definition sense_limit_link.h:118
uint16_t count
Definition sense_limit_link.h:128
uint32_t told_ms
Definition sense_limit_link.h:135
sense_limit_link_op_kind_t pending
Definition sense_limit_link.h:120