Beispiel #1
0
time2   ReadTimeDateC_Short(void)
{
  DelayOff();
  QueryTimeC();

  if (RevInput() != SER_GOODCHECK) return GetTime2Error();


  return GetTime2(ReadTimeC(), true);
}
Beispiel #2
0
time2   QueryTimeC_Full(void)
{
  uchar i;
  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();
    QueryTimeC();

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return GetTime2Error();
  }

  if (i == bMINORREPEATS) return GetTime2Error();

  return GetTime2(ReadTimeC(), true);
}
ulong2  ReadSerialCanC(uchar  ibCan)
{
  uchar r;
  for (r=0; r<MaxRepeats(); r++)
  {
    DelayOff();
    QueryOpenC();

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return GetLong2Error();
  }

  if (r == MaxRepeats()) return GetLong2Error();
  ShowPercent(25);

  return QuerySerialC_Full(ibCan);
}
Beispiel #4
0
// задание параметров для счётчиков СС-301
bool    AutomaticC(void)
{
  if (ReadKoeffDeviceC() == 0) return(0);


  SetCanalsAll();                       // сохранение К преобразования и К трасформации

  DelayOff();
  QueryEnergyAbsC();                    // чтение накопленной энергии

  if (RevInput() != SER_GOODCHECK) return(0);
  ShowPercent(100);
/*
  ReadEnergyC();
  SetEnergyAll();                       // сохранение показаний счётчиков
*/
  return(1);
}
Beispiel #5
0
bool    QueryEnergyAbsC_Full2(uchar  bPercent)
{
  uchar i;
  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();
    QueryEnergyAbsC();

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return false;

    if (QueryIdC_Full() == 0) return false;
  }

  if (i == bMINORREPEATS) return false;
  ShowPercent(bPercent);

  ReadEnergyC();
  return(1);
}
Beispiel #6
0
bool    QueryIdC_Full(void)
{
  uchar i;
  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();
    QueryIdC();

    if ((RevInput() == SER_GOODCHECK) && (ReadIdC() == 1)) break;
    if (fKey == true) return false;

    ShowLo(szFailure20); Delay(1000);
    mpcwFailure2[ibDig]++;
  }

  Clear();
  if (i == bMINORREPEATS) return false;

  return(1);
}
Beispiel #7
0
// чтение коэффициентов для счётчика СС-301
bool    ReadKoeffDeviceC(void)
{
uchar   i;

  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();
    QueryOpenC();                       // открытие канала связи

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return(0);
  }

  if (i == bMINORREPEATS) return(0);
  ShowPercent(25);


  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();

    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(3);
    PushChar(34);

    PushChar(0);
    PushChar(0);
    PushChar(0);

    RevQueryIO(4+18+2, 3+3+2);

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return(0);
  }

  if (i == bMINORREPEATS) return(0);
  ShowPercent(50);


  combo32 co;

  co.mpbBuff[0] = InBuff(4);
  co.mpbBuff[1] = InBuff(5);
  co.mpbBuff[2] = InBuff(6);
  co.mpbBuff[3] = InBuff(7);

  dbKtrans = co.dwBuff;

  co.mpbBuff[0] = InBuff(8);
  co.mpbBuff[1] = InBuff(9);
  co.mpbBuff[2] = InBuff(10);
  co.mpbBuff[3] = InBuff(11);

  dbKtrans *= co.dwBuff;            // K трансформации


  for (i=0; i<bMINORREPEATS; i++)
  {
    DelayOff();

    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(3);
    PushChar(24);

    PushChar(0);
    PushChar(0);
    PushChar(0);

    RevQueryIO(4+8+2, 3+3+2);

    if (RevInput() == SER_GOODCHECK) break;
    if (fKey == true) return(0);
  }

  if (i == bMINORREPEATS) return(0);
  ShowPercent(60);


  dbKpulse = InBuff(8) + InBuff(9)*0x100;
  dbKpulse = 1000000/dbKpulse;      // K преобразования

  return(1);
}