43 #define QSPY_VER "6.9.3"
115 uint8_t
const *start,
size_t tot_len);
129 void *seqFile,
char const *seqList,
152 uint8_t
const *srcBuf,
size_t srcBytes);
166 #define QS_LINE_OFFSET 8
179 #define SNPRINTF_LINE(format_, ...) do { \
180 int n_ = SNPRINTF_S(&QSPY_output.buf[QS_LINE_OFFSET], \
181 (QS_LINE_LEN_MAX - QS_LINE_OFFSET), \
182 format_, ##__VA_ARGS__); \
183 if ((0 < n_) && (n_ < QS_LINE_LEN_MAX - QS_LINE_OFFSET)) { \
184 QSPY_output.len = n_; \
187 QSPY_output.len = QS_LINE_LEN_MAX - QS_LINE_OFFSET; \
191 #define SNPRINTF_APPEND(format_, ...) do { \
192 int n_ = SNPRINTF_S(&QSPY_output.buf[QS_LINE_OFFSET + QSPY_output.len],\
193 (QS_LINE_LEN_MAX - QS_LINE_OFFSET - QSPY_output.len), \
194 format_, ##__VA_ARGS__); \
196 && (n_ < QS_LINE_LEN_MAX - QS_LINE_OFFSET - QSPY_output.len)) { \
197 QSPY_output.len += n_; \
200 QSPY_output.len = QS_LINE_LEN_MAX - QS_LINE_OFFSET; \
211 #define QSPY_line (&QSPY_output.buf[QS_LINE_OFFSET])
QSpyStatus
low-level facilities for configuring QSpy and parsing QS records ...
void QSPY_sendTP(QSpyRecord const *const qrec)
SigType QSPY_findSig(char const *name, ObjType obj)
int32_t QSpyRecord_getInt32(QSpyRecord *const me, uint8_t size)
void QSPY_config(QSpyConfig const *config, void *matFile, void *seqFile, char const *seqList, QSPY_CustParseFun custParseFun)
uint8_t const * start
start of the record
QSpyCommands
commands to QSPY;
@ QSPY_SEQUENCE_OUT
toggle Sequence output to a file in QSPY
@ QSPY_SEND_CURR_OBJ
send current Object (QSPY supplying addr)
@ QSPY_SCREEN_OUT
toggle screen output to a file in QSPY
@ QSPY_ATTACH
attach to the QSPY Back-End
@ QSPY_SEND_TEST_PROBE
send Test-Probe (QSPY supplying apiId)
@ QSPY_SEND_AO_FILTER
send Local Filter (QSPY supplying addr)
@ QSPY_MATLAB_OUT
toggle Matlab output to a file in QSPY
@ QSPY_SAVE_DICT
save dictionaries to a file in QSPY
@ QSPY_BIN_OUT
toggle binary output to a file in QSPY
@ QSPY_DETACH
detach from the QSPY Back-End
@ QSPY_SEND_COMMAND
send command (QSPY supplying cmdId)
@ QSPY_SEND_EVENT
send event (QSPY supplying signal)
void QSPY_setExternDict(char const *dictName)
QSpyStatus QSpyRecord_OK(QSpyRecord *const me)
QSpyStatus QSPY_readDict(void)
uint32_t QSpyRecord_getUint32(QSpyRecord *const me, uint8_t size)
size_t QSPY_encode(uint8_t *dstBuf, size_t dstSize, uint8_t const *srcBuf, size_t srcBytes)
uint8_t const * pos
current position in the stream
uint64_t QSpyRecord_getUint64(QSpyRecord *const me, uint8_t size)
int64_t QSpyRecord_getInt64(QSpyRecord *const me, uint8_t size)
int(* QSPY_CustParseFun)(QSpyRecord *const me)
char const * QSPY_tstampStr(void)
QSpyStatus QSPY_writeDict(void)
int32_t len
current length of the stream
void QSpyRecord_init(QSpyRecord *const me, uint8_t const *start, size_t tot_len)
bool QSPY_command(uint8_t cmdId)
void QSPY_sendCmd(QSpyRecord const *const qrec)
char const * QSpyRecord_getStr(QSpyRecord *const me)
void QSPY_printInfo(void)
QSPY_LastOutput QSPY_output
uint8_t rec
the record-ID (see enum QSpyRecords in qs.h)
void QSPY_sendEvt(QSpyRecord const *const qrec)
uint8_t const * QSpyRecord_getMem(QSpyRecord *const me, uint8_t size, uint32_t *pNum)
void QSPY_parse(uint8_t const *buf, uint32_t nBytes)
void QSPY_configTxReset(QSPY_resetFun txResetFun)
KeyType QSPY_findObj(char const *name)
void QSPY_onPrintLn(void)
void QSPY_printError(void)
void QSPY_configMatFile(void *matFile)
size_t QSPY_encodeResetCmd(uint8_t *dstBuf, size_t dstSize)
uint32_t tot_len
total length of the record, including chksum
void(* QSPY_resetFun)(void)
size_t QSPY_encodeTickCmd(uint8_t *dstBuf, size_t dstSize, uint8_t rate)
void QSPY_sendObj(QSpyRecord const *const qrec)
KeyType QSPY_findFun(char const *name)
QSpyConfig const * QSPY_getConfig(void)
KeyType QSPY_findUsr(char const *name)
void QSPY_configSeqFile(void *seqFile)
size_t QSPY_encodeInfoCmd(uint8_t *dstBuf, size_t dstSize)
QSPY configuration parameters.
QSPY record being processed.