Пример #1
0
// чтение коэффициентов для счётчика Меркурий-230
bool    ReadKoeffDeviceB_Special(void)
{
uchar   i;

  if (QueryOpenB_Full(25) == 0) return(0);


  for (i=0; i<bMINORREPEATS; i++)
  {
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(2);                        // чтение коэффициентов

    DelayOff();
    QueryIO(1+4+2, 2+1+2);

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

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


 // K трансформации
  dbKtrans = (InBuff(1)*0x100 + InBuff(2)) * (InBuff(3)*0x100 + InBuff(4));

  // K преобразования
  dbKpulse = 2000;

  return(1);
}
Пример #2
0
void    QueryConfig34(void)
{
  InitPush(0);

  PushChar(diCurr.bAddress);
  PushChar(0x6C);

  QueryIO(3+36+2, 2+2);
}
Пример #3
0
bool    AutomaticN(void)
{
uchar   i;

  for (i=0; i<bMINORREPEATS; i++)
  {
    InitPush(0);
    PushChar(0);
    PushChar(diCurr.bAddress);

    PushChar(8);

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

    QueryIO(5+8, 5+8);

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

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

  sprintf(szLo+1,"версия:");
  szLo[ 9] = InBuff(3);
  szLo[10] = InBuff(4);
  szLo[11] = InBuff(5);
  szLo[12] = InBuff(6);
  szLo[13] = InBuff(7);

  DelayInf(); Clear();


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

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

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

  ReadEnergyN();

  mpdwBase[ibDig] = mpdwChannelsA[0];

  return(1);
}
Пример #4
0
void    QueryEventA(uchar  ibEvent, uchar  j)
{
  InitPush(0);

  PushChar(diCurr.bAddress);           
  PushChar(4);                       

  PushChar((ibEvent << 4) | j);

  QueryIO(1+14+2, 2+1+2);
}
Пример #5
0
void CDlgMotorMontior::OnTimer(UINT nIDEvent) 
{
	switch(nIDEvent)
	{
	case ID_TIME_GET_STATUS:
		{
			QueryIO();		// for Motor status
		}
		break;
	default:
		break;
	}
	
	CDialog::OnTimer(nIDEvent);
}
Пример #6
0
void    QueryEngAbs34(void)
{
  InitPush(0);

  PushChar(diCurr.bAddress);
  PushChar(0x67);
  PushChar(0x00);
  PushChar(0xFF);
  PushChar(0);
  PushChar(0);
  PushChar(0);
  PushChar(0);

  QueryIO(3+81+2, 8+2);
}
Пример #7
0
void    QueryHeaderBNew(void)
{
  InitPush(0);

  PushChar(diCurr.bAddress);
  PushChar(6);
  (dwBaseCurr > 0xFFFF) ? PushChar(0x83) : PushChar(0x03);

  PushChar((dwBaseCurr % 0x10000) / 0x100);
  PushChar(dwBaseCurr % 0x100);

  PushChar(0xFF);

  QueryIO((uint)(1+15*17+2), 3+3+2);
}
Пример #8
0
bool    ChangeNumber34(uchar  bNumber)
{
  InitPush(0);

  PushChar(bNumber);
  PushChar(0x64);
  PushChar(0x00);
  PushChar(0x46);
  PushChar(0x00);
  PushChar(0x09);

  QueryIO(3+18+2, 6+2);

  if (Input() != SER_GOODCHECK) return(0);
  Beep();

  return(1);
}
Пример #9
0
bool    ChangeSpeed34(void)
{
  InitPush(0);

  PushChar(0);
  PushChar(0x64);
  PushChar(0x00);
  PushChar(0x46);
  PushChar(0x00);
  PushChar(0x09);

  QueryIO(3+18+2, 6+2);

  if (Input() != SER_GOODCHECK) return(0);
  Beep();

  ShowFoundNumber(InBuff(0));
  return(1);
}
Пример #10
0
// чтение коэффициентов для счётчика СЭТ-4ТМ
bool    ReadKoeffDeviceA(void)
{
uchar   i;

  if (QueryOpenA_Full(25) == 0) return(0);


  for (i=0; i<bMINORREPEATS; i++)
  {
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(2);                        // чтение коэффициентов

    DelayOff();
    QueryIO(1+10+2, 2+1+2);

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

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


 // K трансформации
  dbKtrans = (InBuff(1)*0x100 + InBuff(2)) * (InBuff(3)*0x100 + InBuff(4));


  for (i=0; i<bMINORREPEATS; i++)
  {
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(0x12);                     // чтение постоянной счётчика

    DelayOff();
    QueryIO(1+3+2, 2+1+2);

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

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


  switch (InBuff(2) & 0x0F)             // K преобразования
  {
    case 0:  dbKpulse = 10000;  break;
    case 1:  dbKpulse = 50000;  break;
    case 2:  dbKpulse =  2500;  break;
    case 3:  dbKpulse =  1000;  break;   // 12500
    case 4:  dbKpulse =  2000;  break;   // ?
    case 5:  dbKpulse =   500;  break;   // ?

    default: return(0);
  }

  return(1);
}
Пример #11
0
// чтение коэффициентов для счётчика Меркурий-230
bool    ReadKoeffDeviceB(void)
{
uchar   i;

  if (QueryOpenB_Full(25) == 0) return(0);


  for (i=0; i<bMINORREPEATS; i++)
  {
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(2);                        // чтение коэффициентов

    DelayOff();
    QueryIO(1+4+2, 2+1+2);

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

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


 // K трансформации
  dbKtrans = (InBuff(1)*0x100 + InBuff(2)) * (InBuff(3)*0x100 + InBuff(4));


  for (i=0; i<bMINORREPEATS; i++)
  {
    // первый вариант: ответ 3 байта
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(0x12);                     // чтение постоянной счётчика

    DelayOff();
    QueryIO(1+3+2, 2+1+2);

    if (Input() == SER_GOODCHECK) break;
    if (fKey == true) return(0);

    // второй вариант: ответ 6 байт
    InitPush(0);
    PushChar(diCurr.bAddress);
    PushChar(8);
    PushChar(0x12);                     // чтение постоянной счётчика

    DelayOff();
    QueryIO(1+6+2, 2+1+2);

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

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

  switch (InBuff(3) & 0x0F)             // K преобразования
  {
    case 1:  dbKpulse = 10000;  break;
    case 2:  dbKpulse =  2000;  break;
    case 3:  dbKpulse =  1000;  break;
    case 4:  dbKpulse =  2000;  break;

    default: return(0);
  }

  mpdbLevel[ibDig] = dbKpulse / 1000;

  return(1);
}