// чтение коэффициентов для счётчика Меркурий-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); }
void QueryConfig34(void) { InitPush(0); PushChar(diCurr.bAddress); PushChar(0x6C); QueryIO(3+36+2, 2+2); }
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); }
void QueryEventA(uchar ibEvent, uchar j) { InitPush(0); PushChar(diCurr.bAddress); PushChar(4); PushChar((ibEvent << 4) | j); QueryIO(1+14+2, 2+1+2); }
void CDlgMotorMontior::OnTimer(UINT nIDEvent) { switch(nIDEvent) { case ID_TIME_GET_STATUS: { QueryIO(); // for Motor status } break; default: break; } CDialog::OnTimer(nIDEvent); }
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); }
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); }
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); }
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); }
// чтение коэффициентов для счётчика СЭТ-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); }
// чтение коэффициентов для счётчика Меркурий-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); }