STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
fake_regs.h
Go to the documentation of this file.
1#ifndef STAR_FAKE_REGS_H
2#define STAR_FAKE_REGS_H
3
4/*
5 * A pretend ST register-file sensor behind a dev_bus_t, for host tests.
6 * First byte of a frame: bit 7 = read, the rest the address. Multi-byte
7 * frames auto-increment the address: always (ISM330DHCX, IF_INC), or only
8 * when bit 6 of the command is set (H3LIS100DL "MS" bit).
9 */
10
11#include <stdbool.h>
12#include <stdint.h>
13
14#include "dev_bus.h"
15
16typedef struct {
17 uint8_t regs[128];
18 bool ms_bit; /* address in bits 5:0, bit 6 enables increment */
19 int fail_after; /* transfers allowed before every one fails (-1 never) */
20 uint8_t self_clear_reg; /* these bits clear after clear_after_reads */
23 unsigned self_clear_rearm; /* non-zero: each set-write re-arms the count */
24 uint8_t stuck[128]; /* bits that ignore writes (read-back mismatch) */
25 unsigned transfers;
26 unsigned writes;
27 uint8_t write_reg[64];
28 uint8_t write_val[64];
29 unsigned delays_ms;
31
32void fake_regs_init(fake_regs_t* f, bool ms_bit);
34
35#endif
dev_bus_t fake_regs_bus(fake_regs_t *f)
Definition fake_regs.c:59
void fake_regs_init(fake_regs_t *f, bool ms_bit)
Definition fake_regs.c:5
uint8_t self_clear_bits
Definition fake_regs.h:21
unsigned self_clear_rearm
Definition fake_regs.h:23
uint8_t regs[128]
Definition fake_regs.h:17
unsigned writes
Definition fake_regs.h:26
uint8_t self_clear_reg
Definition fake_regs.h:20
uint8_t stuck[128]
Definition fake_regs.h:24
unsigned delays_ms
Definition fake_regs.h:29
uint8_t write_reg[64]
Definition fake_regs.h:27
bool ms_bit
Definition fake_regs.h:18
unsigned transfers
Definition fake_regs.h:25
int fail_after
Definition fake_regs.h:19
unsigned clear_after_reads
Definition fake_regs.h:22
uint8_t write_val[64]
Definition fake_regs.h:28