📄 siocfg.cpp
字号:
#include <stdio.h>
#include <string.h>
#include "rs232.h"
#include "siocfg.h"
SIOCFG Siocfg;
SIOCFG::SIOCFG( )
{
InbufLen = 0;
Inbuf[0] = '\0';
Outbuf[0] = '\0';
}
// setup rs232 link
// return = -12: timeout
int SIOCFG::Link( long timeout )
{
long l1, l2;
int i1;
l1 = (timeout / 55l) + 1;
for( l2=0; l2<l1; l2++ )
{
i1 = GetInputData( );
if( i1 != -1 ) break;
delay( 1 );
}
if( l2 >= l1 ) return -12;
// delay 100ms to clear receive buffer
for( l1=0; l1<100l; l1++ )
{
for( ; ; )
{
i1 = GetInputData( );
if( i1 != -1 ) continue;
break;
}
delay( 1 );
}
return 0;
}
int SIOCFG::ShowMessage( char* pMssg )
{
int i, len;
sprintf( Outbuf, "\r\n |->%s", pMssg );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
return 0;
}
int SIOCFG::ShowHelpMessage( )
{
int i, len;
strcpy( Outbuf, "\r\n\r\n Emtronix Inc. Copyright 2003 V1.01" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n Help or ?: get help" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n Date?: get current date" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n Time?: get current time" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n Date=yyyy-mm-dd: set current date" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n Time=hh:mm:ss: set current time" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
strcpy( Outbuf, "\r\n\r\n |->" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
return 0;
}
int SIOCFG::ShowPrompt( )
{
int i, len;
strcpy( Outbuf, "\r\n |->" );
len = strlen( Outbuf );
for( i=0; i<len; i++ ) PutOutputData( Outbuf[i] );
StartSend( );
return 0;
}
CMD_SIOCFG SIOCFG::GetCmd( void* pPar )
{
int i1, len;
char CmdStr[10];
InbufLen = 0;
for( ; ; )
{
i1 = GetInputData( );
if( i1 == -1 ) continue;
Inbuf[InbufLen] = (char)i1;
InbufLen++;
if( InbufLen >= sizeof(Inbuf) )
{
return Cmd_NOP;
}
if( (char)i1 == '\n' ) break;
}
Inbuf[InbufLen] = '\0';
// parse commands
for( i1=0; i1<InbufLen; i1++ )
{
CmdStr[i1] = Inbuf[i1];
if( (CmdStr[i1] == '\r') )
{
CmdStr[i1] = '\0';
break;
}
if( CmdStr[i1] == '=' )
{
CmdStr[i1+1] = '\0';
strcpy( (char*)pPar, &Inbuf[i1+1] );
break;
}
}
if( !strcmp( CmdStr, "Help" ) ) return Cmd_Help;
if( !strcmp( CmdStr, "?" ) ) return Cmd_Help;
if( !strcmp( CmdStr, "Date?" ) ) return Cmd_GetDate;
if( !strcmp( CmdStr, "Time?" ) ) return Cmd_GetTime;
if( !strcmp( CmdStr, "Date=" ) ) return Cmd_SetDate;
if( !strcmp( CmdStr, "Time=" ) ) return Cmd_SetTime;
return Cmd_NOP;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -