static void ShowModemReadTimeCan(bool fShowTimeDate) { ShowHi(szTimeDate); if (GetDigitalDevice(ibCan) == 0) ShowLo(szNone); else { LoadCurrDigital(ibCan); ibPort = diCurr.ibPort; if (LoadConnect(ibCan) == 0) return; Clear(); if (mpboEnblCan[ibCan] == false) { sprintf(szHi+14,"%2u",ibCan+1); ShowLo(szBlocked); } else { time2 ti2 = ReadTimeCan(ibCan); if (ti2.fValid) { sprintf(szHi+14,"%2u",ibCan+1); Clear(); (fShowTimeDate) ? ShowTimeDate(ti2.tiValue) : ShowDeltaTime(ti2.tiValue); } else Error(); } SaveConnect(); } }
void NewLimits(void) { LoadCurrDigital(ibDig); uchar c; for (c=0; c<bCANALS; c++) { LoadPrevDigital(c); if (CompareCurrPrevLines(ibDig, c) == true) { mpcwStartRelCan[c] = 0; mpcwStartAbs16Can[c] = 0; mpcdwStartAbs32Can[c] = 0; mpboStartCan[c] = false; if (UseBounds() && IsLimitsAux(GetDigitalDevice(c))) { mpcwStopCan[c] = 4 + mpcwStopAuxCan[c]; if (mpcwStopCan[c] > wHOURS-1) mpcwStopCan[c] = wHOURS-1; } else { mpcwStopCan[c] = 4; } } } SaveCache(&chStartRelCan); SaveCache(&chStartAbs16Can); SaveCache(&chStartAbs32Can); SaveCache(&chStartCan); SaveCache(&chStopCan); }
void NextDayExtended7(void) { cwDayCan7++; memset(&mpCntDayCan7, 0, sizeof(mpCntDayCan7)); uchar c; for (c=0; c<bCANALS; c++) { if (GetDigitalDevice(c) == 0) { double db = *PGetCanImpAll(mpimAbsCan,c); db *= mpdbValueCntHou[c]; db += mpdbCount[c]; value6 vl; vl.bStatus = ST_OK; vl.dbValue = db; vl.tiUpdate = *GetCurrTimeDate(); mpCntDayCan7[c] = vl; } } SaveCntDay7(ibHardDay); }
void MakeSpecCurrent(uchar ibCan, uint wImp) { double db = 0; if (IsSpecCurrent(GetDigitalDevice(ibCan)) == 1) { // обработка информации по импульсам mpwImpHouCan[ibSoftHou][ibCan] += wImp; AddCanImpEng(mpimDayCan[ibSoftDay], ibCan, wImp); AddCanImpEng(mpimMonCan[ibSoftMon], ibCan, wImp); AddCanImpEng(mpimAbsCan, ibCan,wImp); // подготовка информации для Esc V if (LoadCntMon(tiCurr.bMonth-1) == false) db = 0; else db = mpdbCntMonCan[ PrevSoftMon() ][ibCan]; mpdbEsc_V[ibCan] = db; mptiEsc_V[ibCan] = *GetCurrTimeDate(); // подготовка информации для Esc S db = mpdwBase[ibCan] * mpdbValueCntHou[ibCan]; if (GetDigitalDevice(ibCan) == 19) db += mpdbCount[ibCan]; mpdbEsc_S[ibCan] = db; mptiEsc_S[ibCan] = *GetCurrTimeDate(); // подготовка информации для Esc U mptiEsc_U1[ibCan] = tiCurr; mptiEsc_U2[ibCan] = *GetCurrTimeDate(); } }
bool TestDigitals() { uchar c; for (c=0; c<bCANALS; c++) { if (GetDigitalDevice(c) != 0) { if (StreamPortCan(GetDigitalPort(c),c) == 0) return 0; } } return 1; }
void NextHouLimitsAux(void) { if (UseBounds()) { uchar c; for (c=0; c<bCANALS; c++) { if (IsLimitsAux(GetDigitalDevice(c))) { mpcwStopAuxCan[c]++; } } SaveCache(&chStopAuxCan); } }
static void ShowModemReadCntCurrCan(void) { if (GetDigitalDevice(ibCan) == 0) ShowFloat(GetCntCurrImp(ibCan)); else { LoadCurrDigital(ibCan); ibPort = diCurr.ibPort; if (LoadConnect(ibCan) == 0) return; Clear(); if (mpboEnblCan[ibCan] == false) ShowLo(szBlocked); else { double2 db2 = ReadCntCurrCan(ibCan); (db2.fValid) ? ShowDouble(db2.dbValue) : Error(); } SaveConnect(); } }
void Automatic(uchar ibMin, uchar ibMax) { uchar i; enKeyboard = KBD_POSTENTER; ShowHi(szAutomatic); Clear(); DelayInf(); for (ibPort=0; ibPort<bPORTS; ibPort++) { ShowPortDelayLo(ibPort); DelayInf(); fKey = 0; } Clear(); InitConnectKey(); ibX = 0; for (i=ibMin; i<ibMax; i++) { if (GetDigitalDevice(i) == 0) continue; uchar bRes = 0; LoadCurrDigital(i); ibPort = diCurr.ibPort; if (GetDigitalDevice(i) != 0) { if (StreamPortCan(GetDigitalPort(i),i) == 0) { bRes = 0xEE; break; } } ShowCanalNumber(i); ShowProgress(12,(ulong)100*i/(bCANALS-1)); DelayInf(); if (LoadConnect(i) == 0) break; Clear(); if (mpboEnblCan[i] == false) { ShowLo(szBlocked); DelayMsg(); } else switch (diCurr.bDevice) { #ifndef SKIP_A case 15: case 1: if (AutomaticA() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_B case 12: if (AutomaticJ() != 1) bRes = 0xEE; break; case 8: case 2: if (AutomaticB() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_C case 3: if (AutomaticC() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_D case 4: if (AutomaticD() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_E case 7: case 5: if (AutomaticE() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_F case 6: if (AutomaticF() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_G case 9: if (AutomaticG() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_H case 10: if (AutomaticH() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_I case 11: if (AutomaticI() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_K case 14: case 13: if (AutomaticK() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_L case 17: case 16: if (AutomaticK() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_M case 18: if (AutomaticM() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_N case 19: if (AutomaticN() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_O case 20: if (AutomaticO() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_P case 21: if (AutomaticP() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_Q case 22: if (AutomaticK() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_R case 23: if (AutomaticR() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_S case 24: if (AutomaticS() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_T case 25: if (AutomaticT() != 1) bRes = 0xEE; break; #endif #ifndef SKIP_V case 27: if (AutomaticV() != 1) bRes = 0xEE; break; #endif } SaveConnect(); if (bRes == 0xEE) { ibX++; Error(); Beep(); DelayMsg(); } if (fKey == true) bRes = 0xFF; fKey = 0; if (bRes == 0xFF) break; } ShowHi(szAutomatic); if (ibX != 0) { Clear(); sprintf(szLo+3, "ошибок: %-2u", ibX); LongBeep(); DelayMsg(); } else OK(); DelayMsg(); KeyBreakConnect(); SaveFactors(); }