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; }
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"); } }