Пример #1
0
static int GetInput(int *vb, int *no)
{
	char buf[256];
	char verb[10],noun[10];
	int vc,nc;
	int num;

	do
	{
		do
		{
			Output("\nTell me what to do ? ");
			LineInput(buf, sizeof buf);
			num=sscanf(buf,"%9s %9s",verb,noun);
		}
		while(num==0||*buf=='\n');
		if(xstrcasecmp(verb, "restore") == 0)
		{
			LoadGame();
			return -1;
		}
		if(num==1)
			*noun=0;
		if(*noun==0 && strlen(verb)==1)
		{
			switch(isupper((unsigned char)*verb)?tolower((unsigned char)*verb):*verb)
			{
				case 'n':strcpy(verb,"NORTH");break;
				case 'e':strcpy(verb,"EAST");break;
				case 's':strcpy(verb,"SOUTH");break;
				case 'w':strcpy(verb,"WEST");break;
				case 'u':strcpy(verb,"UP");break;
				case 'd':strcpy(verb,"DOWN");break;
				/* Brian Howarth interpreter also supports this */
				case 'i':strcpy(verb,"INVENTORY");break;
			}
		}
		nc=WhichWord(verb,Nouns);
		/* The Scott Adams system has a hack to avoid typing 'go' */
		if(nc>=1 && nc <=6)
		{
			vc=1;
		}
		else
		{
			vc=WhichWord(verb,Verbs);
			nc=WhichWord(noun,Nouns);
		}
		*vb=vc;
		*no=nc;
		if(vc==-1)
		{
			Output("You use word(s) I don't know! ");
		}
	}
	while(vc==-1);
	strcpy(NounText,noun);	/* Needed by GET/DROP hack */

	return 0;
}
Пример #2
0
void main(void)
{
    int iRet, iAddress, iChannel, iComPort, iTimeout, iCheckSum;
    unsigned long lBaudrate;
    unsigned char cTemp[10];
    int iDataFormat, iDataFormat_Original;
    int iFilter, iFilter_Original;
    int iRangeCode, iRangeCode_Original;
    
    float fValue;
             
    InitLib();    
    
    Print("********************************\r\n");
    Print("*  7K87K_AI demo for Com Port  *\r\n");
    Print("*                              *\r\n");
    Print("*        [Oct 30, 2008]        *\r\n");
    Print("********************************\r\n");
    Print("\r\n");
    
    Print("Please Input ComPort Number:");
    LineInput(cTemp, 10);               
    sscanf(cTemp, "%d", &iComPort);  
        
    Print("Please Input ComPort's Baudrate:");
    LineInput(cTemp, 10);
    sscanf(cTemp, "%ld", &lBaudrate);
    
    Print("Please Select Checksum(0:Disable or 1:Enable):");
    LineInput(cTemp, 10);
    sscanf(cTemp, "%d", &iCheckSum);

    Print("Please Input module's address(0~255) =");
    LineInput(cTemp, 10);
    sscanf(cTemp, "%d", &iAddress);
    
    Print("Please Input Timeout:");
    LineInput(cTemp, 10);
    sscanf(cTemp, "%d", &iTimeout);
    
    InstallCom(iComPort, lBaudrate, 8, 0, 1); 
    iFilter=0;      // 0: 60Hz    
        
    iDataFormat=0;  //0: Engineering units
    
    iRangeCode=0x08;    //7017/87017:Range code 08(-10V to +10V)
     
    //To prevent reading EEPROM again.
    iRet=Read7K87KAI_Config(iComPort,
                            iAddress,
                            iCheckSum,
                            iTimeout,
                            &iRangeCode_Original,
                            &iFilter_Original,
                            &iDataFormat_Original);
    
    if(iRet==NoError)
    {
        if((iRangeCode_Original==iRangeCode) 
           && (iFilter_Original==iFilter) 
           && (iDataFormat_Original==iDataFormat))
        {
            // The original configuration is the same as the input configuration.
            // So there is no need to write into the EEPROM.
        }  
        else
        {
            Set7K87KAI_Config(iComPort, iAddress, iCheckSum, iTimeout, iRangeCode, iFilter, iDataFormat);  
        }
    }
    else
        Print("Read Configuration Error\r\n");

    for(;;)
    {    
        for(iChannel=0; iChannel<=7; iChannel++)
        {
            iRet=Read7K87K_AI(iComPort, iAddress, iChannel, iCheckSum, iTimeout, &fValue);
            if(iRet==NoError)
            {
                Print("Ch%d=%6.3f\n\r", iChannel, fValue);
            }
            else
            {
                Print("Read AI_%d error!!! Error Code =%d\r\n", iChannel, iRet);
            }
        }
        Print("\r\n");
    }
}