SCPI parser and status register model implementation (device side) written in C
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
scpi_parser/scpi_status.h

83 lines
1.9 KiB

#pragma once
#include <stdint.h>
#include <stdbool.h>
struct __attribute__((packed)) SCPI_SR_QUEST_struct {
bool VOLT: 1;
bool CURR: 1;
bool TIME: 1;
bool POWER: 1;
bool TEMP: 1;
bool FREQ: 1;
bool PHASE: 1;
bool MODUL: 1;
bool CALIB: 1;
bool BIT_9: 1; // user defined
bool BIT_10: 1;
bool BIT_11: 1;
bool BIT_12: 1;
bool INSTR_SUM: 1; // instrument summary
bool COMMAND_WARNING: 1; // command warning
bool RESERVED: 1;
};
struct __attribute__((packed)) SCPI_SR_OPER_struct {
bool CALIB: 1;
bool SETTING: 1;
bool RANGING: 1;
bool SWEEP: 1;
bool MEAS: 1;
bool WAIT_TRIG: 1; // waiting for trigger
bool WAIT_ARM: 1; // waiting for ARM
bool CORRECTING: 1;
bool BIT_8: 1; // user defined
bool BIT_9: 1;
bool BIT_10: 1;
bool BIT_11: 1;
bool BIT_12: 1;
bool INSTR_SUM: 1; // instrument summary
bool PROG_RUN: 1; // program running
bool RESERVED: 1;
};
struct __attribute__((packed)) SCPI_SR_SESR_struct {
bool OP_COMPLETE: 1;
bool REQ_CONTROL: 1;
bool QUERY_ERROR: 1;
bool DEV_ERROR: 1;
bool EXE_ERROR: 1;
bool CMD_ERROR: 1;
bool USER_REQUEST: 1;
bool POWER_ON: 1;
};
struct __attribute__((packed)) SCPI_SR_STB_struct {
bool BIT_0: 1;
bool BIT_1: 1;
bool ERROR_QUEUE: 1;
bool QUEST: 1;
bool MSG_AVAIL: 1;
bool SESR: 1;
bool RQS: 1; // request service
bool OPER: 1;
};
// QUESTionable register
extern struct SCPI_SR_QUEST_struct SCPI_SR_QUEST;
extern struct SCPI_SR_QUEST_struct SCPI_SR_QUEST_EN; // picks what to use for the STB bit
// OPERation status register
extern struct SCPI_SR_OPER_struct SCPI_SR_OPER;
extern struct SCPI_SR_OPER_struct SCPI_SR_OPER_EN; // picks what to use for the STB bit
// Standard Event Status register
extern struct SCPI_SR_SESR_struct SCPI_SR_SESR;
extern struct SCPI_SR_SESR_struct SCPI_SR_SESR_EN; // ESE
// Status byte
extern struct SCPI_SR_STB_struct SCPI_SR_STB;
extern struct SCPI_SR_STB_struct SCPI_SR_STB_EN; // SRE