int main() { int nProbs, probNum, ret, ansInd; if(fgets(&(inbuf[0]), 511, stdin) == NULL) { fprintf(stderr, "Read failed on problem count\n"); return -1; } if(sscanf(&(inbuf[0]), "%d", &nProbs) != 1) { fprintf(stderr, "Scan failed on problem count\n"); return -2; } if((nProbs < 1) || (nProbs > 1000)) { fprintf(stderr, "problem count %d not in range 1 to 1000\n", nProbs); return -3; } for(probNum = 1; probNum <= nProbs ; probNum++) { ret = ParseFlatLayout(probNum); if(ret != 0) { return ret; } GetCornerVals(probNum); for(ansInd = 0; ansInd < 5 ; ansInd++) { ret = ParseAnswer(probNum, ansInd); if(ret != 0) { return ret; } } CountPrintMatch(probNum); } return 0; }
bool AskConunter() { char *pxBuf; char tmpbuffX[16]; // Find Device rs485size = iecProcReqPacket(rs485buf, "", 10); if (!SendReseive()) return false; uint8 boolX = iecIndProc(rs485buf, &id); if (false==boolX) { return false; } // Password & security rs485size = iecOptionsAckPacket(rs485buf, '0', '5', '1'); if (!SendReseive()) return false; boolX = iecProcAddrAnswer(rs485buf, &RAM.strings[0][0], 128); if (false==boolX) { return false; } //#define IEC_PASS "777777" char* pass=((FLASHMEM*) DEVICE_FLASHMEM_LOCATION)->devcfg.logica.reserv; if (strlen((char*)pass)>0 && strlen((char*)pass)<15) { rs485size = iecProcPassPacket(rs485buf, (char*)(((FLASHMEM*) DEVICE_FLASHMEM_LOCATION)->devcfg.logica.reserv), 16); if(!SendReseive())return false; if(rs485buf[0] != ACK)return false; } if (!AskParam("DATE_", tmpbuff)) return false; ParseAnswer(tmpbuff, &RAM.strings[1][0]); if (!AskParam("TIME_", tmpbuff)) return false; ParseAnswer(tmpbuff, &RAM.strings[2][0]); if (!AskParam("SNUMB", tmpbuff)) return false; ParseAnswer(tmpbuff, &RAM.strings[3][0]); if (!AskParam("ET0PE", tmpbuff)) return false; ParseAnswer(tmpbuff, &RAM.strings[4][0]); if (!AskParam("POWPP", tmpbuff)) return false; pxBuf = tmpbuff; pxBuf = ParseAnswer(pxBuf, &RAM.strings[5][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[6][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[7][0]); if (!AskParam("VOLTA", tmpbuff)) return false; pxBuf = tmpbuff; pxBuf = ParseAnswer(pxBuf, &RAM.strings[8][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[9][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[10][0]); if (!AskParam("CURRE", tmpbuff)) return false; pxBuf = tmpbuff; pxBuf = ParseAnswer(pxBuf, &RAM.strings[11][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[12][0]); pxBuf = ParseAnswer(pxBuf, &RAM.strings[13][0]); if (!AskParam("FREQU", tmpbuff)) return false; pxBuf = tmpbuff; pxBuf = ParseAnswer(pxBuf, &RAM.strings[14][0]); if (!AskParam("ET0PE", tmpbuff)) return false; ParseAnswer(tmpbuff, &RAM.strings[15][0]); GetDateStringLM(tmpbuffX); if (!AskParamArg("ENMPE", tmpbuff,tmpbuffX)) return false; ParseAnswer(tmpbuff, &RAM.strings[16][0]); GetDateStringLD(tmpbuffX); if (!AskParamArg("ENDPE", tmpbuff,tmpbuffX)) return false; ParseAnswer(tmpbuff, &RAM.strings[17][0]); MakeiFixUIP(); rs485size = iecProcExitPacket(rs485buf); GPIO_SetBits(GPIOB, GPIO_Pin_14); //AT91F_PIO_SetOutput(AT91C_BASE_PIOA, USART0_RTS); uart3Write((uint8*) rs485buf, rs485size); vTaskDelay(300); return true; }