iocsh命令
asynReport(level,portName)
asynInterposeFlushConfig(portName,addr,timeout)
asynInterposeEosConfig(portName,addr,processIn,processOut)
asynSetTraceMask(portName,addr,mask)
asynSetTraceIOMask(portName,addr,mask)
asynSetTraceInfoMask(portName,addr,mask)
asynSetTraceFile(portName,addr,filename)
asynSetTraceIOTruncateSize(portName,addr,size)
asynSetOption(portName,addr,key,val)
asynShowOption(portName,addr,key)
asynAutoConnect(portName,addr,yesNo)
asynSetAutoConnectTimeout(timeout)
asynWaitConnect(portName, timeout)
asynEnable(portName,addr,yesNo)
asynOctetConnect(entry,portName,addr,timeout,buffer_len,drvInfo)
asynOctetRead(entry,nread)
asynOctetWrite(entry,output)
asynOctetWriteRead(entry,output,nread)
asynOctetFlush(entry)
asynOctetSetInputEos(portName,addr,eos,drvInfo)
asynOctetGetInputEos(portName,addr,drvInfo)
asynOctetSetOutputEos(portName,addr,eos,drvInfo)
asynOctetGetOutputEos(portName,addr,drvInfo)
asynRegisterTimeStampSource(portName,functionName);
asynUnregisterTimeStampSource(portName)
1) 如果指定portName, asynReport调用一个特定端口的asynCommon:report,或者如果没有指定portName,调用所有注册的驱动程序和interposeInterface的asynCommon:report。
2) asynInterposeFlushConfig是一个通用的InterposeInterface,它为没有实现flush的底层驱动程序实现了flush。它仅发出读请求直到没有剩下要读的字节。timeout被用于这个读取请求。
3) asynInterposeEosConfig是一个通用的interposeInterface,它为没有实现EOS的底层驱动程序实现了字符串末尾处理。
4)asynSetTraceMask调用指定端口和地址的asynTrace:setTraceMask。如果portName是0长度,则设置全局跟踪掩码。在traceMask定义中记载了掩码位定义。
/*asynTrace是被asynManager实现的。*/
/*所有asynTrace方法能够被从任何线程调用*/
/* traceMask定义*/
#define ASYN_TRACE_ERROR 0x0001
#define ASYN_TRACEIO_DEVICE 0x0002
#define ASYN_TRACEIO_FILTER 0x0004
#define ASYN_TRACEIO_DRIVER 0x0008
#define ASYN_TRACE_FLOW 0x0010
#define ASYN_TRACE_WARNING 0x0020
5)asynSetTraceIOMask调用指定端口和地址的asynTrace:setTraceMask。如果portName是0长度,则设置全局traceIO掩码。在traceIO掩码定义掩码位定义。
/* traceIO位掩码 */
#define ASYN_TRACEIO_NODATA 0x0000
#define ASYN_TRACEIO_ASCII 0x0001
#define ASYN_TRACEIO_ESCAPE 0x0002
#define ASYN_TRACEIO_HEX 0x0004
6)asynSetTraceInfoMask调用指定端口和地址的asynTrace:setTraceInfoMask。如果portName是0长度,则设置全局traceInfo掩码。在traceIO掩码定义掩码位定义。
/* traceInfo掩码定义 */
#define ASYN_TRACEINFO_TIME 0x0001
#define ASYN_TRACEINFO_PORT 0x0002
#define ASYN_TRACEINFO_SOURCE 0x0004
#define ASYN_TRACEINFO_THREAD 0x0008
从R4-35开始,能够以一个整数(先前行为)或者用+或|连接的符号名称指定asynSetTraceMask, asynSetTraceIOMask和asynSetTraceInfoMask的掩码参数。运行空格,但需要引号。符号名称像在asyn.h中宏名称,但不是大小写敏感的并且前缀ASYN_, TRACE_, TRACEIO_和TRACEINFO_是可选的。示例如:
asynSetTraceMask port,0,ASYN_TRACE_ERROR
asynSetTraceIOMask port,0,ascii+escape
asynSetTraceInfoMask port,0,1+port+TRACEINFO_SOURCE|ASYN_TRACEINFO_THREAD
7) asynSetTraceFile调用asynTrace:setTraceFile。按照以下处理文件名:
- 不指定。一个NULL指针被传递到setTraceFile。后续消息被发送给errlog。
- 一个空串("")或者"stderr",stderr被传递给setTraceFile。
- "stdout" -- stdout被传递给setTraceFile。
- 任何其它字符串--用一个选项"w"打开指定文件,并且这个文件指针被传递给setTraceFile。
8)asynSetTraceIOTruncateSize调用asynTrace:setTraceIOTruncateSize。
9) asynSetOption调用asynCommon:setOptio。asynShowOption调用asynCommon:getOption。
10)asynOctetXXX命令提供对asynOctetSyncIO方法的shell访问。条目是标识port, addr的字符串。
此处:
- filename:命名一个文件的ascii串。如果null或者一个null串,则输出被发送到stdout。
- level:报告级别。
- portName:指定这个驱动程序的portName的ascii串。
- addr:指定设备地址的整数。对于mltiDevice端口,一个-1值标识端口自身。对于支持单个设备的端口,忽略addr。
- mask:要设置的掩码值。见在asynDriver.h中的位掩码定义。
- key:对应所需选项的键。
- val:对应这个选项的值。
- yesNo:值(0,1)标识(no, yes)。
- entry:一个标识这个asynOctetConnect请求的字符串。
- timeout:毫秒为单位的整数值,超时。默认是1。
- buffer_len:用于I/O的缓存长度。默认=160。主要:传递给asynOctetWrite的输出字符串可以有转义字符。buffer_len必须足够大来处理转义字符。例如,如果在一个输出字符串中出现\x02,它算成4个字符。
- drvInfo:通过asynDrvUser接口传递给驱动程序的字符串。
- nread:要读取的最大字节数。默认=buffer_len。
- flush:(0,1)表示在读取前(否,是)清缓存。默认=0。
- output:输出字符串。
命令asynOctetConnect, asynOctetDisconnect, asynOctetRead, asynOctetWrite, asynOctetWriteRead, asynOctetFlush允许从这个ioc shell对一个设备进行I/O。例如:
# asynOctetConnect(entry,portName,addr,timeout,buffer_len,drvInfo)
asynOctetConnect("myid","A",0,1,20)
asynOctetWrite("myid","testnew")
asynOctetRead("myid")
testnew\n
asynOctetWriteRead("myid","this is test")
this is test\n
asynOctetDisconnect("myid")
asynRegisterTimeStampSource为指定端口调用pasynManager->registerTimeStampSource。时间戳源函数必须以一个"function"被定义在这个程序的dbd文件中。
asynUnregisterTimeStampSource为指定端口调用pasynManager->unregisterTimeStampSource。这恢复成在asynManager中默认的时间戳源函数。