⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtctest.cpp

📁 关于ETR100的设计
💻 CPP
字号:
#include <stdio.h>
#include <conio.h>
#include <bios.h>
#include <string.h>
#include <dos.h>
#include "rs232.h"
#include "siocfg.h"

//#define		COM	COM1

char       pPar[256];

int GetCOMNum( char* PortName );

int main(int argc, char** argv )
{
   int         i, i1, i2, len, COM;
   char        abyte, mssg[80];
   CMD_SIOCFG  CfgCmd;
   struct date  d;
   struct time  t;

   printf( "\nRTC Test v1.01\n" );
   printf( "Emtronix Inc. Copyright 2003\n" );

   if( argc > 1 ) COM = GetCOMNum( argv[1] );
   else           COM = COM1;

   InitUART( COM, 12 );		// baudrate = 9600
   InstallISR( COM );

   // setup rs232 link
   Siocfg.Link( );

   Siocfg.ShowHelpMessage( );
   for( ; ; )
      {
      Siocfg.ShowPrompt( );
      CfgCmd = Siocfg.GetCmd( (void*)pPar );
      switch( CfgCmd )
	 {
	 case Cmd_Help:
	     Siocfg.ShowHelpMessage( );
	     break;

	 case Cmd_GetDate:
	     getdate( &d );
	     sprintf( mssg, "Current date is %4d-%02d-%02d",
		      d.da_year, d.da_mon, d.da_day );
	     Siocfg.ShowMessage( mssg );
	     break;

	 case Cmd_GetTime:
	     gettime( &t );
	     sprintf( mssg, "Current time is %02d:%02d:%02d",
		      t.ti_hour, t.ti_min, t.ti_sec );
	     Siocfg.ShowMessage( mssg );
	     break;

	 case Cmd_SetDate:
	     // prepare pPar
	     len = strlen( pPar );
	     for( i=0; i<len; i++ )
		{
		if( (pPar[i]!=0x0d) && (pPar[i]!=0x0a) ) continue;
		pPar[i] = '\0';
		break;
		}
	     sscanf( pPar, "%d-%d-%d", &i, &i1, &i2 );
	     d.da_year = i;
	     d.da_mon = i1;
	     d.da_day = i2;
	     setdate( &d );
	     getdate( &d );
	     sprintf( mssg, "Current date is %4d-%02d-%02d",
		      d.da_year, d.da_mon, d.da_day );
	     Siocfg.ShowMessage( mssg );
	     break;

	 case Cmd_SetTime:
	     len = strlen( pPar );
	     for( i=0; i<len; i++ )
		{
		if( (pPar[i]!=0x0d) && (pPar[i]!=0x0a) ) continue;
		pPar[i] = '\0';
		break;
		}
	     sscanf( pPar, "%d:%d:%d", &i, &i1, &i2 );
	     t.ti_hour = i;
	     t.ti_min = i1;
	     t.ti_sec = i2;
	     settime( &t );
	     gettime( &t );
	     sprintf( mssg, "Current time is %02d:%02d:%02d",
		      t.ti_hour, t.ti_min, t.ti_sec );
	     Siocfg.ShowMessage( mssg );
	     break;

	 default:
	     Siocfg.ShowMessage( "Unknown Command!" );
	 }

      if( kbhit( ) ) { getch( ); break; }
      }

   UninstallISR( COM );
   return 0;
}

int GetCOMNum( char* PortName )
{
   if( !strcmp( PortName, "COM1" ) ) return COM1;
   if( !strcmp( PortName, "COM2" ) ) return COM2;
   if( !strcmp( PortName, "COM3" ) ) return COM3;
   if( !strcmp( PortName, "COM4" ) ) return COM4;
   return COM1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -