Skip to content

dreisiger-metz/ate-basic-io-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

ate-basic-io-module

Implements a (very) simple multi-channel digital and analogue I/O module, with an SCPI-like command interface. In lieu of more complete documentation, the following excerpt defines the full set of supported commands; in (interactive) use, substitute the '0' in the multi-channel command definitions with the actual intended channel number.

const char BasicIOModuleParser::NOTHING[]    = "";
const char BasicIOModuleParser::QUERY_ONLY[] = "(QUERY ONLY)";

const Parser::Handler BasicIOModuleParser::Handlers[] = {
//    Command           Command handler                                        Multi-channel?  Allowed values
    { "++ADDR",         (ParserHandler) &BasicIOModuleParser::ADDRHandler,              false, QUERY_ONLY },
    { "*IDN",           (ParserHandler) &BasicIOModuleParser::IDNHandler,               false, QUERY_ONLY },
    { "*SAV",           (ParserHandler) &BasicIOModuleParser::SAVHandler,               false, NOTHING },
    { "*RCL",           (ParserHandler) &BasicIOModuleParser::RCLHandler,               false, NOTHING },
    { "*RST",           (ParserHandler) &BasicIOModuleParser::RSTHandler,               false, NOTHING },
    { "*TRG",           (ParserHandler) &BasicIOModuleParser::TRGHandler,               false, NOTHING },
    { "HELP",           (ParserHandler) &BasicIOModuleParser::HELPHandler,              false, QUERY_ONLY },
    { "ID",             (ParserHandler) &BasicIOModuleParser::IDNHandler,               false, QUERY_ONLY },
    { "SYST:ADDR",      (ParserHandler) &BasicIOModuleParser::SystemAddrHandler,        false, QUERY_ONLY },
    { "SYST:TRIG",      (ParserHandler) &BasicIOModuleParser::SystemTriggerHandler,     false, QUERY_ONLY },
    { "SYST:TRIG:MODE", (ParserHandler) &BasicIOModuleParser::SystemTriggerModeHandler, false, QUERY_ONLY },
    { "DIO0",           (ParserHandler) &BasicIOModuleParser::DigitalIOHandler,         true,  "{ 0 | 1 | OFF | ON | LO | HI }" },
    { "DIO0:MODE",      (ParserHandler) &BasicIOModuleParser::DigitalIOModeHandler,     true,  "{ INPUT | INPUT_PULLUP | OUTPUT }" },
    { "AIO0",           (ParserHandler) &BasicIOModuleParser::AnalogIOHandler,          true,  "[ 0 .. 1 ]" },
    { "AIO0:MODE",      (ParserHandler) &BasicIOModuleParser::AnalogIOModeHandler,      true,  "{ INPUT | OUTPUT }" },
    END_OF_HANDLERS
};

Currently tested just on the ATmega-based Arduino platform.

About

Implements a simple, multi-channel digital and analogue I/O module with an SCPI-like command interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages