Beispiel #1
0
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;
}                                 
Beispiel #2
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;
    }