コード例 #1
0
ファイル: device_s.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
void    ReadVersionS(void)
{
  InitPop(9);

  Clear();
  sprintf(szLo+1, "верси¤ %u.%u.%u", PopChar(), PopChar(), PopChar());
}
コード例 #2
0
ファイル: Stream.cpp プロジェクト: AlexsandroAG/vsfiltermod
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();
}
コード例 #3
0
ファイル: device34.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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;
}
コード例 #4
0
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;
}
コード例 #5
0
ファイル: device_s.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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;
}
コード例 #6
0
nsXFormsXPathScanner::XPATHTOKEN
nsXFormsXPathScanner::ScanLiteral()
{
  PRUnichar c = PopChar();
  PRUnichar p;
  while ((p = PeekChar()) != c && p != '\0')
    PopChar();
  if (p == '\0')
    return ERRORXPATHTOKEN;
  PopChar();
  return LITERAL;
}
コード例 #7
0
nsXFormsXPathScanner::XPATHTOKEN
nsXFormsXPathScanner::ScanNCName()
{
  PRUnichar c = PopChar();
  if (c != '_' && !nsXFormsXPathXMLUtil::IsLetter(c)) {
    return ERRORXPATHTOKEN;
  }
    
  while (nsXFormsXPathXMLUtil::IsNCNameChar(PeekChar())) {
    PopChar();
  }
    
  return NCNAME;
}
コード例 #8
0
uchar   PopCharCod(void)
{
  uchar i = PopChar() ^ mpbCoder[ibCoder];
  ibCoder = (ibCoder + 1)%4;

  return i;
}
コード例 #9
0
ファイル: serial.c プロジェクト: cahirwpz/demoscene
static void SendIntHandler() {
  LONG data;
  custom->intreq = INTF_TBE;
  data = PopChar(&serial.sendq);
  if (data >= 0)
    custom->serdat = data | 0x100;
}
コード例 #10
0
ファイル: ReadClass.c プロジェクト: pcittadini/linkearth
/*-----------------------------------------------------------------------------*
| 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
}
コード例 #11
0
ファイル: device_q.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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();
}
コード例 #12
0
nsXFormsXPathScanner::XPATHTOKEN
nsXFormsXPathScanner::ScanVariable()
{
  PopChar();
  if (ScanQName() != ERRORXPATHTOKEN)
    return VARIABLE;
  return ERRORXPATHTOKEN;
}
コード例 #13
0
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;
}
コード例 #14
0
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;
}
コード例 #15
0
nsXFormsXPathScanner::XPATHTOKEN
nsXFormsXPathScanner::ScanWhitespace()
{
  PRUnichar c;
  do {
    PopChar();
    c = PeekChar();
  } while (nsXFormsXPathXMLUtil::IsWhitespace(c));

  return WHITESPACE;
}
コード例 #16
0
ファイル: device_s.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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;
  }
}
コード例 #17
0
ファイル: automatic1.c プロジェクト: feilongfl/tm4c1294ncpdt
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);
}
コード例 #18
0
ファイル: device_s.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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));
  }
}
コード例 #19
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;
}
コード例 #20
0
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;
}
コード例 #21
0
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;
}
コード例 #22
0
ファイル: LcOpen.c プロジェクト: pcittadini/linkearth
/*-----------------------------------------------------------------------------*
| 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; 
}
コード例 #23
0
ファイル: device_q.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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;
}
コード例 #24
0
ファイル: device_s.c プロジェクト: ti-cortex-m4/tm4c1294ncpdt
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;
}
コード例 #25
0
ファイル: serial.c プロジェクト: cahirwpz/demoscene
LONG SerialGet() {
  return PopChar(&serial.recvq);
}
コード例 #26
0
uint    PopIntBig(void)
{
  return PopChar()*0x100 + PopChar();
}
コード例 #27
0
uint    PopIntLtl(void)
{
  uchar b = PopChar();
  return b + PopChar()*0x100;
}
コード例 #28
0
ファイル: Stream.cpp プロジェクト: AlexsandroAG/vsfiltermod
int InputStream::GetChar()
{
    if(m_queue.GetCount() < 2) PeekChar();
    return PopChar();
}
コード例 #29
0
ファイル: automatic1.c プロジェクト: feilongfl/tm4c1294ncpdt
// задание параметров для сумматора СЭМ-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);
}
コード例 #30
0
uchar	PopChar0Bcc(void)
{
  return(PopChar() & 0x7F);
}