if (Event.SourceType=="TELEMETRY_EXT" && Event.Action=="KEY_PRESSED") { if (Event.GetParam("guid_pk")!="") { key=parseInt(Event.GetParam("param0")); id=Event.SourceId; DebugLogString("Key:"+key); DebugLogString("Mon:"+Itv_var(id+"mon")+" Cam:"+Itv_var(id+"cam")); switch(key) { case 18: Var_var(id+"cam")+="0"; break; //0 case 4: Var_var(id+"cam")+="1"; break; //1 case 7: Var_var(id+"cam")+="2"; break; //2 case 14: Var_var(id+"cam")+="3"; break; //3 case 11: Var_var(id+"cam")+="4"; break; //4 case 17: Var_var(id+"cam")+="5"; break; //5 case 5: Var_var(id+"cam")+="6"; break; //6 case 8: Var_var(id+"cam")+="7"; break; //7 case 15: Var_var(id+"cam")+="8"; break; //8 case 12: Var_var(id+"cam")+="9"; break; //9 case 39: DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key"); break; case 38: DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key"); Var_var(id+"play")=0; break; case 44: if (Var_var(id+"play")==1) { Var_var(id+"play")=0; DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); } else { Var_var(id+"play")=1; DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); } break; case 37: DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); break; case 40: //REC state=GetObjectState("CAM", Itv_var(Event.SourceId+"cam")); if (state.indexOf("RECORDING")==-1)DoReactStr("CAM",Itv_var(Event.SourceId+"cam"),"REC",""); else DoReactStr("CAM",Itv_var(Event.SourceId+"cam"),"REC_STOP",""); break; case 1: //Search - архив\живое видео if (Var_var(id+"arch")==1) { Var_var(id+"arch")=0; DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key"); DebugLogString("### живое видео"); } else { Var_var(id+"arch")=1; DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key"); DebugLogString("### режим архива"); } break; case 0: //layout DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key,layout<"+Var_var(id+"cam")+">"); Var_var(id+"cam")=""; break; case 9: // TILE|VM DoReactStr("CAM",Itv_var(id+"cam"),"CLEAR_SUBTITLES","title_id<"+Itv_var(id+"cam")+">"); case 13: //Mon - set monitor id if (parseInt(Var_var(id+"cam"))>0) Itv_var(id+"mon")=Var_var(id+"cam"); Var_var(id+"cam")=""; break; case 16: //Eneter - set camera id Itv_var(id+"cam")=Var_var(id+"cam"); Var_var(id+"cam")=""; DoReactStr("MONITOR",Itv_var(id+"mon"),"ACTIVATE_CAM","cam<"+Itv_var(id+"cam")+">"); break; case 24: //LEFT if (Var_var(id+"FOCUS")==1) Telemetry("FOCUS_OUT","FOCUS_OUT"); if (Var_var(id+"ZOOM")==1) Telemetry("ZOOM_OUT","ZOOM_OUT"); if (Var_var(id+"IRIS")==1) Telemetry("IRIS_CLOSE","IRIS_CLOSE"); break; case 26: //RIGHT if (Var_var(id+"FOCUS")==1) Telemetry("FOCUS_IN","FOCUS_IN"); if (Var_var(id+"ZOOM")==1) Telemetry("ZOOM_IN","ZOOM_IN"); if (Var_var(id+"IRIS")==1) Telemetry("IRIS_OPEN","IRIS_OPEN"); break; case 25: //ENTER /*screen=parseInt(Var_var(id+"cam")); if (screen>0 && screen<9) screen*=screen; if (Var_var(id+"cam")=="0") screen="*"; Var_var(Event.SourceId+"cam")=""; DebugLogString(screen+"-"+Var_var(Event.SourceId+"cam"));*/ screen=""; if (Var_var(id+"cam")=="1") screen="1"; if (Var_var(id+"cam")=="2") screen="4"; if (Var_var(id+"cam")=="3") screen="6"; if (Var_var(id+"cam")=="4") screen="9"; if (Var_var(id+"cam")=="5") screen="16"; if (Var_var(id+"cam")=="6") screen="25"; if (Var_var(id+"cam")=="7") screen="36"; if (Var_var(id+"cam")=="8") screen="49"; if (Var_var(id+"cam")=="9") screen="64"; if (Var_var(id+"cam")=="0") screen="*"; Var_var(id+"cam")=""; if (screen!="") DoReactStr("MONITOR",Itv_var(id+"mon"),"KEY_PRESSED","key"); break; case 27: //FOCUS if (Var_var(id+"FOCUS")==1) { Var_var(id+"FOCUS")=0; DoReactStr("CAM",Itv_var(id+"cam"),"CLEAR_SUBTITLES","title_id<"+Itv_var(id+"cam")+">"); } else { Var_var(id+"FOCUS")=1; Var_var(id+"ZOOM")=0; Var_var(id+"IRIS")=0; DoReactStr("CAM",Itv_var(id+"cam"),"ADD_SUBTITLES","command,page,title_id<"+Itv_var(id+"cam")+">"); } break; case 29: //ZOOM if (Var_var(id+"ZOOM")==1) { Var_var(id+"ZOOM")=0; DoReactStr("CAM",Itv_var(id+"cam"),"CLEAR_SUBTITLES","title_id<"+Itv_var(id+"cam")+">"); } else { Var_var(id+"ZOOM")=1; Var_var(id+"IRIS")=0; Var_var(id+"FOCUS")=0; DoReactStr("CAM",Itv_var(id+"cam"),"ADD_SUBTITLES","command,page,title_id<"+Itv_var(id+"cam")+">"); } break; case 31: //IRIS if (Var_var(id+"IRIS")==1) { Var_var(id+"IRIS")=0; DoReactStr("CAM",Itv_var(id+"cam"),"CLEAR_SUBTITLES","title_id<"+Itv_var(id+"cam")+">"); } else { Var_var(id+"IRIS")=1; Var_var(id+"FOCUS")=0; Var_var(id+"ZOOM")=0; DoReactStr("CAM",Itv_var(id+"cam"),"ADD_SUBTITLES","command,page,title_id<"+Itv_var(id+"cam")+">"); } break; case 32: //autofocus DoReactStr("TELEMETRY",GetPTZdevice(Itv_var(id+"cam")),"AUTOFOCUS_ON","cam<"+Var_var(id+"cam")+">,tel_prior<3>"); Itv_var("pre")=Var_var(Event.SourceId+"cam"); Var_var(Event.SourceId+"cam")=""; break; case 35: //preset - go_preset DoReactStr("TELEMETRY",GetPTZdevice(Itv_var(id+"cam")),"GO_PRESET","preset<"+Var_var(id+"cam")+">,tel_prior<3>"); DebugLogString("Go preset:"+Var_var(id+"cam")); Itv_var("pre")=Var_var(id+"cam"); Var_var(id+"cam")=""; break; case 36: //PTZ/MENU - save_preset DoReactStr("TELEMETRY",GetPTZdevice(Itv_var(Event.SourceId+"cam")),"SET_PRESET","preset<"+Var_var(Event.SourceId+"cam")+">,tel_prior<3>"); DebugLogString("PTZ:"+GetPTZdevice(Itv_var(Event.SourceId+"cam"))+" PRESET:"+Var_var(Event.SourceId+"cam")); Itv_var("pre")=Var_var(Event.SourceId+"cam"); Var_var(Event.SourceId+"cam")=""; break; }}//end guid } if (Event.SourceType=="TELEMETRY_EXT" && Event.Action=="KEY_RELEASED") { if (Event.GetParam("guid_pk")!="") { key=parseInt(Event.GetParam("param0")); id=Event.SourceId; switch(key) { case 24: //LEFT if (Var_var(id+"FOCUS")==1) Telemetry("FOCUS_STOP",""); if (Var_var(id+"ZOOM")==1) Telemetry("ZOOM_STOP",""); if (Var_var(id+"IRIS")==1) Telemetry("IRIS_STOP",""); break; case 26: //RIGHT if (Var_var(id+"FOCUS")==1) Telemetry("FOCUS_STOP",""); if (Var_var(id+"ZOOM")==1) Telemetry("ZOOM_STOP",""); if (Var_var(id+"IRIS")==1) Telemetry("IRIS_STOP",""); break; }} } function Telemetry(action,text) { DoReactStr("TELEMETRY",GetPTZdevice(Itv_var(Event.SourceId+"cam")),action,"speed<5>,cam<"+Var_var(Event.SourceId+"cam")+">,tel_prior<3>"); if (text=="") DoReactStr("CAM",Itv_var(Event.SourceId+"cam"),"CLEAR_SUBTITLES","title_id<"+Itv_var(Event.SourceId+"cam")+">"); else DoReactStr("CAM",Itv_var(Event.SourceId+"cam"),"ADD_SUBTITLES","command<"+text+"\r>,page,title_id<"+Itv_var(Event.SourceId+"cam")+">"); } if (Event.SourceType=="TELEMETRY_EXT" && Event.Action=="MOVED") { if (Event.GetParam("guid_pk")!="") { key=parseInt(Event.GetParam("param0")); type=parseInt(Event.GetParam("device")); DebugLogString("Device:"+type+" Key:"+key); if (type==0) { if (key==-1) DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); else DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); } else { if (key>0) DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); if (key<0) DoReactStr("MONITOR",Itv_var(Event.SourceId+"mon"),"KEY_PRESSED","key"); }} } function GetPTZdevice(camId) { if (Var_var("PTZ_" + camId) == "") { DebugLogString("PTZ device for camera " + camId + " is unknown!"); var re = /id\.[0-9]+<(.+?)>/g; var sObjId = GetObjectIds("TELEMETRY"); var Id; while (Id = re.exec(sObjId)) { if (GetObjectParam("TELEMETRY",Id[1],"cam") == camId) { Lock(); Var_var("PTZ_" + camId) = Id[1]; Unlock(); DebugLogString("PTZ device for camera " + camId + " -- " + Id[1]); return Id[1]; }} } else { return Var_var("PTZ_" + camId); } }