void ReadVersionS(void) { InitPop(9); Clear(); sprintf(szLo+1, "верси¤ %u.%u.%u", PopChar(), PopChar(), PopChar()); }
int InputStream::PeekChar() { while(m_queue.GetCount() < 2) PushChar(); ASSERT(m_queue.GetCount() == 2); if(m_queue.GetHead() == '/' && m_queue.GetTail() == '/') { while(!m_queue.IsEmpty()) PopChar(); int c; do { PushChar(); c = PopChar(); } while(!(c == '\n' || c == EOS)); return PeekChar(); } else if(m_queue.GetHead() == '/' && m_queue.GetTail() == '*') { while(!m_queue.IsEmpty()) PopChar(); int c1, c2; PushChar(); do { c2 = PushChar(); c1 = PopChar(); } while(!((c1 == '*' && c2 == '/') || c1 == EOS)); PopChar(); return PeekChar(); } return m_queue.GetHead(); }
float PopFloat34(void) { static combo32 co; co.mpbBuff[0] = PopChar(); co.mpbBuff[1] = PopChar(); co.mpbBuff[2] = PopChar(); co.mpbBuff[3] = PopChar(); return co.flBuff; }
ulong PopLongLtl(void) { static combo32 co; co.mpbBuff[0] = PopChar(); co.mpbBuff[1] = PopChar(); co.mpbBuff[2] = PopChar(); co.mpbBuff[3] = PopChar(); return co.dwBuff; }
void ReadEnergyS(void) { InitPop(9); coEnergy.mpbBuff[0] = PopChar(); coEnergy.mpbBuff[1] = PopChar(); coEnergy.mpbBuff[2] = PopChar(); coEnergy.mpbBuff[3] = PopChar(); mpdwChannelsA[0] = coEnergy.dwBuff; mpboChannelsA[0] = true; }
nsXFormsXPathScanner::XPATHTOKEN nsXFormsXPathScanner::ScanLiteral() { PRUnichar c = PopChar(); PRUnichar p; while ((p = PeekChar()) != c && p != '\0') PopChar(); if (p == '\0') return ERRORXPATHTOKEN; PopChar(); return LITERAL; }
nsXFormsXPathScanner::XPATHTOKEN nsXFormsXPathScanner::ScanNCName() { PRUnichar c = PopChar(); if (c != '_' && !nsXFormsXPathXMLUtil::IsLetter(c)) { return ERRORXPATHTOKEN; } while (nsXFormsXPathXMLUtil::IsNCNameChar(PeekChar())) { PopChar(); } return NCNAME; }
uchar PopCharCod(void) { uchar i = PopChar() ^ mpbCoder[ibCoder]; ibCoder = (ibCoder + 1)%4; return i; }
static void SendIntHandler() { LONG data; custom->intreq = INTF_TBE; data = PopChar(&serial.sendq); if (data >= 0) custom->serdat = data | 0x100; }
/*-----------------------------------------------------------------------------* | ReadClass: function ricorsiva per la lettura di una classe | | | | | | Data creazione: 16/12/2008 Autore: Arcadio Ciro | *-----------------------------------------------------------------------------*/ int ReadClass ( FILE *lc, //file da leggere STACK **Stack//stack degli elementi caricati dal file ) { int Tag,Error;//tag numerici e stato d'errore char *ReadBuffer;//buffer di lettura TREE *Leaf;//foglie dell'alero da caricare nello stack //allocazione del buffer di lettura ReadBuffer=(char*)calloc(BUFFSIZE,sizeof(char)); Leaf=NULL; //2 --> NESSUN ERRORE Error=2; do { //scansione del file carattere per carattere PopChar(lc,&ReadBuffer); //verifica eventuali TAG Tag=IsTag(ReadBuffer); } while(!Tag && !feof(lc)); switch(Tag) //switch del TAG trovato { case CLASS : NewLeaf(&Leaf); //CLASSE trovata LoadLeaf(lc,&Leaf); //acquisizione delle informazioni Push_STACK(Leaf,Stack); ReadClass(lc,Stack); break; case END : Error=0; break; //fine del FILE } free(ReadBuffer);//liberazione memoria del buffer di lettura return Error;//ritorno dello stato d'errore }
ulong2 PopLongQ(void) { bool open = false; ulong dwA = 0; uchar i; for (i=0; i<40; i++) { uchar b = PopChar() & 0x7F; if (open == false) { if (b == '(') open = true; } else { if (b == ')') return GetLong2(dwA, true); else { if ((b >= '0') && (b <= '9')) { b -= '0'; dwA = dwA*10 + b; } else break; } } } return GetLong2Error(); }
nsXFormsXPathScanner::XPATHTOKEN nsXFormsXPathScanner::ScanVariable() { PopChar(); if (ScanQName() != ERRORXPATHTOKEN) return VARIABLE; return ERRORXPATHTOKEN; }
nsXFormsXPathScanner::XPATHTOKEN nsXFormsXPathScanner::ScanNumber() { PRUnichar c = PopChar(); PRBool decimal = (c == '.'); while (c != '\0') { c = PeekChar(); if (!decimal && c == '.') { decimal = PR_TRUE; } else if (!nsXFormsXPathXMLUtil::IsDigit(c)) { return NUMBER; } PopChar(); } return NUMBER; }
bool ReadCntMonCanF_Curr(uchar ibMon, uchar ibCan) { Clear(); LoadCurrDigital(ibCan); ibPort = diCurr.ibPort; uchar i; for (i=0; i<bMINORREPEATS; i++) { QueryBreakF(); InitPushPck(); PushChar(diCurr.bAddress); PushChar(0); PushChar((5+3+2) % 0x100); PushChar((5+3+2) / 0x100); PushChar(0xFD); PushChar(bEXT_GETEXTENDED42); PushChar(ibMon); PushChar(ibCan); PckQueryIO(bHEADER+(1+2+2+8+6)+2, 5+3+2); if (Input() == SER_GOODCHECK) break; if (fKey == true) return false; } if (i == bMINORREPEATS) return false; ShowPercent(100); InitPop(bHEADER); bStatus4 = PopChar(); PopChar(); PopChar(); PopChar(); PopChar(); dbValue4 = PopDouble(); Pop(&tiUpdate4, sizeof(time)); return true; }
nsXFormsXPathScanner::XPATHTOKEN nsXFormsXPathScanner::ScanWhitespace() { PRUnichar c; do { PopChar(); c = PeekChar(); } while (nsXFormsXPathXMLUtil::IsWhitespace(c)); return WHITESPACE; }
void ReadConfigS(void) { InitPop(9); switch (PopChar() & 0x03) { case 0x00: wDividerS = 1; break; case 0x01: wDividerS = 10; break; case 0x02: wDividerS = 100; break; default: wDividerS = 1000; break; } }
bool ReadKoeffDeviceG(void) { uchar i; for (i=0; i<bMINORREPEATS; i++) { QueryOpenG(); if (CodInput() == SER_GOODCHECK) break; if (fKey == true) return(0); } if (i == bMINORREPEATS) return(0); if (ReadOpenG() == 0) return(0); for (i=0; i<bMINORREPEATS; i++) { DelayOff(); InitPushCod(); PushChar(0x7E); PushChar(0x03); PushChar(0x06); PushCharCod(0x03); PushCharCod(0x00); PushCharCod(0x00); CodQueryIO(3+25+1, 3+3+1); if (CodInput() == SER_GOODCHECK) break; if (fKey == true) return(0); } if (i == bMINORREPEATS) return(0); ShowPercent(50); InitPop(3); for (i=0; i<9; i++) PopChar(); if (ExtVersionCod()) PopRealExt_G(); else PopRealBCD_G(); dbKtrans = reBuffA; if (ExtVersionCod()) PopRealExt_G(); else PopRealBCD_G(); dbKtrans *= reBuffA; // K трансформации reBuffA = 10000; // K преобразования return(1); }
static bool ReadDataS(uchar i) { sprintf(szLo," %02u %02u.%02u.%02u", tiDig.bHour, tiDig.bDay,tiDig.bMonth,tiDig.bYear); if (SearchDefHouIndex(tiDig) == 0) return(1); ShowProgressDigHou(); InitPop(9+i*3); ulong dw = PopChar(); dw += PopChar()*0x100; dw += PopChar()*0x10000; if (dw != 0xFFFFFF) { double dbPulse = mpdbPulseHou[ibDig]; double db = (double)dw/wDividerS; mpdbEngFrac[ibDig] += db; uint w; if ((ulong)(mpdbEngFrac[ibDig]*dbPulse) < 0xFFFF) { w = (uint)(mpdbEngFrac[ibDig]*dbPulse); } else { w = 0xFFFF; mpcwOverflowHhr[ibDig]++; } mpwChannels[0] = w; mpdbEngFrac[ibDig] -= (double)w/dbPulse; MakeSpecial(tiDig); return(MakeStopHou(0)); } else { szLo[15] = '*'; return(MakeStopHou(0)); } }
double PopDouble(void) { static combo64 co; co.mpbBuff[7] = PopChar(); co.mpbBuff[6] = PopChar(); co.mpbBuff[5] = PopChar(); co.mpbBuff[4] = PopChar(); co.mpbBuff[3] = PopChar(); co.mpbBuff[2] = PopChar(); co.mpbBuff[1] = PopChar(); co.mpbBuff[0] = PopChar(); return co.dbBuff; }
time ReadEventA(void) { time ti; ti.bSecond = FromBCD( PopChar() ); ti.bMinute = FromBCD( PopChar() ); ti.bHour = FromBCD( PopChar() ); PopChar(); ti.bDay = FromBCD( PopChar() ); ti.bMonth = FromBCD( PopChar() ); ti.bYear = FromBCD( PopChar() ); return ti; }
time PopTime(void) { time ti; ti.bSecond = PopChar(); ti.bMinute = PopChar(); ti.bHour = PopChar(); ti.bDay = PopChar(); ti.bMonth = PopChar(); ti.bYear = PopChar(); return ti; }
/*-----------------------------------------------------------------------------* | LcOpen : legge un file caricandolo in un albero binario. | | | | | | Data creazione: 16/12/2008 Autore: Arcadio Ciro | *-----------------------------------------------------------------------------*/ int LcOpen ( TREE** Tree //albero di OutPut ) { int Error; //stato d'errore int TotLeafs;//totale foglie FILE *lc; //file da leggere char *ReadBuffer;//buffer di lettura STACK *Stk; //stack temporaneo TotLeafs=0; //allocazione del buffer ReadBuffer=(char*)calloc(BUFFSIZE,sizeof(char)); Error=0; //Path del file lc=fopen("maps/cities.lc","r"); //se l'apertura è andata a buon fine if(lc!=NULL) { do PopChar(lc,&ReadBuffer); //i caratteri restituiti da PopChar vengono salvati nel Buffer while(IsTag(ReadBuffer)!=BEGIN && !feof(lc)); //Init dello STACK Init_STACK(&Stk); //Chiamata a ReadClass ReadClass(lc,&Stk); //chiusura del FILE fclose(lc); } else Error=202; //stato d'errore //conversione dello stack in albero tramite visita in ampiezza *Tree=StackToTree(&Stk,&TotLeafs); //viene liberata la memoria usata dallo stack Free_STACK(&Stk); //liberazione del buffer di lettura free(ReadBuffer); //ritorno dello stato d'errore return Error; }
double PopDoubleQ_WithSign(void) { double dbA,dbB; uchar a = 0; uchar b = 0; schar sign = 1; uchar i; for (i=0; i<40; i++) { uchar bT = PopChar() & 0x7F; if (a == 0) { if (bT == '(') a = i+1; dbA = 0; dbB = 1; } else { if (bT == '-') { a = i+1; sign = -1; continue; } if (bT == '.') { b = i-1; continue; } if ((bT == ')') || (bT == ',')) { for (i=a; i<b; i++) dbA *= 10; return sign*dbA; } if ((bT >= '0') && (bT <= '9')) bT -= '0'; else break; dbA += dbB*bT; dbB /= 10; } } return -1; }
time ReadTimeS(void) { InitPop(9); time ti; ti.bSecond = FromBCD(PopChar()); ti.bMinute = FromBCD(PopChar()); ti.bHour = FromBCD(PopChar()); PopChar(); ti.bDay = FromBCD(PopChar()); ti.bMonth = FromBCD(PopChar()); ti.bYear = FromBCD(PopChar()); return ti; }
LONG SerialGet() { return PopChar(&serial.recvq); }
uint PopIntBig(void) { return PopChar()*0x100 + PopChar(); }
uint PopIntLtl(void) { uchar b = PopChar(); return b + PopChar()*0x100; }
int InputStream::GetChar() { if(m_queue.GetCount() < 2) PeekChar(); return PopChar(); }
// задание параметров для сумматора СЭМ-2 bool AutomaticE(void) { uchar i; if (OpenDeviceE() == 0) return(0); for (i=0; i<bMINORREPEATS; i++) { InitPush(0); PushChar(0x1B); PushChar('w'); Query(300+1, 2, 1); if (EscInput() == SER_GOODCHECK) break; if (fKey == true) return(0); } if (i == bMINORREPEATS) return(0); ShowPercent(75); InitPop((uint)132 + diCurr.ibLine*3);// K трансформации PopRealBCD(); dbKtrans = reBuffA; InitPop((uint)180 + diCurr.ibLine*3); // K преобразования PopRealBCD(); SetCanalsAll(); // сохранение К преобразования и К трасформации DelayOff(); for (i=0; i<bMINORREPEATS; i++) // чтение накопленной энергии { InitPush(0); PushChar(0x1B); PushChar('S'); Query(64+1, 2, 1); if (EscInput() == SER_GOODCHECK) break; if (fKey == true) return(0); } if (i == bMINORREPEATS) return(0); ShowPercent(100); InitPop(diCurr.ibLine*4); coFloat.mpbBuff[0] = PopChar(); coFloat.mpbBuff[1] = PopChar(); coFloat.mpbBuff[2] = PopChar(); coFloat.mpbBuff[3] = PopChar(); ToReal(); SetCanReal(mpreCount,ibDig); // сохранение показаний счётчиков return(1); }
uchar PopChar0Bcc(void) { return(PopChar() & 0x7F); }