15 #include "umi/umi_task.hxx" 16 #include "aes/aes.hxx" 17 #include "rio/protocols.hxx" 18 #include "aesc/umipro_aes.hxx" 24 namespace Umi=INdepUmi100;
25 namespace Aes=INdepAes100 ;
27 class RioReadFunc:
public Umi::TaskFunc::Func {
32 int cnRio()
const {
return _cnRio; }
35 int func(
int eState );
36 RioReadFunc(
int cnRio,
int iPort,
unsigned *pnVal):_cnRio(cnRio), _iPort(iPort), _pnVal(pnVal) { assert(pnVal); }
40 class RioReadnFunc:
public RioReadFunc {
43 int nVal()
const {
return _nVal; }
44 RioReadnFunc(
int cnRio,
int iPort):RioReadFunc(cnRio,iPort, &_nVal) { }
48 class RioWriteFunc:
public Umi::TaskFunc::Func {
52 int cnRio()
const {
return _cnRio; }
55 int func(
int eState );
56 RioWriteFunc(
int cnRio,
int iPort,
int iVal ):_cnRio(cnRio), _iPort(iPort), _iVal(iVal) { }
61 class RioConfigFunc:
public Umi::TaskFunc::Func,
public Failable {
66 std::streambuf *psb() {
return _pfb ?
static_cast<std::streambuf*
>(_pfb) : static_cast<std::streambuf*>(_pgb); }
67 int cnRio()
const {
return _cnRio; }
68 std::string _sgConfig;
70 const std::string &sgConfig() {
return _sgConfig; }
71 int func(
int eState );
72 Failable &initPath(
const std::list<std::string> &lisgPath,
const char *szProg);
73 Failable &initFile(
const char *szProg);
74 Failable &initData(
const char *mpch);
76 RioConfigFunc(
int cnRio);
80 std::list<std::string> getEnv(std::string sgEnv, std::string sgPostfix);
83 std::string _sgConfig;
86 Failables &callRioConfig(
const char *szFile);
87 Failables &callRioConfig(
const std::list<std::string>&,
int iVers);
90 const std::string &sgConfig()
const {
return _sgConfig; }
93 Failables &callRioInitPath(
const std::list<std::string>&,
int iVers=0);
96 Failables &callRioInitFile(
const char *szFile);
99 Failables &callRioInitData(
const char *szFile);
104 run(
new RioReadFunc(0, iPort, &nVal));
110 run(
new RioWriteFunc(0, iPort, iVal));
113 RioTaskPlex(Umi::Channel *puc, Umi::ChanUser *pucIo):Aes::AesTaskPlex(puc, pucIo) {
114 assert(*(pucIo->pup()) == INdepRio100::theRio_rio_Proto);
115 assert(*(puc->pup()) == INdepRio100::theRio_rio_Proto);
127 Umi::ChanDevio *_puc;
Convenience class to configure all resources necessary for process-local operation in a single constr...
Definition: rio.hxx:126
int callRioRead(int iPort)
reads the register content of iPort
Definition: rio.hxx:102
void callRioWrite(int iPort, int iVal)
writes the register content of iPort
Definition: rio.hxx:109
Rio namespace.
Definition: rio.hxx:23
base class for something that does have a failed/good state.
Definition: failable.hxx:13
Failable with reason stack.
Definition: failable.hxx:95