bool coreSonar(void); void blockValveInDir(unsigned char lDir,unsigned int exceptValveAddr,unsigned char parValve); void shuvTroubleCode(unsigned char parN,unsigned short par,bool newSt); bool coreValve(void); bool coreShuvk(void); void shunTroubleCode(unsigned char parN,unsigned short par,bool newSt); bool coreShun(void); bool coreShu(void); bool coreSonar() { // в extDataArrived writerToJournal(fireJ,type_extDevTrouble /* if(devStateNew & sonarTroubleStatus) {//в extDataArrived уже всё обновлено и счетчик посчитан writerToJournal(fireJ,type_devTrouble,1,panel,type,addr,devStateNew & sonarTroubleStatus,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0); } if(devStateRestore & sonarTroubleStatus) { writerToJournal(fireJ,type_devTrouble,0,panel,type,addr,devStateRestore & sonarTroubleStatus,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0); } */ /* if(devStateNew & 0x10)//инверсное! Есть сетевое напр. { writeflash(flashaddrDev+offsetExeDevStatus,devPar[0]);//обновляем статус! writerToJournal(fireJ,type_IPMsg,6,panel,type,addr,0,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0); } if(devStateRestore & 0x10) writerToJournal(fireJ,type_IPMsg,5,panel,type,addr,0,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест */ return 0; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void blockValveInDir(unsigned char lDir,unsigned int exceptValveAddr,unsigned char parValve) { unsigned short valveCnt; unsigned int lValveAddr,flashaddrBaseDirection; unsigned char lCommon,lExeDev; if(flashaddrBaseDirection=getaddr(0,addrBaseDirection+((lDir-1)*cellPtrSize))) { if(!parValve) rmStubAddr=readflash2(flashaddrBaseDirection+(valveCnt*3)+23);//тест тест тест тест тест тест тест тест тест тест тест тест while(valveCnt) { valveCnt--; lValveAddr=readflash3(flashaddrBaseDirection+23+(valveCnt*3)); if(parValve & parValveTryAutoOn)//тест тест тест тест тест тест тест тест тест тест тест тест { if(readflash(lValveAddr+offsetExeDevDyn) & exeDevDynAutOffByBtn) return;//тест тест тест тест тест тест тест тест тест тест тест тест } else if(parValve & parValveAutoOffByBtn) {//тест тест тест тест тест тест тест тест тест тест тест тест if(!(lExeDev=readflash(lValveAddr+offsetExeDevDyn) & exeDevDynAutOffByBtn)) writeflash(lValveAddr+offsetExeDevDyn,lExeDev|exeDevDynAutOffByBtn); } else if(parValve & parValveAutoOnByBtn) {//тест тест тест тест тест тест тест тест тест тест тест тест if(lExeDev=readflash(lValveAddr+offsetExeDevDyn) & exeDevDynAutOffByBtn) writeflash(lValveAddr+offsetExeDevDyn,lExeDev&~exeDevDynAutOffByBtn); } if(lValveAddr!=exceptValveAddr) { lCommon=readflash(lValveAddr+offsetExeDevCommon); if((!(lCommon & devCommonStatusBypass) && (!parValve || (parValve & parValveAutoOffByBtn))) || ((parValve & (parValveAutoOnByBtn|parValveTryAutoOn)) && (lCommon & devCommonStatusBypass))) { if(!parValve) writeflash(lValveAddr+offsetExeDevCommon,lCommon|devCommonStatusBypass);//тест тест тест тест тест тест тест тест тест тест тест тест else if(parValve & (parValveAutoOnByBtn|parValveTryAutoOn)) {//вкл авт writeflash(lValveAddr+offsetExeDevCommon,lCommon&~devCommonStatusBypass); } else if(parValve & parValveAutoOffByBtn)//выкл авт { writeflash(lValveAddr+offsetExeDevCommon,lCommon|devCommonStatusBypass); } pZ=lValveAddr+offsetExeDevName;//описание девайса devToJrnl=lValveAddr; writerToJournal(fireJ,type_devBypass,(parValve & (parValveAutoOnByBtn|parValveTryAutoOn))?0:1,0,type_Valve,readflash(lValveAddr+offsetExeDevAddr),1,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,readflash(lValveAddr+offsetExeDevStub),parValve?0x4d:0x4e);//автоматика отключена или вкл } } } } } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void shuvTroubleCode(unsigned char parN,unsigned short par,bool newSt) { //тест тест тест тест тест тест тест тест тест тест тест тест unsigned char code; unsigned int a; unsigned short tempPar; for(a=1;a<0x10000;a=a<<1) { code=0; tempPar=par&a;//тест тест тест тест тест тест тест тест тест тест тест тест if(parN==0x80) { if(tempPar&0x0003) { if((par & 0x03)==0x03) code=10;//тест тест тест тест тест тест тест тест тест тест тест тест } else if(tempPar&0x0008) code=11;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x1000) code=1;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x2000) code=2;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x4000) code=3;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x8000) code=4;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0400) code=7;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0800) code=9;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x00c0) { if((par&0xc0)==0xc0) code=15;//некорректное сочетание ДД } } else if(parN==0x81) { if(tempPar&0x0001) code=12;//вскрытие else if(tempPar&0x0002) code=13;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0010) code=8;//птест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0004) code=5;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0008) code=6;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0040) code=14;//тест тест тест тест тест тест тест тест тест тест тест тест } if(code) writerToJournal(fireJ,type_devTrouble,newSt,panel,type,addr,code,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест } return; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< bool coreShuvk() { //тест тест тест тест тест тест тест тест тест тест тест тест switch(parNumber) { case 0x80: if(devStateRestore & 0x10) devTroubleRestore();//выводим из неисправных if(devStateRestore & shuv80lTroubleStatus) { shuvTroubleCode(0x80,devStateRestore,0); } if((devStateNew|devStateRestore) & 0x03)//сообщения ШУВ { if((devPar[0]&0x03)==0) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,1,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0x03)==0x02) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,2,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0x03)==0x01) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,3,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест writeflash(flashaddrDev+offsetShuv80l,devPar[0]);//обновляем статус } if(devStateNew & 0x20)//вентилятор включен { writeflash(flashaddrDev+offsetShuv80l,devPar[0]);//обновляем статус writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,4,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x20)//вентилятор отключен { writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,5,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } if((devStateNew|devStateRestore) & 0xC0) { if((devPar[0]&0xC0)==0) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,6,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0xC0)==0x40) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,7,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0xC0)==0x80) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,8,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест writeflash(flashaddrDev+offsetShuv80l,devPar[0]);//обновляем статус } if(devStateNew & 0x02)//тест тест тест тест тест тест тест тест тест тест тест тест { writeflash(flashaddrDev+offsetShuv80h,devPar[0]);//обновляем статус writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,9,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x02) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,10,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); if(devStateNew & 0x01) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,20,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест break; case 0x81: if(devStateNew & 0x20) { writeflash(flashaddrDev+offsetShuv81l,devPar[0]);//обновляем статус writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,21,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест } else if(devStateRestore & 0x20) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,22,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест break; } return 0; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void shunTroubleCode(unsigned char parN,unsigned short par,bool newSt) { unsigned char code; unsigned int a; unsigned short tempPar; for(a=1;a<0x10000;a=a<<1) { code=0; tempPar=par&a;//тест тест тест тест тест тест тест тест тест тест тест тест if(parN==0x80) { if(tempPar&0x0100) code=1;//1 else if(tempPar&0x0200) code=2;//тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0400) code=3;//тест тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x0800) code=4;//тест тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x1000) code=5;//тест тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x2000) code=6;//тест тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x4000) code=7;//тест тест тест тест тест тест тест тест тест тест тест тест тест else if(tempPar&0x8000) code=8;//тест тест тест тест тест тест тест тест тест тест тест тест тест } if(code) writerToJournal(fireJ,type_devTrouble,newSt,panel,type,addr,code,0,0,(unsigned char)(pZ>>16),(unsigned char)(pZ>>8),(unsigned char)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест } return; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< bool coreShun() { switch(parNumber) { case 0x80: cmpDevPar(offsetShun80l);//тест тест тест тест тест тест тест тест тест тест тест тест if(devStateNew & 0x01) { writeflash(flashaddrDev+offsetShun80l,devPar[0]); if(!(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,11,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//"Ход на открытие" } else if(devStateRestore & 0x01) { //тест тест тест тест тест тест тест тест тест тест тест тест if(!(devPar[0]&0x08)) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } if(devStateNew & 0x02)//ход на закрытие { writeflash(flashaddrDev+offsetShun80l,devPar[0]); if(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,12,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//"Ход на закрытие" } else if(devStateRestore & 0x02) { //пропадание бита либо неисправность либо когда выполнится успешно. еще случай: была открыта, делаем ход на закр и сразу стоп if(!(devPar[0]&0x10)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } if(devStateNew & 0x08)//Клапан открыт { writeflash(flashaddrDev+offsetShun80l,devPar[0]); if(!(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,13,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x08) { if(!(devPar[0] & 0x10)) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,15,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//промежуточное } if(devStateNew & 0x10)//Клапан закрыт { writeflash(flashaddrDev+offsetShun80l,devPar[0]); if(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,14,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x10) { if(!(devPar[0] & 0x08)) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,15,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//промежуточное } if(devStateNew & 0x20)//Нагреватель включен { writeflash(flashaddrDev+offsetShun80l,devPar[0]); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,16,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x20) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,17,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); if(devStateNew & 0x40)//Температура низкая { writeflash(flashaddrDev+offsetShun80l,devPar[0]); writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,18,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x40) writerToJournal(fireJ,type_shuMsg,0,panel,type,addr,19,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); devPar[0]=devPar[1]; cmpDevPar(offsetShun80h); if(devStateNew & shun80hTroubleStatus) { devTrouble(offsetShun80h,0,0); shunTroubleCode(0x80,(unsigned short)(devStateNew<<8),1); } if(devStateRestore & shun80hTroubleStatus) { if(!(devPar[1] & shun80hTroubleStatus)) devTroubleRestore();//выводим из неисправных shunTroubleCode(0x80,(unsigned short)(devStateRestore<<8),0); } break; } return 0; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< bool coreValve() { unsigned char tl; if(queueCmd==queueCmd_cmd55) queue(ans,queueID_1W,queueCmd_writeDevParNoAck,type,addr,panel,0x5,devBlock55Mask,devBlock55,stub); switch(parNumber) { case 0x80: pZ=flashaddrDev+offsetExeDevName;//описание девайса if(devStateRestore & valve80lTroubleStatus)//бит 4, 6 инверсные (0-неисправность) { //exeDevState(flashaddrDev,newTrouble,type_Valve); valveTroubleCode(0x80,devStateRestore,1); } if(devStateNew & 0x80)//1- Обрыв цепи ПД { writeflash(flashaddrDev+offsetValve80l,devPar[0]);//обновляем статус valveTroubleCode(0x80,0x80,1); } else if(devStateRestore & 0x80)//тест тест тест тест тест тест тест тест тест тест тест тест { valveTroubleCode(0x80,0x80,0); } if(devStateNew & 0x50)//инверсно-восстановление заклинило или комплексной { writeflash(flashaddrDev+offsetValve80l,devPar[0]);//обновляем статус if((devPar[0] & 0x50)==0x50)//нет вообще { //exeDevState(flashaddrDev,restoreTrouble,type_Valve); devTroubleRestore(); } if(devStateNew & valve80lTroubleStatus)//тест тест тест тест тест тест тест тест тест тест тест тест { valveTroubleCode(0x80,devStateNew,0); } } if(devStateNew & 0x08) { writeflash(flashaddrDev+offsetValve80l,devPar[0]);//обновляем статус-состояние "Ход на открытие" writerToJournal(fireJ,type_startIU,(readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen)?1:0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,5,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//"Ход на открытие" if(devPar[0] & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,11,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//пуск с УЗЗ else if((devPar[0]&0x03)==0x01) { writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,4,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//пуск с шуз } } else if(devStateRestore & 0x08)//"Ход на открытие" восстановился. { if((!(devPar[1]&0x01)) && (devPar[0]&0x40)) { if(devPar[0] & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,12,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//стоп с УЗЗ if((devPar[0]&0x03)==0x01) { writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,7,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//стоп с шуз } else { if(devPar[0] & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,13,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//остановлено c УЗЗ else writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,8,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//остановлено } } //тест тест тест тест тест тест тест тест тест тест тест тест if(readflash(flashaddrDev+offsetExeDevCommon) & devCommonStatusOn) { if(!(devPar[1] & valve80hOpenStatus)) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devPar[1] & ((readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen)?valve80hOpenStatus:valve80hCloseStatus)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } if((devStateNew|devStateRestore) & 0x03)//тест тест тест тест тест тест тест тест тест тест тест тест { if((devPar[0]&0x03)==0) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,1,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0x03)==0x02) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,2,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else if((devPar[0]&0x03)==0x01) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,3,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест writeflash(flashaddrDev+offsetValve80l,devPar[0]);//обновляем статус } tl=devPar[0];//store devPar[0]=devPar[1]; cmpDevPar(offsetValve80h);//тест тест тест тест тест тест тест тест тест тест тест тест if(devStateNew & 0x10)//Задержанный пуск { writeflash(flashaddrDev+offsetValve80h,devPar[1]);//обновляем статус! writerToJournal(fireJ,type_delayOp,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devStateRestore & 0x10)//при отмене задержки при сбросе { if(!(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusTrouble) && !(devPar[1]&0x80) && !(tl&0x08)) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,15,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//Отмена задержки } if(devStateNew & valve80hOpenStatus) { writeflash(flashaddrDev+offsetValve80h,devPar[0]);//обновляем статус //тест тест тест тест тест тест тест тест тест тест тест тест if(readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen) { if(!(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,9,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//открыта } else if(devStateRestore & valve80hOpenStatus) { if(!(devPar[0]&valve80hCloseStatus)) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,14,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//промежуточное } if(devStateNew & valve80hCloseStatus) { writeflash(flashaddrDev+offsetValve80h,devPar[0]);//обновляем статус //тест тест тест тест тест тест тест тест тест тест тест тест if(!(readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen)) { if(!(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(readflash(flashaddrDev+offsetExeDevCommon)&devCommonStatusOn) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,10,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//закрыта } else if(devStateRestore & valve80hCloseStatus) { if(!(devPar[0] & valve80hOpenStatus)) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,14,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//промежуточное } if((devStateNew|devStateRestore) & (valve80hOpenStatus | valve80hCloseStatus)) { directAd=flashaddrDev+offsetValveConnectTemplateCnt; coreIUlogic(numOfZone+1,0,0x0d); } if(devStateNew & 0x80) { writeflash(flashaddrDev+offsetValve80h,devPar[1]);//тест тест тест тест тест тест тест тест тест тест тест тест writerToJournal(fireJ,type_startIU,(readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen)?0:1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,6,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//"Ход на закрытие" if(tl & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,11,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//пуск с УЗЗ else if((tl&0x03)==0x01) { writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,4,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//пуск с шуз } } else if(devStateRestore & 0x80)//тест тест тест тест тест тест тест тест тест тест тест тест { if((!(devPar[0]&0x02)) && (tl&0x40)) { if(tl & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,12,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//стоп с УЗЗ if((tl&0x03)==0x01) { writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,7,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//стоп с шуз } else { if(tl & 0x20) writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,13,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//тест тест тест тест тест тест тест тест тест тест тест тест else writerToJournal(fireJ,type_valveMsg,0,panel,type,addr,8,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0);//остановлено } } //тест тест тест тест тест тест тест тест тест тест тест тест if(readflash(flashaddrDev+offsetExeDevCommon) & devCommonStatusOn) { if(!(devPar[1] & valve80hCloseStatus)) writerToJournal(fireJ,type_startIU,0,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } else if(devPar[1] & ((readflash(flashaddrDev+offsetValvePCconfig) & valveNeedOpen)?valve80hOpenStatus:valve80hCloseStatus)) writerToJournal(fireJ,type_startIU,1,panel,type,addr,0,0,0,((unsigned long)pZ)>>16,((unsigned long)pZ)>>8,(unsigned long)pZ,stub,0); } break; case 0x83: cmpDevPar(offsetValve83l);//тест тест тест тест тест тест тест тест тест тест тест тест if(!flashaddrDev) return 1;//тест тест тест тест тест тест тест тест тест тест тест тест pZ=flashaddrDev+offsetExeDevName;//описание девайса if(devStateNew & valve83lTroubleStatus) { //exeDevState(flashaddrDev,newTrouble,type_Valve); writeflash(flashaddrDev+offsetValve83l,devPar[0]);//обновляем статус valveTroubleCode(0x83,devStateNew,1); } if(devStateRestore & valve83lTroubleStatus) { valveTroubleCode(0x83,devStateRestore,0); } devPar[0]=devPar[1]; cmpDevPar(offsetValve83h);//тест тест тест тест тест тест тест тест тест тест тест тест if(devStateNew & valve83hTroubleStatus) { //exeDevState(flashaddrDev,newTrouble,type_Valve); writeflash(flashaddrDev+offsetValve83h,devPar[0]);//обновляем статус valveTroubleCode(0x83,(unsigned short)(devStateNew<<8),1); } if(devStateRestore & valve83hTroubleStatus) { valveTroubleCode(0x83,(unsigned short)(devStateRestore<<8),0); } break; case 0x88: cmpDevPar(offsetValve88l);//тест тест тест тест тест тест тест тест тест тест тест тест if(!flashaddrDev) return 1;//тест тест тест тест тест тест тест тест тест тест тест тест pZ=flashaddrDev+offsetExeDevName;//описание девайса if(devStateRestore & valve88lTroubleStatus)//инверсно! { //exeDevState(flashaddrDev,newTrouble,type_Valve); valveTroubleCode(0x88,devStateRestore,1); } if(devStateNew & valve88lTroubleStatus)//инверсно! { writeflash(flashaddrDev+offsetValve88l,devPar[0]);//обновляем статус valveTroubleCode(0x88,devStateNew,0); } break; case 0x05: break; } return 0; }