Commit 05317afa authored by Claes Sjofors's avatar Claes Sjofors

Merge branch 'master'

parents e9761ca8 07568922
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,47 +6,7 @@ ...@@ -6,47 +6,7 @@
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <canvas id="canvas" width="1200" height="800"></canvas>
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"> <script src="ev.bundle.js"></script>
<img src="toolbar_ack.png"/>....
</div>
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_navigator.png"/>
</div>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_plc.png"/>....
</div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_graph.png"/>
</div>
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_objectgraph.png"/>
</div>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_navigator.png"/>
</div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_plc.png"/>
</div>
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem9" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
<div id="toolitem10" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_crossref.png"/>
</div>
<div id="toolitem11" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_help.png"/>
</div>
<div id="toolitem12" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_classhelp.png"/>
</div>
</div>
<canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src=ev.js></script>
<hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
"use strict";function PwrtStatus(t){this.sts=t,this.evenSts=function(){return t%2==0},this.oddSts=function(){return t%2==1},this.getSts=function(){return t}}var Pwr={eType_Boolean:98305,eType_Float32:98306,eType_Float64:98307,eType_Char:98308,eType_Int8:98309,eType_Int16:98310,eType_Int32:98311,eType_UInt8:98312,eType_UInt16:98313,eType_UInt32:98314,eType_Objid:98315,eType_Buffer:98316,eType_String:98317,eType_Enum:98318,eType_Struct:98319,eType_Mask:98320,eType_Array:98321,eType_Time:98322,eType_Text:98323,eType_AttrRef:98324,eType_UInt64:98325,eType_Int64:98326,eType_ClassId:98327,eType_TypeId:98328,eType_VolumeId:98329,eType_ObjectIx:98330,eType_RefId:98331,eType_DeltaTime:98332,eType_Status:98333,eType_NetStatus:98334,eType_CastId:98335,eType_ProString:98336,eType_DisableAttr:98337,eType_DataRef:98338,mPrv_RtRead:1,mPrv_RtWrite:2,mPrv_System:4,mPrv_Maintenance:8,mPrv_Process:16,mPrv_Instrument:32,mPrv_Operator1:64,mPrv_Operator2:128,mPrv_Operator3:256,mPrv_Operator4:512,mPrv_Operator5:1024,mPrv_Operator6:2048,mPrv_Operator7:4096,mPrv_Operator8:8192,mPrv_Operator9:16384,mPrv_Operator10:32768,mPrv_RtEventsAck:1<<18,mPrv_RtPlc:1<<19,mPrv_RtNavigator:1<<20,mPrv_DevRead:1<<21,mPrv_DevPlc:1<<22,mPrv_DevConfig:1<<23,mPrv_DevClass:1<<24,mPrv_RtEventsBlock:1<<25,mPrv_Administrator:1<<26,mPrv_SevRead:1<<27,mPrv_SevAdmin:1<<28,mAccess_RtRead:1,mAccess_RtWrite:2,mAccess_System:4,mAccess_Maintenance:8,mAccess_Process:16,mAccess_Instrument:32,mAccess_RtEventsBlock:1<<25,mAccess_RtEventsAck:1<<18,mAccess_RtPlc:1<<19,mAccess_RtNavigator:1<<20,mAccess_AllRt:35454975,mAccess_AllOperators:65472,mAccess_AllPwr:-1,mAdef_pointer:1,mAdef_array:2,mAdef_backup:4,mAdef_changelog:8,mAdef_state:16,mAdef_const:32,mAdef_rtvirtual:64,mAdef_devbodyref:128,mAdef_dynamic:256,mAdef_publicwrite:512,mAdef_noedit:1024,mAdef_invisible:2048,mAdef_refdirect:4096,mAdef_noinvert:8192,mAdef_noremove:16384,mAdef_rtdbref:32768,mAdef_private:65536,mAdef_class:131072,mAdef_superclass:262144,mAdef_buffer:524288,mAdef_nowbl:1048576,mAdef_alwayswbl:2097152,mAdef_disableattr:4194304,mAdef_rthide:8388608},Pwrb={mXttMethodsFlagsMask_IsConfigured:1,mXttOpMethodsMask_OpenGraph:1,mXttOpMethodsMask_OpenObjectGraph:2,mXttOpMethodsMask_OpenTrend:4,mXttOpMethodsMask_OpenHistory:8,mXttOpMethodsMask_OpenFast:16,mXttOpMethodsMask_Camera:32,mXttOpMethodsMask_HistEvent:64,mXttOpMethodsMask_BlockEvents:128,mXttOpMethodsMask_Help:256,mXttOpMethodsMask_Photo:512,mXttOpMethodsMask_Note:1024,mXttOpMethodsMask_ParentObjectGraph:2048,mXttMntMethodsMask_OpenObject:1,mXttMntMethodsMask_OpenTrace:2,mXttMntMethodsMask_RtNavigator:4,mXttMntMethodsMask_OpenCrossref:8,mXttMntMethodsMask_HelpClass:16,mXttMntMethodsMask_DataSheet:32,mXttMntMethodsMask_CircuitDiagram:64,mXttMntMethodsMask_Simulate:1<<31};function PwrtObjid(t,e){this.oix=e,this.vid=t}function PwrtAttrRef(){this.objid,this.offset,this.body,this.size,this.flags}function CdhrNumber(t,e){this.value=t,this.sts=e,this.evenSts=function(){return e%2==0},this.oddSts=function(){return e%2==1},this.getSts=function(){return e}}var CdhC={cUserVolMin:65793,cUserVolMax:16711422};function UserdataCbReturn(){this.userdata,this.row}function CliTable(t,e){this.command=t,this.qualifier=e}var CliC={SUCCESS:1,SYNTAX_ERROR:2,UNKNOWN_COMMAND:4,QUALNOTFOUND:6,VERB_VECT_SIZE:5,STATE_INIT:0,STATE_VERB:1,STATE_QUAL:2,STATE_QUALVALUE:3,STATE_SPACE:4,STATE_EQUAL:5,STATE_ERROR:6,STATE_QUOTE_VERB:7,STATE_QUOTE_QUALVALUE:8,STATE_QUALVALUE_EXACT:9,STATE_VERB_EXACT:10,TAB:"\t",SPACE:" "},MhC={eEvent_Ack:1,eEvent_Block:2,eEvent_Cancel:3,eEvent_CancelBlock:4,eEvent_Missing:5,eEvent_Reblock:6,eEvent_Return:7,eEvent_Unblock:8,eEvent_InfoSuccess:32,eEvent_Alarm:64,eEvent_MaintenanceAlarm:128,eEvent_SystemAlarm:256,eEvent_UserAlarm1:512,eEvent_UserAlarm2:1024,eEvent_UserAlarm3:2048,eEvent_UserAlarm4:4096,eEvent_Info:8192,eEventPrio_A:67,eEventPrio_B:66,eEventPrio_C:65,eEventPrio_D:64,mEventStatus_NotRet:1,mEventStatus_NotAck:2,mEventStatus_Block:4};function MhEventId(){this.nix,this.idx,this.birthTime}function MhEvent(){this.eventTime,this.eventText,this.eventName,this.eventFlags,this.eventStatus,this.eventId,this.targetId,this.eventType,this.object,this.supObject,this.eventMoreText,this.syncIdx}function Sub(){this.sts,this.refid,this.type,this.elements,this.name,this.value}function ObjectInfo(){this.objid,this.cid,this.has_children,this.name,this.description,this.classname,this.full_name,this.param1}function AttributeInfo(){this.name,this.type,this.size,this.flags,this.element,this.objid,this.full_name,this.classname}function MenuButton(){this.type,this.text,this.name,this.url}function OpwindMenuInfo(){this.title,this.text,this.enable_language,this.enable_login,this.enable_alarmlist,this.enable_eventlog,this.enable_navigator,this.disable_help,this.disable_proview,this.language,this.buttons=[]}function CrrInfo(){this.type,this.objid,this.name,this.classname}function GlowPieInfo(){this.sector_num,this.min_val,this.max_val}function GlowBarChartInfo(){this.bars,this.barsegments,this.min_value,this.max_value}function GlowTableInfo(){this.columns,this.rows,this.column_size=new Array(Glow.TABLE_MAX_COL)}function PendingData(t,e){this.func_cb=t,this.data=e}var GdhOp={GET_OP_SELF:1,GET_OP_METHOD_PLC:2,GET_OP_METHOD_OBJECTGRAPH:3,GET_OP_METHOD_GRAPH:4,GET_OP_METHOD_HELPCLASS:5};function Gdh(){var I=1,M=2,B=3,T=4,R=5,j=6,G=7,N=9,Q=10,D=15,V=25,L=26,Y=29,K=36,z=39,F=42,W=50,J=57,X=63,H=64,q=65,Z=66,$=67,tt=68;this.debug=!1,this.pending=[],this.sub=[],this.PORT=4448,this.ws=null,this.open_cb=null,this.close_cb=null,this.return_cb=null,this.next_id=1234,this.subscriptionCount=1,this.listSend=!1,this.init=function(){""===window.location.hostname?this.ws=new WebSocket("ws:127.0.0.1:4448"):this.ws=new WebSocket("ws://"+window.location.hostname+":4448"),this.ws.binaryType="arraybuffer",(this.ws.gdh=this).ws.onopen=function(t){null!==this.gdh.open_cb&&this.gdh.open_cb()},this.ws.onclose=function(){this.debug&&console.log("Socket closed"),null!==this.gdh.close_cb&&this.gdh.close_cb()},this.ws.onmessage=function(t){if("string"==typeof t.data)console.log("String message received",t,t.data);else if(t.data instanceof ArrayBuffer){var e=new DataView(t.data),n=e.getUint8(0),i=e.getUint32(1),s=e.getUint32(5);switch(n){case R:this.gdh.debug&&console.log("GetObjectInfoBoolean received");var a=e.getUint8(9);(0,this.gdh.pending[i].func_cb)(i,s,a),delete this.gdh.pending[i];break;case G:this.gdh.debug&&console.log("GetObjectInfoInt received");a=e.getUint32(9);(P=this.gdh.pending[i]).func_cb(i,P.data,s,a),delete this.gdh.pending[i];break;case j:this.gdh.debug&&console.log("GetObjectInfoFloat received");a=e.getFloat32(9);(P=this.gdh.pending[i]).func_cb(i,P.data,s,a),delete this.gdh.pending[i];break;case J:this.gdh.debug&&console.log("GetObjectInfoFloatArray received");var o=e.getInt32(9);a=new Array(o);d=13;for(var l=0;l<o;l++)a[l]=e.getFloat32(d),d+=4;(P=this.gdh.pending[i]).func_cb(i,P.data,s,a),delete this.gdh.pending[i];break;case I:this.gdh.debug&&console.log("SetObjectInfoBoolean received",i,s);break;case B:this.gdh.debug&&console.log("SetObjectInfoInt received",i,s);break;case M:this.gdh.debug&&console.log("SetObjectInfoFloat received",i,s);break;case T:this.gdh.debug&&console.log("SetObjectInfoString received",i,s);break;case N:this.gdh.debug&&console.log("ToggleObjectInfo received",i,s);break;case Q:this.gdh.debug&&console.log("RefObjectInfo received",i,s),delete this.gdh.pending[i];break;case D:this.gdh.debug&&console.log("UnrefObjectInfo received",i,s),delete this.gdh.pending[i];break;case L:this.gdh.debug&&console.log("RefObjectInfoList received",i,s),(0,this.gdh.pending[i].func_cb)(i,s),delete this.gdh.pending[i];break;case V:var h=9,r=e.getUint32(h);this.gdh.debug&&console.log("GetObjectRefInfoAll received",i,r),h+=4;for(l=0;l<r;l++){var A=e.getUint32(h);h+=4;var c=e.getUint32(h);h+=4;var g=this.gdh.sub[A];if(void 0===g)h+=c;else{switch(g.type){case Pwr.eType_Boolean:if(g.elements<=1)a=e.getUint8(h),h+=1;else{(f=c)!=g.elements&&console.log("Subscription size error",f,g.elements,A),a=new Array(f);for(var d=0;d<f;d++)a[d]=e.getUint8(h),h+=1}break;case Pwr.eType_Float32:if(g.elements<=1)a=e.getFloat32(h),h+=4;else{(f=c/4)!=g.elements&&console.log("Subscription size error",f,g.elements,A),a=new Array(f);for(d=0;d<f;d++)a[d]=e.getFloat32(h),h+=4}break;case Pwr.eType_Int8:case Pwr.eType_Int16:case Pwr.eType_Int32:case Pwr.eType_UInt8:case Pwr.eType_UInt16:case Pwr.eType_UInt32:case Pwr.eType_Status:case Pwr.eType_NetStatus:case Pwr.eType_Mask:case Pwr.eType_Enum:case GraphIfc.eType_Bit:if(g.elements<=1)a=e.getInt32(h),h+=4;else{(f=c/4)!=g.elements&&console.log("Subscription size error",f,g.elements,A),a=new Array(f);for(d=0;d<f;d++)a[d]=e.getInt32(h),h+=4}break;case Pwr.eType_String:case Pwr.eType_Time:case Pwr.eType_DeltaTime:case Pwr.eType_AttrRef:case Pwr.eType_Objid:if(g.elements<=1){var _=e.getInt16(h);h+=2;var u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);a=String.fromCharCode.apply(null,u)}else{var f;(f=g.elements)!=g.elements&&console.log("Subscription size error",f,g.elements,A),a=new Array(f);for(var v=0;v<f;v++){_=e.getInt16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);a[v]=String.fromCharCode.apply(null,u)}}}this.gdh.sub[A].value=a}}if(void 0===this.gdh.pending[i]){console.log("** GetObjectRefInfoAll received removed",i);break}(0,this.gdh.pending[i].func_cb)(i,s),delete this.gdh.pending[i];break;case z:var m=[];h=9,r=e.getUint32(h);this.gdh.debug&&console.log("GetAllXttChildren received",i,r),console.log("GetAllXttChildren received",s,i,r),h+=4;for(l=0;l<r;l++){(b=new ObjectInfo).objid=new PwrtObjid,b.objid.vid=e.getUint32(h),h+=4,b.objid.oix=e.getUint32(h),h+=4,b.cid=e.getUint32(h),h+=4,b.has_children=0!==e.getUint16(h),h+=2;_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);b.name=String.fromCharCode.apply(null,u);var w=e.getUint16(h);h+=2,u=new Uint8Array(w);for(d=0;d<w;d++)u[d]=e.getUint8(h++);b.description=String.fromCharCode.apply(null,u);var p=e.getUint16(h);h+=2,u=new Uint8Array(p);for(d=0;d<p;d++)u[d]=e.getUint8(h++);b.classname=String.fromCharCode.apply(null,u),m.push(b)}(P=this.gdh.pending[i]).func_cb(i,P.data,s,m),delete this.gdh.pending[i];break;case K:m=[],h=9,r=e.getUint32(h);this.gdh.debug&&console.log("GetAllClassAttributes received",i,r),h+=4;for(l=0;l<r;l++){(b=new AttributeInfo).type=e.getUint32(h),h+=4,b.flags=e.getUint32(h),h+=4,b.size=e.getUint16(h),h+=2,b.elements=e.getUint16(h),h+=2;_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);b.name=String.fromCharCode.apply(null,u),_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);b.classname=String.fromCharCode.apply(null,u),m.push(b)}(P=this.gdh.pending[i]).func_cb(i,P.data,s,m),delete this.gdh.pending[i];break;case X:case tt:case q:this.gdh.debug&&console.log("GetObject received",i,s);var b=null;if(0!=(1&s)){h=9;(b=new ObjectInfo).objid=new PwrtObjid,b.objid.vid=e.getUint32(h),h+=4,b.objid.oix=e.getUint32(h),h+=4,b.cid=e.getUint32(h),h+=4,b.has_children=0!==e.getUint16(h),h+=2;_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);b.name=String.fromCharCode.apply(null,u),_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);b.fullname=String.fromCharCode.apply(null,u);p=e.getUint16(h);h+=2,u=new Uint8Array(p);for(d=0;d<p;d++)u[d]=e.getUint8(h++);b.classname=String.fromCharCode.apply(null,u);w=e.getUint16(h);h+=2,u=new Uint8Array(w);for(d=0;d<w;d++)u[d]=e.getUint8(h++);b.description=String.fromCharCode.apply(null,u);var E=e.getUint16(h);h+=2,u=new Uint8Array(E);for(d=0;d<E;d++)u[d]=e.getUint8(h++);b.param1=String.fromCharCode.apply(null,u)}(P=this.gdh.pending[i]).func_cb(i,P.data,s,b),delete this.gdh.pending[i];break;case F:if(0!=(1&s)){h=9,m=[],r=e.getUint16(h);h+=2,this.gdh.debug&&console.log("CrrSignal received",i,r);for(l=0;l<r;l++){(b=new CrrInfo).type=e.getUint16(h),h+=2,b.objid=new PwrtObjid,b.objid.vid=e.getUint32(h),h+=4,b.objid.oix=e.getUint32(h),h+=4;_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);b.name=String.fromCharCode.apply(null,u);p=e.getUint16(h);h+=2,u=new Uint8Array(p);for(d=0;d<p;d++)u[d]=e.getUint8(h++);b.classname=String.fromCharCode.apply(null,u),m.push(b)}}(P=this.gdh.pending[i]).func_cb(i,P.data,s,m),delete this.gdh.pending[i];break;case H:m=new OpwindMenuInfo,h=9;if(this.gdh.debug&&console.log("GetOpwindMenu received",i,r),console.log("GetOpwindMenu received",s,i),1&s){_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);m.title=String.fromCharCode.apply(null,u),_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);m.text=String.fromCharCode.apply(null,u),m.enable_language=e.getUint32(h),h+=4,m.enable_login=e.getUint32(h),h+=4,m.enable_alarmlist=e.getUint32(h),h+=4,m.enable_eventlog=e.getUint32(h),h+=4,m.enable_navigator=e.getUint32(h),h+=4,m.disable_help=e.getUint32(h),h+=4,m.disable_proview=e.getUint32(h),h+=4,m.language=e.getUint32(h),h+=4;var x=e.getUint16(h);h+=2;for(l=0;l<x;l++){var C=new MenuButton;C.type=e.getUint32(h),h+=4,_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);C.text=String.fromCharCode.apply(null,u),_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);C.name=String.fromCharCode.apply(null,u),_=e.getUint16(h),h+=2,u=new Uint8Array(_);for(d=0;d<_;d++)u[d]=e.getUint8(h++);C.url=String.fromCharCode.apply(null,u),m.buttons.push(C)}}(P=this.gdh.pending[i]).func_cb(i,P.data,s,m),delete this.gdh.pending[i];break;case Y:h=9;this.gdh.debug&&console.log("Check user received",i,r),console.log("Check user received",s,i);var y=0;1&s&&(y=e.getUint32(h),h+=4),(P=this.gdh.pending[i]).func_cb(i,P.data,s,y),delete this.gdh.pending[i];break;case W:if(1&s){h=9,_=e.getUint16(h);h+=2;for(u=new Uint8Array(_),d=0;d<_;d++)u[d]=e.getUint8(h++);var O=String.fromCharCode.apply(null,u)}(P=this.gdh.pending[i]).func_cb(i,P.data,s,O),delete this.gdh.pending[i];break;case Z:m=[],h=9,r=e.getUint32(h);this.gdh.debug&&console.log("MhSync received",i,r),h+=4;for(l=0;l<r;l++){t=new MhEvent;var U=e.getUint16(h);h+=2;for(u=new Uint8Array(U),d=0;d<U;d++)u[d]=e.getUint8(h++);t.eventTime=String.fromCharCode.apply(null,u),U=e.getUint16(h),h+=2,u=new Uint8Array(U);for(d=0;d<U;d++)u[d]=e.getUint8(h++);t.eventText=String.fromCharCode.apply(null,u),U=e.getUint16(h),h+=2,u=new Uint8Array(U);for(d=0;d<U;d++)u[d]=e.getUint8(h++);t.eventName=String.fromCharCode.apply(null,u),t.eventFlags=e.getUint32(h),h+=4,t.eventStatus=e.getUint32(h),h+=4,t.eventPrio=e.getUint32(h),h+=4,t.eventId=new MhEventId,t.eventId.nix=e.getUint32(h),h+=4,t.eventId.idx=e.getUint32(h),h+=4,U=e.getUint16(h),h+=2,u=new Uint8Array(U);for(d=0;d<U;d++)u[d]=e.getUint8(h++);t.eventId.birthTime=String.fromCharCode.apply(null,u),t.targetId=new MhEventId,t.targetId.nix=e.getUint32(h),h+=4,t.targetId.idx=e.getUint32(h),h+=4,U=e.getUint16(h),h+=2,u=new Uint8Array(U);for(d=0;d<U;d++)u[d]=e.getUint8(h++);t.targetId.birthTime=String.fromCharCode.apply(null,u),t.eventType=e.getUint32(h),h+=4;var S=new PwrtObjid(0,0);S.vid=e.getUint32(h),h+=4,S.oix=e.getUint32(h),h+=4,t.object=new PwrtAttrRef,t.object.objid=S,t.object.offset=e.getUint32(h),h+=4,t.object.body=e.getUint32(h),h+=4,t.object.size=e.getUint32(h),h+=4,t.object.flags=e.getUint32(h),h+=4;var k=new PwrtObjid(0,0);k.vid=e.getUint32(h),h+=4,k.oix=e.getUint32(h),h+=4,t.supObject=new PwrtAttrRef,t.supObject.objid=k,t.supObject.offset=e.getUint32(h),h+=4,t.supObject.body=e.getUint32(h),h+=4,t.supObject.size=e.getUint32(h),h+=4,t.supObject.flags=e.getUint32(h),h+=4,U=e.getUint16(h),h+=2,u=new Uint8Array(U);for(d=0;d<U;d++)u[d]=e.getUint8(h++);t.eventMoreText=String.fromCharCode.apply(null,u),t.syncIdx=e.getUint32(h),h+=4,m.push(t)}(P=this.gdh.pending[i]).func_cb(i,P.data,s,m),delete this.gdh.pending[i];break;case $:var P;(P=this.gdh.pending[i]).func_cb(i,P.data,s),delete this.gdh.pending[i];break;default:console.log("Unknown message type")}}}},this.getObjectInfoBoolean=function(t,e){this.return_cb=e;var n=new Uint8Array(t.length+6);n[0]=R,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;for(var i=0;i<t.length;i++)n[i+6]=t.charCodeAt(i);this.pending[this.next_id]=new PendingData(e,null),this.ws.send(n),this.next_id++},this.getObjectInfoInt=function(t,e,n){this.return_cb=e;var i=new Uint8Array(t.length+6);i[0]=G,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var s=0;s<t.length;s++)i[s+6]=t.charCodeAt(s);this.pending[this.next_id]=new PendingData(e,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloat=function(t,e,n){this.return_cb=e;var i=new Uint8Array(t.length+6);i[0]=j,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var s=0;s<t.length;s++)i[s+6]=t.charCodeAt(s);this.pending[this.next_id]=new PendingData(e,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloatArray=function(t,e,n,i){this.return_cb=n;var s=new Uint8Array(t.length+10);s[0]=J,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=e>>16&255,s[9]=e>>24&255;for(var a=0;a<t.length;a++)s[a+10]=t.charCodeAt(a);this.pending[this.next_id]=new PendingData(n,i),this.ws.send(s),this.next_id++},this.refObjectInfo=function(t,e,n){var i=new Sub;if(i.name=t,i.refid=this.subscriptionCount,i.type=e,i.elements=n,this.sub[this.subscriptionCount]=i,this.subscriptionCount++,this.listSent){var s;s=12+i.name.length;var a=new Uint8Array(s+10);a[0]=Q,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,this.debug&&console.log("RefObjectInfo: ",i.refid);var o=6;a[o++]=255&i.refid,a[o++]=i.refid>>8&255,a[o++]=i.refid>>16&255,a[o++]=i.refid>>24&255,a[o++]=255&i.elements,a[o++]=i.elements>>8&255,a[o++]=i.elements>>16&255,a[o++]=i.elements>>24&255,a[o++]=255&i.name.length,a[o++]=i.name.length>>8&255,a[o++]=i.name.length>>16&255,a[o++]=i.name.length>>24&255;for(var l=0;l<i.name.length;l++)a[o++]=i.name.charCodeAt(l);return this.pending[this.next_id]=new PendingData(this.refObjectInfoReply,null),this.debug&&console.log("Sending RefObjectInfo",this.next_id,s,o),this.ws.send(a),this.next_id++,i.refid}return i.refid},this.refObjectInfoReply=function(t,e){this.debug&&console.log("refObjectInfoReply",t,e)},this.unrefObjectInfo=function(t){var e=new Uint8Array(14);e[0]=D,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,this.debug&&console.log("UnrefObjectInfo: ",t);var n=6;e[n++]=255&t,e[n++]=t>>8&255,e[n++]=t>>16&255,e[n++]=t>>24&255,this.pending[this.next_id]=new PendingData(this.unrefObjectInfoReply,null),this.debug&&console.log("Sending UnrefObjectInfo",this.next_id,4,10,t),this.ws.send(e),this.next_id++,delete this.sub[t]},this.refObjectInfoList=function(t){var e=0,n=0;for(var i in this.return_cb=t,this.sub)e+=12+this.sub[i].name.length,n++;var s=new Uint8Array(e+10);s[0]=L,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&n,s[7]=n>>8&255,s[8]=n>>16&255,s[9]=n>>24&255;var a=10;for(var i in this.sub)if(0!==i){this.debug&&console.log("RefObjectInfoList: ",this.sub[i].refid),s[a++]=255&this.sub[i].refid,s[a++]=this.sub[i].refid>>8&255,s[a++]=this.sub[i].refid>>16&255,s[a++]=this.sub[i].refid>>24&255,s[a++]=255&this.sub[i].elements,s[a++]=this.sub[i].elements>>8&255,s[a++]=this.sub[i].elements>>16&255,s[a++]=this.sub[i].elements>>24&255,s[a++]=255&this.sub[i].name.length,s[a++]=this.sub[i].name.length>>8&255,s[a++]=this.sub[i].name.length>>16&255,s[a++]=this.sub[i].name.length>>24&255;for(var o=0;o<this.sub[i].name.length;o++)s[a++]=this.sub[i].name.charCodeAt(o)}this.pending[this.next_id]=new PendingData(t,null),this.debug&&console.log("Sending RefObjectInfoList",this.next_id,e,a,this.next_id),this.ws.send(s),this.next_id++,this.listSent=!0},this.refObjectInfoListReply=function(t,e){this.debug&&console.log("refObjectInfoListReply",t,e)},this.getRefObjectInfoAll=function(t){var e=new Uint8Array(6);e[0]=V,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,this.pending[this.next_id]=new PendingData(t,null),this.debug&&console.log("Sending getRefObjectInfoAll",this.next_id),this.ws.send(e),this.next_id++},this.getRefObjectInfoAllReply=function(t,e){this.debug&&console.log("getRefObjectInfoAllReply",t,e)},this.getObjectRefInfo=function(t){return this.debug&&console.log("getObjectRefInfo",t,this.sub[t].value),this.sub[t].value},this.setObjectInfoBoolean=function(t,e){var n=new Uint8Array(12+t.length);n[0]=I,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&e,n[7]=e>>8&255,n[8]=e>>16&255,n[9]=e>>24&255,n[10]=255&t.length,n[11]=t.length>>8&255;for(var i=12,s=0;s<t.length;s++)n[i++]=t.charCodeAt(s);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoBoolean",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoInt=function(t,e){var n=new Uint8Array(12+t.length);n[0]=B,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&e,n[7]=e>>8&255,n[8]=e>>16&255,n[9]=e>>24&255,n[10]=255&t.length,n[11]=t.length>>8&255;for(var i=12,s=0;s<t.length;s++)n[i++]=t.charCodeAt(s);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoInt",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoFloat=function(t,e){var n=new Uint8Array(12+t.length);n[0]=M,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;var i=new ArrayBuffer(4);new Float32Array(i)[0]=e;var s=new Uint8Array(i);n[6]=s[0],n[7]=s[1],n[8]=s[2],n[9]=s[3],n[10]=255&t.length,n[11]=t.length>>8&255;for(var a=12,o=0;o<t.length;o++)n[a++]=t.charCodeAt(o);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoFloat",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoString=function(t,e){var n,i=new Uint8Array(10+e.length+t.length);i[0]=T,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.length,i[7]=e.length>>8&255;var s=8;for(n=0;n<e.length;n++)i[s++]=e.charCodeAt(n);for(i[s++]=255&t.length,i[s++]=t.length>>8&255,n=0;n<t.length;n++)i[s++]=t.charCodeAt(n);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoString",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.toggleObjectInfo=function(t){var e=new Uint8Array(8+t.length);e[0]=N,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,e[6]=255&t.length,e[7]=t.length>>8&255;for(var n=8,i=0;i<t.length;i++)e[n++]=t.charCodeAt(i);return this.ws.send(e),this.debug&&console.log("Sending toggleObjectInfoBoolean",this.next_id,t,value),this.next_id++,new PwrtStatus(1)},this.getAllXttChildren=function(t,e,n){var i=new Uint8Array(14);i[0]=z,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.vid,i[7]=t.vid>>8&255,i[8]=t.vid>>16&255,i[9]=t.vid>>24&255,i[10]=255&t.oix,i[11]=t.oix>>8&255,i[12]=t.oix>>16&255,i[13]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(e,n),this.debug&&console.log("Sending getAllXttChildren",this.next_id),this.ws.send(i),this.next_id++},this.getAllClassAttributes=function(t,e,n,i){var s=new Uint8Array(18);s[0]=K,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=t>>16&255,s[9]=t>>24&255,s[10]=255&e.vid,s[11]=e.vid>>8&255,s[12]=e.vid>>16&255,s[13]=e.vid>>24&255,s[14]=255&e.oix,s[15]=e.oix>>8&255,s[16]=e.oix>>16&255,s[17]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getAllClassAttributes",this.next_id,t,e.vid,e.oix),this.ws.send(s),this.next_id++},this.getObject=function(t,e,n,i){var s=new Uint8Array(16);s[0]=X,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.vid,s[9]=t.vid>>8&255,s[10]=t.vid>>16&255,s[11]=t.vid>>24&255,s[12]=255&t.oix,s[13]=t.oix>>8&255,s[14]=t.oix>>16&255,s[15]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,t.vid,t.oix),this.ws.send(s),this.next_id++},this.getObjectFromAref=function(t,e,n,i){var s=new Uint8Array(32);s[0]=tt,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.objid.vid,s[9]=t.objid.vid>>8&255,s[10]=t.objid.vid>>16&255,s[11]=t.objid.vid>>24&255,s[12]=255&t.objid.oix,s[13]=t.objid.oix>>8&255,s[14]=t.objid.oix>>16&255,s[15]=t.objid.oix>>24&255,s[16]=255&t.offset,s[17]=t.offset>>8&255,s[18]=t.offset>>16&255,s[19]=t.offset>>24&255,s[20]=255&t.body,s[21]=t.body>>8&255,s[22]=t.body>>16&255,s[23]=t.body>>24&255,s[24]=255&t.size,s[25]=t.size>>8&255,s[26]=t.size>>16&255,s[27]=t.size>>24&255,s[28]=255&t.flags,s[29]=t.flags>>8&255,s[30]=t.flags>>16&255,s[31]=t.flags>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,oid.vid,oid.oix),this.ws.send(s),this.next_id++},this.getObjectFromName=function(t,e,n,i){var s=new Uint8Array(10+t.length);s[0]=q,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.length,s[9]=t.length>>8&255;for(var a=10,o=0;o<t.length;o++)s[a++]=t.charCodeAt(o);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObjectFromName",this.next_id,t),this.ws.send(s),this.next_id++},this.crrSignal=function(t,e,n){var i=new Uint8Array(14);i[0]=F,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.vid,i[7]=t.vid>>8&255,i[8]=t.vid>>16&255,i[9]=t.vid>>24&255,i[10]=255&t.oix,i[11]=t.oix>>8&255,i[12]=t.oix>>16&255,i[13]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(e,n),this.debug&&console.log("Sending crrObject",this.next_id,t.vid,t.oix),this.ws.send(i),this.next_id++},this.getOpwindMenu=function(t,e,n){t.length;var i=new Uint8Array(8+t.length);i[0]=H,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.length,i[7]=t.length>>8&255;for(var s=8,a=0;a<t.length;a++)i[s++]=t.charCodeAt(a);this.pending[this.next_id]=new PendingData(e,n),this.debug&&console.log("Sending getOpwindMenu",this.next_id),this.ws.send(i),this.next_id++},this.login=function(t,e,n,i){var s=new Uint8Array(8+t.length+2+e.length);s[0]=Y,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255;var a=6;s[a]=255&t.length,s[a+1]=t.length>>8&255,a+=2;for(var o=0;o<t.length;o++)s[a++]=t.charCodeAt(o);s[a]=255&e.length,s[a+1]=e.length>>8&255,a+=2;for(o=0;o<e.length;o++)s[a++]=e.charCodeAt(o);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending login",this.next_id),this.ws.send(s),this.next_id++},this.getMsg=function(t,e,n){var i=new Uint8Array(10);i[0]=W,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t,i[7]=t>>8&255,i[8]=t>>16&255,i[9]=t>>24&255,this.pending[this.next_id]=new PendingData(e,n),this.ws.send(i),this.debug&&console.log("Sending getMsg",this.next_id,t),this.next_id++},this.mhSync=function(t,e,n){var i=new Uint8Array(10);i[0]=Z,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t,i[7]=t>>8&255,i[8]=t>>16&255,i[9]=t>>24&255,this.pending[this.next_id]=new PendingData(e,n),this.debug&&console.log("Sending mhSync",this.next_id),this.ws.send(i),this.next_id++},this.mhAcknowledge=function(t,e,n){var i=new Uint8Array(16+t.birthTime.length);i[0]=$,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.nix,i[7]=t.nix>>8&255,i[8]=t.nix>>16&255,i[9]=t.nix>>24&255,i[10]=255&t.idx,i[11]=t.idx>>8&255,i[12]=t.idx>>16&255,i[13]=t.idx>>24&255;var s=14;i[s]=255&t.birthTime.length,i[s+1]=t.birthTime.length>>8&255,s+=2;for(var a=0;a<t.birthTime.length;a++)i[s++]=t.birthTime.charCodeAt(a);this.pending[this.next_id]=new PendingData(e,n),this.debug&&console.log("Sending mhAcknowledge",this.next_id),console.log("Sending mhAcknowledge",this.next_id),this.ws.send(i),this.next_id++}}var Bitmaps={leaf:0,map:2,openmap:4,object:6,attrenum:8,attrarra:10,attrarel:12,attr:14,crrwrite:16,crrread:18,ack:20,alarm:22,eventacked:24,eventalarm:26,eventreturn:28,info:30,system:32,maintenance:34,blockl:36,blockr:38,img:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],pending:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],images:["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAASElEQVQokWP4jwMwMDBgYBR5XBpwGYZVIzYNGDZB+QyEFOBiM+CyCacGBI0hgEGjsxkYGCiwkSI/4tKMz0DqxCM2A4hOOcQCAObFEQyI2PpKAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAQUlEQVQokWNgYGD4jw1jA2hqsGvAZRhWjdg0oIsh8QkqwMXGbhMuDXAxdAFsNDobyifTRor8SFGoUhSPFKUcYjEAMsMz2y6w8kgAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAKElEQVQokWP4DwUMDAwYGB9gwKUQm0FoGL/JOGwb1TgINZKFSbYOCgD1JxQJG0vK9AAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAK0lEQVQokWNgYGD4z8DA8B8bgMlhxbgUEgIMBE3Ggkc1Dk6N5AAGUm2DYQAkYTDe0vu7CAAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAQklEQVQokaXOwQ4AIAgCUP7/p+nUlpMSzY2bDwWHA5IEkFJCtaiKxE7dvsue8HZNJEPneoAuSq+OYAf9wy4K0Mk5C+d++RWimsw3AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPUlEQVQokaXRQQoAQAgCQP//6brKZmSt0M2hIACI4yBURqiKXQp0ThuhGwmt7Vy00XvqCa7QN1wjhtYLCCYyCkvDVnkJOQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAH0lEQVQokWP4TyJgYGBg+E8iZiDFdHrZMKqBGA2kYAD8gaJsjwzf9wAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIklEQVQokWNgYGD4TxL+TyJg+P//P9GmwzXQ3oZRDdSOBwAGOSrkrXppgQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPklEQVQokWP4////fwYGBgxMCDBgU4jNICyYsOlYbENoJNIW7BqJsYm2NuJyBVE2EqWRfjbiUoQ3oAgpwgUANLqccvbgec0AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPElEQVQokWNgYGD4jw0wMDDgx9gUEgMYiDIdDaNoJBZg1UiUTTS1EZcriLKRKI30sxGXIgKBhF8RrqgBAOTOqGZ5aiCnAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAMElEQVQokWP4////fwYGBgxMCDBgU4jNICwYv+nY5InWOGojXW0khLEahtc6PDYCAB9hxkjBPICvAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAALUlEQVQokWNgYGD4jw0wMDDgx9gUEgMYCJmOTZ5ojaM20tVGQgCHK/AnLVwAAPonfpBwU5f4AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIklEQVQokWP4////fwYGBpwYHTDANGADeDWM2jAEbSAFAADB26JsIjYj1AAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIElEQVQokWNgYGD4jw8wMDCgYwZcEvg1jNowBG0gBQMAQN8q5COZl1cAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIUlEQVQokWP4TyJgGIQaGBgY/pOIibcEroEkTLIfhoEGADzs8B5gcUg/AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJUlEQVQokWNgYGD4TyIedBr+kwgY/v//T7TpcA0k2TAIQ4nmGgDFzt0jExR7hgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokaWNQQoAMAjD8v9P633WVWhBkJIotQQoYPYbrHYrqC9D+MG54OBMuMC54GApuPBed9OxiMNLGke1JwAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAANElEQVQokWNgYGD4jw3DABY57IqxsQlqwGELSYop1ECEYgo0EKmYQg1EKMbUQEAxRAMpAABRMgoFjbTzXgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWNgYGD4j4yRATY5BmyKkGks4qgS2BSj2UYFDdgAdW2gvpOwhDW6ItwaCGI8JuHWgMOtWD0PACufaaWhXDFDAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWP4jwYYGBjgGKscNkXINLo4hgZsipFto44GbJi6NlDfSehhjUxjyGMVxQMYcJmEVwPB5ICEAdcbY6vf9TVAAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAS0lEQVQokZ2Q2w4AIAhCz///ND11M3RVmxuDUBRAtw8QHRyC4SSJSDjDht1Yhxdudks+bFNxYsX9G6rz2qVHxqRspGi2Wpoji/dqaLh22DbO2VuXAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAASklEQVQokWP4////fwYGBqIwVC2cgSKBTQzKxhDA0ICmGau12BRCMLJp2BQgy8H9gM9ELGJkasAXvFg9TQjgDCVc8YBXAwFMmgYASkT1C9E5Ya0AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAARklEQVQokZ2QQQoAMAjD+v9Pu9PA1ThQQRBtoFUBJSkk0SlwOwKykCAEcn+BK8hih/aAe++y7IDuhWgXfcKHCuBBfX6ASR3Vn8ZINQzCrQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQ0lEQVQokWNgYGD4j45hAJscA8UakBXi0ITddDy2YJqOrBiLJjI1oLsdj1/I0IAnCLFpwtSALYQwNKB7FJ2NooEUDAAtGwcI+Svs4gAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAL0lEQVQokWP4TyJgGCkaGBgQyhhwSeASw9CAYho2A3CZiE0xVg34FOPUgA+QrAEA1FYi+tWeG/cAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAMElEQVQokWNgYGD4TyIeGRr+//+PXQOaBC4xVElkBdgMwHASTBEOxdj9gEcxHYIVAC5kqlZXl5JMAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJ0lEQVQokWP4jwMwMDBgF8elGIZHNeDSANOEVRyXBpwGUcUGqvoBAK+H8xt0qXFWAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJ0lEQVQokWNgYGD4jw3///8fqzgDLsUwMKoBlwaSg5UAHoiIw2cDAFMz2iY65DAoAAAAAElFTkSuQmC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAASUlEQVQokZ2RUQoAIAjFdv9L11dhskeUEIQ2mcYIAXjeisA+EahFA9ad/siAA0wqSUsnu87wDZh3VEodO6Rr1c51rc8fd9OoMQHLk7dXak3qLwAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAR0lEQVQokZ2S2woAIAhD9/8/vV6tjgMNhLxMN1SSTGYb46JkfS2gJglQ/ncRAZ5JTCXQYsFRwxpAvFtKoeMvmoqDv1jc5DQONycV+bfOetgAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAOUlEQVQokWNgYGD4///////E0AwMDP8hPDQAk8QhjlMCuzg2G3AB6tlAez8MglAiCZNiw/////8DACmmtFrq9aGNAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokWP4////fwYGhv/E0FA2w390jCSJIc6ASwKnBmw24MLUs4H2fhgEoUQKIMkGBgaG/wDZFBj2pVi3HgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokWNgYGD4TyJm+E8sgGugig3YxHFqwGcIQQ3obAwN6G7GawMuhVg1EFKMUwM+QJ+IAwDD1Gyi1EZc6gAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAO0lEQVQokWP4TyJg+P///38GBgaiMFwDVWzAJo5TA15DCGnAYKNrwHAzPhtwKcSqgZBinBqIigeaRhwAPuZgrlZXy70AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAP0lEQVQokZWPQQoAMAzC8v9Pu8soDOxaBS82QkWNgPKTJ/BYsLekAOxfquwHWyfws6ED7OgtfNk9bAuTSGBJOufqnHIsmYkzAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQUlEQVQokZWPQQ4AMAQE5/+f1kuTCkuROGAmADCVPsJsBfdCsX0u3N7sJFfXsAqW8BMaID+9gE3SJayEFo7CFwY7GtAw3ouVj50AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQElEQVQokZ2QQQ4AMAjC+v9Pu9MWl5AJ42a0IlKBgCIadgGgQ8imqo9D3zDBvJoyR+zwlWHS9SUHaOf4QOywtQCQGucn0g2dEQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAOklEQVQokWNgYGD4Tyz+////fwZSFBOtAaoQQsM46JLY+HAbUEwgrJmwyZTZQJYfSAolmsQDWTENwwByoOYaWbAqegAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWP4jwMwMDBgF8enAZsmvBqw2cSARQBDIQqbGEUoaggpQBcj3Qay/IAN4AwlfBrIigeiNeACADpU5yeYXn+XAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWNgYGD4jw3///8fqzgDPg04NOG3AUMTugA2hWhqiFKEzCeoAF2MRBvI8gNJoUT1eCBaAy4MAMhm5hr5iTaWAAAAAElFTkSuQmCC"]},Plow={DRAWOFFSET:2,DEST_INTOLAST:0,DEST_INTOFIRST:1,DEST_AFTER:2,DEST_BEFORE:3,TREE_INDENTATION:1,OPEN_ATTRIBUTES:1,OPEN_CHILDREN:2,OPEN_CROSSREFERENCES:4,OPEN_ALL:7,COLOR_BLACK:1,COLOR_RED:2,COLOR_GRAY:3,COLOR_DARKGRAY:4,COLOR_LIGHTGRAY:5,COLOR_WHITE:6,COLOR_YELLOW:7,COLOR_GREEN:8,COLOR_LIGHTBLUE:9,COLOR_BLUE:10,COLOR_VIOLET:11,eEvent_MB1Click:0,eEvent_MB1ClickShift:1,eEvent_Key_Up:2,eEvent_Key_Down:3,eEvent_Key_Right:4,eEvent_Key_Left:5,eEvent_Key_ShiftRight:6,eEvent_Key_CtrlR:7,eEvent_Key_CtrlL:8,eEvent_Key_CtrlG:9,eEvent_ObjectDeleted:10,RELATIVE_POSITION:1,NEXT_RELATIVE_POSITION:2};function PlowGeometry(){this.ll_x=0,this.ll_y=0,this.ur_x=0,this.ur_y=0}function PlowNodeClass(t){this.a=new PlowArray(t),this.ctx=t,this.nc_name="",this.group=0,this.node_open=0,this.draw=function(t,e,n,i){this.a.draw(t,e,n,i)},this.insert=function(t){this.a.add(t)}}function PlowArray(a){this.a=[],this.ctx=a,this.add=function(t){this.a.push(t)},this.insertNode=function(t,e,n){var i=this.find(t);if(-1==i)if(null==e)switch(n){case Plow.DEST_INTOLAST:case Plow.DEST_AFTER:this.a.push(t),t.level=0;break;default:t.level=0,this.a.unshift(t)}else{var s=this.find(e);if(-1==s)return;switch(n){case Plow.DEST_INTOFIRST:s==this.a.length-1?this.a.push(t):this.a.splice(s+1,0,t),t.level=e.level+1;break;case Plow.DEST_INTOLAST:if(s==this.a.length-1)this.a.push(t);else{i=this.a.length;for(var a=s+1;a<this.a.length;a++)if(this.a[a].level<=e.level){i=a;break}i==this.a.length?this.a.push(t):this.a.splice(i,0,t)}t.level=e.level+1;break;case Plow.DEST_AFTER:if(s==this.a.length-1)this.a.push(t);else{for(a=i;a<this.a.length&&!(this.a[a].level<e.level);a++);this.a.splice(a,0,t)}t.level=e.level;break;case Plow.DEST_BEFORE:0<i&&i--,this.a.splice(i,0,t),t.level=e.level}}},this.remove=function(t){var e=this.find(t);-1!=e&&(this.ctx.event_cb(Plow.eEvent_ObjectDeleted,this.a[e+1],0,0),this.a.splice(e,1))},this.size=function(){return this.a.length},this.get=function(t){return this.a[t]},this.draw=function(t,e,n,i){for(var s=0;s<this.a.length;s++)this.a[s].draw(t,e,n,i)},this.set_borders=function(t){for(var e=0;e<this.a.length;e++)this.a[e].set_borders(t)},this.configure=function(){for(var t=0;t<this.a.length;t++)this.a[t].pos.x=1*this.a[t].level,this.a[t].pos.y=1*t},this.close_node=function(t){var e=this.find(t);if(-1!=e){var n,i=t.level;for(n=e+1;n<this.a.length&&!(this.a[n].level<=i);n++);var s=n;if(s!=e+1)for(n=e+1;n<s;n++)a.select_object==this.a[e+1]&&(a.select_object=null),this.ctx.event_cb(Plow.eEvent_ObjectDeleted,this.a[e+1],0,0),this.a.splice(e+1,1)}},this.get_parent_object=function(t){var e=this.find(t);if(-1==e)return null;for(var n=e;0<=n;n--)if(this.a[n].level<t.level)return this.a[n];return null},this.get_first_child=function(t){var e=this.find(t);return-1==e?null:this.a.length==e-1?null:this.a[e+1].level>t.level?this.a[e+1]:null},this.get_next_sibling=function(t){for(var e=!1,n=0;n<this.a.length;n++)if(this.a[n]!=t){if(e){if(this.a[n].level==t.level)return this.a[n];if(this.a[n].level<t.level)return null}}else e=!0;return null},this.get_next_object=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return e==this.a.length-1?null:this.a[e+1];return null},this.get_previous_object=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return 0==e?null:this.a[e-1];return null},this.get_first_object=function(){return 0==this.a.length?null:this.a[0]},this.get_last_object=function(){return 0==this.a.length?null:this.a[this.a.length-1]},this.find=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return e;return-1}}function PlowNode(i,t,e){this.ctx=i,this.userdata=null,this.OFFSET=2,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.nc=t,this.pos=new PlowPoint(i,0,0),this.n_name="",this.annotv=[],this.annotsize=[],this.pixmapv=[],this.trace_object="",this.trace_attribute="",this.trace_attr_type=0,this.highlight=!1,this.select=!1,this.invert=!1,this.level=e,this.node_open=!1,this.fill_color=0,this.p=0,this.old_value=0,this.first_scan=!0,this.relative_position=0,this.set_annotation=function(t,e){10<=t||(this.annotv[t]=e)},this.set_annotation_pixmap=function(t,e){10<=t||(this.pixmapv[t]=e)},this.draw_object=function(){this.draw(this.ctx.gdraw.gctx,null,null,!1)},this.draw=function(t,e,n,i){var s=this.x_left*this.ctx.zoom_factor,a=this.y_low*this.ctx.zoom_factor-1,o=(this.x_right-this.x_left)*this.ctx.zoom_factor,l=(this.y_high-this.y_low)*this.ctx.zoom_factor+2;t.fillStyle="white",this.select&&(t.fillStyle="lightblue"),t.fillRect(s,a,o,l),this.nc.draw(t,this.pos,this,this.highlight)},this.connect=function(){if(""!=this.trace_object&&""!=this.trace_attribute){var t=this.trace_attribute.indexOf("#");-1!=t&&(this.trace_attribute=this.trace_attribute.substring(0,t));var e=this.trace_object+"."+this.trace_attribute;this.p=i.gdh.refObjectInfo(e,this.trace_attr_type),console.log("connecting",e,this.p)}},this.scan=function(){if(0!=this.p){var t=i.gdh.getRefObjectInfo(this.p);if(this.first_scan)this.first_scan=!1;else if(t==this.old_value)return;this.highlight=!!t,this.old_value=t,this.draw_object()}},this.set_borders=function(){this.x_left=1e37,this.x_right=-1e37,this.y_low=1e37,this.y_high=-1e37,t.a.set_borders(this)},this.event_handler=function(t,e,n){return(e-this.ctx.offset_x)/this.ctx.zoom_factor>=this.x_left&&(e-this.ctx.offset_x)/this.ctx.zoom_factor<=this.x_right&&(n-this.ctx.offset_y)/this.ctx.zoom_factor>=this.y_low&&(n-this.ctx.offset_y)/this.ctx.zoom_factor<=this.y_high?(i.event_object=this,1):0},this.set_select=function(t){t?(this.select=!0,this.ctx.select_object=this):(this.select=!1,this.ctx.select_object==this&&(this.ctx.select_object=null)),t!=this.select&&this.draw_object()},this.set_invert=function(t){this.invert=t,this.draw_object()},this.set_userdata=function(t){this.userdata=t},this.get_userdata=function(){return this.userdata},this.in_icon=function(t,e){return t>=this.x_left*this.ctx.zoom_factor&&t<=(this.x_left+1.75)*this.ctx.zoom_factor},this.measure=function(){var t=new PlowGeometry;return t.ll_x=this.x_left*this.ctx.zoom_factor,t.ll_y=this.y_low*this.ctx.zoom_factor,t.ur_x=this.x_right*this.ctx.zoom_factor,t.ur_y=this.y_high*this.ctx.zoom_factor,t}}function PlowPoint(t,e,n){this.x=e,this.y=n,this.ctx=t}function PlowAnnot(t,e,n,i,s,a,o){this.RELATIVE_OFFSET=1,this.p=new PlowPoint(t,e,n),this.draw_type=s,this.text_size=i,this.annot_type=a,this.number=o,this.ctx=t,this.draw=function(t,e,n,i){if(null!=n&&null!=n.annotv[this.number]){var s=0,a=this.ctx.zoom_factor/this.ctx.base_zoom_factor*(this.text_size+4)-4;if(!(a<0)){switch(a){case 0:s=8;break;case 1:s=10;break;case 2:s=12;break;case 3:case 4:s=14;break;case 5:case 6:case 7:s=18;break;default:s=3*a}t.font=s+"px Arial",n.invert?t.fillStyle="white":t.fillStyle="black",i&&(t.fillStyle="red"),t.lineWidth=.5;var o=(this.p.x+e.x)*this.ctx.zoom_factor,l=(this.p.y+e.y)*this.ctx.zoom_factor-s/4;if(0!=(this.annot_type&Plow.RELATIVE_POSITION)){var h=(e.x+n.relative_position+this.RELATIVE_OFFSET)*this.ctx.zoom_factor;o<h&&(o=h)}for(var r=n.annotv[this.number].split("\n"),A=0;A<r.length;A++)t.fillText(r[A],o,l),l+=1.4*s;0==(this.annot_type&Plow.NEXT_RELATIVE_POSITION)&&0==(this.annot_type&Plow.RELATIVE_POSITION)||(n.relative_position=(o+t.measureText(n.annotv[this.number]).width)/this.ctx.zoom_factor-e.x)}}},this.set_borders=function(t){}}function PlowAnnotPixmap(t,e,n,i){this.p=new PlowPoint(t,e,n),this.number=i,this.ctx=t,this.draw=function(e,t,n,i){var s,a=(this.p.x+t.x)*this.ctx.zoom_factor,o=(this.p.y+t.y)*this.ctx.zoom_factor,l=n.pixmapv[this.number];null!=l&&(n.invert&&l++,null==(s=Bitmaps.img[l])?((s=new Image).src=Bitmaps.images[l],Bitmaps.img[l]=s,Bitmaps.pending[l]=[],Bitmaps.pending[l].push(new PlowPoint(this.ctx,a,o)),s.onload=function(){for(var t=0;t<Bitmaps.pending[l].length;t++)e.drawImage(s,Bitmaps.pending[l][t].x,Bitmaps.pending[l][t].y);Bitmaps.pending[l]=null}):s.complete?e.drawImage(s,a,o):Bitmaps.pending[l].push(new PlowPoint(this.ctx,a,o)))},this.set_borders=function(t){}}function PlowRect(t,e,n,i,s,a,o,l,h){this.ll=new PlowPoint(t,e,n),this.ur=new PlowPoint(t,e+i,n+s),this.border_color=o,this.fill_color=a,this.fill=l,this.fix_color=h,this.ctx=t,this.draw=function(t,e,n,i){var s=(this.ll.x+e.x)*this.ctx.zoom_factor,a=(this.ll.y+e.y)*this.ctx.zoom_factor,o=(this.ur.x-this.ll.x)*this.ctx.zoom_factor,l=(this.ur.y-this.ll.y)*this.ctx.zoom_factor;switch(t.lineWidth=1,this.border_color){case Plow.COLOR_GRAY:t.strokeStyle="grey";break;case Plow.COLOR_RED:t.strokeStyle="red";break;case Plow.COLOR_WHITE:t.strokeStyle="white";break;default:t.strokeStyle="black"}if(i&&(t.strokeStyle="red"),t.strokeRect(s,a,o,l),this.fill){switch(this.fill_color){case Plow.COLOR_GRAY:t.fillStyle="grey";break;case Plow.COLOR_RED:t.fillStyle="red";break;case Plow.COLOR_YELLOW:t.fillStyle="yellow";break;case Plow.COLOR_GREEN:t.fillStyle="lightgreen";break;case Plow.COLOR_WHITE:n.invert?t.fillStyle="black":t.fillStyle="white";break;default:n.invert?t.fillStyle="white":t.fillStyle="black"}t.fillRect(s,a,o,l)}},this.set_borders=function(t){this.ll.x+t.pos.x<t.x_left&&(t.x_left=this.ll.x+t.pos.x),this.ur.x+t.pos.x>t.x_right&&(t.x_right=this.ur.x+t.pos.x),this.ll.y+t.pos.y<t.y_low&&(t.y_low=this.ll.y+t.pos.y),this.ur.y+t.pos.y>t.y_high&&(t.y_high=this.ur.y+t.pos.y)}}function GDraw(t){this.ctx=t,this.canvas=document.querySelector("canvas"),this.gctx=this.canvas.getContext("2d"),this.offset_top=this.canvas.offsetTop}function PlowCtx(){this.gdh=0,this.debug=!1,this.nodraw=0,this.zoom_factor=20,this.base_zoom_factor=20,this.offset_x=0,this.offset_y=0,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.a=new PlowArray(this),this.a_nc=new PlowArray(this),this.name="Claes context",this.gdraw=new GDraw(this),this.selct_object=null,this.event_cb=null,this.event_object=null,this.draw=function(){0<this.nodraw||(this.gdraw.gctx.fillStyle="white",this.gdraw.gctx.fillRect(0,0,this.gdraw.canvas.width,this.gdraw.canvas.height),this.a.draw(this.gdraw.gctx,null,null,!1))},this.connect=function(){for(var t=0;t<this.a.size();t++)this.a.get(t).connect()},this.scan=function(){console.log("ctx scan",this.a.size());for(var t=0;t<this.a.size();t++)this.a.get(t).scan()},this.set_nodraw=function(){this.nodraw++},this.reset_nodraw=function(){this.nodraw--},this.size=function(){return this.a.size()},this.event_handler=function(t,e,n){var i=0;switch(t){case Plow.eEvent_MB1Click:case Plow.eEvent_MB1ClickShift:for(var s=0;s<this.a.size()&&!(this.a.get(s)instanceof PlowNode&&1==(i=this.a.get(s).event_handler(t,e,n)));s++);1==i&&(this.event_cb(t,this.event_object,e,n),this.draw());break;case Plow.eEvent_Key_Up:case Plow.eEvent_Key_Down:case Plow.eEvent_Key_Left:case Plow.eEvent_Key_Right:case Plow.eEvent_Key_ShiftRight:case Plow.eEvent_Key_CtrlR:case Plow.eEvent_Key_CtrlL:case Plow.eEvent_Key_CtrlG:this.event_cb(t,null,0,0)}},this.set_select=function(t){for(var e=0;e<this.a.size();e++)this.a.get(e)instanceof PlowNode&&this.a.get(e).set_select(t)},this.set_invert=function(t){for(var e=0;e<this.a.size();e++)this.a.get(e)instanceof PlowNode&&this.a.get(e).set_invert(t)},this.get_select=function(){return this.select_object},this.insert=function(t,e){this.a.add(t)},this.insertNode=function(t,e,n){this.a.insertNode(t,e,n)},this.remove=function(t){this.select_object==t&&(this.select_object=null),this.a.remove(t)},this.insert_nc=function(t){this.a_nc.add(t)},this.configure=function(){this.a.configure(),this.a.set_borders();var t=1*this.a.a.length*this.zoom_factor;this.gdraw.canvas.height=t},this.get_parent_object=function(t){return this.a.get_parent_object(t)},this.get_next_object=function(t){return this.a.get_next_object(t)},this.get_last_object=function(){return this.a.get_last_object()},this.get_first_object=function(){return this.a.get_first_object()},this.get_previous_object=function(t){return this.a.get_previous_object(t)},this.close_node=function(t){this.a.close_node(t)},this.is_visible=function(t){return t.y_high*this.zoom_factor<=window.pageYOffset+window.innerHeight-this.gdraw.offset_top&&t.y_low*this.zoom_factor>=window.pageYOffset-this.gdraw.offset_top},this.scroll=function(t,e){window.scrollTo(window.scrollX,t*this.zoom_factor-window.innerHeight*e+this.gdraw.offset_top)}}function EvOpenChildrenData(t,e){this.node=t,this.open_next=e}var EvC={eType_AlarmList:0,eType_EventList:1,eType_BlockList:2};function Ev(){this.ctx=null,this.ncAlarmA=null,this.ncAlarmB=null,this.ncAlarm=null,this.ncInfo=null,this.ncSuccess=null,this.scan_update,this.priv=0,this.mhSyncIdx=0,this.type=EvC.eType_AlarmList,this.ala=null,this.maxEve=30,this.maxAla=30;var h=this;this.init=function(){switch(this.type=this.get_type(),this.type){case EvC.eType_EventList:document.title="Event List"}this.priv=sessionStorage.getItem("pwr_privilege"),console.log("pwr_privilege",this.priv),this.methods_init(),this.ctx=new PlowCtx,this.ctx.event_cb=this.plow_event,this.createNodeClasses(),this.ctx.gdh=new Gdh,this.ctx.gdh.open_cb=this.gdh_init_cb,this.ctx.gdh.init(),this.ctx.gdraw.canvas.addEventListener("click",function(t){var e=t.pageY-h.ctx.gdraw.offset_top,n=t.pageX;t.shiftKey?ev.ctx.event_handler(Plow.eEvent_MB1ClickShift,n,e):ev.ctx.event_handler(Plow.eEvent_MB1Click,n,e)}),document.addEventListener("keydown",function(t){40==t.keyCode?(h.ctx.event_handler(Plow.eEvent_Key_Down),t.preventDefault()):39==t.keyCode?(t.shiftKey?h.ctx.event_handler(Plow.eEvent_Key_ShiftRight):h.ctx.event_handler(Plow.eEvent_Key_Right),t.preventDefault()):37==t.keyCode?(h.ctx.event_handler(Plow.eEvent_Key_Left),t.preventDefault()):38==t.keyCode?(h.ctx.event_handler(Plow.eEvent_Key_Up),t.preventDefault()):82==t.keyCode?(t.ctrlKey&&h.ctx.event_handler(Plow.eEvent_Key_CtrlR),t.preventDefault()):76==t.keyCode?(t.ctrlKey&&h.ctx.event_handler(Plow.eEvent_Key_CtrlL),t.preventDefault()):71==t.keyCode&&(t.ctrlKey&&h.ctx.event_handler(Plow.eEvent_Key_CtrlG),t.preventDefault())}),document.getElementById("toolitem1").addEventListener("click",function(t){console.log("Ack"),h.ack()}),document.getElementById("toolitem2").addEventListener("click",function(t){var e=h.ctx.get_select();null!=e&&(console.log("toolitem2",e.userdata.e.supObject.vid,e.userdata.e.supObject.oix),h.ctx.gdh.getObjectFromAref(e.userdata.e.supObject,GdhOp.GET_OP_SELF,h.open_navigator_cb,null),console.log("toolitem2 event"))}),document.getElementById("toolitem3").addEventListener("click",function(t){console.log("toolitem5 event");var e=h.ctx.get_select();if(null!==e){var n=window.open("","_blank");h.ctx.gdh.getObjectFromAref(e.userdata.e.supObject,GdhOp.GET_OP_METHOD_PLC,h.open_plc_cb,n)}}),document.getElementById("toolitem4").addEventListener("click",function(t){var e=h.ctx.get_select();if(e.userdata instanceof EvItemAlarm){var n=window.open("","_blank");h.ctx.gdh.getObjectFromName(e.userdata.e.eventName,GdhOp.GET_OP_METHOD_GRAPH,h.open_graph_cb,n)}}),document.getElementById("toolitem5").addEventListener("click",function(t){var e=h.ctx.get_select();if(e.userdata instanceof EvItemAlarm){var n=window.open("","_blank");h.ctx.gdh.getObjectFromName(e.userdata.e.eventName,GdhOp.GET_OP_METHOD_OBJECTGRAPH,h.open_graph_cb,n)}}),document.getElementById("toolitem6").addEventListener("click",function(t){var e=h.ctx.get_select();console.log("storage",localStorage.getItem("XttMethodNavigator")),localStorage.setItem("XttMethodNavigator",e.userdata.e.eventName),console.log("storage",localStorage.getItem("XttMethodNavigator")),console.log("toolitem6 event window",window.opener),window.opener.focus()}),document.getElementById("toolitem7").addEventListener("click",function(t){var e=h.ctx.get_select();if(null!==e){var n=window.open("","_blank");h.ctx.gdh.getObjectFromName(e.userdata.e.eventName,GdhOp.GET_OP_METHOD_PLC,h.open_plc_cb,n),console.log("toolitem7 event")}}),document.getElementById("toolitem8").addEventListener("click",function(t){console.log("toolitem8 event")}),document.getElementById("toolitem9").addEventListener("click",function(t){console.log("toolitem9 event");var e=h.ctx.get_select();null!==e&&e.userdata.open_attributes(h)}),document.getElementById("toolitem10").addEventListener("click",function(t){var e=h.ctx.get_select();null!==e&&(h.ctx.gdh.crrSignal(e.userdata.e.eventName,h.open_crr_cb,e),console.log("toolitem10 event"))}),document.getElementById("toolitem11").addEventListener("click",function(t){console.log("toolitem11 event")}),document.getElementById("toolitem12").addEventListener("click",function(t){console.log("toolitem12 event");var e=h.ctx.get_select();if(null!=e&&e.userdata instanceof EvItemAlarm){var n=window.open("","_blank");h.ctx.gdh.getObjectFromName(e.userdata.e.eventName,GdhOp.GET_OP_METHOD_HELPCLASS,h.open_helpclass_cb,n)}})},this.is_authorized=function(t){return!!(this.priv&t)},this.gdh_init_cb=function(){null==h.priv&&h.ctx.gdh.login("","",h.login_cb,h),h.ctx.gdh.listSent=!0,h.trace_cyclic()},this.login_cb=function(t,e,n,i){console.log("Login:",n,i),h.priv=1&n?i:0},this.sync_cb=function(t,e,n,i){if(1&n&&0!==i.length)if(h.type==EvC.eType_AlarmList){h.ctx.set_nodraw();for(var s=i.length-1;0<=s;s--){switch((l=i[s]).eventType){case MhC.eEvent_Alarm:case MhC.eEvent_MaintenanceAlarm:case MhC.eEvent_SystemAlarm:case MhC.eEvent_UserAlarm1:case MhC.eEvent_UserAlarm2:case MhC.eEvent_UserAlarm3:case MhC.eEvent_UserAlarm4:case MhC.eEvent_Info:case MhC.eEvent_InfoSuccess:if(h.ctx.size()>=h.maxEve){var a=h.ctx.get_last_object();h.ctx.remove(a)}new EvItemAlarm(h,l,null,Plow.DEST_BEFORE);break;case MhC.eEvent_Ack:null!==(o=h.find_event(l.targetId))&&(o.e.eventStatus&MhC.mEventStatus_NotRet?(o.e.eventStatus&=~MhC.mEventStatus_NotAck,o.update()):h.ctx.remove(o.node));break;case MhC.eEvent_Return:var o;null!==(o=h.find_event(l.targetId))&&(o.e.eventStatus&MhC.mEventStatus_NotAck?(o.e.eventStatus&=~MhC.mEventStatus_NotRet,o.update()):h.ctx.remove(o.node))}h.mhSyncIdx<i[s].syncIdx&&(h.mhSyncIdx=i[s].syncIdx)}h.ctx.configure(),h.ctx.reset_nodraw(),h.ctx.draw()}else if(h.type==EvC.eType_EventList){h.ctx.set_nodraw();for(s=i.length-1;0<=s;s--){var l=i[s];if(h.ctx.size()>=h.maxEve){a=h.ctx.get_last_object();h.ctx.remove(a)}new EvItemAlarm(h,l,null,Plow.DEST_BEFORE),h.mhSyncIdx<i[s].syncIdx&&(h.mhSyncIdx=i[s].syncIdx)}h.ctx.configure(),h.ctx.reset_nodraw(),h.ctx.draw()}},this.find_event=function(t){for(var e=this.ctx.get_first_object();null!==e;e=this.ctx.get_next_object(e)){var n=e.get_userdata();if(n.e.eventId.nix==t.nix&&n.e.eventId.idx==t.idx)return n}return null},this.is_authorized=function(t){return!!(this.priv&t)},this.ack=function(){if(this.is_authorized(Pwr.mAccess_RtEventsAck)){var t=this.ctx.get_first_object();if(null!==t){var e=t.get_userdata();console.log("Ack",e.e.eventText),this.ctx.gdh.mhAcknowledge(e.e.eventId,this.ack_cb,this),e.e.eventStatus&MhC.mEventStatus_NotRet?(e.e.eventStatus&=~MhC.mEventStatus_NotAck,e.update()):this.ctx.remove(e.node),this.ctx.configure(),this.ctx.draw()}}else window.alert("Not authorzed for this operation")},this.ack_cb=function(t,e,n){console.log("ack sts",n)},this.open_objectgraph_cb=function(t,e,n,i){0!=(1&n)?(e.location.href="ge.html?graph="+i.param1+"&instance="+i.fullname,e.document.title=i.fullname):e.document.write("Error status "+n)},this.open_graph_cb=function(t,e,n,i){if(0!=(1&n)){var s=i.param1.indexOf(".");-1!=s&&(i.param1=i.param1.substring(0,s));var a="";""!==i.fullname&&(a="&instance="+i.fullname),e.location.href="ge.html?graph="+i.param1+a,e.document.title=i.param1}else e.document.write("Error status "+n)},this.open_plc_cb=function(t,e,n,i){var s;0!=(1&n)?(s=""!==i.param1?"&obj="+i.param1:"",console.log("flow.html?vid="+i.objid.vid+"&oix="+i.objid.oix+s),e.location.href="flow.html?vid="+i.objid.vid+"&oix="+i.objid.oix+s,e.document.title="Trace "+i.fullname):e.document.write("Error status "+n)},this.open_navigator_cb=function(t,e,n,i){console.log("Open navigator",n),0!=(1&n)?(localStorage.setItem("XttMethodNavigator",i.fullname),console.log("storage",localStorage.getItem("XttMethodNavigator"))):console.log("Error status "+n)},this.open_objectgraph_cb=function(t,e,n,i){if(0!=(1&n)){var s=i.classname.toLowerCase();"$"==s.substring(0,1)&&(s=s.substring(1));var a="pwr_c_"+s;e.location.href="ge.html?graph="+a+"&instance="+i.fullname,e.document.title=a+" "+i.fullname}else e.document.write("Error status "+n)},this.open_helpclass_cb=function(t,e,n,i){if(0!=(1&n)){console.log("open_helpclass",i.param1);var s=location.protocol+"//"+location.host+i.param1;e.location.href=s}else e.document.write("Error status "+n)},this.methods_init=function(){localStorage.setItem("EvMethodNavigator","")},this.collapse=function(){this.ctx.set_nodraw();for(var t=0;t<this.ctx.a.size();t++){var e=this.ctx.a.get(t);0==e.level&&e.userdata.close(this)}this.ctx.reset_nodraw(),this.ctx.draw()},this.trace_cyclic=function(){h.ctx.gdh.mhSync(h.mhSyncIdx,h.sync_cb,h),h.timer=setTimeout(h.trace_cyclic,1e3)},this.trace_scan=function(t,e){h.scan_update=!1,h.scan_update&&h.ctx.draw()},this.createNodeClasses=function(){var t=new PlowRect(this.ctx,0,0,50,1,Plow.COLOR_WHITE,Plow.COLOR_WHITE,!0,!1),e=new PlowRect(this.ctx,.1,.15,.7,.7,Plow.COLOR_RED,Plow.COLOR_BLACK,!0,!1),n=new PlowRect(this.ctx,.1,.15,.7,.7,Plow.COLOR_YELLOW,Plow.COLOR_BLACK,!0,!1),i=new PlowRect(this.ctx,.1,.15,.7,.7,Plow.COLOR_WHITE,Plow.COLOR_BLACK,!0,!1),s=new PlowRect(this.ctx,.1,.15,.7,.7,Plow.COLOR_GREEN,Plow.COLOR_BLACK,!0,!1),a=new PlowAnnot(this.ctx,1,.9,4,Plow.COLOR_BLACK,0,0),o=new PlowAnnotPixmap(this.ctx,1.8,.2,0),l=new PlowAnnotPixmap(this.ctx,2.4,.2,1),h=new PlowAnnotPixmap(this.ctx,3.2,.2,2),r=new PlowAnnotPixmap(this.ctx,4,.2,3),A=new PlowAnnot(this.ctx,4.8,.9,4,Plow.COLOR_BLACK,0,1),c=new PlowAnnot(this.ctx,11.5,.9,4,Plow.COLOR_BLACK,Plow.NEXT_RELATIVE_POSITION,2),g=new PlowAnnot(this.ctx,22.5,.9,4,Plow.COLOR_BLACK,Plow.RELATIVE_POSITION,3);this.ncAlarmA=new PlowNodeClass(this.ctx),this.ncAlarmA.insert(t),this.ncAlarmA.insert(e),this.ncAlarmA.insert(a),this.ncAlarmA.insert(o),this.ncAlarmA.insert(l),this.ncAlarmA.insert(h),this.ncAlarmA.insert(r),this.ncAlarmA.insert(A),this.ncAlarmA.insert(c),this.ncAlarmA.insert(g),this.ctx.insert_nc(this.ncAlarmA),this.ncAlarmB=new PlowNodeClass(this.ctx),this.ncAlarmB.insert(t),this.ncAlarmB.insert(n),this.ncAlarmB.insert(a),this.ncAlarmB.insert(o),this.ncAlarmB.insert(l),this.ncAlarmB.insert(h),this.ncAlarmB.insert(r),this.ncAlarmB.insert(A),this.ncAlarmB.insert(c),this.ncAlarmB.insert(g),this.ctx.insert_nc(this.ncAlarmB),this.ncAlarm=new PlowNodeClass(this.ctx),this.ncAlarm.insert(t),this.ncAlarm.insert(a),this.ncAlarm.insert(o),this.ncAlarm.insert(l),this.ncAlarm.insert(h),this.ncAlarm.insert(r),this.ncAlarm.insert(A),this.ncAlarm.insert(c),this.ncAlarm.insert(g),this.ctx.insert_nc(this.ncAlarm),this.ncInfo=new PlowNodeClass(this.ctx),this.ncInfo.insert(t),this.ncInfo.insert(i),this.ncInfo.insert(a),this.ncInfo.insert(o),this.ncInfo.insert(l),this.ncInfo.insert(h),this.ncInfo.insert(r),this.ncInfo.insert(A),this.ncInfo.insert(c),this.ncInfo.insert(g),this.ctx.insert_nc(this.ncInfo),this.ncSuccess=new PlowNodeClass(this.ctx),this.ncSuccess.insert(t),this.ncSuccess.insert(s),this.ncSuccess.insert(a),this.ncSuccess.insert(o),this.ncSuccess.insert(l),this.ncSuccess.insert(h),this.ncSuccess.insert(r),this.ncSuccess.insert(A),this.ncSuccess.insert(c),this.ncSuccess.insert(g),this.ctx.insert_nc(this.ncSuccess)},this.plow_event=function(t,e,n,i){var s=null;switch(null!=e&&(s=e.get_userdata()),t){case Plow.eEvent_ObjectDeleted:break;case Plow.eEvent_MB1Click:null!=s&&""!==s.e.eventMoreText&&n>=e.measure().ll_x+70&&n<=e.measure().ll_x+90?window.alert(s.e.eventMoreText):e.select?(e.set_select(!1),e.set_invert(!1)):(h.ctx.set_select(!1),e.set_select(!0),h.ctx.set_invert(!1),e.set_invert(!0),h.ctx.draw());break;case Plow.eEvent_MB1ClickShift:break;case Plow.eEvent_Key_Down:if(null!=(l=h.ctx.get_select()))null!=(a=h.ctx.get_next_object(l))&&(l.set_select(!1),l.set_invert(!1),a.set_select(!0),a.set_invert(!0),h.ctx.is_visible(a)||h.ctx.scroll(a.y_low,.1));else(l=h.ctx.a.a[0]).set_select(!0),l.set_invert(!0);break;case Plow.eEvent_Key_Up:var a;if(null!=(l=h.ctx.get_select()))null!=(a=h.ctx.get_previous_object(l))&&(l.set_select(!1),l.set_invert(!1),a.set_select(!0),a.set_invert(!0),l.draw(h.ctx.gdraw.gctx,null,null,0),a.draw(h.ctx.gdraw.gctx,null,null,0),h.ctx.is_visible(a)||h.ctx.scroll(a.y_low,.9));break;case Plow.eEvent_Key_Right:case Plow.eEvent_Key_Left:case Plow.eEvent_Key_ShiftRight:case Plow.eEvent_Key_CtrlR:break;case Plow.eEvent_Key_CtrlL:if((l=h.ctx.get_select()).userdata instanceof EvItemAlarm){var o=window.open("","_blank");h.ctx.gdh.getObject(l.userdata.objid,GdhOp.GET_OP_METHOD_PLC,h.open_plc_cb,o)}break;case Plow.eEvent_Key_CtrlG:var l;if((l=h.ctx.get_select()).userdata instanceof EvItemAlarm){o=window.open("","_blank");h.ctx.gdh.getObject(l.userdata.objid,GdhOp.GET_OP_METHOD_PLC,h.open_objectgraph_cb,o)}}},this.get_type=function(){var t=window.location.search.substring(1);if(""===t)return EvC.eType_AlarmList;var e=t.split("&")[0].substring(5);return"event"==e?EvC.eType_EventList:"block"==e?EvC.eType_BlockList:EvC.eType_AlarmList}}function EvItemAlarm(t,e,n,i){this.node,this.e=e;var s=t.ncAlarm;switch(this.e.eventType){case MhC.eEvent_Alarm:case MhC.eEvent_MaintenanceAlarm:case MhC.eEvent_SystemAlarm:case MhC.eEvent_UserAlarm1:case MhC.eEvent_UserAlarm2:case MhC.eEvent_UserAlarm3:case MhC.eEvent_UserAlarm4:case MhC.eEvent_Block:case MhC.eEvent_Reblock:case MhC.eEvent_CancelBlock:case MhC.eEvent_Unblock:switch(this.e.eventPrio){case MhC.eEventPrio_A:s=t.ncAlarmA;break;case MhC.eEventPrio_B:s=t.ncAlarmB;break;case MhC.eEventPrio_C:case MhC.eEventPrio_D:s=t.ncAlarm}break;case MhC.eEvent_Info:s=t.ncInfo;break;case MhC.eEvent_InfoSuccess:s=t.ncSuccess}switch(this.node=new PlowNode(t.ctx,s,0),t.ctx.insertNode(this.node,n,i),this.node.set_userdata(this),this.e.eventType){case MhC.eEvent_Alarm:case MhC.eEvent_MaintenanceAlarm:case MhC.eEvent_SystemAlarm:case MhC.eEvent_UserAlarm1:case MhC.eEvent_UserAlarm2:case MhC.eEvent_UserAlarm3:case MhC.eEvent_UserAlarm4:case MhC.eEvent_Block:case MhC.eEvent_Reblock:case MhC.eEvent_CancelBlock:case MhC.eEvent_Unblock:switch(this.e.eventPrio){case MhC.eEventPrio_A:this.node.set_annotation(0,"A");break;case MhC.eEventPrio_B:this.node.set_annotation(0,"B");break;case MhC.eEventPrio_C:this.node.set_annotation(0,"C");break;case MhC.eEventPrio_D:this.node.set_annotation(0,"D")}}switch(this.e.eventType){case MhC.eEvent_MaintenanceAlarm:this.node.set_annotation_pixmap(3,Bitmaps.maintenance);break;case MhC.eEvent_SystemAlarm:this.node.set_annotation_pixmap(3,Bitmaps.system);break;case MhC.eEvent_Block:this.e.eventText="Blocked";break;case MhC.eEvent_Reblock:this.e.eventText="Reblocked";break;case MhC.eEvent_CancelBlock:this.e.eventText="Block canceled";break;case MhC.eEvent_Unblock:this.e.eventText="Unblocked"}switch(this.node.set_annotation(1,this.e.eventTime.substring(0,17)),this.node.set_annotation(2,this.e.eventText),this.node.set_annotation(3,this.e.eventName),t.type){case EvC.eType_EventList:switch(this.e.eventType){case MhC.eEvent_Alarm:case MhC.eEvent_MaintenanceAlarm:case MhC.eEvent_SystemAlarm:case MhC.eEvent_UserAlarm1:case MhC.eEvent_UserAlarm2:case MhC.eEvent_UserAlarm3:case MhC.eEvent_UserAlarm4:case MhC.eEvent_Info:case MhC.eEvent_InfoSuccess:this.node.set_annotation_pixmap(0,Bitmaps.eventalarm);break;case MhC.eEvent_Ack:this.node.set_annotation_pixmap(0,Bitmaps.eventacked);break;case MhC.eEvent_Return:this.node.set_annotation_pixmap(0,Bitmaps.eventreturn);break;case MhC.eEvent_Block:case MhC.eEvent_Reblock:this.node.set_annotation_pixmap(0,Bitmaps.blockl);break;case MhC.eEvent_CancelBlock:case MhC.eEvent_Unblock:this.node.set_annotation_pixmap(0,Bitmaps.blockr)}break;case EvC.eType_AlarmList:this.e.eventStatus&MhC.mEventStatus_NotRet&&this.node.set_annotation_pixmap(1,Bitmaps.alarm),this.e.eventStatus&MhC.mEventStatus_NotAck&&this.node.set_annotation_pixmap(0,Bitmaps.ack),""!==this.e.eventMoreText&&this.node.set_annotation_pixmap(2,Bitmaps.info)}this.update=function(){this.e.eventStatus&MhC.mEventStatus_NotRet?this.node.set_annotation_pixmap(1,Bitmaps.alarm):this.node.set_annotation_pixmap(1,null),this.e.eventStatus&MhC.mEventStatus_NotAck?this.node.set_annotation_pixmap(0,Bitmaps.ack):this.node.set_annotation_pixmap(0,null)}}var ev=new Ev;ev.init();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Trace</title> <title>Trace</title>
...@@ -6,23 +6,7 @@ ...@@ -6,23 +6,7 @@
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <canvas id="canvas" width="1200" height="800"></canvas>
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"> <script src="flow.bundle.js"></script>
<img src="toolbar_graph.png"/>
</div>
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_navigator.png"/>
</div>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
</div>
<canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src=flow.js></script>
<hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
"use strict";function PwrtStatus(e){this.sts=e,this.evenSts=function(){return e%2==0},this.oddSts=function(){return e%2==1},this.getSts=function(){return e}}var Pwr={eType_Boolean:98305,eType_Float32:98306,eType_Float64:98307,eType_Char:98308,eType_Int8:98309,eType_Int16:98310,eType_Int32:98311,eType_UInt8:98312,eType_UInt16:98313,eType_UInt32:98314,eType_Objid:98315,eType_Buffer:98316,eType_String:98317,eType_Enum:98318,eType_Struct:98319,eType_Mask:98320,eType_Array:98321,eType_Time:98322,eType_Text:98323,eType_AttrRef:98324,eType_UInt64:98325,eType_Int64:98326,eType_ClassId:98327,eType_TypeId:98328,eType_VolumeId:98329,eType_ObjectIx:98330,eType_RefId:98331,eType_DeltaTime:98332,eType_Status:98333,eType_NetStatus:98334,eType_CastId:98335,eType_ProString:98336,eType_DisableAttr:98337,eType_DataRef:98338,mPrv_RtRead:1,mPrv_RtWrite:2,mPrv_System:4,mPrv_Maintenance:8,mPrv_Process:16,mPrv_Instrument:32,mPrv_Operator1:64,mPrv_Operator2:128,mPrv_Operator3:256,mPrv_Operator4:512,mPrv_Operator5:1024,mPrv_Operator6:2048,mPrv_Operator7:4096,mPrv_Operator8:8192,mPrv_Operator9:16384,mPrv_Operator10:32768,mPrv_RtEventsAck:1<<18,mPrv_RtPlc:1<<19,mPrv_RtNavigator:1<<20,mPrv_DevRead:1<<21,mPrv_DevPlc:1<<22,mPrv_DevConfig:1<<23,mPrv_DevClass:1<<24,mPrv_RtEventsBlock:1<<25,mPrv_Administrator:1<<26,mPrv_SevRead:1<<27,mPrv_SevAdmin:1<<28,mAccess_RtRead:1,mAccess_RtWrite:2,mAccess_System:4,mAccess_Maintenance:8,mAccess_Process:16,mAccess_Instrument:32,mAccess_RtEventsBlock:1<<25,mAccess_RtEventsAck:1<<18,mAccess_RtPlc:1<<19,mAccess_RtNavigator:1<<20,mAccess_AllRt:35454975,mAccess_AllOperators:65472,mAccess_AllPwr:-1,mAdef_pointer:1,mAdef_array:2,mAdef_backup:4,mAdef_changelog:8,mAdef_state:16,mAdef_const:32,mAdef_rtvirtual:64,mAdef_devbodyref:128,mAdef_dynamic:256,mAdef_publicwrite:512,mAdef_noedit:1024,mAdef_invisible:2048,mAdef_refdirect:4096,mAdef_noinvert:8192,mAdef_noremove:16384,mAdef_rtdbref:32768,mAdef_private:65536,mAdef_class:131072,mAdef_superclass:262144,mAdef_buffer:524288,mAdef_nowbl:1048576,mAdef_alwayswbl:2097152,mAdef_disableattr:4194304,mAdef_rthide:8388608},Pwrb={mXttMethodsFlagsMask_IsConfigured:1,mXttOpMethodsMask_OpenGraph:1,mXttOpMethodsMask_OpenObjectGraph:2,mXttOpMethodsMask_OpenTrend:4,mXttOpMethodsMask_OpenHistory:8,mXttOpMethodsMask_OpenFast:16,mXttOpMethodsMask_Camera:32,mXttOpMethodsMask_HistEvent:64,mXttOpMethodsMask_BlockEvents:128,mXttOpMethodsMask_Help:256,mXttOpMethodsMask_Photo:512,mXttOpMethodsMask_Note:1024,mXttOpMethodsMask_ParentObjectGraph:2048,mXttMntMethodsMask_OpenObject:1,mXttMntMethodsMask_OpenTrace:2,mXttMntMethodsMask_RtNavigator:4,mXttMntMethodsMask_OpenCrossref:8,mXttMntMethodsMask_HelpClass:16,mXttMntMethodsMask_DataSheet:32,mXttMntMethodsMask_CircuitDiagram:64,mXttMntMethodsMask_Simulate:1<<31};function PwrtObjid(e,t){this.oix=t,this.vid=e}function PwrtAttrRef(){this.objid,this.offset,this.body,this.size,this.flags}function CdhrNumber(e,t){this.value=e,this.sts=t,this.evenSts=function(){return t%2==0},this.oddSts=function(){return t%2==1},this.getSts=function(){return t}}var CdhC={cUserVolMin:65793,cUserVolMax:16711422};function UserdataCbReturn(){this.userdata,this.row}function Sub(){this.sts,this.refid,this.type,this.elements,this.name,this.value}function ObjectInfo(){this.objid,this.cid,this.has_children,this.name,this.description,this.classname,this.full_name,this.param1}function AttributeInfo(){this.name,this.type,this.size,this.flags,this.element,this.objid,this.full_name,this.classname}function MenuButton(){this.type,this.text,this.name,this.url}function OpwindMenuInfo(){this.title,this.text,this.enable_language,this.enable_login,this.enable_alarmlist,this.enable_eventlog,this.enable_navigator,this.disable_help,this.disable_proview,this.language,this.buttons=[]}function CrrInfo(){this.type,this.objid,this.name,this.classname}function GlowPieInfo(){this.sector_num,this.min_val,this.max_val}function GlowBarChartInfo(){this.bars,this.barsegments,this.min_value,this.max_value}function GlowTableInfo(){this.columns,this.rows,this.column_size=new Array(Glow.TABLE_MAX_COL)}function PendingData(e,t){this.func_cb=e,this.data=t}var GdhOp={GET_OP_SELF:1,GET_OP_METHOD_PLC:2,GET_OP_METHOD_OBJECTGRAPH:3,GET_OP_METHOD_GRAPH:4,GET_OP_METHOD_HELPCLASS:5};function Gdh(){var P=1,j=2,O=3,z=4,D=5,R=6,M=7,N=9,L=10,E=15,G=25,B=26,X=29,W=36,H=39,V=42,q=50,Y=57,J=63,K=64,Q=65,Z=66,$=67,ee=68;this.debug=!1,this.pending=[],this.sub=[],this.PORT=4448,this.ws=null,this.open_cb=null,this.close_cb=null,this.return_cb=null,this.next_id=1234,this.subscriptionCount=1,this.listSend=!1,this.init=function(){""===window.location.hostname?this.ws=new WebSocket("ws:127.0.0.1:4448"):this.ws=new WebSocket("ws://"+window.location.hostname+":4448"),this.ws.binaryType="arraybuffer",(this.ws.gdh=this).ws.onopen=function(e){null!==this.gdh.open_cb&&this.gdh.open_cb()},this.ws.onclose=function(){this.debug&&console.log("Socket closed"),null!==this.gdh.close_cb&&this.gdh.close_cb()},this.ws.onmessage=function(e){if("string"==typeof e.data)console.log("String message received",e,e.data);else if(e.data instanceof ArrayBuffer){var t=new DataView(e.data),n=t.getUint8(0),i=t.getUint32(1),a=t.getUint32(5);switch(n){case D:this.gdh.debug&&console.log("GetObjectInfoBoolean received");var o=t.getUint8(9);(0,this.gdh.pending[i].func_cb)(i,a,o),delete this.gdh.pending[i];break;case M:this.gdh.debug&&console.log("GetObjectInfoInt received");o=t.getUint32(9);(U=this.gdh.pending[i]).func_cb(i,U.data,a,o),delete this.gdh.pending[i];break;case R:this.gdh.debug&&console.log("GetObjectInfoFloat received");o=t.getFloat32(9);(U=this.gdh.pending[i]).func_cb(i,U.data,a,o),delete this.gdh.pending[i];break;case Y:this.gdh.debug&&console.log("GetObjectInfoFloatArray received");var s=t.getInt32(9);o=new Array(s);g=13;for(var r=0;r<s;r++)o[r]=t.getFloat32(g),g+=4;(U=this.gdh.pending[i]).func_cb(i,U.data,a,o),delete this.gdh.pending[i];break;case P:this.gdh.debug&&console.log("SetObjectInfoBoolean received",i,a);break;case O:this.gdh.debug&&console.log("SetObjectInfoInt received",i,a);break;case j:this.gdh.debug&&console.log("SetObjectInfoFloat received",i,a);break;case z:this.gdh.debug&&console.log("SetObjectInfoString received",i,a);break;case N:this.gdh.debug&&console.log("ToggleObjectInfo received",i,a);break;case L:this.gdh.debug&&console.log("RefObjectInfo received",i,a),delete this.gdh.pending[i];break;case E:this.gdh.debug&&console.log("UnrefObjectInfo received",i,a),delete this.gdh.pending[i];break;case B:this.gdh.debug&&console.log("RefObjectInfoList received",i,a),(0,this.gdh.pending[i].func_cb)(i,a),delete this.gdh.pending[i];break;case G:var _=9,l=t.getUint32(_);this.gdh.debug&&console.log("GetObjectRefInfoAll received",i,l),_+=4;for(r=0;r<l;r++){var h=t.getUint32(_);_+=4;var c=t.getUint32(_);_+=4;var d=this.gdh.sub[h];if(void 0===d)_+=c;else{switch(d.type){case Pwr.eType_Boolean:if(d.elements<=1)o=t.getUint8(_),_+=1;else{(v=c)!=d.elements&&console.log("Subscription size error",v,d.elements,h),o=new Array(v);for(var g=0;g<v;g++)o[g]=t.getUint8(_),_+=1}break;case Pwr.eType_Float32:if(d.elements<=1)o=t.getFloat32(_),_+=4;else{(v=c/4)!=d.elements&&console.log("Subscription size error",v,d.elements,h),o=new Array(v);for(g=0;g<v;g++)o[g]=t.getFloat32(_),_+=4}break;case Pwr.eType_Int8:case Pwr.eType_Int16:case Pwr.eType_Int32:case Pwr.eType_UInt8:case Pwr.eType_UInt16:case Pwr.eType_UInt32:case Pwr.eType_Status:case Pwr.eType_NetStatus:case Pwr.eType_Mask:case Pwr.eType_Enum:case GraphIfc.eType_Bit:if(d.elements<=1)o=t.getInt32(_),_+=4;else{(v=c/4)!=d.elements&&console.log("Subscription size error",v,d.elements,h),o=new Array(v);for(g=0;g<v;g++)o[g]=t.getInt32(_),_+=4}break;case Pwr.eType_String:case Pwr.eType_Time:case Pwr.eType_DeltaTime:case Pwr.eType_AttrRef:case Pwr.eType_Objid:if(d.elements<=1){var w=t.getInt16(_);_+=2;var f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);o=String.fromCharCode.apply(null,f)}else{var v;(v=d.elements)!=d.elements&&console.log("Subscription size error",v,d.elements,h),o=new Array(v);for(var p=0;p<v;p++){w=t.getInt16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);o[p]=String.fromCharCode.apply(null,f)}}}this.gdh.sub[h].value=o}}if(void 0===this.gdh.pending[i]){console.log("** GetObjectRefInfoAll received removed",i);break}(0,this.gdh.pending[i].func_cb)(i,a),delete this.gdh.pending[i];break;case H:var u=[];_=9,l=t.getUint32(_);this.gdh.debug&&console.log("GetAllXttChildren received",i,l),console.log("GetAllXttChildren received",a,i,l),_+=4;for(r=0;r<l;r++){(y=new ObjectInfo).objid=new PwrtObjid,y.objid.vid=t.getUint32(_),_+=4,y.objid.oix=t.getUint32(_),_+=4,y.cid=t.getUint32(_),_+=4,y.has_children=0!==t.getUint16(_),_+=2;w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);y.name=String.fromCharCode.apply(null,f);var b=t.getUint16(_);_+=2,f=new Uint8Array(b);for(g=0;g<b;g++)f[g]=t.getUint8(_++);y.description=String.fromCharCode.apply(null,f);var x=t.getUint16(_);_+=2,f=new Uint8Array(x);for(g=0;g<x;g++)f[g]=t.getUint8(_++);y.classname=String.fromCharCode.apply(null,f),u.push(y)}(U=this.gdh.pending[i]).func_cb(i,U.data,a,u),delete this.gdh.pending[i];break;case W:u=[],_=9,l=t.getUint32(_);this.gdh.debug&&console.log("GetAllClassAttributes received",i,l),_+=4;for(r=0;r<l;r++){(y=new AttributeInfo).type=t.getUint32(_),_+=4,y.flags=t.getUint32(_),_+=4,y.size=t.getUint16(_),_+=2,y.elements=t.getUint16(_),_+=2;w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);y.name=String.fromCharCode.apply(null,f),w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);y.classname=String.fromCharCode.apply(null,f),u.push(y)}(U=this.gdh.pending[i]).func_cb(i,U.data,a,u),delete this.gdh.pending[i];break;case J:case ee:case Q:this.gdh.debug&&console.log("GetObject received",i,a);var y=null;if(0!=(1&a)){_=9;(y=new ObjectInfo).objid=new PwrtObjid,y.objid.vid=t.getUint32(_),_+=4,y.objid.oix=t.getUint32(_),_+=4,y.cid=t.getUint32(_),_+=4,y.has_children=0!==t.getUint16(_),_+=2;w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);y.name=String.fromCharCode.apply(null,f),w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);y.fullname=String.fromCharCode.apply(null,f);x=t.getUint16(_);_+=2,f=new Uint8Array(x);for(g=0;g<x;g++)f[g]=t.getUint8(_++);y.classname=String.fromCharCode.apply(null,f);b=t.getUint16(_);_+=2,f=new Uint8Array(b);for(g=0;g<b;g++)f[g]=t.getUint8(_++);y.description=String.fromCharCode.apply(null,f);var S=t.getUint16(_);_+=2,f=new Uint8Array(S);for(g=0;g<S;g++)f[g]=t.getUint8(_++);y.param1=String.fromCharCode.apply(null,f)}(U=this.gdh.pending[i]).func_cb(i,U.data,a,y),delete this.gdh.pending[i];break;case V:if(0!=(1&a)){_=9,u=[],l=t.getUint16(_);_+=2,this.gdh.debug&&console.log("CrrSignal received",i,l);for(r=0;r<l;r++){(y=new CrrInfo).type=t.getUint16(_),_+=2,y.objid=new PwrtObjid,y.objid.vid=t.getUint32(_),_+=4,y.objid.oix=t.getUint32(_),_+=4;w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);y.name=String.fromCharCode.apply(null,f);x=t.getUint16(_);_+=2,f=new Uint8Array(x);for(g=0;g<x;g++)f[g]=t.getUint8(_++);y.classname=String.fromCharCode.apply(null,f),u.push(y)}}(U=this.gdh.pending[i]).func_cb(i,U.data,a,u),delete this.gdh.pending[i];break;case K:u=new OpwindMenuInfo,_=9;if(this.gdh.debug&&console.log("GetOpwindMenu received",i,l),console.log("GetOpwindMenu received",a,i),1&a){w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);u.title=String.fromCharCode.apply(null,f),w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);u.text=String.fromCharCode.apply(null,f),u.enable_language=t.getUint32(_),_+=4,u.enable_login=t.getUint32(_),_+=4,u.enable_alarmlist=t.getUint32(_),_+=4,u.enable_eventlog=t.getUint32(_),_+=4,u.enable_navigator=t.getUint32(_),_+=4,u.disable_help=t.getUint32(_),_+=4,u.disable_proview=t.getUint32(_),_+=4,u.language=t.getUint32(_),_+=4;var m=t.getUint16(_);_+=2;for(r=0;r<m;r++){var C=new MenuButton;C.type=t.getUint32(_),_+=4,w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);C.text=String.fromCharCode.apply(null,f),w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);C.name=String.fromCharCode.apply(null,f),w=t.getUint16(_),_+=2,f=new Uint8Array(w);for(g=0;g<w;g++)f[g]=t.getUint8(_++);C.url=String.fromCharCode.apply(null,f),u.buttons.push(C)}}(U=this.gdh.pending[i]).func_cb(i,U.data,a,u),delete this.gdh.pending[i];break;case X:_=9;this.gdh.debug&&console.log("Check user received",i,l),console.log("Check user received",a,i);var F=0;1&a&&(F=t.getUint32(_),_+=4),(U=this.gdh.pending[i]).func_cb(i,U.data,a,F),delete this.gdh.pending[i];break;case q:if(1&a){_=9,w=t.getUint16(_);_+=2;for(f=new Uint8Array(w),g=0;g<w;g++)f[g]=t.getUint8(_++);var k=String.fromCharCode.apply(null,f)}(U=this.gdh.pending[i]).func_cb(i,U.data,a,k),delete this.gdh.pending[i];break;case Z:u=[],_=9,l=t.getUint32(_);this.gdh.debug&&console.log("MhSync received",i,l),_+=4;for(r=0;r<l;r++){e=new MhEvent;var A=t.getUint16(_);_+=2;for(f=new Uint8Array(A),g=0;g<A;g++)f[g]=t.getUint8(_++);e.eventTime=String.fromCharCode.apply(null,f),A=t.getUint16(_),_+=2,f=new Uint8Array(A);for(g=0;g<A;g++)f[g]=t.getUint8(_++);e.eventText=String.fromCharCode.apply(null,f),A=t.getUint16(_),_+=2,f=new Uint8Array(A);for(g=0;g<A;g++)f[g]=t.getUint8(_++);e.eventName=String.fromCharCode.apply(null,f),e.eventFlags=t.getUint32(_),_+=4,e.eventStatus=t.getUint32(_),_+=4,e.eventPrio=t.getUint32(_),_+=4,e.eventId=new MhEventId,e.eventId.nix=t.getUint32(_),_+=4,e.eventId.idx=t.getUint32(_),_+=4,A=t.getUint16(_),_+=2,f=new Uint8Array(A);for(g=0;g<A;g++)f[g]=t.getUint8(_++);e.eventId.birthTime=String.fromCharCode.apply(null,f),e.targetId=new MhEventId,e.targetId.nix=t.getUint32(_),_+=4,e.targetId.idx=t.getUint32(_),_+=4,A=t.getUint16(_),_+=2,f=new Uint8Array(A);for(g=0;g<A;g++)f[g]=t.getUint8(_++);e.targetId.birthTime=String.fromCharCode.apply(null,f),e.eventType=t.getUint32(_),_+=4;var T=new PwrtObjid(0,0);T.vid=t.getUint32(_),_+=4,T.oix=t.getUint32(_),_+=4,e.object=new PwrtAttrRef,e.object.objid=T,e.object.offset=t.getUint32(_),_+=4,e.object.body=t.getUint32(_),_+=4,e.object.size=t.getUint32(_),_+=4,e.object.flags=t.getUint32(_),_+=4;var I=new PwrtObjid(0,0);I.vid=t.getUint32(_),_+=4,I.oix=t.getUint32(_),_+=4,e.supObject=new PwrtAttrRef,e.supObject.objid=I,e.supObject.offset=t.getUint32(_),_+=4,e.supObject.body=t.getUint32(_),_+=4,e.supObject.size=t.getUint32(_),_+=4,e.supObject.flags=t.getUint32(_),_+=4,A=t.getUint16(_),_+=2,f=new Uint8Array(A);for(g=0;g<A;g++)f[g]=t.getUint8(_++);e.eventMoreText=String.fromCharCode.apply(null,f),e.syncIdx=t.getUint32(_),_+=4,u.push(e)}(U=this.gdh.pending[i]).func_cb(i,U.data,a,u),delete this.gdh.pending[i];break;case $:var U;(U=this.gdh.pending[i]).func_cb(i,U.data,a),delete this.gdh.pending[i];break;default:console.log("Unknown message type")}}}},this.getObjectInfoBoolean=function(e,t){this.return_cb=t;var n=new Uint8Array(e.length+6);n[0]=D,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;for(var i=0;i<e.length;i++)n[i+6]=e.charCodeAt(i);this.pending[this.next_id]=new PendingData(t,null),this.ws.send(n),this.next_id++},this.getObjectInfoInt=function(e,t,n){this.return_cb=t;var i=new Uint8Array(e.length+6);i[0]=M,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var a=0;a<e.length;a++)i[a+6]=e.charCodeAt(a);this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloat=function(e,t,n){this.return_cb=t;var i=new Uint8Array(e.length+6);i[0]=R,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var a=0;a<e.length;a++)i[a+6]=e.charCodeAt(a);this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloatArray=function(e,t,n,i){this.return_cb=n;var a=new Uint8Array(e.length+10);a[0]=Y,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&t,a[7]=t>>8&255,a[8]=t>>16&255,a[9]=t>>24&255;for(var o=0;o<e.length;o++)a[o+10]=e.charCodeAt(o);this.pending[this.next_id]=new PendingData(n,i),this.ws.send(a),this.next_id++},this.refObjectInfo=function(e,t,n){var i=new Sub;if(i.name=e,i.refid=this.subscriptionCount,i.type=t,i.elements=n,this.sub[this.subscriptionCount]=i,this.subscriptionCount++,this.listSent){var a;a=12+i.name.length;var o=new Uint8Array(a+10);o[0]=L,o[2]=255&this.next_id,o[3]=this.next_id>>8&255,o[4]=this.next_id>>16&255,o[5]=this.next_id>>24&255,this.debug&&console.log("RefObjectInfo: ",i.refid);var s=6;o[s++]=255&i.refid,o[s++]=i.refid>>8&255,o[s++]=i.refid>>16&255,o[s++]=i.refid>>24&255,o[s++]=255&i.elements,o[s++]=i.elements>>8&255,o[s++]=i.elements>>16&255,o[s++]=i.elements>>24&255,o[s++]=255&i.name.length,o[s++]=i.name.length>>8&255,o[s++]=i.name.length>>16&255,o[s++]=i.name.length>>24&255;for(var r=0;r<i.name.length;r++)o[s++]=i.name.charCodeAt(r);return this.pending[this.next_id]=new PendingData(this.refObjectInfoReply,null),this.debug&&console.log("Sending RefObjectInfo",this.next_id,a,s),this.ws.send(o),this.next_id++,i.refid}return i.refid},this.refObjectInfoReply=function(e,t){this.debug&&console.log("refObjectInfoReply",e,t)},this.unrefObjectInfo=function(e){var t=new Uint8Array(14);t[0]=E,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,this.debug&&console.log("UnrefObjectInfo: ",e);var n=6;t[n++]=255&e,t[n++]=e>>8&255,t[n++]=e>>16&255,t[n++]=e>>24&255,this.pending[this.next_id]=new PendingData(this.unrefObjectInfoReply,null),this.debug&&console.log("Sending UnrefObjectInfo",this.next_id,4,10,e),this.ws.send(t),this.next_id++,delete this.sub[e]},this.refObjectInfoList=function(e){var t=0,n=0;for(var i in this.return_cb=e,this.sub)t+=12+this.sub[i].name.length,n++;var a=new Uint8Array(t+10);a[0]=B,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&n,a[7]=n>>8&255,a[8]=n>>16&255,a[9]=n>>24&255;var o=10;for(var i in this.sub)if(0!==i){this.debug&&console.log("RefObjectInfoList: ",this.sub[i].refid),a[o++]=255&this.sub[i].refid,a[o++]=this.sub[i].refid>>8&255,a[o++]=this.sub[i].refid>>16&255,a[o++]=this.sub[i].refid>>24&255,a[o++]=255&this.sub[i].elements,a[o++]=this.sub[i].elements>>8&255,a[o++]=this.sub[i].elements>>16&255,a[o++]=this.sub[i].elements>>24&255,a[o++]=255&this.sub[i].name.length,a[o++]=this.sub[i].name.length>>8&255,a[o++]=this.sub[i].name.length>>16&255,a[o++]=this.sub[i].name.length>>24&255;for(var s=0;s<this.sub[i].name.length;s++)a[o++]=this.sub[i].name.charCodeAt(s)}this.pending[this.next_id]=new PendingData(e,null),this.debug&&console.log("Sending RefObjectInfoList",this.next_id,t,o,this.next_id),this.ws.send(a),this.next_id++,this.listSent=!0},this.refObjectInfoListReply=function(e,t){this.debug&&console.log("refObjectInfoListReply",e,t)},this.getRefObjectInfoAll=function(e){var t=new Uint8Array(6);t[0]=G,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,this.pending[this.next_id]=new PendingData(e,null),this.debug&&console.log("Sending getRefObjectInfoAll",this.next_id),this.ws.send(t),this.next_id++},this.getRefObjectInfoAllReply=function(e,t){this.debug&&console.log("getRefObjectInfoAllReply",e,t)},this.getObjectRefInfo=function(e){return this.debug&&console.log("getObjectRefInfo",e,this.sub[e].value),this.sub[e].value},this.setObjectInfoBoolean=function(e,t){var n=new Uint8Array(12+e.length);n[0]=P,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,n[10]=255&e.length,n[11]=e.length>>8&255;for(var i=12,a=0;a<e.length;a++)n[i++]=e.charCodeAt(a);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoBoolean",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoInt=function(e,t){var n=new Uint8Array(12+e.length);n[0]=O,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,n[10]=255&e.length,n[11]=e.length>>8&255;for(var i=12,a=0;a<e.length;a++)n[i++]=e.charCodeAt(a);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoInt",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoFloat=function(e,t){var n=new Uint8Array(12+e.length);n[0]=j,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;var i=new ArrayBuffer(4);new Float32Array(i)[0]=t;var a=new Uint8Array(i);n[6]=a[0],n[7]=a[1],n[8]=a[2],n[9]=a[3],n[10]=255&e.length,n[11]=e.length>>8&255;for(var o=12,s=0;s<e.length;s++)n[o++]=e.charCodeAt(s);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoFloat",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoString=function(e,t){var n,i=new Uint8Array(10+t.length+e.length);i[0]=z,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.length,i[7]=t.length>>8&255;var a=8;for(n=0;n<t.length;n++)i[a++]=t.charCodeAt(n);for(i[a++]=255&e.length,i[a++]=e.length>>8&255,n=0;n<e.length;n++)i[a++]=e.charCodeAt(n);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoString",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.toggleObjectInfo=function(e){var t=new Uint8Array(8+e.length);t[0]=N,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,t[6]=255&e.length,t[7]=e.length>>8&255;for(var n=8,i=0;i<e.length;i++)t[n++]=e.charCodeAt(i);return this.ws.send(t),this.debug&&console.log("Sending toggleObjectInfoBoolean",this.next_id,e,value),this.next_id++,new PwrtStatus(1)},this.getAllXttChildren=function(e,t,n){var i=new Uint8Array(14);i[0]=H,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.vid,i[7]=e.vid>>8&255,i[8]=e.vid>>16&255,i[9]=e.vid>>24&255,i[10]=255&e.oix,i[11]=e.oix>>8&255,i[12]=e.oix>>16&255,i[13]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending getAllXttChildren",this.next_id),this.ws.send(i),this.next_id++},this.getAllClassAttributes=function(e,t,n,i){var a=new Uint8Array(18);a[0]=W,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&e,a[7]=e>>8&255,a[8]=e>>16&255,a[9]=e>>24&255,a[10]=255&t.vid,a[11]=t.vid>>8&255,a[12]=t.vid>>16&255,a[13]=t.vid>>24&255,a[14]=255&t.oix,a[15]=t.oix>>8&255,a[16]=t.oix>>16&255,a[17]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getAllClassAttributes",this.next_id,e,t.vid,t.oix),this.ws.send(a),this.next_id++},this.getObject=function(e,t,n,i){var a=new Uint8Array(16);a[0]=J,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&t,a[7]=t>>8&255,a[8]=255&e.vid,a[9]=e.vid>>8&255,a[10]=e.vid>>16&255,a[11]=e.vid>>24&255,a[12]=255&e.oix,a[13]=e.oix>>8&255,a[14]=e.oix>>16&255,a[15]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,e.vid,e.oix),this.ws.send(a),this.next_id++},this.getObjectFromAref=function(e,t,n,i){var a=new Uint8Array(32);a[0]=ee,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&t,a[7]=t>>8&255,a[8]=255&e.objid.vid,a[9]=e.objid.vid>>8&255,a[10]=e.objid.vid>>16&255,a[11]=e.objid.vid>>24&255,a[12]=255&e.objid.oix,a[13]=e.objid.oix>>8&255,a[14]=e.objid.oix>>16&255,a[15]=e.objid.oix>>24&255,a[16]=255&e.offset,a[17]=e.offset>>8&255,a[18]=e.offset>>16&255,a[19]=e.offset>>24&255,a[20]=255&e.body,a[21]=e.body>>8&255,a[22]=e.body>>16&255,a[23]=e.body>>24&255,a[24]=255&e.size,a[25]=e.size>>8&255,a[26]=e.size>>16&255,a[27]=e.size>>24&255,a[28]=255&e.flags,a[29]=e.flags>>8&255,a[30]=e.flags>>16&255,a[31]=e.flags>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,oid.vid,oid.oix),this.ws.send(a),this.next_id++},this.getObjectFromName=function(e,t,n,i){var a=new Uint8Array(10+e.length);a[0]=Q,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255,a[6]=255&t,a[7]=t>>8&255,a[8]=255&e.length,a[9]=e.length>>8&255;for(var o=10,s=0;s<e.length;s++)a[o++]=e.charCodeAt(s);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObjectFromName",this.next_id,e),this.ws.send(a),this.next_id++},this.crrSignal=function(e,t,n){var i=new Uint8Array(14);i[0]=V,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.vid,i[7]=e.vid>>8&255,i[8]=e.vid>>16&255,i[9]=e.vid>>24&255,i[10]=255&e.oix,i[11]=e.oix>>8&255,i[12]=e.oix>>16&255,i[13]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending crrObject",this.next_id,e.vid,e.oix),this.ws.send(i),this.next_id++},this.getOpwindMenu=function(e,t,n){e.length;var i=new Uint8Array(8+e.length);i[0]=K,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.length,i[7]=e.length>>8&255;for(var a=8,o=0;o<e.length;o++)i[a++]=e.charCodeAt(o);this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending getOpwindMenu",this.next_id),this.ws.send(i),this.next_id++},this.login=function(e,t,n,i){var a=new Uint8Array(8+e.length+2+t.length);a[0]=X,a[2]=255&this.next_id,a[3]=this.next_id>>8&255,a[4]=this.next_id>>16&255,a[5]=this.next_id>>24&255;var o=6;a[o]=255&e.length,a[o+1]=e.length>>8&255,o+=2;for(var s=0;s<e.length;s++)a[o++]=e.charCodeAt(s);a[o]=255&t.length,a[o+1]=t.length>>8&255,o+=2;for(s=0;s<t.length;s++)a[o++]=t.charCodeAt(s);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending login",this.next_id),this.ws.send(a),this.next_id++},this.getMsg=function(e,t,n){var i=new Uint8Array(10);i[0]=q,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.debug&&console.log("Sending getMsg",this.next_id,e),this.next_id++},this.mhSync=function(e,t,n){var i=new Uint8Array(10);i[0]=Z,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending mhSync",this.next_id),this.ws.send(i),this.next_id++},this.mhAcknowledge=function(e,t,n){var i=new Uint8Array(16+e.birthTime.length);i[0]=$,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.nix,i[7]=e.nix>>8&255,i[8]=e.nix>>16&255,i[9]=e.nix>>24&255,i[10]=255&e.idx,i[11]=e.idx>>8&255,i[12]=e.idx>>16&255,i[13]=e.idx>>24&255;var a=14;i[a]=255&e.birthTime.length,i[a+1]=e.birthTime.length>>8&255,a+=2;for(var o=0;o<e.birthTime.length;o++)i[a++]=e.birthTime.charCodeAt(o);this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending mhAcknowledge",this.next_id),console.log("Sending mhAcknowledge",this.next_id),this.ws.send(i),this.next_id++}}var Flow={DRAWOFFSET:2,eConType_Straight:0,eConType_Fixed:1,eConType_AllFixed:2,eConType_Routed:3,eConType_StepDiv:4,eConType_StepConv:5,eConType_TransDiv:6,eConType_TransConv:7,eConType_StraightOneArrow:8,eConType_Reference:9,eDrawType_Line:0,eDrawType_LineRed:1,eDrawType_LineGray:2,eDrawType_LineErase:3,eDrawType_LineDashed:4,eDrawType_LineDashedRed:5,eDrawType_TextHelvetica:6,eDrawType_TextHelveticaBold:7,eDrawType_TextHelveticaErase:8,eDrawType_TextHelveticaEraseBold:9,eDrawType_:10,eDrawType_Green:11,eDrawType_Yellow:12,eDrawType_DarkGray:13,eDrawType_Inherit:9999,mDisplayLevel_1:1,mDisplayLevel_2:4,mDisplayLevel_3:8,mDisplayLevel_4:16,mDisplayLevel_5:32,mDisplayLevel_6:64,eNodeGroup_Common:0,eNodeGroup_Document:1,eNodeGroup_Trace:2,eTraceType_Boolean:0,eTraceType_Int32:1,eTraceType_Float32:2,eTraceType_User:3,eSave_Ctx:1,eSave_Array:2,eSave_NodeClass:3,eSave_ConClass:4,eSave_Rect:5,eSave_Line:6,eSave_Point:7,eSave_Arc:8,eSave_Text:9,eSave_Node:10,eSave_Con:11,eSave_ConPoint:12,eSave_Annot:13,eSave_Arrow:14,eSave_Pixmap:15,eSave_AnnotPixmap:16,eSave_Radiobutton:17,eSave_Frame:18,eSave_AnnotPixmapButton:19,eSave_Triangle:20,eSave_End:99,eSave_Ctx_zoom_factor:100,eSave_Ctx_base_zoom_factor:101,eSave_Ctx_offset_x:102,eSave_Ctx_offset_y:103,eSave_Ctx_nav_zoom_factor:104,eSave_Ctx_print_zoom_factor:105,eSave_Ctx_nav_offset_x:106,eSave_Ctx_nav_offset_y:107,eSave_Ctx_x_right:108,eSave_Ctx_x_left:109,eSave_Ctx_y_high:110,eSave_Ctx_y_low:111,eSave_Ctx_window_width:112,eSave_Ctx_window_height:113,eSave_Ctx_nav_window_width:114,eSave_Ctx_nav_window_height:115,eSave_Ctx_nav_rect_ll_x:116,eSave_Ctx_nav_rect_ll_y:117,eSave_Ctx_nav_rect_ur_x:118,eSave_Ctx_nav_rect_ur_y:119,eSave_Ctx_nav_rect_hot:120,eSave_Ctx_name:121,eSave_Ctx_user_highlight:122,eSave_Ctx_a_nc:123,eSave_Ctx_a_cc:124,eSave_Ctx_a:125,eSave_Ctx_grid_size_x:126,eSave_Ctx_grid_size_y:127,eSave_Ctx_grid_on:128,eSave_Ctx_draw_delta:129,eSave_Ctx_refcon_width:130,eSave_Ctx_refcon_height:131,eSave_Ctx_refcon_textsize:132,eSave_Ctx_refcon_linewidth:133,eSave_Ctx_user_version:134,eSave_Array_a:200,eSave_NodeClass_nc_name:300,eSave_NodeClass_a:301,eSave_NodeClass_group:302,eSave_NodeClass_no_con_obstacle:303,eSave_ConClass_cc_name:400,eSave_ConClass_con_type:401,eSave_ConClass_corner:402,eSave_ConClass_draw_type:403,eSave_ConClass_line_width:404,eSave_ConClass_arrow_width:405,eSave_ConClass_arrow_length:406,eSave_ConClass_round_corner_amount:407,eSave_ConClass_group:408,eSave_Rect_draw_type:500,eSave_Rect_line_width:501,eSave_Rect_ll:502,eSave_Rect_ur:503,eSave_Rect_display_level:504,eSave_Rect_fill:505,eSave_Line_draw_type:600,eSave_Line_line_width:601,eSave_Line_p1:602,eSave_Line_p2:603,eSave_Point_x:700,eSave_Point_y:701,eSave_Arc_angel1:800,eSave_Arc_angel2:801,eSave_Arc_draw_type:802,eSave_Arc_line_width:803,eSave_Arc_ll:804,eSave_Arc_ur:805,eSave_Text_text_size:900,eSave_Text_draw_type:901,eSave_Text_text:902,eSave_Text_p:903,eSave_Node_nc:1e3,eSave_Node_pos:1001,eSave_Node_n_name:1002,eSave_Node_annotsize:1003,eSave_Node_annotv:1004,eSave_Node_refcon_cnt:1005,eSave_Node_x_right:1006,eSave_Node_x_left:1007,eSave_Node_y_high:1008,eSave_Node_y_low:1009,eSave_Node_trace_object:1010,eSave_Node_trace_attribute:1011,eSave_Node_trace_attr_type:1012,eSave_Node_obst_x_right:1013,eSave_Node_obst_x_left:1014,eSave_Node_obst_y_high:1015,eSave_Node_obst_y_low:1016,eSave_Node_trace_inverted:1017,eSave_Con_x_right:1100,eSave_Con_x_left:1101,eSave_Con_y_high:1102,eSave_Con_y_low:1103,eSave_Con_cc:1104,eSave_Con_dest_node:1105,eSave_Con_source_node:1106,eSave_Con_dest_conpoint:1107,eSave_Con_source_conpoint:1108,eSave_Con_dest_direction:1109,eSave_Con_source_direction:1110,eSave_Con_line_a:1111,eSave_Con_arc_a:1112,eSave_Con_arrow_a:1113,eSave_Con_ref_a:1114,eSave_Con_p_num:1115,eSave_Con_l_num:1116,eSave_Con_a_num:1117,eSave_Con_arrow_num:1118,eSave_Con_ref_num:1119,eSave_Con_point_x:1120,eSave_Con_point_y:1121,eSave_Con_source_ref_cnt:1122,eSave_Con_dest_ref_cnt:1123,eSave_Con_c_name:1124,eSave_Con_trace_object:1125,eSave_Con_trace_attribute:1126,eSave_Con_trace_attr_type:1127,eSave_Con_temporary_ref:1128,eSave_ConPoint_number:1200,eSave_ConPoint_direction:1201,eSave_ConPoint_p:1202,eSave_ConPoint_trace_attribute:1203,eSave_ConPoint_trace_attr_type:1204,eSave_Annot_number:1300,eSave_Annot_draw_type:1301,eSave_Annot_text_size:1302,eSave_Annot_p:1303,eSave_Annot_annot_type:1304,eSave_Annot_display_level:1305,eSave_Arrow_arrow_width:1400,eSave_Arrow_arrow_length:1401,eSave_Arrow_draw_type:1402,eSave_Arrow_line_width:1403,eSave_Arrow_p_dest:1404,eSave_Arrow_p1:1405,eSave_Arrow_p2:1406,eSave_Triangle_rect_part:2e3};function GDraw(e){this.ctx=e,this.canvas=document.querySelector("canvas"),this.gctx=this.canvas.getContext("2d"),this.offset_top=this.canvas.offsetTop,this.offset_left=this.canvas.offsetTop,console.log("offset_top",this.offset_top,"offset_left",this.offset_left),this.rect=function(e,t,n,i){this.gctx.strokeRect(e,t,n,i)},this.line=function(e,t,n,i){this.gctx.beginPath(),this.gctx.moveTo(e,t),this.gctx.lineTo(n,i),this.gctx.stroke()}}function FlowArray(b){this.a=[],this.ctx=b,this.add=function(e){this.a.push(e)},this.size=function(){return this.a.length},this.get=function(e){return this.a[e]},this.open=function(e,t){var n,i=!1;for(n=t;n<e.length;n++){var a=e[n].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("array : "+e[n]),o){case Flow.eSave_Array:break;case Flow.eSave_NodeClass:var s=new FlowNodeClass(b);n=s.open(e,n+1),this.a.push(s);break;case Flow.eSave_ConClass:var r=new FlowConClass(b);n=r.open(e,n+1),this.a.push(r);break;case Flow.eSave_Node:var _=new FlowNode(b);n=_.open(e,n+1),this.a.push(_);break;case Flow.eSave_Con:var l=new FlowCon(b);n=l.open(e,n+1),this.a.push(l);break;case Flow.eSave_Rect:var h=new FlowRect(b);n=h.open(e,n+1),this.a.push(h);break;case Flow.eSave_Line:var c=new FlowLine(b);n=c.open(e,n+1),this.a.push(c);break;case Flow.eSave_Triangle:var d=new FlowTriangle(b);n=d.open(e,n+1),this.a.push(d);break;case Flow.eSave_Arc:var g=new FlowArc(b);n=g.open(e,n+1),this.a.push(g);break;case Flow.eSave_Text:var w=new FlowText(b);n=w.open(e,n+1),this.a.push(w);break;case Flow.eSave_ConPoint:var f=new FlowConPoint(b);n=f.open(e,n+1),this.a.push(f);break;case Flow.eSave_Annot:var v=new FlowAnnot(b);n=v.open(e,n+1),this.a.push(v);break;case Flow.eSave_Arrow:var p=new FlowArrow(b);n=p.open(e,n+1),this.a.push(p);break;case Flow.eSave_Point:var u=new FlowPoint(b);n=u.open(e,n+1),this.a.push(u);break;case Flow.eSave_End:i=!0;break;default:console.log("Syntax error in FlowArray",o)}if(i)break}return n},this.draw=function(e,t,n,i){for(var a=0;a<this.a.length;a++)this.a[a].draw(e,t,n,i)},this.search_by_name=function(e){for(var t=e.toUpperCase(),n=0;n<this.a.length;n++)if(this.a[n]instanceof FlowNode&&(console.log("Search",this.a[n].n_name,e),this.a[n].n_name.toUpperCase()==t))return this.a[n];return null}}function FlowNodeClass(e){this.a=new FlowArray(e),this.ctx=e,this.nc_name="",this.group=0,this.draw=function(e,t,n,i){this.a.draw(e,t,n,i)},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("nodeclass : "+e[i]),o){case Flow.eSave_NodeClass_nc_name:this.nc_name=a[1];break;case Flow.eSave_NodeClass_a:i=this.a.open(e,i+1);break;case Flow.eSave_NodeClass_group:this.group=parseInt(a[1]);break;case Flow.eSave_NodeClass_no_con_obstacle:break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowNodeClass")}if(n)break}return i},this.event_handler=function(e,t){return 0}}function FlowConClass(e){this.cc_name="",this.con_type=0,this.corner=0,this.draw_type=0,this.line_width=0,this.arrow_width=0,this.arrow_length=0,this.round_corner_amount=0,this.group=0,this.ctx=e,this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("conclass : "+e[i]),o){case Flow.eSave_ConClass:break;case Flow.eSave_ConClass_cc_name:this.cc_name=a[1];break;case Flow.eSave_ConClass_con_type:this.con_type=parseInt(a[1]);break;case Flow.eSave_ConClass_corner:this.corner=parseInt(a[1]);break;case Flow.eSave_ConClass_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_ConClass_line_width:this.line_width=parseInt(a[1]);break;case Flow.eSave_ConClass_arrow_width:this.arrow_width=parseFloat(a[1]);break;case Flow.eSave_ConClass_arrow_length:this.arrow_length=parseFloat(a[1]);break;case Flow.eSave_ConClass_round_corner_amount:this.round_corner_amount=parseFloat(a[1]);break;case Flow.eSave_ConClass_group:this.group=parseInt(a[1]);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowConClass")}if(n)break}return i}}function FlowPoint(e){this.x=0,this.y=0,this.ctx=e,this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("point : "+e[i]),o){case Flow.eSave_Point:break;case Flow.eSave_Point_x:this.x=parseFloat(a[1]);break;case Flow.eSave_Point_y:this.y=parseFloat(a[1]);break;case Flow.eSave_End:n=!0;break;default:System.out.println("Syntax error in FlowPoint")}if(n)break}return i}}function FlowLine(e){this.p1=new FlowPoint(e),this.p2=new FlowPoint(e),this.draw_type=0,this.line_width=0,this.ctx=e,this.draw=function(e,t,n,i){var a=(this.p1.x+t.x)*this.ctx.zoom_factor,o=(this.p1.y+t.y)*this.ctx.zoom_factor,s=(this.p2.x+t.x)*this.ctx.zoom_factor,r=(this.p2.y+t.y)*this.ctx.zoom_factor;switch(e.lineWidth=this.ctx.zoom_factor/this.ctx.base_zoom_factor*this.line_width,e.lineWidth<1&&(e.lineWidth=1),this.draw_type){case Flow.eDrawType_LineDashed:case Flow.eDrawType_LineDashedRed:e.setLineDash([8,8])}switch(this.draw_type){case Flow.eDrawType_LineGray:e.strokeStyle="lightgray";break;case Flow.eDrawType_LineRed:case Flow.eDrawType_LineDashedRed:e.strokeStyle="red";break;case Flow.eDrawType_LineErase:return;default:e.strokeStyle="black"}switch(i&&(e.strokeStyle="red"),e.beginPath(),e.moveTo(a,o),e.lineTo(s,r),e.stroke(),this.draw_type){case Flow.eDrawType_LineDashed:case Flow.eDrawType_LineDashedRed:e.setLineDash([])}},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("line : "+e[i]),o){case Flow.eSave_Line:break;case Flow.eSave_Line_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Line_line_width:this.line_width=parseInt(a[1]);break;case Flow.eSave_Line_p1:i=this.p1.open(e,i+1);break;case Flow.eSave_Line_p2:i=this.p2.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowLine")}if(n)break}return i}}function FlowRect(e){this.ll=new FlowPoint(e),this.ur=new FlowPoint(e),this.draw_type=0,this.line_width=0,this.display_level=0,this.fill=0,this.ctx=e,this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("rect : "+e[i]),o){case Flow.eSave_Rect:break;case Flow.eSave_Rect_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Rect_line_width:this.line_width=parseInt(a[1]);break;case Flow.eSave_Rect_display_level:this.display_level=parseInt(a[1]);break;case Flow.eSave_Rect_fill:this.fill=parseInt(a[1]);break;case Flow.eSave_Rect_ll:i=this.ll.open(e,i+1);break;case Flow.eSave_Rect_ur:i=this.ur.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowRect")}if(n)break}return i},this.draw=function(e,t,n,i){if(0!=(this.display_level&this.ctx.display_level)){var a=(this.ll.x+t.x)*this.ctx.zoom_factor,o=(this.ll.y+t.y)*this.ctx.zoom_factor,s=(this.ur.x-this.ll.x)*this.ctx.zoom_factor,r=(this.ur.y-this.ll.y)*this.ctx.zoom_factor;switch(e.lineWidth=this.ctx.zoom_factor/this.ctx.base_zoom_factor*this.line_width,e.lineWidth<1&&(e.lineWidth=1),this.draw_type){case Flow.eDrawType_LineGray:e.strokeStyle="grey";break;case Flow.eDrawType_LineRed:case Flow.eDrawType_LineDashedRed:e.strokeStyle="red";break;case Flow.eDrawType_LineErase:return;default:e.strokeStyle="black"}i&&(e.strokeStyle="red"),e.strokeRect(a,o,s,r)}}}function FlowArc(e){this.ll=new FlowPoint(e),this.ur=new FlowPoint(e),this.angel1=0,this.angel2=0,this.draw_type=0,this.line_width=0,this.ctx=e,this.draw=function(e,t,n,i){var a=(this.ur.x-this.ll.x)/2*this.ctx.zoom_factor,o=(this.ll.x+t.x)*this.ctx.zoom_factor+a,s=(this.ll.y+t.y)*this.ctx.zoom_factor+a;if(90==this.angel1||270==this.angel1)var r=(this.angel1+90)/180*Math.PI;else r=(this.angel1-90)/180*Math.PI;var _=r+this.angel2/180*Math.PI;e.lineWidth=this.ctx.zoom_factor/this.ctx.base_zoom_factor*this.line_width,e.lineWidth<1&&(e.lineWidth=1),e.strokeStyle="black",i&&(e.strokeStyle="red"),e.beginPath(),e.arc(o,s,a,r,_,!1),e.stroke()},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("arc : "+e[i]),o){case Flow.eSave_Arc:break;case Flow.eSave_Arc_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Arc_line_width:this.line_width=parseInt(a[1]);break;case Flow.eSave_Arc_angel1:this.angel1=parseFloat(a[1]);break;case Flow.eSave_Arc_angel2:this.angel2=parseFloat(a[1]);break;case Flow.eSave_Arc_ll:i=this.ll.open(e,i+1);break;case Flow.eSave_Arc_ur:i=this.ur.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowArc")}if(n)break}return i}}function FlowText(e){this.p=new FlowPoint(e),this.draw_type=0,this.text_size=0,this.text="",this.ctx=e,this.draw=function(e,t,n,i){var a=0,o=this.ctx.zoom_factor/this.ctx.base_zoom_factor*(this.text_size+4)-4;if(!(o<0)){var s=(this.p.x+t.x)*this.ctx.zoom_factor,r=(this.p.y+t.y)*this.ctx.zoom_factor;switch(o){case 0:a=8;break;case 1:a=10;break;case 2:a=12;break;case 3:case 4:a=14;break;case 5:a=8;break;case 6:case 7:a=18;break;default:a=3*o}e.font=a+"px Arial",e.lineWidth=.5,e.fillStyle="black",i&&(e.fillStyle="red"),e.fillText(this.text,s,r)}},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("text : "+e[i]),o){case Flow.eSave_Text:break;case Flow.eSave_Text_text_size:this.text_size=parseInt(a[1]);break;case Flow.eSave_Text_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Text_text:this.text=a[1];break;case Flow.eSave_Text_p:i=this.p.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowText")}if(n)break}return i}}function FlowArrow(e){this.p1=new FlowPoint(e),this.p2=new FlowPoint(e),this.p_dest=new FlowPoint(e),this.arrow_width=0,this.arrow_length=0,this.draw_type=0,this.line_width=0,this.ctx=e,this.draw=function(e,t,n,i){var a=(this.p1.x+t.x)*this.ctx.zoom_factor,o=(this.p2.x+t.x)*this.ctx.zoom_factor,s=(this.p_dest.x+t.x)*this.ctx.zoom_factor,r=(this.p1.y+t.y)*this.ctx.zoom_factor,_=(this.p2.y+t.y)*this.ctx.zoom_factor,l=(this.p_dest.y+t.y)*this.ctx.zoom_factor;switch(this.draw_type){case Flow.eDrawType_LineGray:e.fillStyle="lightgray";break;case Flow.eDrawType_LineRed:case Flow.eDrawType_LineDashedRed:e.fillStyle="red";break;case Flow.eDrawType_LineErase:return;default:e.fillStyle="black"}i&&(e.fillStyle="red"),e.beginPath(),e.moveTo(a,r),e.lineTo(o,_),e.lineTo(s,l),e.lineTo(a,r),e.fill()},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("arrow : "+e[i]),o){case Flow.eSave_Arrow:break;case Flow.eSave_Arrow_arrow_width:this.arrow_width=parseFloat(a[1]);break;case Flow.eSave_Arrow_arrow_length:this.arrow_length=parseFloat(a[1]);break;case Flow.eSave_Arrow_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Arrow_line_width:this.line_width=parseInt(a[1]);break;case Flow.eSave_Arrow_p_dest:i=this.p_dest.open(e,i+1);break;case Flow.eSave_Arrow_p1:i=this.p1.open(e,i+1);break;case Flow.eSave_Arrow_p2:i=this.p2.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowArrow")}if(n)break}}}function FlowTriangle(e){this.prototype=new FlowRect(e),this.draw=function(e,t,n,i){var a=(this.prototype.ll.x+t.x)*this.prototype.ctx.zoom_factor,o=(this.prototype.ll.y+t.y)*this.prototype.ctx.zoom_factor,s=(this.prototype.ur.x+t.x)*this.prototype.ctx.zoom_factor,r=(this.prototype.ur.y+t.y)*this.prototype.ctx.zoom_factor;e.lineWidth=this.prototype.ctx.zoom_factor/this.prototype.ctx.base_zoom_factor*this.prototype.line_width,e.lineWidth<1&&(e.lineWidth=1);var _=this.prototype.draw_type;if(_==Flow.eDrawType_Inherit&&null!=n&&(_=n.fill_color),1==this.prototype.fill){switch(_){case Flow.eDrawType_LineRed:e.fillStyle="red";break;case Flow.eDrawType_Green:e.fillStyle="green";break;case Flow.eDrawType_Yellow:e.fillStyle="yellow";break;default:e.fillStyle="gray"}e.beginPath(),e.moveTo(a,r),e.lineTo((a+s)/2,o),e.lineTo(s,r),e.lineTo(a,r),e.fill()}else e.strokeStyle="black",e.beginPath(),e.moveTo(a,r),e.lineTo((a+s)/2,o),e.lineTo(s,r),e.lineTo(a,r),e.stroke()},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.prototype.ctx.debug&&console.log("triangle : "+e[i]),o){case Flow.eSave_Triangle_rect_part:i=this.prototype.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowTriangle")}if(n)break}return i}}function FlowConPoint(s){this.p=new FlowPoint(s),this.number=0,this.direction=0,this.trace_attribute="",this.trace_attr_type=0,this.ctx=s,this.draw=function(e,t,n,i){},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(s.debug&&console.log("conpoint : "+e[i]),o){case Flow.eSave_ConPoint:break;case Flow.eSave_ConPoint_number:this.number=parseInt(a[1]);break;case Flow.eSave_ConPoint_direction:this.direction=parseInt(a[1]);break;case Flow.eSave_ConPoint_p:i=this.p.open(e,i+1);break;case Flow.eSave_ConPoint_trace_attribute:this.trace_attribute=a[1];break;case Flow.eSave_ConPoint_trace_attr_type:this.trace_attr_type=parseInt(a[1]);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowConPoint")}if(n)break}return i}}function FlowAnnot(e){this.p=new FlowPoint(e),this.draw_type=0,this.text_size=0,this.display_level=0,this.annot_type=0,this.number=0,this.ctx=e,this.draw=function(e,t,n,i){if(null!=n&&null!=n.annotv[this.number]&&0!=(this.display_level&this.ctx.display_level)){var a=0,o=this.ctx.zoom_factor/this.ctx.base_zoom_factor*(this.text_size+4)-4;if(!(o<0)){switch(o){case 0:a=8;break;case 1:a=10;break;case 2:a=12;break;case 3:case 4:a=14;break;case 5:case 6:case 7:a=18;break;default:a=3*o}switch(this.draw_type){case Flow.eDrawType_TextHelveticaBold:e.font="bold "+a+"px Arial";break;default:e.font=a+"px Arial"}e.fillStyle="black",i&&(e.fillStyle="red"),e.lineWidth=.5;for(var s=(this.p.x+t.x)*this.ctx.zoom_factor,r=(this.p.y+t.y)*this.ctx.zoom_factor-a/4,_=n.annotv[this.number].split("\n"),l=0;l<_.length;l++)e.fillText(_[l],s,r),r+=1.4*a}}},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("annot : "+e[i]),o){case Flow.eSave_Annot:break;case Flow.eSave_Annot_number:this.number=parseInt(a[1]);break;case Flow.eSave_Annot_draw_type:this.draw_type=parseInt(a[1]);break;case Flow.eSave_Annot_text_size:this.text_size=parseInt(a[1]);break;case Flow.eSave_Annot_display_level:this.display_level=parseInt(a[1]);break;case Flow.eSave_Annot_p:i=this.p.open(e,i+1);break;case Flow.eSave_Annot_annot_type:this.annot_type=parseInt(a[1]);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowAnnot")}if(n)break}return i}}function FlowCon(o){this.ctx=o,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.cc=null,this.p_num=0,this.l_num=0,this.a_num=0,this.arrow_num=0,this.ref_num=0,this.point_x=new FlowArray(o),this.point_y=new FlowArray(o),this.line_a=new FlowArray(o),this.arc_a=new FlowArray(o),this.arrow_a=new FlowArray(o),this.ref_a=new FlowArray(o),this.c_name="",this.trace_object="",this.trace_attribute="",this.trace_attr_type=0,this.temporary_ref=0,this.highlight=!1,this.redraw=!0,this.draw=function(e,t,n,i){if(this.redraw){var a=new FlowPoint(o);a.x=0,(a.y=0)!=this.temporary_ref||this.cc.con_type==Flow.eConType_Reference?this.ref_a.draw(e,a,null,i):(this.line_a.draw(e,a,null,i),this.arc_a.draw(e,a,null,i),this.arrow_a.draw(e,a,null,i)),this.redraw=!1}},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("con : "+e[i]),o){case Flow.eSave_Con:break;case Flow.eSave_Con_cc:for(var s=a[1],r=!1,_=0;_<this.ctx.a_cc.size();_++)if(this.ctx.a_cc.get(_).cc_name===s){this.cc=this.ctx.a_cc.get(_),r=!0;break}r||console.log("FlowCon: ConClass not found: "+s);break;case Flow.eSave_Con_c_name:null!=a[1]&&(this.c_name=a[1]);break;case Flow.eSave_Con_x_right:this.x_right=parseFloat(a[1]);break;case Flow.eSave_Con_x_left:this.x_left=parseFloat(a[1]);break;case Flow.eSave_Con_y_high:this.y_high=parseFloat(a[1]);break;case Flow.eSave_Con_y_low:this.y_low=parseFloat(a[1]);break;case Flow.eSave_Con_dest_node:case Flow.eSave_Con_source_node:i++;break;case Flow.eSave_Con_dest_conpoint:case Flow.eSave_Con_source_conpoint:case Flow.eSave_Con_dest_direction:case Flow.eSave_Con_source_direction:break;case Flow.eSave_Con_line_a:i=this.line_a.open(e,i+1);break;case Flow.eSave_Con_arc_a:i=this.arc_a.open(e,i+1);break;case Flow.eSave_Con_arrow_a:i=this.arrow_a.open(e,i+1);break;case Flow.eSave_Con_ref_a:i=this.ref_a.open(e,i+1);break;case Flow.eSave_Con_p_num:this.p_num=parseInt(a[1]);break;case Flow.eSave_Con_l_num:this.l_num=parseInt(a[1]);break;case Flow.eSave_Con_a_num:this.a_num=parseInt(a[1]);break;case Flow.eSave_Con_arrow_num:this.arrow_num=parseInt(a[1]);break;case Flow.eSave_Con_ref_num:this.ref_num=parseInt(a[1]);break;case Flow.eSave_Con_point_x:for(_=0;_<this.p_num;_++)i++,this.point_x[_]=parseFloat(e[i]);break;case Flow.eSave_Con_point_y:for(_=0;_<this.p_num;_++)i++,this.point_y[_]=parseFloat(e[i]);break;case Flow.eSave_Con_source_ref_cnt:case Flow.eSave_Con_dest_ref_cnt:break;case Flow.eSave_Con_trace_object:null!=a[1]&&(this.trace_object=a[1]);break;case Flow.eSave_Con_trace_attribute:null!=a[1]&&(this.trace_attribute=a[1]);break;case Flow.eSave_Con_trace_attr_type:this.trace_attr_type=parseInt(a[1]);break;case Flow.eSave_Con_temporary_ref:this.temporary_ref=parseInt(a[1]);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowCon")}if(n)break}return i},this.connect=function(){},this.scan=function(){}}function FlowNode(a){this.ctx=a,this.OFFSET=2,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.nc=null,this.pos=new FlowPoint(a),this.n_name="",this.annotv=[],this.annotsize=[],this.trace_object="",this.trace_attribute="",this.trace_attr_type=0,this.highlight=!1,this.select=!1,this.fill_color=0,this.p=0,this.old_value=0,this.first_scan=!0,this.redraw=!0,this.draw=function(e,t,n,i){if(this.redraw){if(this.nc.group!=Flow.eNodeGroup_Document){var a=this.x_left*this.ctx.zoom_factor,o=this.y_low*this.ctx.zoom_factor-1,s=(this.x_right-this.x_left)*this.ctx.zoom_factor,r=(this.y_high-this.y_low)*this.ctx.zoom_factor+2;e.fillStyle="white",this.select&&(e.fillStyle="lightblue"),e.fillRect(a,o,s,r)}this.nc.draw(e,this.pos,this,this.highlight),this.redraw=!1}},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.ctx.debug&&console.log("node : "+e[i]),o){case Flow.eSave_Node_nc:for(var s=a[1],r=!1,_=0;_<this.ctx.a_nc.size();_++)if(this.ctx.a_nc.get(_).nc_name===s){this.nc=this.ctx.a_nc.get(_),r=!0;break}r||console.log("FlowNode: NodeClass not found: "+s);break;case Flow.eSave_Node_n_name:null!=a[1]&&(this.n_name=a[1]);break;case Flow.eSave_Node_refcon_cnt:i+=32;break;case Flow.eSave_Node_x_right:this.x_right=parseFloat(a[1]);break;case Flow.eSave_Node_x_left:this.x_left=parseFloat(a[1]);break;case Flow.eSave_Node_y_high:this.y_high=parseFloat(a[1]);break;case Flow.eSave_Node_y_low:this.y_low=parseFloat(a[1]);break;case Flow.eSave_Node_annotsize:for(_=0;_<10;_++)i++,this.annotsize[_]=parseInt(e[i]);break;case Flow.eSave_Node_annotv:for(_=0;_<10;_++)if(0<this.annotsize[_]){for(var l,h=[],c=0,d=!1,g=!0;;)if(null!=e[++i]){for(var w=0;w<e[i].length;w++)if(l=c,c=e[i].charAt(w),g)g=!1;else if('"'!==c||"\\"!==l){if('"'===c){d=!0;break}h.push(c),w==e[i].length-1&&h.push("\n")}else h[h.length-1]=null;if(d)break}else h.push("\n");this.annotv[_]=h.join("")}break;case Flow.eSave_Node_pos:i=this.pos.open(e,i+1);break;case Flow.eSave_Node_trace_object:null!=a[1]&&(this.trace_object=a[1]);break;case Flow.eSave_Node_trace_attribute:null!=a[1]&&(this.trace_attribute=a[1]);break;case Flow.eSave_Node_trace_attr_type:this.trace_attr_type=parseInt(a[1]);break;case Flow.eSave_Node_obst_x_right:case Flow.eSave_Node_obst_x_left:case Flow.eSave_Node_obst_y_high:case Flow.eSave_Node_obst_y_low:case Flow.eSave_Node_trace_inverted:break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowNode")}if(n)break}return console.log("Node",this.trace_attr_type,this.n_name),i},this.connect=function(){if(""!=this.trace_object&&""!=this.trace_attribute&&this.trace_attr_type!=Flow.eTraceType_User){var e=this.trace_attribute.indexOf("#");-1!=e&&(this.trace_attribute=this.trace_attribute.substring(0,e));var t,n=this.trace_object+"."+this.trace_attribute;switch(this.trace_attr_type){case Flow.eTraceType_Boolean:t=Pwr.eType_Boolean;break;case Flow.eTraceType_Int32:t=Pwr.eType_Int32;break;case Flow.eTraceType_Float32:t=Pwr.eType_Float32;break;case Flow.eTraceType_User:return}this.p=this.ctx.gdh.refObjectInfo(n,t,1),console.log("connecting",n,this.p)}},this.scan=function(){if(0!=this.p){var e=this.ctx.gdh.getObjectRefInfo(this.p);if(this.first_scan)this.first_scan=!1;else if(e==this.old_value)return;this.highlight=!!e,this.old_value=e,this.redraw=!0}},this.event_handler=function(e,t){var n=e/this.ctx.zoom_factor+a.x_left,i=t/this.ctx.zoom_factor+a.y_low;return n>=this.x_left&&n<=this.x_right&&i>=this.y_low&&i<=this.y_high?(console.log("Hit in node"),this.select?(this.select=!1,this.redraw=!0):(this.ctx.set_select(!1),this.set_select(!0)),console.log("Hit in",this.n_name),1):0},this.set_select=function(e){e!=this.select&&(this.select=e,this.redraw=!0,this.select?this.ctx.select_object=this:this.ctx.select_object=null)}}function FlowCtx(){this.display_level=Flow.mDisplayLevel_1,this.gdh=0,this.debug=!1,this.zoom_factor=20,this.base_zoom_factor=20,this.offset_x=0,this.offset_y=0,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.a=new FlowArray(this),this.a_nc=new FlowArray(this),this.a_cc=new FlowArray(this),this.name="Claes context",this.gdraw=new GDraw(this),this.select_object=null,this.draw=function(){this.a.draw(this.gdraw.gctx,null,null,!1)},this.open=function(e,t){for(var n=!1,i=t;i<e.length;i++){var a=e[i].split(" "),o=parseInt(a[0]);switch(this.debug&&console.log("ctx : "+e[i]),o){case Flow.eSave_Ctx:break;case Flow.eSave_Ctx_zoom_factor:this.zoom_factor=parseFloat(a[1]);break;case Flow.eSave_Ctx_base_zoom_factor:this.base_zoom_factor=parseFloat(a[1]);break;case Flow.eSave_Ctx_offset_x:this.offset_x=parseInt(a[1]);break;case Flow.eSave_Ctx_offset_y:this.offset_y=parseInt(a[1]);break;case Flow.eSave_Ctx_nav_zoom_factor:case Flow.eSave_Ctx_print_zoom_factor:case Flow.eSave_Ctx_nav_offset_x:case Flow.eSave_Ctx_nav_offset_y:break;case Flow.eSave_Ctx_x_right:this.x_right=parseFloat(a[1]);break;case Flow.eSave_Ctx_x_left:this.x_left=parseFloat(a[1]);break;case Flow.eSave_Ctx_y_high:this.y_high=parseFloat(a[1]);break;case Flow.eSave_Ctx_y_low:this.y_low=parseFloat(a[1]);break;case Flow.eSave_Ctx_nav_rect_ll_x:case Flow.eSave_Ctx_nav_rect_ll_y:case Flow.eSave_Ctx_nav_rect_ur_x:case Flow.eSave_Ctx_nav_rect_ur_y:case Flow.eSave_Ctx_nav_rect_hot:break;case Flow.eSave_Ctx_name:this.name=a[1];break;case Flow.eSave_Ctx_user_highlight:case Flow.eSave_Ctx_grid_size_x:case Flow.eSave_Ctx_grid_size_y:case Flow.eSave_Ctx_grid_on:case Flow.eSave_Ctx_draw_delta:case Flow.eSave_Ctx_refcon_width:case Flow.eSave_Ctx_refcon_height:case Flow.eSave_Ctx_refcon_textsize:case Flow.eSave_Ctx_refcon_linewidth:case Flow.eSave_Ctx_user_version:break;case Flow.eSave_Ctx_a_nc:i=this.a_nc.open(e,i+1);break;case Flow.eSave_Ctx_a_cc:i=this.a_cc.open(e,i+1);break;case Flow.eSave_Ctx_a:i=this.a.open(e,i+1);break;case Flow.eSave_End:n=!0;break;default:console.log("Syntax error in FlowCtx",o)}if(n)break}return i},this.connect=function(){console.log("ctx connect",this.a.size());for(var e=0;e<this.a.size();e++)this.a.get(e).connect()},this.scan=function(){for(var e=0;e<this.a.size();e++)this.a.get(e).scan()},this.event_handler=function(e,t){for(var n=0,i=0;i<this.a.size()&&!(this.a.get(i)instanceof FlowNode&&1==(n=this.a.get(i).event_handler(e,t)));i++);1==n&&this.draw()},this.set_select=function(e){for(var t=0;t<this.a.size();t++)this.a.get(t)instanceof FlowNode&&this.a.get(t).set_select(e)},this.search_object=function(e){console.log("Searching for ",e);var t=this.a.search_by_name(e);return null!=t&&console.log("Found",e),t},this.center_object=function(e){console.log("center_object",e.pos.x*this.zoom_factor+this.offset_x,window.innerWidth,e.pos.x*this.zoom_factor+this.offset_x-window.innerWidth/2),console.log("center_object",e.pos.y*this.zoom_factor+this.offset_y,window.innerHeight,e.pos.y*this.zoom_factor+this.offset_y-window.innerHeight/2),window.scrollTo(e.pos.x*this.zoom_factor+this.offset_x-window.innerWidth/2,e.pos.y*this.zoom_factor+this.offset_y-window.innerHeight/2+this.gdraw.offset_top)}}function FlowFrame(){var i=this;this.ctx=new FlowCtx,this.timer=null,console.log("ctx: ",this.ctx),this.vars_object=null,this.readFlowWeb=function(e,t){var n=window.location.href.lastIndexOf("/"),i=window.location.href.substring(0,n+1);i+=e,console.log("Target: ",i);var a=new XMLHttpRequest;a.read_cb=t,a.open("GET",i,!0),a.addEventListener("load",function(){console.log("Done:",a.status);var e=a.responseText.split("\n");a.read_cb(e,0)}),a.send(null)},this.read_func=function(e,t){if(console.log("this.ctx:",i.ctx),i.ctx.open(e,t),i.ctx.gdraw.canvas.addEventListener("click",function(e){var t=e.pageY-i.ctx.gdraw.offset_top,n=e.pageX-10;console.log("Click",n,t),i.ctx.event_handler(n,t)}),document.getElementById("toolitem1").addEventListener("click",function(e){console.log("toolitem3 event")}),document.getElementById("toolitem2").addEventListener("click",function(e){console.log("toolitem1 event, storage"),console.log("storage",localStorage.getItem("XttMethodNavigator")),null!=i.ctx.select_object&&localStorage.setItem("XttMethodNavigator",i.ctx.select_object.trace_object),console.log("storage",localStorage.getItem("XttMethodNavigator")),console.log("toolitem2 event window",window.opener),window.opener.focus()}),document.getElementById("toolitem3").addEventListener("click",function(e){}),document.getElementById("toolitem4").addEventListener("click",function(e){}),i.ctx.gdraw.canvas.width=(i.ctx.x_right-i.ctx.x_left)*i.ctx.zoom_factor,i.ctx.gdraw.canvas.height=(i.ctx.y_high-i.ctx.y_low)*i.ctx.zoom_factor,i.ctx.gdraw.gctx.translate(-i.ctx.x_left*i.ctx.zoom_factor,-i.ctx.y_low*i.ctx.zoom_factor),i.ctx.offset_x-=i.ctx.x_left*i.ctx.zoom_factor,i.ctx.offset_y-=i.ctx.y_low*i.ctx.zoom_factor,i.ctx.draw(),console.log("New Gdh"),i.ctx.gdh=new Gdh(i.flow_open),i.ctx.gdh.open_cb=i.flow_open,i.ctx.gdh.close_cb=i.flow_close,console.log("ctx.gdh",i.ctx.gdh),i.ctx.gdh.init(),null!=i.vars_object){var n=i.ctx.search_object(i.vars_object);null!=n&&(i.ctx.center_object(n),i.ctx.set_select(!1),n.set_select(!0))}},this.flow_open=function(){console.log("flow_open"),console.log("ctx.gdh",i.ctx.gdh),i.ctx.connect(),i.ctx.gdh.refObjectInfoList(i.ctx.gdh.refObjectInfoListReply),i.timer=setTimeout(i.flow_cyclic,1e3)},this.flow_scan=function(){i.ctx.scan()},this.flow_cyclic=function(){i.ctx.gdh.getRefObjectInfoAll(i.flow_scan),i.ctx.draw(),i.timer=setTimeout(i.flow_cyclic,1e3)},this.flow_close=function(){for(var e in console.log("Close function",i.timer),clearTimeout(i.timer),i.ctx.gdh.pending)delete i.ctx.gdh.pending[e]},this.get_filename=function(){var e=window.location.search.substring(1);console.log("query",e);var t=e.split("&");console.log("vars",t.length,t[0].substring(4),t[1].substring(4));var n=parseInt(t[0].substring(4)),i=parseInt(t[1].substring(4)),a=[],o=[];a[0]=255&n,a[1]=n>>8&255,a[2]=n>>16&255,a[3]=n>>24&255;for(var s=0;s<4;s++){o[s]=a[s].toString();for(var r=0;r<3;r++)o[s].length<3&&(o[s]="0"+o[s])}var _=i.toString(16);for(r=0;r<8;r++)_.length<8&&(_="0"+_);var l="pwr_"+o[3]+"_"+o[2]+"_"+o[1]+"_"+o[0]+"_"+_+".flw";return console.log(l),2<t.length&&(this.vars_object=t[2].substring(4),console.log("vars object: ",this.vars_object)),l}}var frame=new FlowFrame;frame.readFlowWeb(frame.get_filename(),frame.read_func),console.log("eSave",Flow.eSave_Ctx);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,9 +6,7 @@ ...@@ -6,9 +6,7 @@
</head> </head>
<body> <body>
<canvas id="flowcanvas" width="1200" height="800"></canvas> <canvas id="canvas" width="1200" height="800"></canvas>
<script src=ge.js></script> <script src="ge.bundle.js"></script>
<hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=29)}({0:function(t,e,n){"use strict";function i(t){return t%2==0}function s(t){return t%2==1}function r(t,e,n){return t>n?n:t<e?e:t}var a,o,l,c,u,_,d,T,O,f,h;n.d(e,"o",function(){return i}),n.d(e,"p",function(){return s}),n.d(e,"n",function(){return r}),n.d(e,"j",function(){return a}),n.d(e,"a",function(){return l}),n.d(e,"b",function(){return c}),n.d(e,"k",function(){return u}),n.d(e,"m",function(){return _}),n.d(e,"l",function(){return d}),n.d(e,"h",function(){return g}),n.d(e,"g",function(){return E}),n.d(e,"c",function(){return p}),n.d(e,"e",function(){return O}),n.d(e,"d",function(){return f}),n.d(e,"f",function(){return b}),n.d(e,"i",function(){return R}),function(t){t[t.Bit=32769]="Bit",t[t.Boolean=98305]="Boolean",t[t.Float32=98306]="Float32",t[t.Float64=98307]="Float64",t[t.Char=98308]="Char",t[t.Int8=98309]="Int8",t[t.Int16=98310]="Int16",t[t.Int32=98311]="Int32",t[t.UInt8=98312]="UInt8",t[t.UInt16=98313]="UInt16",t[t.UInt32=98314]="UInt32",t[t.Objid=98315]="Objid",t[t.Buffer=98316]="Buffer",t[t.String=98317]="String",t[t.Enum=98318]="Enum",t[t.Struct=98319]="Struct",t[t.Mask=98320]="Mask",t[t.Array=98321]="Array",t[t.Time=98322]="Time",t[t.Text=98323]="Text",t[t.AttrRef=98324]="AttrRef",t[t.UInt64=98325]="UInt64",t[t.Int64=98326]="Int64",t[t.ClassId=98327]="ClassId",t[t.TypeId=98328]="TypeId",t[t.VolumeId=98329]="VolumeId",t[t.ObjectIx=98330]="ObjectIx",t[t.RefId=98331]="RefId",t[t.DeltaTime=98332]="DeltaTime",t[t.Status=98333]="Status",t[t.NetStatus=98334]="NetStatus",t[t.CastId=98335]="CastId",t[t.ProString=98336]="ProString",t[t.DisableAttr=98337]="DisableAttr",t[t.DataRef=98338]="DataRef"}(a||(a={})),function(t){t[t.RtRead=1]="RtRead",t[t.RtWrite=2]="RtWrite",t[t.System=4]="System",t[t.Maintenance=8]="Maintenance",t[t.Process=16]="Process",t[t.Instrument=32]="Instrument",t[t.Operator1=64]="Operator1",t[t.Operator2=128]="Operator2",t[t.Operator3=256]="Operator3",t[t.Operator4=512]="Operator4",t[t.Operator5=1024]="Operator5",t[t.Operator6=2048]="Operator6",t[t.Operator7=4096]="Operator7",t[t.Operator8=8192]="Operator8",t[t.Operator9=16384]="Operator9",t[t.Operator10=32768]="Operator10",t[t.RtEventsAck=262144]="RtEventsAck",t[t.RtPlc=524288]="RtPlc",t[t.RtNavigator=1048576]="RtNavigator",t[t.DevRead=2097152]="DevRead",t[t.DevPlc=4194304]="DevPlc",t[t.DevConfig=8388608]="DevConfig",t[t.DevClass=16777216]="DevClass",t[t.RtEventsBlock=33554432]="RtEventsBlock",t[t.Administrator=67108864]="Administrator",t[t.SevRead=134217728]="SevRead",t[t.SevAdmin=268435456]="SevAdmin"}(o||(o={})),function(t){t[t.RtRead=1]="RtRead",t[t.RtWrite=2]="RtWrite",t[t.System=4]="System",t[t.Maintenance=8]="Maintenance",t[t.Process=16]="Process",t[t.Instrument=32]="Instrument",t[t.RtEventsBlock=33554432]="RtEventsBlock",t[t.RtEventsAck=262144]="RtEventsAck",t[t.RtPlc=524288]="RtPlc",t[t.RtNavigator=1048576]="RtNavigator",t[t.AllRt=35454975]="AllRt",t[t.AllOperators=65472]="AllOperators",t[t.AllPwr=-1]="AllPwr"}(l||(l={})),function(t){t[t.Pointer=1]="Pointer",t[t.Array=2]="Array",t[t.Backup=4]="Backup",t[t.Changelog=8]="Changelog",t[t.State=16]="State",t[t.Const=32]="Const",t[t.Rtvirtual=64]="Rtvirtual",t[t.Devbodyref=128]="Devbodyref",t[t.Dynamic=256]="Dynamic",t[t.Publicwrite=512]="Publicwrite",t[t.Noedit=1024]="Noedit",t[t.Invisible=2048]="Invisible",t[t.Refdirect=4096]="Refdirect",t[t.Noinvert=8192]="Noinvert",t[t.Noremove=16384]="Noremove",t[t.Rtdbref=32768]="Rtdbref",t[t.Private=65536]="Private",t[t.Class=131072]="Class",t[t.Superclass=262144]="Superclass",t[t.Buffer=524288]="Buffer",t[t.Nowbl=1048576]="Nowbl",t[t.Alwayswbl=2097152]="Alwayswbl",t[t.Disableattr=4194304]="Disableattr",t[t.Rthide=8388608]="Rthide"}(c||(c={})),function(t){t[t.IsConfigured=1]="IsConfigured"}(u||(u={})),function(t){t[t.OpenGraph=1]="OpenGraph",t[t.OpenObjectGraph=2]="OpenObjectGraph",t[t.OpenTrend=4]="OpenTrend",t[t.OpenHistory=8]="OpenHistory",t[t.OpenFast=16]="OpenFast",t[t.Camera=32]="Camera",t[t.HistEvent=64]="HistEvent",t[t.BlockEvents=128]="BlockEvents",t[t.Help=256]="Help",t[t.Photo=512]="Photo",t[t.Note=1024]="Note",t[t.ParentObjectGraph=2048]="ParentObjectGraph"}(_||(_={})),function(t){t[t.OpenObject=1]="OpenObject",t[t.OpenTrace=2]="OpenTrace",t[t.RtNavigator=4]="RtNavigator",t[t.OpenCrossref=8]="OpenCrossref",t[t.HelpClass=16]="HelpClass",t[t.DataSheet=32]="DataSheet",t[t.CircuitDiagram=64]="CircuitDiagram",t[t.Simulate=-2147483648]="Simulate"}(d||(d={}));class g{constructor(t,e){this.oix=e,this.vid=t}}class E{}class p{constructor(t,e){this.value=t,this.sts=e}}!function(t){t[t.Min=65793]="Min",t[t.Max=16711422]="Max"}(T||(T={}));!function(t){t[t.Solid=0]="Solid",t[t.Dashed1=1]="Dashed1",t[t.Dashed2=2]="Dashed2",t[t.Dashed3=3]="Dashed3",t[t.Dotted=4]="Dotted",t[t.DotDashed1=5]="DotDashed1",t[t.DotDashed2=6]="DotDashed2"}(O||(O={})),function(t){t[t.No=0]="No",t[t.HorizontalUp=1]="HorizontalUp",t[t.HorizontalDown=2]="HorizontalDown",t[t.HorizontalTube1=3]="HorizontalTube1",t[t.HorizontalTube2=4]="HorizontalTube2",t[t.VerticalLeft=5]="VerticalLeft",t[t.VerticalRight=6]="VerticalRight",t[t.VerticalTube1=7]="VerticalTube1",t[t.VerticalTube2=8]="VerticalTube2",t[t.DiagonalUpperLeft=9]="DiagonalUpperLeft",t[t.DiagonalLowerLeft=10]="DiagonalLowerLeft",t[t.DiagonalUpperRight=11]="DiagonalUpperRight",t[t.DiagonalLowerRight=12]="DiagonalLowerRight",t[t.DiagonalUpTube=13]="DiagonalUpTube",t[t.DiagonalDownTube=14]="DiagonalDownTube",t[t.Globe=15]="Globe",t[t.RadialCenter=16]="RadialCenter",t[t.RadialUpperLeft=17]="RadialUpperLeft",t[t.RadialLowerLeft=18]="RadialLowerLeft",t[t.RadialUpperRight=19]="RadialUpperRight",t[t.RadialLowerRight=20]="RadialLowerRight"}(f||(f={}));!function(t){t[t._=0]="_",t[t.UserDefined=1]="UserDefined",t[t.OneSecond=2]="OneSecond",t[t.TenSeconds=3]="TenSeconds",t[t.OneMinute=4]="OneMinute",t[t.TenMinutes=5]="TenMinutes",t[t.OneHour=6]="OneHour",t[t.OneDay=7]="OneDay",t[t.OneWeek=8]="OneWeek",t[t.OneMonth=9]="OneMonth",t[t.OneYear=10]="OneYear",t[t.LastSecond=11]="LastSecond",t[t.LastTenSeconds=12]="LastTenSeconds",t[t.LastMinute=13]="LastMinute",t[t.LastTenMinutes=14]="LastTenMinutes",t[t.LastHour=15]="LastHour",t[t.Today=16]="Today",t[t.Yesterday=17]="Yesterday",t[t.ThisWeek=18]="ThisWeek",t[t.LastWeek=19]="LastWeek",t[t.ThisMonth=20]="ThisMonth",t[t.LastMonth=21]="LastMonth",t[t.ThisYear=22]="ThisYear",t[t.AllTime=23]="AllTime",t[t.__=24]="__"}(h||(h={}));class b{constructor(t,e){this.x=0,this.y=0,this.x=t||0,this.y=e||0}set(t){this.x=t.x,this.y=t.y}static add(t,e){return new b(t.x+e.x,t.y+e.y)}}class R{constructor(t=0,e=0,n=0,i=0){this.ll=new b(t,e),this.ur=new b(n,i)}set(t){this.ll.x=t.ll.x,this.ll.y=t.ll.y,this.ur.x=t.ur.x,this.ur.y=t.ur.y}width(){return this.ur.x-this.ll.x}height(){return this.ur.y-this.ll.y}static hit(t,e){return e.x>=t.ll.x&&e.x<=t.ur.x&&e.y>=t.ll.y&&e.y<=t.ur.y}static union(t,e){return new R(Math.min(t.ll.x,e.ll.x),Math.min(t.ll.y,e.ll.y),Math.max(t.ur.x,e.ur.x),Math.max(t.ur.y,e.ur.y))}}},29:function(t,e,n){"use strict";n.r(e);var i=n(6),s=n(0),r=n(5),a=n(9),o=function(t,e,n,i){return new(n||(n=Promise))(function(s,r){function a(t){try{l(i.next(t))}catch(t){r(t)}}function o(t){try{l(i.throw(t))}catch(t){r(t)}}function l(t){t.done?s(t.value):new n(function(e){e(t.value)}).then(a,o)}l((i=i.apply(t,e||[])).next())})};new class{constructor(){this.host=window.location.hostname||"localhost",a.a.fetchFromStore(),this.render()}get_opplace(){return window.location.search.substring(1).split("&")[0].substring(8)}init_cb(){let t=this;return r.d.getOpwindMenu(this.get_opplace()).then(e=>{t.info=e.value})}add_menu_button(t,e){let n=Object(i.a)("input",{type:"button",value:e,style:{width:"100%"}});n.addEventListener("click",this.button_cb.bind(this)),Object(i.b)(t,n),Object(i.b)(t,Object(i.a)("br"))}render(){return o(this,void 0,void 0,function*(){if(!a.a.priv)return void new a.a(this.render.bind(this));yield r.d.init(),yield this.init_cb();let t=Object(i.a)("div",{style:{cssFloat:"left",width:"20%"}}),e="http://"+localStorage.getItem("HOST")+"/xtt_help_index.html",n=Object(i.a)("iframe",{src:e,style:{cssFloat:"left",width:"79%",height:"100%",border:"none"}}),s=Object(i.a)("div",{style:{display:"flow-root"}});Object(i.b)(s,Object(i.d)(a.a.user+" on "+this.host));let o=Object(i.a)("input",{type:"button",value:"Logout",style:{cssFloat:"right"}});o.addEventListener("click",()=>{r.d.login("","").then(a.a.logout_cb).then(this.render.bind(this))}),Object(i.b)(s,o),Object(i.b)(t,s),Object(i.b)(t,Object(i.a)("hr")),this.info.enable_language&&this.add_menu_button(t,"Language"),this.info.enable_alarmlist&&(this.add_menu_button(t,"AlarmList"),this.add_menu_button(t,"EventList")),this.info.enable_eventlog&&this.add_menu_button(t,"EventLog"),this.info.enable_navigator&&this.add_menu_button(t,"Navigator"),this.info.disable_help||this.add_menu_button(t,"Help"),this.info.disable_proview||this.add_menu_button(t,"ProviewR");for(let e=0;e<this.info.buttons.length;e++)this.add_menu_button(t,this.info.buttons[e].text);Object(i.c)(document.body,[t,n])})}button_cb(t){let e=t.target.value;if(this.info.enable_language&&"Language"===e)console.log("Language activated");else if(this.info.enable_alarmlist&&"AlarmList"===e)console.log("AlarmList activated"),a.a.is_authorized(s.a.RtRead|s.a.RtWrite|s.a.AllOperators|s.a.System|s.a.Maintenance|s.a.Process|s.a.Instrument)&&window.open("ev.html?list=alarm","_blank");else if(this.info.enable_alarmlist&&"EventList"===e)console.log("EventList activated"),a.a.is_authorized(s.a.RtRead|s.a.RtWrite|s.a.AllOperators|s.a.System|s.a.Maintenance|s.a.Process|s.a.Instrument)&&window.open("ev.html?list=event","_blank");else if(this.info.enable_eventlog&&"EventLog"===e)console.log("EventLog activated"),a.a.is_authorized(s.a.RtRead|s.a.RtWrite|s.a.AllOperators|s.a.System|s.a.Maintenance|s.a.Process|s.a.Instrument)&&window.alert("Not yet implemented");else if(this.info.enable_navigator&&"Navigator"===e)console.log("Navigator activated"),a.a.is_authorized(s.a.RtNavigator|s.a.System|s.a.Maintenance|s.a.Process|s.a.Instrument)&&window.open("xtt.html","_blank");else if(this.info.disable_help||"Help"!==e)if(this.info.disable_proview||"ProviewR"!==e){if(a.a.is_authorized(s.a.RtRead|s.a.RtWrite|s.a.AllOperators|s.a.System|s.a.Maintenance|s.a.Process|s.a.Instrument)){let t=this.info.buttons.find(t=>t.text===e);if(t){console.log("Found",t.text);let e=t.name,n=e.indexOf(".pwg");-1!==n&&(e=e.substring(0,n));let i="ge.html?graph="+e;console.log("url",i),window.open(i,"_blank")}}}else console.log("ProviewR activated"),window.open("http://www.proview.se","_blank");else console.log("Help activated"),window.open("http://"+localStorage.getItem("HOST")+"/xtt_help_index.html","_blank")}}},5:function(t,e,n){"use strict";var i,s,r,a,o,l=n(0);class c{constructor(t){this.offset=0,this.dv=new DataView(t),this.tag=this.getUint8(),this.id=this.getUint32(),this.sts=this.getUint32()}getUint8(){return this.offset+=1,this.dv.getUint8(this.offset-1)}getUint16(){return this.offset+=2,this.dv.getUint16(this.offset-2)}getInt32(){return this.offset+=4,this.dv.getInt32(this.offset-4)}getUint32(){return this.offset+=4,this.dv.getUint32(this.offset-4)}getFloat32(){return this.offset+=4,this.dv.getFloat32(this.offset-4)}getString(){let t=this.getUint16(),e=new Uint8Array(t);for(let n=0;n<t;n++)e[n]=this.getUint8();return String.fromCharCode.apply(null,e)}}class u{constructor(t,e,n=null,i=null){this.ws=null,this.pending=[],this.pack8Bit=t=>this.reqData.push(255&t),this.ws=new WebSocket("ws://"+t+":"+String(e)),this.ws.binaryType="arraybuffer";let s=this;this.ws.onmessage=function(t){let e=new DataView(t.data).getUint32(1);(0,s.pending[e])(new c(t.data)),delete s.pending[e]},this.ws.onopen=function(){null!==n&&n()},this.ws.onclose=function(){s.reset()},this.ws.onerror=function(t){console.error("WebSocket error observed:",t),null!==i&&i()}}sendRequest(){let t=this;return new Promise((e,n)=>{t.pending[u.next_id]=e,u.next_id++,t.ws.send(Uint8Array.from(t.reqData))})}beginRequest(t){this.reqData=[t,0],this.pack32Bit(u.next_id)}reset(){this.pending=[]}pack16Bit(t){this.reqData.push(255&t),this.reqData.push(t>>8&255)}pack32Bit(t){this.reqData.push(255&t),this.reqData.push(t>>8&255),this.reqData.push(t>>16&255),this.reqData.push(t>>24&255)}packString(t){this.pack16Bit(t.length);for(let e=0;e<t.length;e++)this.reqData.push(t.charCodeAt(e))}}u.next_id=1234,n.d(e,"e",function(){return i}),n.d(e,"b",function(){return s}),n.d(e,"c",function(){return r}),n.d(e,"a",function(){return f}),n.d(e,"f",function(){return a}),n.d(e,"d",function(){return p}),function(t){t[t.Ack=1]="Ack",t[t.Block=2]="Block",t[t.Cancel=3]="Cancel",t[t.CancelBlock=4]="CancelBlock",t[t.Missing=5]="Missing",t[t.Reblock=6]="Reblock",t[t.Return=7]="Return",t[t.Unblock=8]="Unblock",t[t.InfoSuccess=32]="InfoSuccess",t[t.Alarm=64]="Alarm",t[t.MaintenanceAlarm=128]="MaintenanceAlarm",t[t.SystemAlarm=256]="SystemAlarm",t[t.UserAlarm1=512]="UserAlarm1",t[t.UserAlarm2=1024]="UserAlarm2",t[t.UserAlarm3=2048]="UserAlarm3",t[t.UserAlarm4=4096]="UserAlarm4",t[t.Info=8192]="Info"}(i||(i={})),function(t){t[t.D=64]="D",t[t.C=65]="C",t[t.B=66]="B",t[t.A=67]="A"}(s||(s={})),function(t){t[t.NotRet=1]="NotRet",t[t.NotAck=2]="NotAck",t[t.Block=4]="Block"}(r||(r={}));class _{}class d{}class T{}class O{}class f{}class h{}class g{constructor(){this.buttons=[]}}class E{}!function(t){t[t.GET_OP_SELF=1]="GET_OP_SELF",t[t.GET_OP_METHOD_PLC=2]="GET_OP_METHOD_PLC",t[t.GET_OP_METHOD_OBJECTGRAPH=3]="GET_OP_METHOD_OBJECTGRAPH",t[t.GET_OP_METHOD_GRAPH=4]="GET_OP_METHOD_GRAPH",t[t.GET_OP_METHOD_HELPCLASS=5]="GET_OP_METHOD_HELPCLASS"}(a||(a={})),function(t){t[t.SET_OBJECT_INFO_BOOLEAN=1]="SET_OBJECT_INFO_BOOLEAN",t[t.SET_OBJECT_INFO_FLOAT=2]="SET_OBJECT_INFO_FLOAT",t[t.SET_OBJECT_INFO_INT=3]="SET_OBJECT_INFO_INT",t[t.SET_OBJECT_INFO_STRING=4]="SET_OBJECT_INFO_STRING",t[t.GET_OBJECT_INFO_BOOLEAN=5]="GET_OBJECT_INFO_BOOLEAN",t[t.GET_OBJECT_INFO_FLOAT=6]="GET_OBJECT_INFO_FLOAT",t[t.GET_OBJECT_INFO_INT=7]="GET_OBJECT_INFO_INT",t[t.GET_OBJECT_INFO_STRING=8]="GET_OBJECT_INFO_STRING",t[t.TOGGLE_OBJECT_INFO=9]="TOGGLE_OBJECT_INFO",t[t.REF_OBJECT_INFO=10]="REF_OBJECT_INFO",t[t.GET_OBJECT_REF_INFO_BOOLEAN=11]="GET_OBJECT_REF_INFO_BOOLEAN",t[t.GET_OBJECT_REF_INFO_FLOAT=12]="GET_OBJECT_REF_INFO_FLOAT",t[t.GET_OBJECT_REF_INFO_INT=13]="GET_OBJECT_REF_INFO_INT",t[t.GET_OBJECT_REF_INFO_STRING=14]="GET_OBJECT_REF_INFO_STRING",t[t.UNREF_OBJECT_INFO=15]="UNREF_OBJECT_INFO",t[t.NAME_TO_OBJID=16]="NAME_TO_OBJID",t[t.OBJID_TO_NAME=17]="OBJID_TO_NAME",t[t.GET_ROOT_LIST=18]="GET_ROOT_LIST",t[t.GET_NEXT_OBJECT=19]="GET_NEXT_OBJECT",t[t.GET_CHILD=20]="GET_CHILD",t[t.GET_NEXT_SIBLING=21]="GET_NEXT_SIBLING",t[t.GET_OBJECT_CLASS=22]="GET_OBJECT_CLASS",t[t.GET_CLASS_LIST=23]="GET_CLASS_LIST",t[t.CLASS_ID_TO_OBJID=24]="CLASS_ID_TO_OBJID",t[t.GET_OBJECT_REF_INFO_ALL=25]="GET_OBJECT_REF_INFO_ALL",t[t.REF_OBJECT_INFO_LIST=26]="REF_OBJECT_INFO_LIST",t[t.POLL=27]="POLL",t[t.STATISTICS=28]="STATISTICS",t[t.CHECK_USER=29]="CHECK_USER",t[t.GET_NODE_OBJECT=30]="GET_NODE_OBJECT",t[t.LOG_STRING=31]="LOG_STRING",t[t.UNREF_OBJECT_INFO_ALL=32]="UNREF_OBJECT_INFO_ALL",t[t.CREATE_INSTANCE_FILE=33]="CREATE_INSTANCE_FILE",t[t.GET_ATTRIBUTE_CHAR=34]="GET_ATTRIBUTE_CHAR",t[t.GET_CLASS_ATTRIBUTE=35]="GET_CLASS_ATTRIBUTE",t[t.GET_ALL_CLASS_ATTRIBUTES=36]="GET_ALL_CLASS_ATTRIBUTES",t[t.GET_ALL_SIBLINGS=37]="GET_ALL_SIBLINGS",t[t.GET_ALL_XTT_SIBLINGS=38]="GET_ALL_XTT_SIBLINGS",t[t.GET_ALL_XTT_CHILDREN=39]="GET_ALL_XTT_CHILDREN",t[t.REF_OBJECT_INFO_VECTOR=40]="REF_OBJECT_INFO_VECTOR",t[t.GET_SUBSCRIPTIONS=41]="GET_SUBSCRIPTIONS",t[t.CRR_SIGNAL=42]="CRR_SIGNAL",t[t.CRR_OBJECT=43]="CRR_OBJECT",t[t.GET_PARENT=44]="GET_PARENT",t[t.GET_OBJECT_INFO_OBJID=45]="GET_OBJECT_INFO_OBJID",t[t.GET_OBJECT_REF_INFO_BOOLEAN_ARRAY=46]="GET_OBJECT_REF_INFO_BOOLEAN_ARRAY",t[t.GET_OBJECT_REF_INFO_FLOAT_ARRAY=47]="GET_OBJECT_REF_INFO_FLOAT_ARRAY",t[t.GET_OBJECT_REF_INFO_INT_ARRAY=48]="GET_OBJECT_REF_INFO_INT_ARRAY",t[t.GET_OBJECT_REF_INFO_STRING_ARRAY=49]="GET_OBJECT_REF_INFO_STRING_ARRAY",t[t.GET_MSG=50]="GET_MSG",t[t.GET_MSG_TEXT=51]="GET_MSG_TEXT",t[t.NAME_TO_ATTRREF=52]="NAME_TO_ATTRREF",t[t.ATTRREF_TO_NAME=53]="ATTRREF_TO_NAME",t[t.GET_ATTRREF_TID=54]="GET_ATTRREF_TID",t[t.GET_SUPER_CLASS=55]="GET_SUPER_CLASS",t[t.GET_ALL_CLASS_ATTRIBUTES_STRING=56]="GET_ALL_CLASS_ATTRIBUTES_STRING",t[t.GET_OBJECT_INFO_FLOAT_ARRAY=57]="GET_OBJECT_INFO_FLOAT_ARRAY",t[t.GET_OBJECT_INFO_INT_ARRAY=58]="GET_OBJECT_INFO_INT_ARRAY",t[t.GET_CIRCBUFF_INFO=59]="GET_CIRCBUFF_INFO",t[t.UPDATE_CIRCBUFF_INFO=60]="UPDATE_CIRCBUFF_INFO",t[t.GET_ATTRIBUTE_FLAGS=61]="GET_ATTRIBUTE_FLAGS",t[t.CLASSNAME_TO_ID=62]="CLASSNAME_TO_ID",t[t.GET_OBJECT=63]="GET_OBJECT",t[t.GET_OPWIND_MENU=64]="GET_OPWIND_MENU",t[t.GET_OBJECT_FROM_NAME=65]="GET_OBJECT_FROM_NAME",t[t.MH_SYNC=66]="MH_SYNC",t[t.MH_ACK=67]="MH_ACK",t[t.GET_OBJECT_FROM_AREF=68]="GET_OBJECT_FROM_AREF"}(o||(o={}));class p{static init(){return new Promise((t,e)=>{p.ws=new u(localStorage.getItem("HOST"),p.PORT,()=>{t()})})}static getObjectInfoBoolean(t){return p.ws.beginRequest(o.GET_OBJECT_INFO_BOOLEAN),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=t.getUint8();return{sts:t.sts,value:e}})}static getObjectInfoInt(t){return p.ws.beginRequest(o.GET_OBJECT_INFO_INT),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=t.getUint32();return{sts:t.sts,value:e}})}static getObjectInfoIntArray(t,e){return p.ws.beginRequest(o.GET_OBJECT_INFO_INT_ARRAY),p.ws.pack32Bit(e),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=t.getInt32();for(let n=0;n<e;n++)(void 0).push(t.getUint32());return{sts:t.sts,value:void 0}})}static getObjectInfoFloat(t){return p.ws.beginRequest(o.GET_OBJECT_INFO_FLOAT),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=t.getFloat32();return{sts:t.sts,value:e}})}static getObjectInfoFloatArray(t,e){return p.ws.beginRequest(o.GET_OBJECT_INFO_FLOAT_ARRAY),p.ws.pack32Bit(e),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=t.getInt32();for(let n=0;n<e;n++)(void 0).push(t.getFloat32());return{sts:t.sts,value:void 0}})}static refObjectInfo(t,e,n){let i=new T;return i.name=t,i.refid=p.subscriptionCount,i.type=e,i.elements=n,p.sub[p.subscriptionCount]=i,p.subscriptionCount++,p.ws.beginRequest(o.REF_OBJECT_INFO),p.ws.pack32Bit(i.refid),p.ws.pack32Bit(i.elements),p.ws.packString(i.name),p.ws.sendRequest(),i.refid}static unrefObjectInfo(t){p.ws.beginRequest(o.UNREF_OBJECT_INFO),p.ws.pack32Bit(t),delete p.sub[t],p.ws.sendRequest()}static getRefObjectInfoAll(t){p.ws.beginRequest(o.GET_OBJECT_REF_INFO_ALL),p.ws.sendRequest().then(function(e){let n=e.getUint32();for(let t=0;t<n;t++){let t=e.getUint32(),n=e.getUint32(),i=p.sub[t];if(void 0!==i){let s;switch(i.type){case l.j.Boolean:if(i.elements<=1)s=e.getUint8();else{let r=n;r!==i.elements&&console.log("Subscription size error",r,i.elements,t),s=new Array(r);for(let t=0;t<r;t++)s[t]=e.getUint8()}break;case l.j.Float32:if(i.elements<=1)s=e.getFloat32();else{let r=n/4;r!==i.elements&&console.log("Subscription size error",r,i.elements,t),s=new Array(r);for(let t=0;t<r;t++)s[t]=e.getFloat32()}break;case l.j.Int8:case l.j.Int16:case l.j.Int32:case l.j.UInt8:case l.j.UInt16:case l.j.UInt32:case l.j.Status:case l.j.NetStatus:case l.j.Mask:case l.j.Enum:case l.j.Bit:if(i.elements<=1)s=e.getInt32();else{let r=n/4;r!==i.elements&&console.log("Subscription size error",r,i.elements,t),s=new Array(r);for(let t=0;t<r;t++)s[t]=e.getInt32()}break;case l.j.String:case l.j.Time:case l.j.DeltaTime:case l.j.AttrRef:case l.j.Objid:if(i.elements<=1)s=e.getString();else{let n=i.elements;n!==i.elements&&console.log("Subscription size error",n,i.elements,t),s=new Array(n);for(let t=0;t<n;t++)s[t]=e.getString()}}p.sub[t].value=s}}t()})}static getObjectRefInfo(t){return p.sub[t].value}static setObjectInfoBoolean(t,e){p.ws.beginRequest(o.SET_OBJECT_INFO_BOOLEAN),p.ws.pack32Bit(e),p.ws.packString(t),p.ws.sendRequest()}static setObjectInfoInt(t,e){p.ws.beginRequest(o.SET_OBJECT_INFO_INT),p.ws.pack32Bit(e),p.ws.packString(t),p.ws.sendRequest()}static setObjectInfoFloat(t,e){p.ws.beginRequest(o.SET_OBJECT_INFO_FLOAT);let n=new ArrayBuffer(4);new Float32Array(n)[0]=e;let i=new Uint8Array(n);p.ws.reqData.push(i[0]),p.ws.reqData.push(i[1]),p.ws.reqData.push(i[2]),p.ws.reqData.push(i[3]),p.ws.packString(t),p.ws.sendRequest()}static setObjectInfoString(t,e){p.ws.beginRequest(o.SET_OBJECT_INFO_STRING),p.ws.packString(e),p.ws.packString(t),p.ws.sendRequest()}static setObjectInfo(t,e,n){n===l.j.Boolean?p.setObjectInfoBoolean(t,e):n===l.j.Float32||n===l.j.Float64?p.setObjectInfoFloat(t,e):n===l.j.String?p.setObjectInfoString(t,e):p.setObjectInfoInt(t,e)}static toggleObjectInfo(t){p.ws.beginRequest(o.TOGGLE_OBJECT_INFO),p.ws.packString(t),p.ws.sendRequest()}static getAllXttChildren(t){return p.ws.beginRequest(o.GET_ALL_XTT_CHILDREN),p.ws.pack32Bit(t.vid),p.ws.pack32Bit(t.oix),p.ws.sendRequest().then(function(t){let e=[],n=t.getUint32();for(let i=0;i<n;i++){let n=new O,i=t.getUint32(),s=t.getUint32();n.objid=new l.h(i,s),n.cid=t.getUint32(),n.has_children=0!==t.getUint16(),n.name=t.getString(),n.description=t.getString(),n.classname=t.getString(),e.push(n)}return{sts:t.sts,value:e}})}static getAllClassAttributes(t,e){return p.ws.beginRequest(o.GET_ALL_CLASS_ATTRIBUTES),p.ws.pack32Bit(t),p.ws.pack32Bit(e.vid),p.ws.pack32Bit(e.oix),p.ws.sendRequest().then(function(t){let e=[],n=t.getUint32();for(let i=0;i<n;i++){let n=new f;n.type=t.getUint32(),n.flags=t.getUint32(),n.size=t.getUint16(),n.elements=t.getUint16(),n.name=t.getString(),n.classname=t.getString(),e.push(n)}return{sts:t.sts,value:e}})}static unpackGetObject(t){let e=null;if(Object(l.p)(t.sts)){e=new O;let n=t.getUint32(),i=t.getUint32();e.objid=new l.h(n,i),e.cid=t.getUint32(),e.has_children=0!==t.getUint16(),e.name=t.getString(),e.fullname=t.getString(),e.classname=t.getString(),e.description=t.getString(),e.param1=t.getString()}return{sts:t.sts,value:e}}static getObject(t,e){return p.ws.beginRequest(o.GET_OBJECT),p.ws.pack16Bit(e),p.ws.pack32Bit(t.vid),p.ws.pack32Bit(t.oix),p.ws.sendRequest().then(p.unpackGetObject)}static getObjectFromAref(t,e){return p.ws.beginRequest(o.GET_OBJECT_FROM_AREF),p.ws.pack16Bit(e),p.ws.pack32Bit(t.objid.vid),p.ws.pack32Bit(t.objid.oix),p.ws.pack32Bit(t.offset),p.ws.pack32Bit(t.body),p.ws.pack32Bit(t.size),p.ws.pack32Bit(t.flags),p.ws.sendRequest().then(p.unpackGetObject)}static getObjectFromName(t,e){return p.ws.beginRequest(o.GET_OBJECT_FROM_NAME),p.ws.pack16Bit(e),p.ws.packString(t),p.ws.sendRequest().then(p.unpackGetObject)}static crrSignal(t){return p.ws.beginRequest(o.CRR_SIGNAL),p.ws.pack32Bit(t.vid),p.ws.pack32Bit(t.oix),p.ws.sendRequest().then(function(t){let e=[];if(Object(l.p)(t.sts)){let n=t.getUint16();for(let i=0;i<n;i++){let n=new E;n.type=t.getUint16();let i=t.getUint32(),s=t.getUint32();n.objid=new l.h(i,s),n.name=t.getString(),n.classname=t.getString(),e.push(n)}}return{sts:t.sts,value:e}})}static getOpwindMenu(t){return p.ws.beginRequest(o.GET_OPWIND_MENU),p.ws.packString(t),p.ws.sendRequest().then(function(t){let e=new g;if(Object(l.p)(t.sts)){e.title=t.getString(),e.text=t.getString(),e.enable_language=t.getUint32(),e.enable_login=t.getUint32(),e.enable_alarmlist=t.getUint32(),e.enable_eventlog=t.getUint32(),e.enable_navigator=t.getUint32(),e.disable_help=t.getUint32(),e.disable_proview=t.getUint32(),e.language=t.getUint32();let n=t.getUint16();for(let i=0;i<n;i++){let n=new h;n.type=t.getUint32(),n.text=t.getString(),n.name=t.getString(),n.url=t.getString(),e.buttons.push(n)}}return{sts:t.sts,value:e}})}static login(t,e){return p.ws.beginRequest(o.CHECK_USER),p.ws.packString(t),p.ws.packString(e),p.ws.sendRequest().then(function(t){let e=Object(l.p)(t.sts)?t.getUint32():0;return{sts:t.sts,value:e}})}static getMsg(t){return p.ws.beginRequest(o.GET_MSG),p.ws.pack32Bit(t),p.ws.sendRequest().then(function(t){let e=Object(l.p)(t.sts)?t.getString():"";return{sts:t.sts,value:e}})}static mhSync(t){return p.ws.beginRequest(o.MH_SYNC),p.ws.pack32Bit(t),p.ws.sendRequest().then(function(t){let e=[],n=t.getUint32();for(let i=0;i<n;i++){let n=new d;n.eventTime=t.getString(),n.eventText=t.getString(),n.eventName=t.getString(),n.eventFlags=t.getUint32(),n.eventStatus=t.getUint32(),n.eventPrio=t.getUint32(),n.eventId=new _,n.eventId.nix=t.getUint32(),n.eventId.idx=t.getUint32(),n.eventId.birthTime=t.getString(),n.targetId=new _,n.targetId.nix=t.getUint32(),n.targetId.idx=t.getUint32(),n.targetId.birthTime=t.getString(),n.eventType=t.getUint32();let i=new l.h(0,0);i.vid=t.getUint32(),i.oix=t.getUint32(),n.object=new l.g,n.object.objid=i,n.object.offset=t.getUint32(),n.object.body=t.getUint32(),n.object.size=t.getUint32(),n.object.flags=t.getUint32();let s=new l.h(0,0);s.vid=t.getUint32(),s.oix=t.getUint32(),n.supObject=new l.g,n.supObject.objid=s,n.supObject.offset=t.getUint32(),n.supObject.body=t.getUint32(),n.supObject.size=t.getUint32(),n.supObject.flags=t.getUint32(),n.eventMoreText=t.getString(),n.syncIdx=t.getUint32(),e.push(n)}return{sts:t.sts,value:e}})}static mhAcknowledge(t){return p.ws.beginRequest(o.MH_ACK),p.ws.pack32Bit(t.nix),p.ws.pack32Bit(t.idx),p.ws.packString(t.birthTime),p.ws.sendRequest().then(t=>t.sts)}}p.sub=[],p.PORT=4448,p.subscriptionCount=1},6:function(t,e,n){"use strict";function i(t,e){var n=function(t){for(var e=!1,n=!1,i="",s="",r="",a=0;a<t.length;a++){var o=t[a];"."===o?(n=!0,e=!1,r.length>0&&(r+=" ")):"#"===o?(e=!0,n=!1):e?s+=o:n?r+=o:i+=o}return{tag:i||"div",id:s,className:r}}(t),i=n.tag,s=n.id,r=n.className,a=e?document.createElementNS(e,i):document.createElement(i);return s&&(a.id=s),r&&(e?a.setAttribute("class",r):a.className=r),a}function s(t,e){var n=g(t),i=g(e);return e===i&&i.__redom_view&&(e=i.__redom_view),i.parentNode&&(r(e,i,n),n.removeChild(i)),e}function r(t,e,n){var i=e.__redom_lifecycle;if(a(i))e.__redom_lifecycle={};else{var s=n;for(e.__redom_mounted&&u(e,"onunmount");s;){var r=s.__redom_lifecycle||{};for(var o in i)r[o]&&(r[o]-=i[o]);a(r)&&(s.__redom_lifecycle=null),s=s.parentNode}}}function a(t){if(null==t)return!0;for(var e in t)if(t[e])return!1;return!0}n.d(e,"a",function(){return R}),n.d(e,"b",function(){return c}),n.d(e,"c",function(){return w}),n.d(e,"d",function(){return O});var o=["onmount","onremount","onunmount"],l="undefined"!=typeof window&&"ShadowRoot"in window;function c(t,e,n,i){var s=g(t),a=g(e);e===a&&a.__redom_view&&(e=a.__redom_view),e!==a&&(a.__redom_view=e);var c=a.__redom_mounted,_=a.parentNode;return c&&_!==s&&r(0,a,_),null!=n?i?s.replaceChild(a,g(n)):s.insertBefore(a,g(n)):s.appendChild(a),function(t,e,n,i){for(var s=e.__redom_lifecycle||(e.__redom_lifecycle={}),r=n===i,a=!1,c=0,_=o;c<_.length;c+=1){var d=_[c];r||t!==e&&d in t&&(s[d]=(s[d]||0)+1),s[d]&&(a=!0)}if(!a)return void(e.__redom_lifecycle={});var T=n,O=!1;(r||T&&T.__redom_mounted)&&(u(e,r?"onremount":"onmount"),O=!0);for(;T;){var f=T.parentNode,h=T.__redom_lifecycle||(T.__redom_lifecycle={});for(var g in s)h[g]=(h[g]||0)+s[g];if(O)break;(T.nodeType===Node.DOCUMENT_NODE||l&&T instanceof ShadowRoot||f&&f.__redom_mounted)&&(u(T,r?"onremount":"onmount"),O=!0),T=f}}(e,a,s,_),e}function u(t,e){"onmount"===e||"onremount"===e?t.__redom_mounted=!0:"onunmount"===e&&(t.__redom_mounted=!1);var n=t.__redom_lifecycle;if(n){var i=t.__redom_view,s=0;for(var r in i&&i[e]&&i[e](),n)r&&s++;if(s)for(var a=t.firstChild;a;){var o=a.nextSibling;u(a,e),a=o}}}function _(t,e,n){t.style[e]=null==n?"":n}var d="http://www.w3.org/1999/xlink";function T(t,e,n,i){var s=g(t);if("object"==typeof e)for(var r in e)T(s,r,e[r],i);else{var a=s instanceof SVGElement,o="function"==typeof n;if("style"===e&&"object"==typeof n)!function(t,e,n){var i=g(t);if("object"==typeof e)for(var s in e)_(i,s,e[s]);else _(i,e,n)}(s,n);else if(a&&o)s[e]=n;else if("dataset"===e)!function t(e,n,i){if("object"==typeof n)for(var s in n)t(e,s,n[s]);else null!=i?e.dataset[n]=i:delete e.dataset[n]}(s,n);else if(!a&&(e in s||o)&&"list"!==e)s[e]=n;else{if(a&&"xlink"===e)return void function t(e,n,i){if("object"==typeof n)for(var s in n)t(e,s,n[s]);else null!=i?e.setAttributeNS(d,n,i):e.removeAttributeNS(d,n,i)}(s,n);i&&"class"===e&&(n=s.className+" "+n),null==n?s.removeAttribute(e):s.setAttribute(e,n)}}}function O(t){return document.createTextNode(null!=t?t:"")}function f(t,e,n){for(var i=0,s=e;i<s.length;i+=1){var r=s[i];if(0===r||r){var a=typeof r;"function"===a?r(t):"string"===a||"number"===a?t.appendChild(O(r)):E(g(r))?c(t,r):r.length?f(t,r,n):"object"===a&&T(t,r,null,n)}}}function h(t){return"string"==typeof t?b(t):g(t)}function g(t){return t.nodeType&&t||!t.el&&t||g(t.el)}function E(t){return t&&t.nodeType}var p={};function b(t){for(var e,n=[],i=arguments.length-1;i-- >0;)n[i]=arguments[i+1];var s=typeof t;if("string"===s)e=v(t).cloneNode(!1);else if(E(t))e=t.cloneNode(!1);else{if("function"!==s)throw new Error("At least one argument required");var r=t;e=new(Function.prototype.bind.apply(r,[null].concat(n)))}return f(g(e),n,!0),e}var R=b;function v(t){return p[t]||(p[t]=i(t))}function w(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];for(var i=function t(e,n,i){var s=i;var r=new Array(n.length);for(var a=0;a<n.length;a++)r[a]=n[a]&&g(n[a]);for(var o=0;o<n.length;o++){var l=n[o];if(l){var u=r[o];if(u!==s)if(E(u)){var _=s&&s.nextSibling,d=null!=l.__redom_index,T=d&&_===r[o+1];c(e,l,s,T),T&&(s=_)}else null!=l.length&&(s=t(e,l,s));else s=s.nextSibling}}return s}(t,e,g(t).firstChild);i;){var r=i.nextSibling;s(t,i),i=r}}b.extend=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var i=v(t);return b.bind.apply(b,[this,i].concat(e))};var S=function(t,e,n){this.View=t,this.initData=n,this.oldLookup={},this.lookup={},this.oldViews=[],this.views=[],null!=e&&(this.key="function"==typeof e?e:function(t){return function(e){return e[t]}}(e))};S.prototype.update=function(t,e){for(var n=this.View,i=this.key,s=this.initData,r=null!=i,a=this.lookup,o={},l=new Array(t.length),c=this.views,u=0;u<t.length;u++){var _=t[u],d=void 0;if(r){var T=i(_);d=a[T]||new n(s,_,u,t),o[T]=d,d.__redom_id=T}else d=c[u]||new n(s,_,u,t);d.update&&d.update(_,u,t,e),g(d.el).__redom_view=d,l[u]=d}this.oldViews=c,this.views=l,this.oldLookup=a,this.lookup=o};var I=function(t,e,n,i){this.__redom_list=!0,this.View=e,this.initData=i,this.views=[],this.pool=new S(e,n,i),this.el=h(t),this.keySet=null!=n};I.prototype.update=function(t,e){void 0===t&&(t=[]);var n=this.keySet,i=this.views;this.pool.update(t,e);var r=this.pool,a=r.views,o=r.lookup;if(n)for(var l=0;l<i.length;l++){var c=i[l];null==o[c.__redom_id]&&(c.__redom_index=null,s(this,c))}for(var u=0;u<a.length;u++){a[u].__redom_index=u}w(this,a),n&&(this.lookup=o),this.views=a},I.extend=function(t,e,n,i){return I.bind(I,t,e,n,i)},I.extend;var A=function(t,e){this.el=O(""),this.visible=!1,this.view=null,this._placeholder=this.el,t instanceof Node?this._el=t:t.el instanceof Node?(this._el=t,this.view=t):this._View=t,this._initData=e};A.prototype.update=function(t,e){var n=this._placeholder,i=this.el.parentNode;if(t){if(!this.visible)if(this._el)c(i,this._el,n),s(i,n),this.el=g(this._el),this.visible=t;else{var r=new(0,this._View)(this._initData);this.el=g(r),this.view=r,c(i,r,n),s(i,n)}this.view&&this.view.update&&this.view.update(e)}else if(this.visible){if(this._el)return c(i,n,this._el),s(i,this._el),this.el=n,void(this.visible=t);c(i,n,this.view),s(i,this.view),this.el=n,this.view=null}this.visible=t};var m=function(t,e,n){this.el=h(t),this.Views=e,this.initData=n};m.prototype.update=function(t,e){if(t!==this.route){var n=this.Views[t];this.route=t,n&&(n instanceof Node||n.el instanceof Node)?this.view=n:this.view=n&&new n(this.initData,e),w(this.el,[this.view])}this.view&&this.view.update&&this.view.update(e,t)};var N="http://www.w3.org/2000/svg",C={};function B(t){for(var e,n=[],i=arguments.length-1;i-- >0;)n[i]=arguments[i+1];var s=typeof t;if("string"===s)e=F(t).cloneNode(!1);else if(E(t))e=t.cloneNode(!1);else{if("function"!==s)throw new Error("At least one argument required");var r=t;e=new(Function.prototype.bind.apply(r,[null].concat(n)))}return f(g(e),n,!0),e}function F(t){return C[t]||(C[t]=i(t,N))}B.extend=function(t){var e=F(t);return B.bind(this,e)},B.ns=N},9:function(t,e,n){"use strict";var i=n(6);class s{static byteToUnsigned(t){let e=Math.floor(t);return e>=0?e:e+256}static fourBytesToInt(t,e){let n=s.byteToUnsigned(t[e++]);return n|=s.byteToUnsigned(t[e++])<<8,n|=s.byteToUnsigned(t[e++])<<16,n|=s.byteToUnsigned(t[e])<<24}static intToFourBytes(t,e){e.push(255&t),e.push(t>>>8&255),e.push(t>>>16&255),e.push(t>>>24&255)}static PERM_OP(t,e,n,i){let s=(t>>>n^e)&i;return[t^=s<<n,e^=s]}static HPERM_OP(t,e,n){let i=(t<<16-e^t)&n;return t^i^i>>>16-e}static des_set_key(t){let e=new Array(2*s.ITERATIONS),n=s.fourBytesToInt(t,0),i=s.fourBytesToInt(t,4);[i,n]=s.PERM_OP(i,n,4,252645135),n=s.HPERM_OP(n,-2,3435921408),i=s.HPERM_OP(i,-2,3435921408),[i,n]=s.PERM_OP(i,n,1,1431655765),[n,i]=s.PERM_OP(n,i,8,16711935),[i,n]=s.PERM_OP(i,n,1,1431655765),i=(255&i)<<16|65280&i|(16711680&i)>>>16|(4026531840&n)>>>4,n&=268435455;let r=0;for(let t=0;t<s.ITERATIONS;t++){s.shifts2[t]?(n=n>>>2|n<<26,i=i>>>2|i<<26):(n=n>>>1|n<<27,i=i>>>1|i<<27),n&=268435455,i&=268435455;let a=s.skb[0][63&n]|s.skb[1][n>>>6&3|n>>>7&60]|s.skb[2][n>>>13&15|n>>>14&48]|s.skb[3][n>>>20&1|n>>>21&6|n>>>22&56],o=s.skb[4][63&i]|s.skb[5][i>>>7&3|i>>>8&60]|s.skb[6][i>>>15&63]|s.skb[7][i>>>21&15|i>>>22&48];e[r++]=4294967295&(o<<16|65535&a),a=(a=a>>>16|4294901760&o)<<4|a>>>28,e[r++]=4294967295&a}return e}static D_ENCRYPT(t,e,n,i,r,a){let o,l,c;return l=(c=e^e>>>16)&i,c&=r,l=l^l<<16^e^a[n],o=(o=c^c<<16^e^a[n+1])>>>4|o<<28,t^=s.SPtrans[1][63&o]|s.SPtrans[3][o>>>8&63]|s.SPtrans[5][o>>>16&63]|s.SPtrans[7][o>>>24&63]|s.SPtrans[0][63&l]|s.SPtrans[2][l>>>8&63]|s.SPtrans[4][l>>>16&63]|s.SPtrans[6][l>>>24&63]}static body(t,e,n){let i=0,r=0,a=0;for(let o=0;o<25;o++){for(let a=0;a<2*s.ITERATIONS;a+=4)i=s.D_ENCRYPT(i,r,a,e,n,t),r=s.D_ENCRYPT(r,i,a+2,e,n,t);a=i,i=r,r=a}return a=r,r=i>>>1|i<<31,i=a>>>1|a<<31,i&=4294967295,r&=4294967295,[r,i]=s.PERM_OP(r,i,1,1431655765),[i,r]=s.PERM_OP(i,r,8,16711935),[r,i]=s.PERM_OP(r,i,2,858993459),[i,r]=s.PERM_OP(i,r,16,65535),[r,i]=s.PERM_OP(r,i,4,252645135),[i,r]}static crypt(t,e){for(;t.length<2;)t+="A";let n,i=t.charAt(0)+"",r=t.charAt(1)+"",a=i.charCodeAt(0),o=r.charCodeAt(0);n=i+r+" ";let l=s.con_salt[a],c=s.con_salt[o]<<4,u=[0,0,0,0,0,0,0,0];for(let t=0;t<u.length&&t<e.length;t++){let n=e.charCodeAt(t);u[t]=n<<1}let _=s.des_set_key(u),d=s.body(_,l,c),T=new Array(9);s.intToFourBytes(d[0],T),s.intToFourBytes(d[1],T),T.push(0);let O=0;for(let t=2,e=128;t<13;t++)for(let i=0,r=0;i<6;i++)r<<=1,0!=(T[O]&e)&&(r|=1),0===(e>>>=1)&&(O++,e=128),n=n.substring(0,t)+String.fromCharCode(s.cov_2char[r])+n.substring(t+1,n.length);return n}}s.ITERATIONS=16,s.con_salt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,0],s.shifts2=[!1,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1],s.skb=[[0,16,536870912,536870928,65536,65552,536936448,536936464,2048,2064,536872960,536872976,67584,67600,536938496,536938512,32,48,536870944,536870960,65568,65584,536936480,536936496,2080,2096,536872992,536873008,67616,67632,536938528,536938544,524288,524304,537395200,537395216,589824,589840,537460736,537460752,526336,526352,537397248,537397264,591872,591888,537462784,537462800,524320,524336,537395232,537395248,589856,589872,537460768,537460784,526368,526384,537397280,537397296,591904,591920,537462816,537462832],[0,33554432,8192,33562624,2097152,35651584,2105344,35659776,4,33554436,8196,33562628,2097156,35651588,2105348,35659780,1024,33555456,9216,33563648,2098176,35652608,2106368,35660800,1028,33555460,9220,33563652,2098180,35652612,2106372,35660804,268435456,301989888,268443648,301998080,270532608,304087040,270540800,304095232,268435460,301989892,268443652,301998084,270532612,304087044,270540804,304095236,268436480,301990912,268444672,301999104,270533632,304088064,270541824,304096256,268436484,301990916,268444676,301999108,270533636,304088068,270541828,304096260],[0,1,262144,262145,16777216,16777217,17039360,17039361,2,3,262146,262147,16777218,16777219,17039362,17039363,512,513,262656,262657,16777728,16777729,17039872,17039873,514,515,262658,262659,16777730,16777731,17039874,17039875,134217728,134217729,134479872,134479873,150994944,150994945,151257088,151257089,134217730,134217731,134479874,134479875,150994946,150994947,151257090,151257091,134218240,134218241,134480384,134480385,150995456,150995457,151257600,151257601,134218242,134218243,134480386,134480387,150995458,150995459,151257602,151257603],[0,1048576,256,1048832,8,1048584,264,1048840,4096,1052672,4352,1052928,4104,1052680,4360,1052936,67108864,68157440,67109120,68157696,67108872,68157448,67109128,68157704,67112960,68161536,67113216,68161792,67112968,68161544,67113224,68161800,131072,1179648,131328,1179904,131080,1179656,131336,1179912,135168,1183744,135424,1184e3,135176,1183752,135432,1184008,67239936,68288512,67240192,68288768,67239944,68288520,67240200,68288776,67244032,68292608,67244288,68292864,67244040,68292616,67244296,68292872],[0,268435456,65536,268500992,4,268435460,65540,268500996,536870912,805306368,536936448,805371904,536870916,805306372,536936452,805371908,1048576,269484032,1114112,269549568,1048580,269484036,1114116,269549572,537919488,806354944,537985024,806420480,537919492,806354948,537985028,806420484,4096,268439552,69632,268505088,4100,268439556,69636,268505092,536875008,805310464,536940544,805376e3,536875012,805310468,536940548,805376004,1052672,269488128,1118208,269553664,1052676,269488132,1118212,269553668,537923584,806359040,537989120,806424576,537923588,806359044,537989124,806424580],[0,134217728,8,134217736,1024,134218752,1032,134218760,131072,134348800,131080,134348808,132096,134349824,132104,134349832,1,134217729,9,134217737,1025,134218753,1033,134218761,131073,134348801,131081,134348809,132097,134349825,132105,134349833,33554432,167772160,33554440,167772168,33555456,167773184,33555464,167773192,33685504,167903232,33685512,167903240,33686528,167904256,33686536,167904264,33554433,167772161,33554441,167772169,33555457,167773185,33555465,167773193,33685505,167903233,33685513,167903241,33686529,167904257,33686537,167904265],[0,256,524288,524544,16777216,16777472,17301504,17301760,16,272,524304,524560,16777232,16777488,17301520,17301776,2097152,2097408,2621440,2621696,18874368,18874624,19398656,19398912,2097168,2097424,2621456,2621712,18874384,18874640,19398672,19398928,512,768,524800,525056,16777728,16777984,17302016,17302272,528,784,524816,525072,16777744,16778e3,17302032,17302288,2097664,2097920,2621952,2622208,18874880,18875136,19399168,19399424,2097680,2097936,2621968,2622224,18874896,18875152,19399184,19399440],[0,67108864,262144,67371008,2,67108866,262146,67371010,8192,67117056,270336,67379200,8194,67117058,270338,67379202,32,67108896,262176,67371040,34,67108898,262178,67371042,8224,67117088,270368,67379232,8226,67117090,270370,67379234,2048,67110912,264192,67373056,2050,67110914,264194,67373058,10240,67119104,272384,67381248,10242,67119106,272386,67381250,2080,67110944,264224,67373088,2082,67110946,264226,67373090,10272,67119136,272416,67381280,10274,67119138,272418,67381282]],s.SPtrans=[[8520192,131072,2155872256,2156003840,8388608,2147615232,2147614720,2155872256,2147615232,8520192,8519680,2147484160,2155872768,8388608,0,2147614720,131072,2147483648,8389120,131584,2156003840,8519680,2147484160,8389120,2147483648,512,131584,2156003328,512,2155872768,2156003328,0,0,2156003840,8389120,2147614720,8520192,131072,2147484160,8389120,2156003328,512,131584,2155872256,2147615232,2147483648,2155872256,8519680,2156003840,131584,8519680,2155872768,8388608,2147484160,2147614720,0,131072,8388608,2155872768,8520192,2147483648,2156003328,512,2147615232],[268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336],[1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752],[1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464],[33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440],[536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216],[4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097],[136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952]],s.cov_2char=[46,47,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122];var r=n(5);n.d(e,"a",function(){return a});class a{constructor(t=(()=>{}),e=(()=>{})){this.bc_success=t,this.bc_cancel=e,this.render()}static is_authorized(t,e=!1){return a.priv&t||e||window.alert("Not authorized for this operation"),!!(a.priv&t)}static fetchFromStore(){a.priv=Number(localStorage.getItem("pwr_privilege")),a.user=localStorage.getItem("pwr_user")}login_cb(t){1&t.sts?(a.priv=t.value,localStorage.setItem("pwr_privilege",String(a.priv)),document.title=a.user+" on "+window.location.hostname||"localhost",console.log("Login",a.user,"Priv",a.priv),this.bc_success&&this.bc_success()):(a.logout_cb(),console.log("Login failure","Priv",a.priv))}static logout_cb(){a.priv=0,a.user="",localStorage.setItem("pwr_privilege",String(a.priv)),document.title=window.location.hostname||"localhost"}render(){let t=Object(i.a)("div",{style:{backgroundColor:"#ddeeff",padding:"10px",display:"block",overflow:"hidden",margin:"auto",width:"max-content"}});Object(i.b)(t,Object(i.d)("Host")),Object(i.b)(t,Object(i.a)("br"));let e=localStorage.getItem("HOST")||"localhost",n=Object(i.a)("input",{value:e});Object(i.b)(t,n),Object(i.b)(t,Object(i.a)("br")),Object(i.b)(t,Object(i.d)("Username")),Object(i.b)(t,Object(i.a)("br"));let o=Object(i.a)("input",{autofocus:!0});Object(i.b)(t,o),Object(i.b)(t,Object(i.a)("br")),Object(i.b)(t,Object(i.d)("Password")),Object(i.b)(t,Object(i.a)("br"));let l=Object(i.a)("input",{type:"password"});Object(i.b)(t,l),Object(i.b)(t,Object(i.a)("br"));let c=Object(i.a)("input",{type:"button",value:"Apply"});Object(i.b)(t,c);let u=Object(i.a)("input",{type:"button",value:"Cancel",style:{cssFloat:"right"}});Object(i.b)(t,u),Object(i.c)(document.body,t);let _=this;c.addEventListener("click",()=>{let t=o.value,e=l.value;e=s.crypt("aa",e),a.user=t,localStorage.setItem("HOST",n.value),r.d.init().then(()=>{r.d.login(t,e).then(_.login_cb.bind(_))})}),u.addEventListener("click",this.bc_cancel)}static reduce_privilege(t){this.priv&=~t,localStorage.setItem("pwr_privilege",String(a.priv))}}a.priv=0,a.user=""}});
\ No newline at end of file
<!DOCTYPE html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Operator window</title> <title>Operator window</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
<style>
.menu {
float: left;
width: 20%;
height: 100%;
}
.main {
float: left;
width: 79%;
height: 100%;
}
</style>
</head> </head>
<body> <body>
<iframe class="menu" src="opwind_menu.html"></iframe> <script src="opwind.bundle.js"></script>
<iframe class="main" src="xtt_help_index.html"></iframe>
</body> </body>
</html> </html>
"use strict";function JopCrypt(){this.ITERATIONS=16,this.con_salt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,0],this.shifts2=[!1,!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!0,!1],this.skb=[[0,16,536870912,536870928,65536,65552,536936448,536936464,2048,2064,536872960,536872976,67584,67600,536938496,536938512,32,48,536870944,536870960,65568,65584,536936480,536936496,2080,2096,536872992,536873008,67616,67632,536938528,536938544,524288,524304,537395200,537395216,589824,589840,537460736,537460752,526336,526352,537397248,537397264,591872,591888,537462784,537462800,524320,524336,537395232,537395248,589856,589872,537460768,537460784,526368,526384,537397280,537397296,591904,591920,537462816,537462832],[0,33554432,8192,33562624,2097152,35651584,2105344,35659776,4,33554436,8196,33562628,2097156,35651588,2105348,35659780,1024,33555456,9216,33563648,2098176,35652608,2106368,35660800,1028,33555460,9220,33563652,2098180,35652612,2106372,35660804,268435456,301989888,268443648,301998080,270532608,304087040,270540800,304095232,268435460,301989892,268443652,301998084,270532612,304087044,270540804,304095236,268436480,301990912,268444672,301999104,270533632,304088064,270541824,304096256,268436484,301990916,268444676,301999108,270533636,304088068,270541828,304096260],[0,1,262144,262145,16777216,16777217,17039360,17039361,2,3,262146,262147,16777218,16777219,17039362,17039363,512,513,262656,262657,16777728,16777729,17039872,17039873,514,515,262658,262659,16777730,16777731,17039874,17039875,134217728,134217729,134479872,134479873,150994944,150994945,151257088,151257089,134217730,134217731,134479874,134479875,150994946,150994947,151257090,151257091,134218240,134218241,134480384,134480385,150995456,150995457,151257600,151257601,134218242,134218243,134480386,134480387,150995458,150995459,151257602,151257603],[0,1048576,256,1048832,8,1048584,264,1048840,4096,1052672,4352,1052928,4104,1052680,4360,1052936,67108864,68157440,67109120,68157696,67108872,68157448,67109128,68157704,67112960,68161536,67113216,68161792,67112968,68161544,67113224,68161800,131072,1179648,131328,1179904,131080,1179656,131336,1179912,135168,1183744,135424,1184e3,135176,1183752,135432,1184008,67239936,68288512,67240192,68288768,67239944,68288520,67240200,68288776,67244032,68292608,67244288,68292864,67244040,68292616,67244296,68292872],[0,268435456,65536,268500992,4,268435460,65540,268500996,536870912,805306368,536936448,805371904,536870916,805306372,536936452,805371908,1048576,269484032,1114112,269549568,1048580,269484036,1114116,269549572,537919488,806354944,537985024,806420480,537919492,806354948,537985028,806420484,4096,268439552,69632,268505088,4100,268439556,69636,268505092,536875008,805310464,536940544,805376e3,536875012,805310468,536940548,805376004,1052672,269488128,1118208,269553664,1052676,269488132,1118212,269553668,537923584,806359040,537989120,806424576,537923588,806359044,537989124,806424580],[0,134217728,8,134217736,1024,134218752,1032,134218760,131072,134348800,131080,134348808,132096,134349824,132104,134349832,1,134217729,9,134217737,1025,134218753,1033,134218761,131073,134348801,131081,134348809,132097,134349825,132105,134349833,33554432,167772160,33554440,167772168,33555456,167773184,33555464,167773192,33685504,167903232,33685512,167903240,33686528,167904256,33686536,167904264,33554433,167772161,33554441,167772169,33555457,167773185,33555465,167773193,33685505,167903233,33685513,167903241,33686529,167904257,33686537,167904265],[0,256,524288,524544,16777216,16777472,17301504,17301760,16,272,524304,524560,16777232,16777488,17301520,17301776,2097152,2097408,2621440,2621696,18874368,18874624,19398656,19398912,2097168,2097424,2621456,2621712,18874384,18874640,19398672,19398928,512,768,524800,525056,16777728,16777984,17302016,17302272,528,784,524816,525072,16777744,16778e3,17302032,17302288,2097664,2097920,2621952,2622208,18874880,18875136,19399168,19399424,2097680,2097936,2621968,2622224,18874896,18875152,19399184,19399440],[0,67108864,262144,67371008,2,67108866,262146,67371010,8192,67117056,270336,67379200,8194,67117058,270338,67379202,32,67108896,262176,67371040,34,67108898,262178,67371042,8224,67117088,270368,67379232,8226,67117090,270370,67379234,2048,67110912,264192,67373056,2050,67110914,264194,67373058,10240,67119104,272384,67381248,10242,67119106,272386,67381250,2080,67110944,264224,67373088,2082,67110946,264226,67373090,10272,67119136,272416,67381280,10274,67119138,272418,67381282]],this.SPtrans=[[8520192,131072,2155872256,2156003840,8388608,2147615232,2147614720,2155872256,2147615232,8520192,8519680,2147484160,2155872768,8388608,0,2147614720,131072,2147483648,8389120,131584,2156003840,8519680,2147484160,8389120,2147483648,512,131584,2156003328,512,2155872768,2156003328,0,0,2156003840,8389120,2147614720,8520192,131072,2147484160,8389120,2156003328,512,131584,2155872256,2147615232,2147483648,2155872256,8519680,2156003840,131584,8519680,2155872768,8388608,2147484160,2147614720,0,131072,8388608,2155872768,8520192,2147483648,2156003328,512,2147615232],[268705796,0,270336,268697600,268435460,8196,268443648,270336,8192,268697604,4,268443648,262148,268705792,268697600,4,262144,268443652,268697604,8192,270340,268435456,0,262148,268443652,270340,268705792,268435460,268435456,262144,8196,268705796,262148,268705792,268443648,270340,268705796,262148,268435460,0,268435456,8196,262144,268697604,8192,268435456,270340,268443652,268705792,8192,0,268435460,4,268705796,270336,268697600,268697604,262144,8196,268443648,268443652,4,268697600,270336],[1090519040,16842816,64,1090519104,1073807360,16777216,1090519104,65600,16777280,65536,16842752,1073741824,1090584640,1073741888,1073741824,1090584576,0,1073807360,16842816,64,1073741888,1090584640,65536,1090519040,1090584576,16777280,1073807424,16842752,65600,0,16777216,1073807424,16842816,64,1073741824,65536,1073741888,1073807360,16842752,1090519104,0,16842816,65600,1090584576,1073807360,16777216,1090584640,1073741824,1073807424,1090519040,16777216,1090584640,65536,16777280,1090519104,65600,16777280,0,1090584576,1073741888,1090519040,1073807424,64,16842752],[1049602,67109888,2,68158466,0,68157440,67109890,1048578,68158464,67108866,67108864,1026,67108866,1049602,1048576,67108864,68157442,1049600,1024,2,1049600,67109890,68157440,1024,1026,0,1048578,68158464,67109888,68157442,68158466,1048576,68157442,1026,1048576,67108866,1049600,67109888,2,68157440,67109890,0,1024,1048578,0,68157442,68158464,1024,67108864,68158466,1049602,1048576,68158466,2,67109888,1049602,1048578,1049600,68157440,67109890,1026,67108864,67108866,68158464],[33554432,16384,256,33571080,33570824,33554688,16648,33570816,16384,8,33554440,16640,33554696,33570824,33571072,0,16640,33554432,16392,264,33554688,16648,0,33554440,8,33554696,33571080,16392,33570816,256,264,33571072,33571072,33554696,16392,33570816,16384,8,33554440,33554688,33554432,16640,33571080,0,16648,33554432,256,16392,33554696,256,0,33571080,33570824,33571072,264,16384,16640,33570824,33554688,264,8,16648,33570816,33554440],[536870928,524304,0,537397248,524304,2048,536872976,524288,2064,537397264,526336,536870912,536872960,536870928,537395200,526352,524288,536872976,537395216,0,2048,16,537397248,537395216,537397264,537395200,536870912,2064,16,526336,526352,536872960,2064,536870912,536872960,526352,537397248,524304,0,536872960,536870912,2048,537395216,524288,524304,537397264,526336,16,537397264,526336,524288,536872976,536870928,537395200,526352,0,2048,536870928,536872976,537397248,537395200,2064,16,537395216],[4096,128,4194432,4194305,4198529,4097,4224,0,4194304,4194433,129,4198400,1,4198528,4198400,129,4194433,4096,4097,4198529,0,4194432,4194305,4224,4198401,4225,4198528,1,4225,4198401,128,4194304,4225,4198400,4198401,129,4096,128,4194304,4198401,4194433,4225,4224,0,128,4194305,1,4194432,0,4194433,4194432,4224,129,4096,4198529,4194304,4198528,1,4097,4198529,4194305,4198528,4198400,4097],[136314912,136347648,32800,0,134250496,2097184,136314880,136347680,32,134217728,2129920,32800,2129952,134250528,134217760,136314880,32768,2129952,2097184,134250496,136347680,134217760,0,2129920,134217728,2097152,134250528,136314912,2097152,32768,136347648,32,2097152,32768,134217760,136347680,32800,134217728,0,2129920,136314912,134250528,134250496,2097184,136347648,32,2097184,134250496,136347680,2097152,136314880,134217760,2129920,32800,134250528,136314880,32,136347648,2129952,0,134217728,136314912,32768,2129952]],this.cov_2char=[46,47,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],this.byteToUnsigned=function(e){var t=Math.floor(e);return 0<=t?t:t+256},this.fourBytesToInt=function(e,t){var n;return n=this.byteToUnsigned(e[t++]),n|=this.byteToUnsigned(e[t++])<<8,n|=this.byteToUnsigned(e[t++])<<16,n|=this.byteToUnsigned(e[t++])<<24},this.intToFourBytes=function(e,t,n){t[n++]=255&e,t[n++]=e>>>8&255,t[n++]=e>>>16&255,t[n++]=e>>>24&255},this.PERM_OP=function(e,t,n,i,s){var o;e^=(o=(e>>>n^t)&i)<<n,t^=o,s[0]=e,s[1]=t},this.HPERM_OP=function(e,t,n){var i;return e=e^(i=(e<<16-t^e)&n)^i>>>16-t},this.des_set_key=function(e){var t,n,i=new Array(2*this.ITERATIONS),s=this.fourBytesToInt(e,0),o=this.fourBytesToInt(e,4),r=new Array(2);this.PERM_OP(o,s,4,252645135,r),o=r[0],s=r[1],s=this.HPERM_OP(s,-2,3435921408),o=this.HPERM_OP(o,-2,3435921408),this.PERM_OP(o,s,1,1431655765,r),o=r[0],s=r[1],this.PERM_OP(s,o,8,16711935,r),s=r[0],o=r[1],this.PERM_OP(o,s,1,1431655765,r),o=(255&(o=r[0]))<<16|65280&o|(16711680&o)>>>16|(4026531840&(s=r[1]))>>>4,s&=268435455;for(var d=0,h=0;h<this.ITERATIONS;h++)o=this.shifts2[h]?(s=s>>>2|s<<26,o>>>2|o<<26):(s=s>>>1|s<<27,o>>>1|o<<27),s&=268435455,o&=268435455,t=this.skb[0][63&s]|this.skb[1][s>>>6&3|s>>>7&60]|this.skb[2][s>>>13&15|s>>>14&48]|this.skb[3][s>>>20&1|s>>>21&6|s>>>22&56],n=this.skb[4][63&o]|this.skb[5][o>>>7&3|o>>>8&60]|this.skb[6][o>>>15&63]|this.skb[7][o>>>21&15|o>>>22&48],i[d++]=4294967295&(n<<16|65535&t),t=(t=t>>>16|4294901760&n)<<4|t>>>28,i[d++]=4294967295&t;return i},this.D_ENCRYPT=function(e,t,n,i,s,o){var r,d,h;return d=(h=t^t>>>16)&i,h&=s,d=d^d<<16^t^o[n],r=(r=h^h<<16^t^o[n+1])>>>4|r<<28,e^=this.SPtrans[1][63&r]|this.SPtrans[3][r>>>8&63]|this.SPtrans[5][r>>>16&63]|this.SPtrans[7][r>>>24&63]|this.SPtrans[0][63&d]|this.SPtrans[2][d>>>8&63]|this.SPtrans[4][d>>>16&63]|this.SPtrans[6][d>>>24&63]},this.body=function(e,t,n){for(var i=0,s=0,o=0,r=0;r<25;r++){for(var d=0;d<2*this.ITERATIONS;d+=4)i=this.D_ENCRYPT(i,s,d,t,n,e),s=this.D_ENCRYPT(s,i,d+2,t,n,e);o=i,i=s,s=o}o=s,s=i>>>1|i<<31,i=o>>>1|o<<31,i&=4294967295,s&=4294967295;var h=new Array(2);this.PERM_OP(s,i,1,1431655765,h),s=h[0],i=h[1],this.PERM_OP(i,s,8,16711935,h),i=h[0],s=h[1],this.PERM_OP(s,i,2,858993459,h),s=h[0],i=h[1],this.PERM_OP(i,s,16,65535,h),i=h[0],s=h[1],this.PERM_OP(s,i,4,252645135,h),s=h[0],i=h[1];var a=new Array(2);return a[0]=i,a[1]=s,a},this.crypt=function(e,t){for(;e.length<2;)e+="A";var n,i=e.charAt(0)+"",s=e.charAt(1)+"",o=i.charCodeAt(0),r=s.charCodeAt(0);console.log("charZero",i,"charOne",s),n=i+s+" ",console.log('buffer "'+n+'"');for(var d=this.con_salt[o],h=this.con_salt[r]<<4,a=new Array(0,0,0,0,0,0,0,0),l=0;l<a.length&&l<t.length;l++){var g=t.charCodeAt(l);a[l]=g<<1}var c=this.des_set_key(a),_=this.body(c,d,h),u=new Array(9);this.intToFourBytes(_[0],u,0),this.intToFourBytes(_[1],u,4);l=2;for(var f=u[8]=0,b=128;l<13;l++)for(var m=0,p=0;m<6;m++)p<<=1,0!=(u[f]&b)&&(p|=1),0==(b>>>=1)&&(f++,b=128),n=n.substring(0,l)+String.fromCharCode(this.cov_2char[p])+n.substring(l+1,n.length);return n}}function PwrtStatus(e){this.sts=e,this.evenSts=function(){return e%2==0},this.oddSts=function(){return e%2==1},this.getSts=function(){return e}}var Pwr={eType_Boolean:98305,eType_Float32:98306,eType_Float64:98307,eType_Char:98308,eType_Int8:98309,eType_Int16:98310,eType_Int32:98311,eType_UInt8:98312,eType_UInt16:98313,eType_UInt32:98314,eType_Objid:98315,eType_Buffer:98316,eType_String:98317,eType_Enum:98318,eType_Struct:98319,eType_Mask:98320,eType_Array:98321,eType_Time:98322,eType_Text:98323,eType_AttrRef:98324,eType_UInt64:98325,eType_Int64:98326,eType_ClassId:98327,eType_TypeId:98328,eType_VolumeId:98329,eType_ObjectIx:98330,eType_RefId:98331,eType_DeltaTime:98332,eType_Status:98333,eType_NetStatus:98334,eType_CastId:98335,eType_ProString:98336,eType_DisableAttr:98337,eType_DataRef:98338,mPrv_RtRead:1,mPrv_RtWrite:2,mPrv_System:4,mPrv_Maintenance:8,mPrv_Process:16,mPrv_Instrument:32,mPrv_Operator1:64,mPrv_Operator2:128,mPrv_Operator3:256,mPrv_Operator4:512,mPrv_Operator5:1024,mPrv_Operator6:2048,mPrv_Operator7:4096,mPrv_Operator8:8192,mPrv_Operator9:16384,mPrv_Operator10:32768,mPrv_RtEventsAck:1<<18,mPrv_RtPlc:1<<19,mPrv_RtNavigator:1<<20,mPrv_DevRead:1<<21,mPrv_DevPlc:1<<22,mPrv_DevConfig:1<<23,mPrv_DevClass:1<<24,mPrv_RtEventsBlock:1<<25,mPrv_Administrator:1<<26,mPrv_SevRead:1<<27,mPrv_SevAdmin:1<<28,mAccess_RtRead:1,mAccess_RtWrite:2,mAccess_System:4,mAccess_Maintenance:8,mAccess_Process:16,mAccess_Instrument:32,mAccess_RtEventsBlock:1<<25,mAccess_RtEventsAck:1<<18,mAccess_RtPlc:1<<19,mAccess_RtNavigator:1<<20,mAccess_AllRt:35454975,mAccess_AllOperators:65472,mAccess_AllPwr:-1,mAdef_pointer:1,mAdef_array:2,mAdef_backup:4,mAdef_changelog:8,mAdef_state:16,mAdef_const:32,mAdef_rtvirtual:64,mAdef_devbodyref:128,mAdef_dynamic:256,mAdef_publicwrite:512,mAdef_noedit:1024,mAdef_invisible:2048,mAdef_refdirect:4096,mAdef_noinvert:8192,mAdef_noremove:16384,mAdef_rtdbref:32768,mAdef_private:65536,mAdef_class:131072,mAdef_superclass:262144,mAdef_buffer:524288,mAdef_nowbl:1048576,mAdef_alwayswbl:2097152,mAdef_disableattr:4194304,mAdef_rthide:8388608},Pwrb={mXttMethodsFlagsMask_IsConfigured:1,mXttOpMethodsMask_OpenGraph:1,mXttOpMethodsMask_OpenObjectGraph:2,mXttOpMethodsMask_OpenTrend:4,mXttOpMethodsMask_OpenHistory:8,mXttOpMethodsMask_OpenFast:16,mXttOpMethodsMask_Camera:32,mXttOpMethodsMask_HistEvent:64,mXttOpMethodsMask_BlockEvents:128,mXttOpMethodsMask_Help:256,mXttOpMethodsMask_Photo:512,mXttOpMethodsMask_Note:1024,mXttOpMethodsMask_ParentObjectGraph:2048,mXttMntMethodsMask_OpenObject:1,mXttMntMethodsMask_OpenTrace:2,mXttMntMethodsMask_RtNavigator:4,mXttMntMethodsMask_OpenCrossref:8,mXttMntMethodsMask_HelpClass:16,mXttMntMethodsMask_DataSheet:32,mXttMntMethodsMask_CircuitDiagram:64,mXttMntMethodsMask_Simulate:1<<31};function PwrtObjid(e,t){this.oix=t,this.vid=e}function PwrtAttrRef(){this.objid,this.offset,this.body,this.size,this.flags}function CdhrNumber(e,t){this.value=e,this.sts=t,this.evenSts=function(){return t%2==0},this.oddSts=function(){return t%2==1},this.getSts=function(){return t}}var CdhC={cUserVolMin:65793,cUserVolMax:16711422};function UserdataCbReturn(){this.userdata,this.row}function Sub(){this.sts,this.refid,this.type,this.elements,this.name,this.value}function ObjectInfo(){this.objid,this.cid,this.has_children,this.name,this.description,this.classname,this.full_name,this.param1}function AttributeInfo(){this.name,this.type,this.size,this.flags,this.element,this.objid,this.full_name,this.classname}function MenuButton(){this.type,this.text,this.name,this.url}function OpwindMenuInfo(){this.title,this.text,this.enable_language,this.enable_login,this.enable_alarmlist,this.enable_eventlog,this.enable_navigator,this.disable_help,this.disable_proview,this.language,this.buttons=[]}function CrrInfo(){this.type,this.objid,this.name,this.classname}function GlowPieInfo(){this.sector_num,this.min_val,this.max_val}function GlowBarChartInfo(){this.bars,this.barsegments,this.min_value,this.max_value}function GlowTableInfo(){this.columns,this.rows,this.column_size=new Array(Glow.TABLE_MAX_COL)}function PendingData(e,t){this.func_cb=e,this.data=t}var GdhOp={GET_OP_SELF:1,GET_OP_METHOD_PLC:2,GET_OP_METHOD_OBJECTGRAPH:3,GET_OP_METHOD_GRAPH:4,GET_OP_METHOD_HELPCLASS:5};function Gdh(){var j=1,M=2,E=3,k=4,R=5,B=6,D=7,L=9,G=10,N=15,F=25,X=26,z=29,H=36,W=39,V=42,J=50,Y=57,q=63,Z=64,K=65,Q=66,$=67,ee=68;this.debug=!1,this.pending=[],this.sub=[],this.PORT=4448,this.ws=null,this.open_cb=null,this.close_cb=null,this.return_cb=null,this.next_id=1234,this.subscriptionCount=1,this.listSend=!1,this.init=function(){""===window.location.hostname?this.ws=new WebSocket("ws:127.0.0.1:4448"):this.ws=new WebSocket("ws://"+window.location.hostname+":4448"),this.ws.binaryType="arraybuffer",(this.ws.gdh=this).ws.onopen=function(e){null!==this.gdh.open_cb&&this.gdh.open_cb()},this.ws.onclose=function(){this.debug&&console.log("Socket closed"),null!==this.gdh.close_cb&&this.gdh.close_cb()},this.ws.onmessage=function(e){if("string"==typeof e.data)console.log("String message received",e,e.data);else if(e.data instanceof ArrayBuffer){var t=new DataView(e.data),n=t.getUint8(0),i=t.getUint32(1),s=t.getUint32(5);switch(n){case R:this.gdh.debug&&console.log("GetObjectInfoBoolean received");var o=t.getUint8(9);(0,this.gdh.pending[i].func_cb)(i,s,o),delete this.gdh.pending[i];break;case D:this.gdh.debug&&console.log("GetObjectInfoInt received");o=t.getUint32(9);(T=this.gdh.pending[i]).func_cb(i,T.data,s,o),delete this.gdh.pending[i];break;case B:this.gdh.debug&&console.log("GetObjectInfoFloat received");o=t.getFloat32(9);(T=this.gdh.pending[i]).func_cb(i,T.data,s,o),delete this.gdh.pending[i];break;case Y:this.gdh.debug&&console.log("GetObjectInfoFloatArray received");var r=t.getInt32(9);o=new Array(r);_=13;for(var d=0;d<r;d++)o[d]=t.getFloat32(_),_+=4;(T=this.gdh.pending[i]).func_cb(i,T.data,s,o),delete this.gdh.pending[i];break;case j:this.gdh.debug&&console.log("SetObjectInfoBoolean received",i,s);break;case E:this.gdh.debug&&console.log("SetObjectInfoInt received",i,s);break;case M:this.gdh.debug&&console.log("SetObjectInfoFloat received",i,s);break;case k:this.gdh.debug&&console.log("SetObjectInfoString received",i,s);break;case L:this.gdh.debug&&console.log("ToggleObjectInfo received",i,s);break;case G:this.gdh.debug&&console.log("RefObjectInfo received",i,s),delete this.gdh.pending[i];break;case N:this.gdh.debug&&console.log("UnrefObjectInfo received",i,s),delete this.gdh.pending[i];break;case X:this.gdh.debug&&console.log("RefObjectInfoList received",i,s),(0,this.gdh.pending[i].func_cb)(i,s),delete this.gdh.pending[i];break;case F:var h=9,a=t.getUint32(h);this.gdh.debug&&console.log("GetObjectRefInfoAll received",i,a),h+=4;for(d=0;d<a;d++){var l=t.getUint32(h);h+=4;var g=t.getUint32(h);h+=4;var c=this.gdh.sub[l];if(void 0===c)h+=g;else{switch(c.type){case Pwr.eType_Boolean:if(c.elements<=1)o=t.getUint8(h),h+=1;else{(b=g)!=c.elements&&console.log("Subscription size error",b,c.elements,l),o=new Array(b);for(var _=0;_<b;_++)o[_]=t.getUint8(h),h+=1}break;case Pwr.eType_Float32:if(c.elements<=1)o=t.getFloat32(h),h+=4;else{(b=g/4)!=c.elements&&console.log("Subscription size error",b,c.elements,l),o=new Array(b);for(_=0;_<b;_++)o[_]=t.getFloat32(h),h+=4}break;case Pwr.eType_Int8:case Pwr.eType_Int16:case Pwr.eType_Int32:case Pwr.eType_UInt8:case Pwr.eType_UInt16:case Pwr.eType_UInt32:case Pwr.eType_Status:case Pwr.eType_NetStatus:case Pwr.eType_Mask:case Pwr.eType_Enum:case GraphIfc.eType_Bit:if(c.elements<=1)o=t.getInt32(h),h+=4;else{(b=g/4)!=c.elements&&console.log("Subscription size error",b,c.elements,l),o=new Array(b);for(_=0;_<b;_++)o[_]=t.getInt32(h),h+=4}break;case Pwr.eType_String:case Pwr.eType_Time:case Pwr.eType_DeltaTime:case Pwr.eType_AttrRef:case Pwr.eType_Objid:if(c.elements<=1){var u=t.getInt16(h);h+=2;var f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);o=String.fromCharCode.apply(null,f)}else{var b;(b=c.elements)!=c.elements&&console.log("Subscription size error",b,c.elements,l),o=new Array(b);for(var m=0;m<b;m++){u=t.getInt16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);o[m]=String.fromCharCode.apply(null,f)}}}this.gdh.sub[l].value=o}}if(void 0===this.gdh.pending[i]){console.log("** GetObjectRefInfoAll received removed",i);break}(0,this.gdh.pending[i].func_cb)(i,s),delete this.gdh.pending[i];break;case W:var p=[];h=9,a=t.getUint32(h);this.gdh.debug&&console.log("GetAllXttChildren received",i,a),console.log("GetAllXttChildren received",s,i,a),h+=4;for(d=0;d<a;d++){(y=new ObjectInfo).objid=new PwrtObjid,y.objid.vid=t.getUint32(h),h+=4,y.objid.oix=t.getUint32(h),h+=4,y.cid=t.getUint32(h),h+=4,y.has_children=0!==t.getUint16(h),h+=2;u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);y.name=String.fromCharCode.apply(null,f);var v=t.getUint16(h);h+=2,f=new Uint8Array(v);for(_=0;_<v;_++)f[_]=t.getUint8(h++);y.description=String.fromCharCode.apply(null,f);var w=t.getUint16(h);h+=2,f=new Uint8Array(w);for(_=0;_<w;_++)f[_]=t.getUint8(h++);y.classname=String.fromCharCode.apply(null,f),p.push(y)}(T=this.gdh.pending[i]).func_cb(i,T.data,s,p),delete this.gdh.pending[i];break;case H:p=[],h=9,a=t.getUint32(h);this.gdh.debug&&console.log("GetAllClassAttributes received",i,a),h+=4;for(d=0;d<a;d++){(y=new AttributeInfo).type=t.getUint32(h),h+=4,y.flags=t.getUint32(h),h+=4,y.size=t.getUint16(h),h+=2,y.elements=t.getUint16(h),h+=2;u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);y.name=String.fromCharCode.apply(null,f),u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);y.classname=String.fromCharCode.apply(null,f),p.push(y)}(T=this.gdh.pending[i]).func_cb(i,T.data,s,p),delete this.gdh.pending[i];break;case q:case ee:case K:this.gdh.debug&&console.log("GetObject received",i,s);var y=null;if(0!=(1&s)){h=9;(y=new ObjectInfo).objid=new PwrtObjid,y.objid.vid=t.getUint32(h),h+=4,y.objid.oix=t.getUint32(h),h+=4,y.cid=t.getUint32(h),h+=4,y.has_children=0!==t.getUint16(h),h+=2;u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);y.name=String.fromCharCode.apply(null,f),u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);y.fullname=String.fromCharCode.apply(null,f);w=t.getUint16(h);h+=2,f=new Uint8Array(w);for(_=0;_<w;_++)f[_]=t.getUint8(h++);y.classname=String.fromCharCode.apply(null,f);v=t.getUint16(h);h+=2,f=new Uint8Array(v);for(_=0;_<v;_++)f[_]=t.getUint8(h++);y.description=String.fromCharCode.apply(null,f);var x=t.getUint16(h);h+=2,f=new Uint8Array(x);for(_=0;_<x;_++)f[_]=t.getUint8(h++);y.param1=String.fromCharCode.apply(null,f)}(T=this.gdh.pending[i]).func_cb(i,T.data,s,y),delete this.gdh.pending[i];break;case V:if(0!=(1&s)){h=9,p=[],a=t.getUint16(h);h+=2,this.gdh.debug&&console.log("CrrSignal received",i,a);for(d=0;d<a;d++){(y=new CrrInfo).type=t.getUint16(h),h+=2,y.objid=new PwrtObjid,y.objid.vid=t.getUint32(h),h+=4,y.objid.oix=t.getUint32(h),h+=4;u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);y.name=String.fromCharCode.apply(null,f);w=t.getUint16(h);h+=2,f=new Uint8Array(w);for(_=0;_<w;_++)f[_]=t.getUint8(h++);y.classname=String.fromCharCode.apply(null,f),p.push(y)}}(T=this.gdh.pending[i]).func_cb(i,T.data,s,p),delete this.gdh.pending[i];break;case Z:p=new OpwindMenuInfo,h=9;if(this.gdh.debug&&console.log("GetOpwindMenu received",i,a),console.log("GetOpwindMenu received",s,i),1&s){u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);p.title=String.fromCharCode.apply(null,f),u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);p.text=String.fromCharCode.apply(null,f),p.enable_language=t.getUint32(h),h+=4,p.enable_login=t.getUint32(h),h+=4,p.enable_alarmlist=t.getUint32(h),h+=4,p.enable_eventlog=t.getUint32(h),h+=4,p.enable_navigator=t.getUint32(h),h+=4,p.disable_help=t.getUint32(h),h+=4,p.disable_proview=t.getUint32(h),h+=4,p.language=t.getUint32(h),h+=4;var A=t.getUint16(h);h+=2;for(d=0;d<A;d++){var P=new MenuButton;P.type=t.getUint32(h),h+=4,u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);P.text=String.fromCharCode.apply(null,f),u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);P.name=String.fromCharCode.apply(null,f),u=t.getUint16(h),h+=2,f=new Uint8Array(u);for(_=0;_<u;_++)f[_]=t.getUint8(h++);P.url=String.fromCharCode.apply(null,f),p.buttons.push(P)}}(T=this.gdh.pending[i]).func_cb(i,T.data,s,p),delete this.gdh.pending[i];break;case z:h=9;this.gdh.debug&&console.log("Check user received",i,a),console.log("Check user received",s,i);var U=0;1&s&&(U=t.getUint32(h),h+=4),(T=this.gdh.pending[i]).func_cb(i,T.data,s,U),delete this.gdh.pending[i];break;case J:if(1&s){h=9,u=t.getUint16(h);h+=2;for(f=new Uint8Array(u),_=0;_<u;_++)f[_]=t.getUint8(h++);var O=String.fromCharCode.apply(null,f)}(T=this.gdh.pending[i]).func_cb(i,T.data,s,O),delete this.gdh.pending[i];break;case Q:p=[],h=9,a=t.getUint32(h);this.gdh.debug&&console.log("MhSync received",i,a),h+=4;for(d=0;d<a;d++){e=new MhEvent;var I=t.getUint16(h);h+=2;for(f=new Uint8Array(I),_=0;_<I;_++)f[_]=t.getUint8(h++);e.eventTime=String.fromCharCode.apply(null,f),I=t.getUint16(h),h+=2,f=new Uint8Array(I);for(_=0;_<I;_++)f[_]=t.getUint8(h++);e.eventText=String.fromCharCode.apply(null,f),I=t.getUint16(h),h+=2,f=new Uint8Array(I);for(_=0;_<I;_++)f[_]=t.getUint8(h++);e.eventName=String.fromCharCode.apply(null,f),e.eventFlags=t.getUint32(h),h+=4,e.eventStatus=t.getUint32(h),h+=4,e.eventPrio=t.getUint32(h),h+=4,e.eventId=new MhEventId,e.eventId.nix=t.getUint32(h),h+=4,e.eventId.idx=t.getUint32(h),h+=4,I=t.getUint16(h),h+=2,f=new Uint8Array(I);for(_=0;_<I;_++)f[_]=t.getUint8(h++);e.eventId.birthTime=String.fromCharCode.apply(null,f),e.targetId=new MhEventId,e.targetId.nix=t.getUint32(h),h+=4,e.targetId.idx=t.getUint32(h),h+=4,I=t.getUint16(h),h+=2,f=new Uint8Array(I);for(_=0;_<I;_++)f[_]=t.getUint8(h++);e.targetId.birthTime=String.fromCharCode.apply(null,f),e.eventType=t.getUint32(h),h+=4;var S=new PwrtObjid(0,0);S.vid=t.getUint32(h),h+=4,S.oix=t.getUint32(h),h+=4,e.object=new PwrtAttrRef,e.object.objid=S,e.object.offset=t.getUint32(h),h+=4,e.object.body=t.getUint32(h),h+=4,e.object.size=t.getUint32(h),h+=4,e.object.flags=t.getUint32(h),h+=4;var C=new PwrtObjid(0,0);C.vid=t.getUint32(h),h+=4,C.oix=t.getUint32(h),h+=4,e.supObject=new PwrtAttrRef,e.supObject.objid=C,e.supObject.offset=t.getUint32(h),h+=4,e.supObject.body=t.getUint32(h),h+=4,e.supObject.size=t.getUint32(h),h+=4,e.supObject.flags=t.getUint32(h),h+=4,I=t.getUint16(h),h+=2,f=new Uint8Array(I);for(_=0;_<I;_++)f[_]=t.getUint8(h++);e.eventMoreText=String.fromCharCode.apply(null,f),e.syncIdx=t.getUint32(h),h+=4,p.push(e)}(T=this.gdh.pending[i]).func_cb(i,T.data,s,p),delete this.gdh.pending[i];break;case $:var T;(T=this.gdh.pending[i]).func_cb(i,T.data,s),delete this.gdh.pending[i];break;default:console.log("Unknown message type")}}}},this.getObjectInfoBoolean=function(e,t){this.return_cb=t;var n=new Uint8Array(e.length+6);n[0]=R,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;for(var i=0;i<e.length;i++)n[i+6]=e.charCodeAt(i);this.pending[this.next_id]=new PendingData(t,null),this.ws.send(n),this.next_id++},this.getObjectInfoInt=function(e,t,n){this.return_cb=t;var i=new Uint8Array(e.length+6);i[0]=D,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var s=0;s<e.length;s++)i[s+6]=e.charCodeAt(s);this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloat=function(e,t,n){this.return_cb=t;var i=new Uint8Array(e.length+6);i[0]=B,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var s=0;s<e.length;s++)i[s+6]=e.charCodeAt(s);this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.next_id++},this.getObjectInfoFloatArray=function(e,t,n,i){this.return_cb=n;var s=new Uint8Array(e.length+10);s[0]=Y,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=t>>16&255,s[9]=t>>24&255;for(var o=0;o<e.length;o++)s[o+10]=e.charCodeAt(o);this.pending[this.next_id]=new PendingData(n,i),this.ws.send(s),this.next_id++},this.refObjectInfo=function(e,t,n){var i=new Sub;if(i.name=e,i.refid=this.subscriptionCount,i.type=t,i.elements=n,this.sub[this.subscriptionCount]=i,this.subscriptionCount++,this.listSent){var s;s=12+i.name.length;var o=new Uint8Array(s+10);o[0]=G,o[2]=255&this.next_id,o[3]=this.next_id>>8&255,o[4]=this.next_id>>16&255,o[5]=this.next_id>>24&255,this.debug&&console.log("RefObjectInfo: ",i.refid);var r=6;o[r++]=255&i.refid,o[r++]=i.refid>>8&255,o[r++]=i.refid>>16&255,o[r++]=i.refid>>24&255,o[r++]=255&i.elements,o[r++]=i.elements>>8&255,o[r++]=i.elements>>16&255,o[r++]=i.elements>>24&255,o[r++]=255&i.name.length,o[r++]=i.name.length>>8&255,o[r++]=i.name.length>>16&255,o[r++]=i.name.length>>24&255;for(var d=0;d<i.name.length;d++)o[r++]=i.name.charCodeAt(d);return this.pending[this.next_id]=new PendingData(this.refObjectInfoReply,null),this.debug&&console.log("Sending RefObjectInfo",this.next_id,s,r),this.ws.send(o),this.next_id++,i.refid}return i.refid},this.refObjectInfoReply=function(e,t){this.debug&&console.log("refObjectInfoReply",e,t)},this.unrefObjectInfo=function(e){var t=new Uint8Array(14);t[0]=N,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,this.debug&&console.log("UnrefObjectInfo: ",e);var n=6;t[n++]=255&e,t[n++]=e>>8&255,t[n++]=e>>16&255,t[n++]=e>>24&255,this.pending[this.next_id]=new PendingData(this.unrefObjectInfoReply,null),this.debug&&console.log("Sending UnrefObjectInfo",this.next_id,4,10,e),this.ws.send(t),this.next_id++,delete this.sub[e]},this.refObjectInfoList=function(e){var t=0,n=0;for(var i in this.return_cb=e,this.sub)t+=12+this.sub[i].name.length,n++;var s=new Uint8Array(t+10);s[0]=X,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&n,s[7]=n>>8&255,s[8]=n>>16&255,s[9]=n>>24&255;var o=10;for(var i in this.sub)if(0!==i){this.debug&&console.log("RefObjectInfoList: ",this.sub[i].refid),s[o++]=255&this.sub[i].refid,s[o++]=this.sub[i].refid>>8&255,s[o++]=this.sub[i].refid>>16&255,s[o++]=this.sub[i].refid>>24&255,s[o++]=255&this.sub[i].elements,s[o++]=this.sub[i].elements>>8&255,s[o++]=this.sub[i].elements>>16&255,s[o++]=this.sub[i].elements>>24&255,s[o++]=255&this.sub[i].name.length,s[o++]=this.sub[i].name.length>>8&255,s[o++]=this.sub[i].name.length>>16&255,s[o++]=this.sub[i].name.length>>24&255;for(var r=0;r<this.sub[i].name.length;r++)s[o++]=this.sub[i].name.charCodeAt(r)}this.pending[this.next_id]=new PendingData(e,null),this.debug&&console.log("Sending RefObjectInfoList",this.next_id,t,o,this.next_id),this.ws.send(s),this.next_id++,this.listSent=!0},this.refObjectInfoListReply=function(e,t){this.debug&&console.log("refObjectInfoListReply",e,t)},this.getRefObjectInfoAll=function(e){var t=new Uint8Array(6);t[0]=F,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,this.pending[this.next_id]=new PendingData(e,null),this.debug&&console.log("Sending getRefObjectInfoAll",this.next_id),this.ws.send(t),this.next_id++},this.getRefObjectInfoAllReply=function(e,t){this.debug&&console.log("getRefObjectInfoAllReply",e,t)},this.getObjectRefInfo=function(e){return this.debug&&console.log("getObjectRefInfo",e,this.sub[e].value),this.sub[e].value},this.setObjectInfoBoolean=function(e,t){var n=new Uint8Array(12+e.length);n[0]=j,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,n[10]=255&e.length,n[11]=e.length>>8&255;for(var i=12,s=0;s<e.length;s++)n[i++]=e.charCodeAt(s);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoBoolean",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoInt=function(e,t){var n=new Uint8Array(12+e.length);n[0]=E,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,n[10]=255&e.length,n[11]=e.length>>8&255;for(var i=12,s=0;s<e.length;s++)n[i++]=e.charCodeAt(s);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoInt",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoFloat=function(e,t){var n=new Uint8Array(12+e.length);n[0]=M,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;var i=new ArrayBuffer(4);new Float32Array(i)[0]=t;var s=new Uint8Array(i);n[6]=s[0],n[7]=s[1],n[8]=s[2],n[9]=s[3],n[10]=255&e.length,n[11]=e.length>>8&255;for(var o=12,r=0;r<e.length;r++)n[o++]=e.charCodeAt(r);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoFloat",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.setObjectInfoString=function(e,t){var n,i=new Uint8Array(10+t.length+e.length);i[0]=k,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&t.length,i[7]=t.length>>8&255;var s=8;for(n=0;n<t.length;n++)i[s++]=t.charCodeAt(n);for(i[s++]=255&e.length,i[s++]=e.length>>8&255,n=0;n<e.length;n++)i[s++]=e.charCodeAt(n);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoString",this.next_id,e,t),this.next_id++,new PwrtStatus(1)},this.toggleObjectInfo=function(e){var t=new Uint8Array(8+e.length);t[0]=L,t[2]=255&this.next_id,t[3]=this.next_id>>8&255,t[4]=this.next_id>>16&255,t[5]=this.next_id>>24&255,t[6]=255&e.length,t[7]=e.length>>8&255;for(var n=8,i=0;i<e.length;i++)t[n++]=e.charCodeAt(i);return this.ws.send(t),this.debug&&console.log("Sending toggleObjectInfoBoolean",this.next_id,e,value),this.next_id++,new PwrtStatus(1)},this.getAllXttChildren=function(e,t,n){var i=new Uint8Array(14);i[0]=W,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.vid,i[7]=e.vid>>8&255,i[8]=e.vid>>16&255,i[9]=e.vid>>24&255,i[10]=255&e.oix,i[11]=e.oix>>8&255,i[12]=e.oix>>16&255,i[13]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending getAllXttChildren",this.next_id),this.ws.send(i),this.next_id++},this.getAllClassAttributes=function(e,t,n,i){var s=new Uint8Array(18);s[0]=H,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=e>>16&255,s[9]=e>>24&255,s[10]=255&t.vid,s[11]=t.vid>>8&255,s[12]=t.vid>>16&255,s[13]=t.vid>>24&255,s[14]=255&t.oix,s[15]=t.oix>>8&255,s[16]=t.oix>>16&255,s[17]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getAllClassAttributes",this.next_id,e,t.vid,t.oix),this.ws.send(s),this.next_id++},this.getObject=function(e,t,n,i){var s=new Uint8Array(16);s[0]=q,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=255&e.vid,s[9]=e.vid>>8&255,s[10]=e.vid>>16&255,s[11]=e.vid>>24&255,s[12]=255&e.oix,s[13]=e.oix>>8&255,s[14]=e.oix>>16&255,s[15]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,e.vid,e.oix),this.ws.send(s),this.next_id++},this.getObjectFromAref=function(e,t,n,i){var s=new Uint8Array(32);s[0]=ee,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=255&e.objid.vid,s[9]=e.objid.vid>>8&255,s[10]=e.objid.vid>>16&255,s[11]=e.objid.vid>>24&255,s[12]=255&e.objid.oix,s[13]=e.objid.oix>>8&255,s[14]=e.objid.oix>>16&255,s[15]=e.objid.oix>>24&255,s[16]=255&e.offset,s[17]=e.offset>>8&255,s[18]=e.offset>>16&255,s[19]=e.offset>>24&255,s[20]=255&e.body,s[21]=e.body>>8&255,s[22]=e.body>>16&255,s[23]=e.body>>24&255,s[24]=255&e.size,s[25]=e.size>>8&255,s[26]=e.size>>16&255,s[27]=e.size>>24&255,s[28]=255&e.flags,s[29]=e.flags>>8&255,s[30]=e.flags>>16&255,s[31]=e.flags>>24&255,this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObject",this.next_id,oid.vid,oid.oix),this.ws.send(s),this.next_id++},this.getObjectFromName=function(e,t,n,i){var s=new Uint8Array(10+e.length);s[0]=K,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=255&e.length,s[9]=e.length>>8&255;for(var o=10,r=0;r<e.length;r++)s[o++]=e.charCodeAt(r);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending getObjectFromName",this.next_id,e),this.ws.send(s),this.next_id++},this.crrSignal=function(e,t,n){var i=new Uint8Array(14);i[0]=V,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.vid,i[7]=e.vid>>8&255,i[8]=e.vid>>16&255,i[9]=e.vid>>24&255,i[10]=255&e.oix,i[11]=e.oix>>8&255,i[12]=e.oix>>16&255,i[13]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending crrObject",this.next_id,e.vid,e.oix),this.ws.send(i),this.next_id++},this.getOpwindMenu=function(e,t,n){e.length;var i=new Uint8Array(8+e.length);i[0]=Z,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.length,i[7]=e.length>>8&255;for(var s=8,o=0;o<e.length;o++)i[s++]=e.charCodeAt(o);this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending getOpwindMenu",this.next_id),this.ws.send(i),this.next_id++},this.login=function(e,t,n,i){var s=new Uint8Array(8+e.length+2+t.length);s[0]=z,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255;var o=6;s[o]=255&e.length,s[o+1]=e.length>>8&255,o+=2;for(var r=0;r<e.length;r++)s[o++]=e.charCodeAt(r);s[o]=255&t.length,s[o+1]=t.length>>8&255,o+=2;for(r=0;r<t.length;r++)s[o++]=t.charCodeAt(r);this.pending[this.next_id]=new PendingData(n,i),this.debug&&console.log("Sending login",this.next_id),this.ws.send(s),this.next_id++},this.getMsg=function(e,t,n){var i=new Uint8Array(10);i[0]=J,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.ws.send(i),this.debug&&console.log("Sending getMsg",this.next_id,e),this.next_id++},this.mhSync=function(e,t,n){var i=new Uint8Array(10);i[0]=Q,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending mhSync",this.next_id),this.ws.send(i),this.next_id++},this.mhAcknowledge=function(e,t,n){var i=new Uint8Array(16+e.birthTime.length);i[0]=$,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e.nix,i[7]=e.nix>>8&255,i[8]=e.nix>>16&255,i[9]=e.nix>>24&255,i[10]=255&e.idx,i[11]=e.idx>>8&255,i[12]=e.idx>>16&255,i[13]=e.idx>>24&255;var s=14;i[s]=255&e.birthTime.length,i[s+1]=e.birthTime.length>>8&255,s+=2;for(var o=0;o<e.birthTime.length;o++)i[s++]=e.birthTime.charCodeAt(o);this.pending[this.next_id]=new PendingData(t,n),this.debug&&console.log("Sending mhAcknowledge",this.next_id),console.log("Sending mhAcknowledge",this.next_id),this.ws.send(i),this.next_id++}}function OpWindMenu(){this.gdh=0,this.buttons=null,this.priv=0,this.user="",this.user_text=null,this.host;var r=this;this.init=function(){this.host=window.location.hostname,""==this.host&&(this.host="localhost"),this.gdh=new Gdh,this.gdh.open_cb=this.gdh_init_cb,this.gdh.init()},this.is_authorized=function(e){return!!(this.priv&e)},this.get_opplace=function(){var e=window.location.search.substring(1);console.log("query",e);var t=e.split("&");return console.log("vars",t.length,t[0].substring(8)),t[0].substring(8)},this.gdh_init_cb=function(){new PwrtObjid(0,0);r.user="Default",r.gdh.login("","",r.login_cb,r),r.gdh.getOpwindMenu(r.get_opplace(),r.get_menu_cb,999)},this.add_menu_button=function(e,t){var n=document.createElement("input");return n.type="button",n.className="leftmenu-button",n.value=t,n.addEventListener("click",new Function('menu.button_cb("'+n.value+'")')),e.appendChild(n),e.appendChild(document.createElement("br")),n},this.get_menu_cb=function(e,t,n,i){r.info=i,console.log("Menu received",n,t,i.buttons.length);var s=document.getElementById("opwindmenu");document.getElementById("opwind_title").innerHTML=i.title,document.getElementById("opwind_text").innerHTML=i.text,i.enable_login?(r.user_text=document.createTextNode(r.user+" on "+r.host),s.appendChild(r.user_text),s.appendChild(document.createElement("hr")),document.getElementById("login_button").addEventListener("click",function(e){"hidden"==document.getElementById("login_frame").style.visibility?(document.getElementById("login_user").value="",document.getElementById("login_passw").value="",document.getElementById("login_frame").style.visibility="visible",document.getElementById("login_frame").style.height="120px",document.getElementById("login_user").focus()):(document.getElementById("login_frame").style.visibility="hidden",document.getElementById("login_frame").style.height="0px")}),document.getElementById("apply_button").addEventListener("click",function(e){var t=document.getElementById("login_user").value,n=document.getElementById("login_passw").value;""!=t.trim()&&(document.getElementById("login_frame").style.visibility="hidden",document.getElementById("login_frame").style.height="0px",n=(new JopCrypt).crypt("aa",n),r.user=t,r.gdh.login(t,n,r.login_cb,r))}),document.getElementById("cancel_button").addEventListener("click",function(e){document.getElementById("login_frame").style.visibility="hidden",document.getElementById("login_frame").style.height="0px"}),document.getElementById("logout_button").addEventListener("click",function(e){document.getElementById("login_frame").style.visibility="hidden",document.getElementById("login_frame").style.height="0px",r.priv=0,r.user="Default",r.gdh.login("","",r.login_cb,r)}),document.getElementById("login_user").value="",document.getElementById("login_passw").value="",document.getElementById("login_frame").style.visibility="hidden",document.getElementById("login_frame").style.height="0px"):(document.getElementById("login_button").remove(),document.getElementById("login_frame").remove()),i.enable_language&&r.add_menu_button(s,"Language"),i.enable_alarmlist&&(r.add_menu_button(s,"AlarmList"),r.add_menu_button(s,"EventList")),i.enable_eventlog&&r.add_menu_button(s,"EventLog"),i.enable_navigator&&r.add_menu_button(s,"Navigator"),i.disable_help||r.add_menu_button(s,"Help"),i.disable_proview||r.add_menu_button(s,"ProviewR"),s.appendChild(document.createElement("hr"));for(var o=0;o<i.buttons.length;o++)r.add_menu_button(s,i.buttons[o].text)},this.button_cb=function(e){if(r.info.enable_language&&"Language"==e)console.log("Language activated");else if(r.info.enable_alarmlist&&"AlarmList"==e)console.log("AlarmList activated"),r.is_authorized(Pwr.mAccess_RtRead|Pwr.mAccess_RtWrite|Pwr.mAccess_AllOperators|Pwr.mAccess_System|Pwr.mAccess_Maintenance|Pwr.mAccess_Process|Pwr.mAccess_Instrument)?window.open("ev.html?list=alarm","_blank"):window.alert("Not authorized for this operation");else if(r.info.enable_alarmlist&&"EventList"==e)console.log("EventList activated"),r.is_authorized(Pwr.mAccess_RtRead|Pwr.mAccess_RtWrite|Pwr.mAccess_AllOperators|Pwr.mAccess_System|Pwr.mAccess_Maintenance|Pwr.mAccess_Process|Pwr.mAccess_Instrument)?window.open("ev.html?list=event","_blank"):window.alert("Not authorized for this operation");else if(r.info.enable_eventlog&&"EventLog"==e)console.log("EventLog activated"),r.is_authorized(Pwr.mAccess_RtRead|Pwr.mAccess_RtWrite|Pwr.mAccess_AllOperators|Pwr.mAccess_System|Pwr.mAccess_Maintenance|Pwr.mAccess_Process|Pwr.mAccess_Instrument)?window.alert("Not yet implemented"):window.alert("Not authorized for this operation");else if(r.info.enable_navigator&&"Navigator"==e)console.log("Navigator activated"),r.is_authorized(Pwr.mAccess_RtNavigator|Pwr.mAccess_System|Pwr.mAccess_Maintenance|Pwr.mAccess_Process|Pwr.mAccess_Instrument)?window.open("xtt.html","_blank"):window.alert("Not authorized for this operation");else if(r.info.disable_help||"Help"!=e)if(r.info.disable_proview||"ProviewR"!=e)if(r.is_authorized(Pwr.mAccess_RtRead|Pwr.mAccess_RtWrite|Pwr.mAccess_AllOperators|Pwr.mAccess_System|Pwr.mAccess_Maintenance|Pwr.mAccess_Process|Pwr.mAccess_Instrument)){for(var t=0;t<r.info.buttons.length;t++)if(r.info.buttons[t].text==e){console.log("Found",r.info.buttons[t].text);var n=r.info.buttons[t].name,i=n.indexOf(".pwg");-1!=i&&(n=n.substring(0,i));var s="ge.html?graph="+n;console.log("url",s),window.open(s,"_blank");break}}else window.alert("Not authorized for this operation");else console.log("ProviewR activated"),window.open("http://www.proview.se","_blank");else console.log("Help activated"),window.open("xtt_help_index.html","_blank")},this.login_cb=function(e,t,n,i){console.log("Login:",n,i),1&n?(r.priv=i,sessionStorage.setItem("pwr_privilege",r.priv),null!=r.user_text&&(r.user_text.textContent=r.user+" on "+r.host),console.log("Login",r.user,"Priv",r.priv)):(r.priv=0,r.user="none",sessionStorage.setItem("pwr_privilege",r.priv),null!=r.user_text&&(r.user_text.textContent="None on "+r.host),console.log("Login failure","Priv",r.priv))}}var menu=new OpWindMenu;menu.init();
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>Operator Menu</title>
<link rel="stylesheet" type="text/css" href="toolbar.css">
</head>
<body>
<div id="opwindmenu" width="120" height="800">
<h1 id="opwind_title"></h1>
<p id="opwind_text"></p>
<hr>
<button id="login_button" type="button" class="leftmenu-button">Login</button>
<div id="login_frame" class="login-frame">
Username
<br>
<input id="login_user" name="username" class="login-field" />
<br>
Password
<br>
<input id="login_passw" name="password" type="password" class="login-field" />
<br>
<button id="apply_button" type="button" style="flex-grow:1">Apply</button>
<button id="cancel_button" type="button" style="float:right">Cancel</button>
<br>
<button id="logout_button" type="button" class="leftmenu-button">Logout</button>
</div>
</div>
<script src=opwind.js></script>
<hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body>
</html>
.annotate { .annotate {
color: #366ED4; color: #366ED4;
font-style: italic; font-style: italic;
} }
.toolbar { .toolbar {
border-left: 1px solid #aaa; border-left: 1px solid #aaa;
margin-top: 10px; margin-top: 10px;
margin: 0 0 0 0; margin: 0 0 0 0;
font-size: 0; font-size: 0;
} }
.toolbar-item { .toolbar-item {
display: inline-block; display: inline-block;
padding: 0.0em 0.0em; padding: 0.0em 0.0em;
background: #fff; background: #fff;
margin: 0 0 0 0; margin: 0 0 0 0;
border: 0px solid #aaa; border: 0px solid #aaa;
border-left: none; border-left: none;
color: blue; color: blue;
font-size: 16px; font-size: 16px;
line-height: 1.5em; line-height: 1.5em;
vertical-align: top; vertical-align: top;
} }
.toolbar-item.selected { .toolbar-item.selected {
background-color: #ccc; background-color: #ccc;
color: black; color: black;
font-weight: bold; font-weight: bold;
} }
.menu-wrapper { .menu-wrapper {
display: inline-block; display: inline-block;
font-size: 16px; font-size: 16px;
} }
.menu-button { .menu-button {
padding-right: 2.5em; padding-right: 2.5em;
position: relative; position: relative;
} }
.menu-button::after { .menu-button::after {
content: " "; content: " ";
border-left: 0.4em solid transparent; border-left: 0.4em solid transparent;
border-right: 0.4em solid transparent; border-right: 0.4em solid transparent;
border-top: 0.4em solid black; border-top: 0.4em solid black;
position: absolute; position: absolute;
right: 1em; right: 1em;
top: 1.1em; top: 1.1em;
} }
.leftmenu-button { .nav {
width:100%; margin: 0;
padding: 0;
overflow: hidden;
background-color: cornflowerblue;
width: 1200px;
} }
.login-frame { li a, .dropbtn {
background-color: #ddeeff; display: inline-block;
padding: 10px; color: white;
display: block; padding: 14px 16px;
overflow: hidden; }
li a:hover, .dropdown:hover .dropbtn {
background-color: coral;
} }
.login-field { li.dropdown {
width:100%; display: inline-block;
} }
.dropdown-content {
display: none;
position: absolute;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-color: #f1f1f1;}
.dropdown:hover .dropdown-content {
display: block;
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,35 +6,7 @@ ...@@ -6,35 +6,7 @@
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <canvas id="canvas" width="1200" height="800"></canvas>
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"> <script src="xtt.bundle.js"></script>
<img src="toolbar_graph.png"/>
</div>
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_objectgraph.png"/>
</div>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_plc.png"/>
</div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_crossref.png"/>
</div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_help.png"/>
</div>
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_classhelp.png"/>
</div>
</div>
<canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src=xtt.js></script>
<hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
"use strict";function PwrtStatus(t){this.sts=t,this.evenSts=function(){return t%2==0},this.oddSts=function(){return t%2==1},this.getSts=function(){return t}}var Pwr={eType_Boolean:98305,eType_Float32:98306,eType_Float64:98307,eType_Char:98308,eType_Int8:98309,eType_Int16:98310,eType_Int32:98311,eType_UInt8:98312,eType_UInt16:98313,eType_UInt32:98314,eType_Objid:98315,eType_Buffer:98316,eType_String:98317,eType_Enum:98318,eType_Struct:98319,eType_Mask:98320,eType_Array:98321,eType_Time:98322,eType_Text:98323,eType_AttrRef:98324,eType_UInt64:98325,eType_Int64:98326,eType_ClassId:98327,eType_TypeId:98328,eType_VolumeId:98329,eType_ObjectIx:98330,eType_RefId:98331,eType_DeltaTime:98332,eType_Status:98333,eType_NetStatus:98334,eType_CastId:98335,eType_ProString:98336,eType_DisableAttr:98337,eType_DataRef:98338,mPrv_RtRead:1,mPrv_RtWrite:2,mPrv_System:4,mPrv_Maintenance:8,mPrv_Process:16,mPrv_Instrument:32,mPrv_Operator1:64,mPrv_Operator2:128,mPrv_Operator3:256,mPrv_Operator4:512,mPrv_Operator5:1024,mPrv_Operator6:2048,mPrv_Operator7:4096,mPrv_Operator8:8192,mPrv_Operator9:16384,mPrv_Operator10:32768,mPrv_RtEventsAck:1<<18,mPrv_RtPlc:1<<19,mPrv_RtNavigator:1<<20,mPrv_DevRead:1<<21,mPrv_DevPlc:1<<22,mPrv_DevConfig:1<<23,mPrv_DevClass:1<<24,mPrv_RtEventsBlock:1<<25,mPrv_Administrator:1<<26,mPrv_SevRead:1<<27,mPrv_SevAdmin:1<<28,mAccess_RtRead:1,mAccess_RtWrite:2,mAccess_System:4,mAccess_Maintenance:8,mAccess_Process:16,mAccess_Instrument:32,mAccess_RtEventsBlock:1<<25,mAccess_RtEventsAck:1<<18,mAccess_RtPlc:1<<19,mAccess_RtNavigator:1<<20,mAccess_AllRt:35454975,mAccess_AllOperators:65472,mAccess_AllPwr:-1,mAdef_pointer:1,mAdef_array:2,mAdef_backup:4,mAdef_changelog:8,mAdef_state:16,mAdef_const:32,mAdef_rtvirtual:64,mAdef_devbodyref:128,mAdef_dynamic:256,mAdef_publicwrite:512,mAdef_noedit:1024,mAdef_invisible:2048,mAdef_refdirect:4096,mAdef_noinvert:8192,mAdef_noremove:16384,mAdef_rtdbref:32768,mAdef_private:65536,mAdef_class:131072,mAdef_superclass:262144,mAdef_buffer:524288,mAdef_nowbl:1048576,mAdef_alwayswbl:2097152,mAdef_disableattr:4194304,mAdef_rthide:8388608},Pwrb={mXttMethodsFlagsMask_IsConfigured:1,mXttOpMethodsMask_OpenGraph:1,mXttOpMethodsMask_OpenObjectGraph:2,mXttOpMethodsMask_OpenTrend:4,mXttOpMethodsMask_OpenHistory:8,mXttOpMethodsMask_OpenFast:16,mXttOpMethodsMask_Camera:32,mXttOpMethodsMask_HistEvent:64,mXttOpMethodsMask_BlockEvents:128,mXttOpMethodsMask_Help:256,mXttOpMethodsMask_Photo:512,mXttOpMethodsMask_Note:1024,mXttOpMethodsMask_ParentObjectGraph:2048,mXttMntMethodsMask_OpenObject:1,mXttMntMethodsMask_OpenTrace:2,mXttMntMethodsMask_RtNavigator:4,mXttMntMethodsMask_OpenCrossref:8,mXttMntMethodsMask_HelpClass:16,mXttMntMethodsMask_DataSheet:32,mXttMntMethodsMask_CircuitDiagram:64,mXttMntMethodsMask_Simulate:1<<31};function PwrtObjid(t,e){this.oix=e,this.vid=t}function PwrtAttrRef(){this.objid,this.offset,this.body,this.size,this.flags}function CdhrNumber(t,e){this.value=t,this.sts=e,this.evenSts=function(){return e%2==0},this.oddSts=function(){return e%2==1},this.getSts=function(){return e}}var CdhC={cUserVolMin:65793,cUserVolMax:16711422};function UserdataCbReturn(){this.userdata,this.row}function CliTable(t,e){this.command=t,this.qualifier=e}var CliC={SUCCESS:1,SYNTAX_ERROR:2,UNKNOWN_COMMAND:4,QUALNOTFOUND:6,VERB_VECT_SIZE:5,STATE_INIT:0,STATE_VERB:1,STATE_QUAL:2,STATE_QUALVALUE:3,STATE_SPACE:4,STATE_EQUAL:5,STATE_ERROR:6,STATE_QUOTE_VERB:7,STATE_QUOTE_QUALVALUE:8,STATE_QUALVALUE_EXACT:9,STATE_VERB_EXACT:10,TAB:"\t",SPACE:" "};function Cli(t){this.verb=new Array(CliC.VERB_VECT_SIZE),this.verbCount=0,this.qualifier=new Array(30),this.qualValue=new Array(30),this.qualifierCount=0,this.status,this.cliTableIndex,this.cliQualifierIndex=new Array(30),this.configuredVerbs,this.cliTable=t,this.getStsString=function(){switch(this.status){case CliC.SUCCESS:return"Success";case CliC.SYNTAX_ERROR:return"Syntax error";case CliC.UNKNOWN_COMMAND:return"Unknown command verb";case CliC.QUALNOTFOUND:return"Unknown qualifier";default:return"Unknown command interpreter error"}},this.evenSts=function(){return this.status%2==0},this.oddSts=function(){return this.status%2!=0},this.parse=function(t){var e,i=CliC.STATE_INIT,n=0;for(this.status=CliC.SUCCESS,this.verbCount=0,e=this.qualifierCount=0;e<t.length;e++){var s=t.charAt(e);switch(i){case CliC.STATE_INIT:if(s==CliC.SPACE||s==CliC.TAB)break;i=CliC.STATE_VERB,n=e;break;case CliC.STATE_SPACE:if(s==CliC.SPACE||s==CliC.TAB)break;if("/"==s)i=CliC.STATE_QUAL,n=e;else if("="==s){if(0===this.qualifierCount){i=CliC.STATE_ERROR,this.status=CliC.SYNTAX_ERROR;break}i=CliC.STATE_EQUAL}else{if('"'==s){i=CliC.STATE_QUOTE_VERB;break}i=CliC.STATE_VERB,n=e}break;case CliC.STATE_VERB:if(s==CliC.SPACE||s==CliC.TAB){if(this.verbCount==CliC.VERB_VECT_SIZE){i=CliC.STATE_ERROR;break}0===this.verbCount?this.verb[this.verbCount++]=t.substring(n,e).toUpperCase():this.verb[this.verbCount++]=t.substring(n,e),i=CliC.STATE_SPACE}else if("/"==s){if(this.verbCount==CliC.VERB_VECT_SIZE){i=CliC.STATE_ERROR;break}this.verb[this.verbCount++]=t.substring(n,e).toUpperCase(),i=CliC.STATE_QUAL,n=e}break;case CliC.STATE_VERB_EXACT:if('"'==s){if(this.verbCount==CliC.VERB_VECT_SIZE){i=CliC.STATE_ERROR;break}this.verb[this.verbCount++]=t.substring(n,e),i=CliC.STATE_SPACE}break;case CliC.STATE_QUAL:s==CliC.SPACE||s==CliC.TAB?(this.qualifier[this.qualifierCount++]=t.substring(n,e).toUpperCase(),i=CliC.STATE_SPACE):"="==s?(this.qualifier[this.qualifierCount++]=t.substring(n,e).toUpperCase(),i=CliC.STATE_EQUAL):"/"==s&&(this.qualifier[this.qualifierCount++]=t.substring(n,e).toUpperCase(),i=CliC.STATE_QUAL,n=e);break;case CliC.STATE_QUALVALUE:s==CliC.SPACE||s==CliC.TAB?(this.qualValue[this.qualifierCount-1]=t.substring(n,e),i=CliC.STATE_SPACE):"/"==s&&(this.qualValue[this.qualifierCount-1]=t.substring(n,e),i=CliC.STATE_QUAL,n=e);break;case CliC.STATE_QUALVALUE_EXACT:'"'==s&&(this.qualValue[this.qualifierCount-1]=t.substring(n,e),i=CliC.STATE_SPACE);break;case CliC.STATE_QUOTE_VERB:i=CliC.STATE_VERB_EXACT,n=e;break;case CliC.STATE_QUOTE_QUALVALUE:i=CliC.STATE_QUALVALUE_EXACT,n=e;break;case CliC.STATE_EQUAL:if(s==CliC.SPACE||s==CliC.TAB)break;'"'==s?i=CliC.STATE_QUOTE_QUALVALUE:(i=CliC.STATE_QUALVALUE,n=e)}if(i==CliC.STATE_ERROR)break}switch(i){case CliC.STATE_INIT:case CliC.STATE_ERROR:return"";case CliC.STATE_VERB:if(this.verbCount==CliC.VERB_VECT_SIZE){i=CliC.STATE_ERROR;break}0===this.verbCount?this.verb[this.verbCount++]=t.substring(n,e).toUpperCase():this.verb[this.verbCount++]=t.substring(n,e);break;case CliC.STATE_VERB_EXACT:if(this.verbCount==CliC.VERB_VECT_SIZE){i=CliC.STATE_ERROR;break}this.verb[this.verbCount++]=t.substring(n,e);break;case CliC.STATE_QUAL:this.qualifier[this.qualifierCount++]=t.substring(n,e).toUpperCase();break;case CliC.STATE_QUALVALUE:case CliC.STATE_QUALVALUE_EXACT:this.qualValue[this.qualifierCount-1]=t.substring(n,e);break;case CliC.STATE_QUOTE_VERB:case CliC.STATE_QUOTE_QUALVALUE:case CliC.STATE_EQUAL:return this.status=CliC.SYNTAX_ERROR,""}if(0===this.verbCount)return this.status=CliC.SYNTAX_ERROR,"";var o=!1;for(e=0;e<this.cliTable.length;e++)if(!(this.verb[0].length>this.cliTable[e].command.length)&&this.verb[0]==this.cliTable[e].command.substring(0,this.verb[0].length)){this.verb[0]=this.cliTable[e].command,o=!0;break}if(!o)return this.status=CliC.UNKNOWN_COMMAND,"";if(this.cliTableIndex=e,this.configuredVerbs=0,null!==this.cliTable[this.cliTableIndex].qualifier){for(e=0;e<this.cliTable[this.cliTableIndex].qualifier.length&&null!==this.cliTable[this.cliTableIndex].qualifier[e];e++)"cli_arg1"==this.cliTable[this.cliTableIndex].qualifier[e]&&this.configuredVerbs++,"cli_arg2"==this.cliTable[this.cliTableIndex].qualifier[e]&&this.configuredVerbs++,"cli_arg3"==this.cliTable[this.cliTableIndex].qualifier[e]&&this.configuredVerbs++,"cli_arg4"==this.cliTable[this.cliTableIndex].qualifier[e]&&this.configuredVerbs++,"cli_arg5"==this.cliTable[this.cliTableIndex].qualifier[e]&&this.configuredVerbs++;for(var a=0;a<this.qualifierCount;a++){for(o=!1,e=0;e<this.cliTable[this.cliTableIndex].qualifier.length&&null!==this.cliTable[this.cliTableIndex].qualifier[e];e++)this.qualifier[a].length>this.cliTable[this.cliTableIndex].qualifier[e].length||this.qualifier[a]==this.cliTable[this.cliTableIndex].qualifier[e].substring(0,this.qualifier[a].length)&&(this.cliQualifierIndex[a]=e,o=!0,this.qualifier[a]=this.cliTable[this.cliTableIndex].qualifier[e]);if(!o)return this.status=CliC.QUALNOTFOUND,""}}else if(0<this.qualifierCount)return this.status=CliC.QUALNOTFOUND,"";return this.verb[0]},this.qualifierFound=function(t){if("cli_arg1"==t)return!(this.verbCount<2||this.configuredVerbs<1);if("cli_arg2"==t)return!(this.verbCount<3||this.configuredVerbs<2);if("cli_arg3"==t)return!(this.verbCount<4||this.configuredVerbs<3);if("cli_arg4"==t)return!(this.verbCount<5||this.configuredVerbs<4);for(var e=0;e<this.qualifierCount;e++)if(t==this.qualifier[e])return!0;return!1},this.getQualValue=function(t){if("cli_arg1"==t)return this.verbCount<2||this.configuredVerbs<1?"":this.verb[1];if("cli_arg2"==t)return this.verbCount<3||this.configuredVerbs<2?"":this.verb[2];if("cli_arg3"==t&&(this.verbCount<4||this.configuredVerbs<3))return this.verb[3];if("cli_arg4"==t)return this.verbCount<5||this.configuredVerbs<4?"":this.verb[4];for(var e=0;e<this.qualifierCount;e++)if(t==this.qualifier[e])return null===this.qualValue[e]?"":this.qualValue[e];return""}}var GraphIfc={eType_Bit:32769};function Sub(){this.sts,this.refid,this.type,this.elements,this.name,this.value}function ObjectInfo(){this.objid,this.cid,this.has_children,this.name,this.description,this.classname,this.full_name,this.param1}function AttributeInfo(){this.name,this.type,this.size,this.flags,this.element,this.objid,this.full_name,this.classname}function MenuButton(){this.type,this.text,this.name,this.url}function OpwindMenuInfo(){this.title,this.text,this.enable_language,this.enable_login,this.enable_alarmlist,this.enable_eventlog,this.enable_navigator,this.disable_help,this.disable_proview,this.language,this.buttons=[]}function CrrInfo(){this.type,this.objid,this.name,this.classname}function GlowPieInfo(){this.sector_num,this.min_val,this.max_val}function GlowBarChartInfo(){this.bars,this.barsegments,this.min_value,this.max_value}function GlowTableInfo(){this.columns,this.rows,this.column_size=new Array(Glow.TABLE_MAX_COL)}function PendingData(t,e){this.func_cb=t,this.data=e}var GdhOp={GET_OP_SELF:1,GET_OP_METHOD_PLC:2,GET_OP_METHOD_OBJECTGRAPH:3,GET_OP_METHOD_GRAPH:4,GET_OP_METHOD_HELPCLASS:5};function Gdh(){var I=1,R=2,k=3,j=4,B=5,V=6,N=7,Q=9,M=10,D=15,G=25,L=26,Y=29,z=36,K=39,F=42,X=50,W=57,q=63,J=64,H=65,Z=66,$=67,tt=68;this.debug=!1,this.pending=[],this.sub=[],this.PORT=4448,this.ws=null,this.open_cb=null,this.close_cb=null,this.return_cb=null,this.next_id=1234,this.subscriptionCount=1,this.listSend=!1,this.init=function(){""===window.location.hostname?this.ws=new WebSocket("ws:127.0.0.1:4448"):this.ws=new WebSocket("ws://"+window.location.hostname+":4448"),this.ws.binaryType="arraybuffer",(this.ws.gdh=this).ws.onopen=function(t){null!==this.gdh.open_cb&&this.gdh.open_cb()},this.ws.onclose=function(){this.debug&&console.log("Socket closed"),null!==this.gdh.close_cb&&this.gdh.close_cb()},this.ws.onmessage=function(t){if("string"==typeof t.data)console.log("String message received",t,t.data);else if(t.data instanceof ArrayBuffer){var e=new DataView(t.data),i=e.getUint8(0),n=e.getUint32(1),s=e.getUint32(5);switch(i){case B:this.gdh.debug&&console.log("GetObjectInfoBoolean received");var o=e.getUint8(9);(0,this.gdh.pending[n].func_cb)(n,s,o),delete this.gdh.pending[n];break;case N:this.gdh.debug&&console.log("GetObjectInfoInt received");o=e.getUint32(9);(P=this.gdh.pending[n]).func_cb(n,P.data,s,o),delete this.gdh.pending[n];break;case V:this.gdh.debug&&console.log("GetObjectInfoFloat received");o=e.getFloat32(9);(P=this.gdh.pending[n]).func_cb(n,P.data,s,o),delete this.gdh.pending[n];break;case W:this.gdh.debug&&console.log("GetObjectInfoFloatArray received");var a=e.getInt32(9);o=new Array(a);g=13;for(var l=0;l<a;l++)o[l]=e.getFloat32(g),g+=4;(P=this.gdh.pending[n]).func_cb(n,P.data,s,o),delete this.gdh.pending[n];break;case I:this.gdh.debug&&console.log("SetObjectInfoBoolean received",n,s);break;case k:this.gdh.debug&&console.log("SetObjectInfoInt received",n,s);break;case R:this.gdh.debug&&console.log("SetObjectInfoFloat received",n,s);break;case j:this.gdh.debug&&console.log("SetObjectInfoString received",n,s);break;case Q:this.gdh.debug&&console.log("ToggleObjectInfo received",n,s);break;case M:this.gdh.debug&&console.log("RefObjectInfo received",n,s),delete this.gdh.pending[n];break;case D:this.gdh.debug&&console.log("UnrefObjectInfo received",n,s),delete this.gdh.pending[n];break;case L:this.gdh.debug&&console.log("RefObjectInfoList received",n,s),(0,this.gdh.pending[n].func_cb)(n,s),delete this.gdh.pending[n];break;case G:var r=9,h=e.getUint32(r);this.gdh.debug&&console.log("GetObjectRefInfoAll received",n,h),r+=4;for(l=0;l<h;l++){var A=e.getUint32(r);r+=4;var c=e.getUint32(r);r+=4;var d=this.gdh.sub[A];if(void 0===d)r+=c;else{switch(d.type){case Pwr.eType_Boolean:if(d.elements<=1)o=e.getUint8(r),r+=1;else{(f=c)!=d.elements&&console.log("Subscription size error",f,d.elements,A),o=new Array(f);for(var g=0;g<f;g++)o[g]=e.getUint8(r),r+=1}break;case Pwr.eType_Float32:if(d.elements<=1)o=e.getFloat32(r),r+=4;else{(f=c/4)!=d.elements&&console.log("Subscription size error",f,d.elements,A),o=new Array(f);for(g=0;g<f;g++)o[g]=e.getFloat32(r),r+=4}break;case Pwr.eType_Int8:case Pwr.eType_Int16:case Pwr.eType_Int32:case Pwr.eType_UInt8:case Pwr.eType_UInt16:case Pwr.eType_UInt32:case Pwr.eType_Status:case Pwr.eType_NetStatus:case Pwr.eType_Mask:case Pwr.eType_Enum:case GraphIfc.eType_Bit:if(d.elements<=1)o=e.getInt32(r),r+=4;else{(f=c/4)!=d.elements&&console.log("Subscription size error",f,d.elements,A),o=new Array(f);for(g=0;g<f;g++)o[g]=e.getInt32(r),r+=4}break;case Pwr.eType_String:case Pwr.eType_Time:case Pwr.eType_DeltaTime:case Pwr.eType_AttrRef:case Pwr.eType_Objid:if(d.elements<=1){var _=e.getInt16(r);r+=2;var u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);o=String.fromCharCode.apply(null,u)}else{var f;(f=d.elements)!=d.elements&&console.log("Subscription size error",f,d.elements,A),o=new Array(f);for(var b=0;b<f;b++){_=e.getInt16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);o[b]=String.fromCharCode.apply(null,u)}}}this.gdh.sub[A].value=o}}if(void 0===this.gdh.pending[n]){console.log("** GetObjectRefInfoAll received removed",n);break}(0,this.gdh.pending[n].func_cb)(n,s),delete this.gdh.pending[n];break;case K:var w=[];r=9,h=e.getUint32(r);this.gdh.debug&&console.log("GetAllXttChildren received",n,h),console.log("GetAllXttChildren received",s,n,h),r+=4;for(l=0;l<h;l++){(m=new ObjectInfo).objid=new PwrtObjid,m.objid.vid=e.getUint32(r),r+=4,m.objid.oix=e.getUint32(r),r+=4,m.cid=e.getUint32(r),r+=4,m.has_children=0!==e.getUint16(r),r+=2;_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);m.name=String.fromCharCode.apply(null,u);var p=e.getUint16(r);r+=2,u=new Uint8Array(p);for(g=0;g<p;g++)u[g]=e.getUint8(r++);m.description=String.fromCharCode.apply(null,u);var v=e.getUint16(r);r+=2,u=new Uint8Array(v);for(g=0;g<v;g++)u[g]=e.getUint8(r++);m.classname=String.fromCharCode.apply(null,u),w.push(m)}(P=this.gdh.pending[n]).func_cb(n,P.data,s,w),delete this.gdh.pending[n];break;case z:w=[],r=9,h=e.getUint32(r);this.gdh.debug&&console.log("GetAllClassAttributes received",n,h),r+=4;for(l=0;l<h;l++){(m=new AttributeInfo).type=e.getUint32(r),r+=4,m.flags=e.getUint32(r),r+=4,m.size=e.getUint16(r),r+=2,m.elements=e.getUint16(r),r+=2;_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);m.name=String.fromCharCode.apply(null,u),_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);m.classname=String.fromCharCode.apply(null,u),w.push(m)}(P=this.gdh.pending[n]).func_cb(n,P.data,s,w),delete this.gdh.pending[n];break;case q:case tt:case H:this.gdh.debug&&console.log("GetObject received",n,s);var m=null;if(0!=(1&s)){r=9;(m=new ObjectInfo).objid=new PwrtObjid,m.objid.vid=e.getUint32(r),r+=4,m.objid.oix=e.getUint32(r),r+=4,m.cid=e.getUint32(r),r+=4,m.has_children=0!==e.getUint16(r),r+=2;_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);m.name=String.fromCharCode.apply(null,u),_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);m.fullname=String.fromCharCode.apply(null,u);v=e.getUint16(r);r+=2,u=new Uint8Array(v);for(g=0;g<v;g++)u[g]=e.getUint8(r++);m.classname=String.fromCharCode.apply(null,u);p=e.getUint16(r);r+=2,u=new Uint8Array(p);for(g=0;g<p;g++)u[g]=e.getUint8(r++);m.description=String.fromCharCode.apply(null,u);var C=e.getUint16(r);r+=2,u=new Uint8Array(C);for(g=0;g<C;g++)u[g]=e.getUint8(r++);m.param1=String.fromCharCode.apply(null,u)}(P=this.gdh.pending[n]).func_cb(n,P.data,s,m),delete this.gdh.pending[n];break;case F:if(0!=(1&s)){r=9,w=[],h=e.getUint16(r);r+=2,this.gdh.debug&&console.log("CrrSignal received",n,h);for(l=0;l<h;l++){(m=new CrrInfo).type=e.getUint16(r),r+=2,m.objid=new PwrtObjid,m.objid.vid=e.getUint32(r),r+=4,m.objid.oix=e.getUint32(r),r+=4;_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);m.name=String.fromCharCode.apply(null,u);v=e.getUint16(r);r+=2,u=new Uint8Array(v);for(g=0;g<v;g++)u[g]=e.getUint8(r++);m.classname=String.fromCharCode.apply(null,u),w.push(m)}}(P=this.gdh.pending[n]).func_cb(n,P.data,s,w),delete this.gdh.pending[n];break;case J:w=new OpwindMenuInfo,r=9;if(this.gdh.debug&&console.log("GetOpwindMenu received",n,h),console.log("GetOpwindMenu received",s,n),1&s){_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);w.title=String.fromCharCode.apply(null,u),_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);w.text=String.fromCharCode.apply(null,u),w.enable_language=e.getUint32(r),r+=4,w.enable_login=e.getUint32(r),r+=4,w.enable_alarmlist=e.getUint32(r),r+=4,w.enable_eventlog=e.getUint32(r),r+=4,w.enable_navigator=e.getUint32(r),r+=4,w.disable_help=e.getUint32(r),r+=4,w.disable_proview=e.getUint32(r),r+=4,w.language=e.getUint32(r),r+=4;var x=e.getUint16(r);r+=2;for(l=0;l<x;l++){var E=new MenuButton;E.type=e.getUint32(r),r+=4,_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);E.text=String.fromCharCode.apply(null,u),_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);E.name=String.fromCharCode.apply(null,u),_=e.getUint16(r),r+=2,u=new Uint8Array(_);for(g=0;g<_;g++)u[g]=e.getUint8(r++);E.url=String.fromCharCode.apply(null,u),w.buttons.push(E)}}(P=this.gdh.pending[n]).func_cb(n,P.data,s,w),delete this.gdh.pending[n];break;case Y:r=9;this.gdh.debug&&console.log("Check user received",n,h),console.log("Check user received",s,n);var T=0;1&s&&(T=e.getUint32(r),r+=4),(P=this.gdh.pending[n]).func_cb(n,P.data,s,T),delete this.gdh.pending[n];break;case X:if(1&s){r=9,_=e.getUint16(r);r+=2;for(u=new Uint8Array(_),g=0;g<_;g++)u[g]=e.getUint8(r++);var O=String.fromCharCode.apply(null,u)}(P=this.gdh.pending[n]).func_cb(n,P.data,s,O),delete this.gdh.pending[n];break;case Z:w=[],r=9,h=e.getUint32(r);this.gdh.debug&&console.log("MhSync received",n,h),r+=4;for(l=0;l<h;l++){t=new MhEvent;var S=e.getUint16(r);r+=2;for(u=new Uint8Array(S),g=0;g<S;g++)u[g]=e.getUint8(r++);t.eventTime=String.fromCharCode.apply(null,u),S=e.getUint16(r),r+=2,u=new Uint8Array(S);for(g=0;g<S;g++)u[g]=e.getUint8(r++);t.eventText=String.fromCharCode.apply(null,u),S=e.getUint16(r),r+=2,u=new Uint8Array(S);for(g=0;g<S;g++)u[g]=e.getUint8(r++);t.eventName=String.fromCharCode.apply(null,u),t.eventFlags=e.getUint32(r),r+=4,t.eventStatus=e.getUint32(r),r+=4,t.eventPrio=e.getUint32(r),r+=4,t.eventId=new MhEventId,t.eventId.nix=e.getUint32(r),r+=4,t.eventId.idx=e.getUint32(r),r+=4,S=e.getUint16(r),r+=2,u=new Uint8Array(S);for(g=0;g<S;g++)u[g]=e.getUint8(r++);t.eventId.birthTime=String.fromCharCode.apply(null,u),t.targetId=new MhEventId,t.targetId.nix=e.getUint32(r),r+=4,t.targetId.idx=e.getUint32(r),r+=4,S=e.getUint16(r),r+=2,u=new Uint8Array(S);for(g=0;g<S;g++)u[g]=e.getUint8(r++);t.targetId.birthTime=String.fromCharCode.apply(null,u),t.eventType=e.getUint32(r),r+=4;var y=new PwrtObjid(0,0);y.vid=e.getUint32(r),r+=4,y.oix=e.getUint32(r),r+=4,t.object=new PwrtAttrRef,t.object.objid=y,t.object.offset=e.getUint32(r),r+=4,t.object.body=e.getUint32(r),r+=4,t.object.size=e.getUint32(r),r+=4,t.object.flags=e.getUint32(r),r+=4;var U=new PwrtObjid(0,0);U.vid=e.getUint32(r),r+=4,U.oix=e.getUint32(r),r+=4,t.supObject=new PwrtAttrRef,t.supObject.objid=U,t.supObject.offset=e.getUint32(r),r+=4,t.supObject.body=e.getUint32(r),r+=4,t.supObject.size=e.getUint32(r),r+=4,t.supObject.flags=e.getUint32(r),r+=4,S=e.getUint16(r),r+=2,u=new Uint8Array(S);for(g=0;g<S;g++)u[g]=e.getUint8(r++);t.eventMoreText=String.fromCharCode.apply(null,u),t.syncIdx=e.getUint32(r),r+=4,w.push(t)}(P=this.gdh.pending[n]).func_cb(n,P.data,s,w),delete this.gdh.pending[n];break;case $:var P;(P=this.gdh.pending[n]).func_cb(n,P.data,s),delete this.gdh.pending[n];break;default:console.log("Unknown message type")}}}},this.getObjectInfoBoolean=function(t,e){this.return_cb=e;var i=new Uint8Array(t.length+6);i[0]=B,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;for(var n=0;n<t.length;n++)i[n+6]=t.charCodeAt(n);this.pending[this.next_id]=new PendingData(e,null),this.ws.send(i),this.next_id++},this.getObjectInfoInt=function(t,e,i){this.return_cb=e;var n=new Uint8Array(t.length+6);n[0]=N,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;for(var s=0;s<t.length;s++)n[s+6]=t.charCodeAt(s);this.pending[this.next_id]=new PendingData(e,i),this.ws.send(n),this.next_id++},this.getObjectInfoFloat=function(t,e,i){this.return_cb=e;var n=new Uint8Array(t.length+6);n[0]=V,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255;for(var s=0;s<t.length;s++)n[s+6]=t.charCodeAt(s);this.pending[this.next_id]=new PendingData(e,i),this.ws.send(n),this.next_id++},this.getObjectInfoFloatArray=function(t,e,i,n){this.return_cb=i;var s=new Uint8Array(t.length+10);s[0]=W,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=e>>16&255,s[9]=e>>24&255;for(var o=0;o<t.length;o++)s[o+10]=t.charCodeAt(o);this.pending[this.next_id]=new PendingData(i,n),this.ws.send(s),this.next_id++},this.refObjectInfo=function(t,e,i){var n=new Sub;if(n.name=t,n.refid=this.subscriptionCount,n.type=e,n.elements=i,this.sub[this.subscriptionCount]=n,this.subscriptionCount++,this.listSent){var s;s=12+n.name.length;var o=new Uint8Array(s+10);o[0]=M,o[2]=255&this.next_id,o[3]=this.next_id>>8&255,o[4]=this.next_id>>16&255,o[5]=this.next_id>>24&255,this.debug&&console.log("RefObjectInfo: ",n.refid);var a=6;o[a++]=255&n.refid,o[a++]=n.refid>>8&255,o[a++]=n.refid>>16&255,o[a++]=n.refid>>24&255,o[a++]=255&n.elements,o[a++]=n.elements>>8&255,o[a++]=n.elements>>16&255,o[a++]=n.elements>>24&255,o[a++]=255&n.name.length,o[a++]=n.name.length>>8&255,o[a++]=n.name.length>>16&255,o[a++]=n.name.length>>24&255;for(var l=0;l<n.name.length;l++)o[a++]=n.name.charCodeAt(l);return this.pending[this.next_id]=new PendingData(this.refObjectInfoReply,null),this.debug&&console.log("Sending RefObjectInfo",this.next_id,s,a),this.ws.send(o),this.next_id++,n.refid}return n.refid},this.refObjectInfoReply=function(t,e){this.debug&&console.log("refObjectInfoReply",t,e)},this.unrefObjectInfo=function(t){var e=new Uint8Array(14);e[0]=D,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,this.debug&&console.log("UnrefObjectInfo: ",t);var i=6;e[i++]=255&t,e[i++]=t>>8&255,e[i++]=t>>16&255,e[i++]=t>>24&255,this.pending[this.next_id]=new PendingData(this.unrefObjectInfoReply,null),this.debug&&console.log("Sending UnrefObjectInfo",this.next_id,4,10,t),this.ws.send(e),this.next_id++,delete this.sub[t]},this.refObjectInfoList=function(t){var e=0,i=0;for(var n in this.return_cb=t,this.sub)e+=12+this.sub[n].name.length,i++;var s=new Uint8Array(e+10);s[0]=L,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&i,s[7]=i>>8&255,s[8]=i>>16&255,s[9]=i>>24&255;var o=10;for(var n in this.sub)if(0!==n){this.debug&&console.log("RefObjectInfoList: ",this.sub[n].refid),s[o++]=255&this.sub[n].refid,s[o++]=this.sub[n].refid>>8&255,s[o++]=this.sub[n].refid>>16&255,s[o++]=this.sub[n].refid>>24&255,s[o++]=255&this.sub[n].elements,s[o++]=this.sub[n].elements>>8&255,s[o++]=this.sub[n].elements>>16&255,s[o++]=this.sub[n].elements>>24&255,s[o++]=255&this.sub[n].name.length,s[o++]=this.sub[n].name.length>>8&255,s[o++]=this.sub[n].name.length>>16&255,s[o++]=this.sub[n].name.length>>24&255;for(var a=0;a<this.sub[n].name.length;a++)s[o++]=this.sub[n].name.charCodeAt(a)}this.pending[this.next_id]=new PendingData(t,null),this.debug&&console.log("Sending RefObjectInfoList",this.next_id,e,o,this.next_id),this.ws.send(s),this.next_id++,this.listSent=!0},this.refObjectInfoListReply=function(t,e){this.debug&&console.log("refObjectInfoListReply",t,e)},this.getRefObjectInfoAll=function(t){var e=new Uint8Array(6);e[0]=G,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,this.pending[this.next_id]=new PendingData(t,null),this.debug&&console.log("Sending getRefObjectInfoAll",this.next_id),this.ws.send(e),this.next_id++},this.getRefObjectInfoAllReply=function(t,e){this.debug&&console.log("getRefObjectInfoAllReply",t,e)},this.getObjectRefInfo=function(t){return this.debug&&console.log("getObjectRefInfo",t,this.sub[t].value),this.sub[t].value},this.setObjectInfoBoolean=function(t,e){var i=new Uint8Array(12+t.length);i[0]=I,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,i[10]=255&t.length,i[11]=t.length>>8&255;for(var n=12,s=0;s<t.length;s++)i[n++]=t.charCodeAt(s);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoBoolean",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoInt=function(t,e){var i=new Uint8Array(12+t.length);i[0]=k,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255,i[6]=255&e,i[7]=e>>8&255,i[8]=e>>16&255,i[9]=e>>24&255,i[10]=255&t.length,i[11]=t.length>>8&255;for(var n=12,s=0;s<t.length;s++)i[n++]=t.charCodeAt(s);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoInt",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoFloat=function(t,e){var i=new Uint8Array(12+t.length);i[0]=R,i[2]=255&this.next_id,i[3]=this.next_id>>8&255,i[4]=this.next_id>>16&255,i[5]=this.next_id>>24&255;var n=new ArrayBuffer(4);new Float32Array(n)[0]=e;var s=new Uint8Array(n);i[6]=s[0],i[7]=s[1],i[8]=s[2],i[9]=s[3],i[10]=255&t.length,i[11]=t.length>>8&255;for(var o=12,a=0;a<t.length;a++)i[o++]=t.charCodeAt(a);return this.ws.send(i),this.debug&&console.log("Sending setObjectInfoFloat",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.setObjectInfoString=function(t,e){var i,n=new Uint8Array(10+e.length+t.length);n[0]=j,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&e.length,n[7]=e.length>>8&255;var s=8;for(i=0;i<e.length;i++)n[s++]=e.charCodeAt(i);for(n[s++]=255&t.length,n[s++]=t.length>>8&255,i=0;i<t.length;i++)n[s++]=t.charCodeAt(i);return this.ws.send(n),this.debug&&console.log("Sending setObjectInfoString",this.next_id,t,e),this.next_id++,new PwrtStatus(1)},this.toggleObjectInfo=function(t){var e=new Uint8Array(8+t.length);e[0]=Q,e[2]=255&this.next_id,e[3]=this.next_id>>8&255,e[4]=this.next_id>>16&255,e[5]=this.next_id>>24&255,e[6]=255&t.length,e[7]=t.length>>8&255;for(var i=8,n=0;n<t.length;n++)e[i++]=t.charCodeAt(n);return this.ws.send(e),this.debug&&console.log("Sending toggleObjectInfoBoolean",this.next_id,t,value),this.next_id++,new PwrtStatus(1)},this.getAllXttChildren=function(t,e,i){var n=new Uint8Array(14);n[0]=K,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t.vid,n[7]=t.vid>>8&255,n[8]=t.vid>>16&255,n[9]=t.vid>>24&255,n[10]=255&t.oix,n[11]=t.oix>>8&255,n[12]=t.oix>>16&255,n[13]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(e,i),this.debug&&console.log("Sending getAllXttChildren",this.next_id),this.ws.send(n),this.next_id++},this.getAllClassAttributes=function(t,e,i,n){var s=new Uint8Array(18);s[0]=z,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&t,s[7]=t>>8&255,s[8]=t>>16&255,s[9]=t>>24&255,s[10]=255&e.vid,s[11]=e.vid>>8&255,s[12]=e.vid>>16&255,s[13]=e.vid>>24&255,s[14]=255&e.oix,s[15]=e.oix>>8&255,s[16]=e.oix>>16&255,s[17]=e.oix>>24&255,this.pending[this.next_id]=new PendingData(i,n),this.debug&&console.log("Sending getAllClassAttributes",this.next_id,t,e.vid,e.oix),this.ws.send(s),this.next_id++},this.getObject=function(t,e,i,n){var s=new Uint8Array(16);s[0]=q,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.vid,s[9]=t.vid>>8&255,s[10]=t.vid>>16&255,s[11]=t.vid>>24&255,s[12]=255&t.oix,s[13]=t.oix>>8&255,s[14]=t.oix>>16&255,s[15]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(i,n),this.debug&&console.log("Sending getObject",this.next_id,t.vid,t.oix),this.ws.send(s),this.next_id++},this.getObjectFromAref=function(t,e,i,n){var s=new Uint8Array(32);s[0]=tt,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.objid.vid,s[9]=t.objid.vid>>8&255,s[10]=t.objid.vid>>16&255,s[11]=t.objid.vid>>24&255,s[12]=255&t.objid.oix,s[13]=t.objid.oix>>8&255,s[14]=t.objid.oix>>16&255,s[15]=t.objid.oix>>24&255,s[16]=255&t.offset,s[17]=t.offset>>8&255,s[18]=t.offset>>16&255,s[19]=t.offset>>24&255,s[20]=255&t.body,s[21]=t.body>>8&255,s[22]=t.body>>16&255,s[23]=t.body>>24&255,s[24]=255&t.size,s[25]=t.size>>8&255,s[26]=t.size>>16&255,s[27]=t.size>>24&255,s[28]=255&t.flags,s[29]=t.flags>>8&255,s[30]=t.flags>>16&255,s[31]=t.flags>>24&255,this.pending[this.next_id]=new PendingData(i,n),this.debug&&console.log("Sending getObject",this.next_id,oid.vid,oid.oix),this.ws.send(s),this.next_id++},this.getObjectFromName=function(t,e,i,n){var s=new Uint8Array(10+t.length);s[0]=H,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255,s[6]=255&e,s[7]=e>>8&255,s[8]=255&t.length,s[9]=t.length>>8&255;for(var o=10,a=0;a<t.length;a++)s[o++]=t.charCodeAt(a);this.pending[this.next_id]=new PendingData(i,n),this.debug&&console.log("Sending getObjectFromName",this.next_id,t),this.ws.send(s),this.next_id++},this.crrSignal=function(t,e,i){var n=new Uint8Array(14);n[0]=F,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t.vid,n[7]=t.vid>>8&255,n[8]=t.vid>>16&255,n[9]=t.vid>>24&255,n[10]=255&t.oix,n[11]=t.oix>>8&255,n[12]=t.oix>>16&255,n[13]=t.oix>>24&255,this.pending[this.next_id]=new PendingData(e,i),this.debug&&console.log("Sending crrObject",this.next_id,t.vid,t.oix),this.ws.send(n),this.next_id++},this.getOpwindMenu=function(t,e,i){t.length;var n=new Uint8Array(8+t.length);n[0]=J,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t.length,n[7]=t.length>>8&255;for(var s=8,o=0;o<t.length;o++)n[s++]=t.charCodeAt(o);this.pending[this.next_id]=new PendingData(e,i),this.debug&&console.log("Sending getOpwindMenu",this.next_id),this.ws.send(n),this.next_id++},this.login=function(t,e,i,n){var s=new Uint8Array(8+t.length+2+e.length);s[0]=Y,s[2]=255&this.next_id,s[3]=this.next_id>>8&255,s[4]=this.next_id>>16&255,s[5]=this.next_id>>24&255;var o=6;s[o]=255&t.length,s[o+1]=t.length>>8&255,o+=2;for(var a=0;a<t.length;a++)s[o++]=t.charCodeAt(a);s[o]=255&e.length,s[o+1]=e.length>>8&255,o+=2;for(a=0;a<e.length;a++)s[o++]=e.charCodeAt(a);this.pending[this.next_id]=new PendingData(i,n),this.debug&&console.log("Sending login",this.next_id),this.ws.send(s),this.next_id++},this.getMsg=function(t,e,i){var n=new Uint8Array(10);n[0]=X,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,this.pending[this.next_id]=new PendingData(e,i),this.ws.send(n),this.debug&&console.log("Sending getMsg",this.next_id,t),this.next_id++},this.mhSync=function(t,e,i){var n=new Uint8Array(10);n[0]=Z,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t,n[7]=t>>8&255,n[8]=t>>16&255,n[9]=t>>24&255,this.pending[this.next_id]=new PendingData(e,i),this.debug&&console.log("Sending mhSync",this.next_id),this.ws.send(n),this.next_id++},this.mhAcknowledge=function(t,e,i){var n=new Uint8Array(16+t.birthTime.length);n[0]=$,n[2]=255&this.next_id,n[3]=this.next_id>>8&255,n[4]=this.next_id>>16&255,n[5]=this.next_id>>24&255,n[6]=255&t.nix,n[7]=t.nix>>8&255,n[8]=t.nix>>16&255,n[9]=t.nix>>24&255,n[10]=255&t.idx,n[11]=t.idx>>8&255,n[12]=t.idx>>16&255,n[13]=t.idx>>24&255;var s=14;n[s]=255&t.birthTime.length,n[s+1]=t.birthTime.length>>8&255,s+=2;for(var o=0;o<t.birthTime.length;o++)n[s++]=t.birthTime.charCodeAt(o);this.pending[this.next_id]=new PendingData(e,i),this.debug&&console.log("Sending mhAcknowledge",this.next_id),console.log("Sending mhAcknowledge",this.next_id),this.ws.send(n),this.next_id++}}var Bitmaps={leaf:0,map:2,openmap:4,object:6,attrenum:8,attrarra:10,attrarel:12,attr:14,crrwrite:16,crrread:18,ack:20,alarm:22,eventacked:24,eventalarm:26,eventreturn:28,info:30,system:32,maintenance:34,blockl:36,blockr:38,img:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],pending:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],images:["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAASElEQVQokWP4jwMwMDBgYBR5XBpwGYZVIzYNGDZB+QyEFOBiM+CyCacGBI0hgEGjsxkYGCiwkSI/4tKMz0DqxCM2A4hOOcQCAObFEQyI2PpKAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAQUlEQVQokWNgYGD4jw1jA2hqsGvAZRhWjdg0oIsh8QkqwMXGbhMuDXAxdAFsNDobyifTRor8SFGoUhSPFKUcYjEAMsMz2y6w8kgAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAKElEQVQokWP4DwUMDAwYGB9gwKUQm0FoGL/JOGwb1TgINZKFSbYOCgD1JxQJG0vK9AAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAK0lEQVQokWNgYGD4z8DA8B8bgMlhxbgUEgIMBE3Ggkc1Dk6N5AAGUm2DYQAkYTDe0vu7CAAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAQklEQVQokaXOwQ4AIAgCUP7/p+nUlpMSzY2bDwWHA5IEkFJCtaiKxE7dvsue8HZNJEPneoAuSq+OYAf9wy4K0Mk5C+d++RWimsw3AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPUlEQVQokaXRQQoAQAgCQP//6brKZmSt0M2hIACI4yBURqiKXQp0ThuhGwmt7Vy00XvqCa7QN1wjhtYLCCYyCkvDVnkJOQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAH0lEQVQokWP4TyJgYGBg+E8iZiDFdHrZMKqBGA2kYAD8gaJsjwzf9wAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIklEQVQokWNgYGD4TxL+TyJg+P//P9GmwzXQ3oZRDdSOBwAGOSrkrXppgQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPklEQVQokWP4////fwYGBgxMCDBgU4jNICyYsOlYbENoJNIW7BqJsYm2NuJyBVE2EqWRfjbiUoQ3oAgpwgUANLqccvbgec0AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAPElEQVQokWNgYGD4jw0wMDDgx9gUEgMYiDIdDaNoJBZg1UiUTTS1EZcriLKRKI30sxGXIgKBhF8RrqgBAOTOqGZ5aiCnAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAMElEQVQokWP4////fwYGBgxMCDBgU4jNICwYv+nY5InWOGojXW0khLEahtc6PDYCAB9hxkjBPICvAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAALUlEQVQokWNgYGD4jw0wMDDgx9gUEgMYCJmOTZ5ojaM20tVGQgCHK/AnLVwAAPonfpBwU5f4AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIklEQVQokWP4////fwYGBpwYHTDANGADeDWM2jAEbSAFAADB26JsIjYj1AAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIElEQVQokWNgYGD4jw8wMDCgYwZcEvg1jNowBG0gBQMAQN8q5COZl1cAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAIUlEQVQokWP4TyJgGIQaGBgY/pOIibcEroEkTLIfhoEGADzs8B5gcUg/AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJUlEQVQokWNgYGD4TyIedBr+kwgY/v//T7TpcA0k2TAIQ4nmGgDFzt0jExR7hgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokaWNQQoAMAjD8v9P633WVWhBkJIotQQoYPYbrHYrqC9D+MG54OBMuMC54GApuPBed9OxiMNLGke1JwAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAANElEQVQokWNgYGD4jw3DABY57IqxsQlqwGELSYop1ECEYgo0EKmYQg1EKMbUQEAxRAMpAABRMgoFjbTzXgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWNgYGD4j4yRATY5BmyKkGks4qgS2BSj2UYFDdgAdW2gvpOwhDW6ItwaCGI8JuHWgMOtWD0PACufaaWhXDFDAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWP4jwYYGBjgGKscNkXINLo4hgZsipFto44GbJi6NlDfSehhjUxjyGMVxQMYcJmEVwPB5ICEAdcbY6vf9TVAAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAS0lEQVQokZ2Q2w4AIAhCz///ND11M3RVmxuDUBRAtw8QHRyC4SSJSDjDht1Yhxdudks+bFNxYsX9G6rz2qVHxqRspGi2Wpoji/dqaLh22DbO2VuXAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAASklEQVQokWP4////fwYGBqIwVC2cgSKBTQzKxhDA0ICmGau12BRCMLJp2BQgy8H9gM9ELGJkasAXvFg9TQjgDCVc8YBXAwFMmgYASkT1C9E5Ya0AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAARklEQVQokZ2QQQoAMAjD+v9Pu9PA1ThQQRBtoFUBJSkk0SlwOwKykCAEcn+BK8hih/aAe++y7IDuhWgXfcKHCuBBfX6ASR3Vn8ZINQzCrQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQ0lEQVQokWNgYGD4j45hAJscA8UakBXi0ITddDy2YJqOrBiLJjI1oLsdj1/I0IAnCLFpwtSALYQwNKB7FJ2NooEUDAAtGwcI+Svs4gAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAL0lEQVQokWP4TyJgGCkaGBgQyhhwSeASw9CAYho2A3CZiE0xVg34FOPUgA+QrAEA1FYi+tWeG/cAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAMElEQVQokWNgYGD4TyIeGRr+//+PXQOaBC4xVElkBdgMwHASTBEOxdj9gEcxHYIVAC5kqlZXl5JMAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJ0lEQVQokWP4jwMwMDBgF8elGIZHNeDSANOEVRyXBpwGUcUGqvoBAK+H8xt0qXFWAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAJ0lEQVQokWNgYGD4jw3///8fqzgDLsUwMKoBlwaSg5UAHoiIw2cDAFMz2iY65DAoAAAAAElFTkSuQmC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAASUlEQVQokZ2RUQoAIAjFdv9L11dhskeUEIQ2mcYIAXjeisA+EahFA9ad/siAA0wqSUsnu87wDZh3VEodO6Rr1c51rc8fd9OoMQHLk7dXak3qLwAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAR0lEQVQokZ2S2woAIAhD9/8/vV6tjgMNhLxMN1SSTGYb46JkfS2gJglQ/ncRAZ5JTCXQYsFRwxpAvFtKoeMvmoqDv1jc5DQONycV+bfOetgAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAOUlEQVQokWNgYGD4///////E0AwMDP8hPDQAk8QhjlMCuzg2G3AB6tlAez8MglAiCZNiw/////8DACmmtFrq9aGNAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokWP4////fwYGhv/E0FA2w390jCSJIc6ASwKnBmw24MLUs4H2fhgEoUQKIMkGBgaG/wDZFBj2pVi3HgAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAN0lEQVQokWNgYGD4TyJm+E8sgGugig3YxHFqwGcIQQ3obAwN6G7GawMuhVg1EFKMUwM+QJ+IAwDD1Gyi1EZc6gAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAO0lEQVQokWP4TyJg+P///38GBgaiMFwDVWzAJo5TA15DCGnAYKNrwHAzPhtwKcSqgZBinBqIigeaRhwAPuZgrlZXy70AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAP0lEQVQokZWPQQoAMAzC8v9Pu8soDOxaBS82QkWNgPKTJ/BYsLekAOxfquwHWyfws6ED7OgtfNk9bAuTSGBJOufqnHIsmYkzAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQUlEQVQokZWPQQ4AMAQE5/+f1kuTCkuROGAmADCVPsJsBfdCsX0u3N7sJFfXsAqW8BMaID+9gE3SJayEFo7CFwY7GtAw3ouVj50AAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAQElEQVQokZ2QQQ4AMAjC+v9Pu9MWl5AJ42a0IlKBgCIadgGgQ8imqo9D3zDBvJoyR+zwlWHS9SUHaOf4QOywtQCQGucn0g2dEQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAOklEQVQokWNgYGD4Tyz+////fwZSFBOtAaoQQsM46JLY+HAbUEwgrJmwyZTZQJYfSAolmsQDWTENwwByoOYaWbAqegAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWP4jwMwMDBgF8enAZsmvBqw2cSARQBDIQqbGEUoaggpQBcj3Qay/IAN4AwlfBrIigeiNeACADpU5yeYXn+XAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAPElEQVQokWNgYGD4jw3///8fqzgDPg04NOG3AUMTugA2hWhqiFKEzCeoAF2MRBvI8gNJoUT1eCBaAy4MAMhm5hr5iTaWAAAAAElFTkSuQmCC"]},Plow={DRAWOFFSET:2,DEST_INTOLAST:0,DEST_INTOFIRST:1,DEST_AFTER:2,DEST_BEFORE:3,TREE_INDENTATION:1,OPEN_ATTRIBUTES:1,OPEN_CHILDREN:2,OPEN_CROSSREFERENCES:4,OPEN_ALL:7,COLOR_BLACK:1,COLOR_RED:2,COLOR_GRAY:3,COLOR_DARKGRAY:4,COLOR_LIGHTGRAY:5,COLOR_WHITE:6,COLOR_YELLOW:7,COLOR_GREEN:8,COLOR_LIGHTBLUE:9,COLOR_BLUE:10,COLOR_VIOLET:11,eEvent_MB1Click:0,eEvent_MB1ClickShift:1,eEvent_Key_Up:2,eEvent_Key_Down:3,eEvent_Key_Right:4,eEvent_Key_Left:5,eEvent_Key_ShiftRight:6,eEvent_Key_CtrlR:7,eEvent_Key_CtrlL:8,eEvent_Key_CtrlG:9,eEvent_ObjectDeleted:10,RELATIVE_POSITION:1,NEXT_RELATIVE_POSITION:2};function PlowGeometry(){this.ll_x=0,this.ll_y=0,this.ur_x=0,this.ur_y=0}function PlowNodeClass(t){this.a=new PlowArray(t),this.ctx=t,this.nc_name="",this.group=0,this.node_open=0,this.draw=function(t,e,i,n){this.a.draw(t,e,i,n)},this.insert=function(t){this.a.add(t)}}function PlowArray(o){this.a=[],this.ctx=o,this.add=function(t){this.a.push(t)},this.insertNode=function(t,e,i){var n=this.find(t);if(-1==n)if(null==e)switch(i){case Plow.DEST_INTOLAST:case Plow.DEST_AFTER:this.a.push(t),t.level=0;break;default:t.level=0,this.a.unshift(t)}else{var s=this.find(e);if(-1==s)return;switch(i){case Plow.DEST_INTOFIRST:s==this.a.length-1?this.a.push(t):this.a.splice(s+1,0,t),t.level=e.level+1;break;case Plow.DEST_INTOLAST:if(s==this.a.length-1)this.a.push(t);else{n=this.a.length;for(var o=s+1;o<this.a.length;o++)if(this.a[o].level<=e.level){n=o;break}n==this.a.length?this.a.push(t):this.a.splice(n,0,t)}t.level=e.level+1;break;case Plow.DEST_AFTER:if(s==this.a.length-1)this.a.push(t);else{for(o=n;o<this.a.length&&!(this.a[o].level<e.level);o++);this.a.splice(o,0,t)}t.level=e.level;break;case Plow.DEST_BEFORE:0<n&&n--,this.a.splice(n,0,t),t.level=e.level}}},this.remove=function(t){var e=this.find(t);-1!=e&&(this.ctx.event_cb(Plow.eEvent_ObjectDeleted,this.a[e+1],0,0),this.a.splice(e,1))},this.size=function(){return this.a.length},this.get=function(t){return this.a[t]},this.draw=function(t,e,i,n){for(var s=0;s<this.a.length;s++)this.a[s].draw(t,e,i,n)},this.set_borders=function(t){for(var e=0;e<this.a.length;e++)this.a[e].set_borders(t)},this.configure=function(){for(var t=0;t<this.a.length;t++)this.a[t].pos.x=1*this.a[t].level,this.a[t].pos.y=1*t},this.close_node=function(t){var e=this.find(t);if(-1!=e){var i,n=t.level;for(i=e+1;i<this.a.length&&!(this.a[i].level<=n);i++);var s=i;if(s!=e+1)for(i=e+1;i<s;i++)o.select_object==this.a[e+1]&&(o.select_object=null),this.ctx.event_cb(Plow.eEvent_ObjectDeleted,this.a[e+1],0,0),this.a.splice(e+1,1)}},this.get_parent_object=function(t){var e=this.find(t);if(-1==e)return null;for(var i=e;0<=i;i--)if(this.a[i].level<t.level)return this.a[i];return null},this.get_first_child=function(t){var e=this.find(t);return-1==e?null:this.a.length==e-1?null:this.a[e+1].level>t.level?this.a[e+1]:null},this.get_next_sibling=function(t){for(var e=!1,i=0;i<this.a.length;i++)if(this.a[i]!=t){if(e){if(this.a[i].level==t.level)return this.a[i];if(this.a[i].level<t.level)return null}}else e=!0;return null},this.get_next_object=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return e==this.a.length-1?null:this.a[e+1];return null},this.get_previous_object=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return 0==e?null:this.a[e-1];return null},this.get_first_object=function(){return 0==this.a.length?null:this.a[0]},this.get_last_object=function(){return 0==this.a.length?null:this.a[this.a.length-1]},this.find=function(t){for(var e=0;e<this.a.length;e++)if(this.a[e]==t)return e;return-1}}function PlowNode(n,t,e){this.ctx=n,this.userdata=null,this.OFFSET=2,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.nc=t,this.pos=new PlowPoint(n,0,0),this.n_name="",this.annotv=[],this.annotsize=[],this.pixmapv=[],this.trace_object="",this.trace_attribute="",this.trace_attr_type=0,this.highlight=!1,this.select=!1,this.invert=!1,this.level=e,this.node_open=!1,this.fill_color=0,this.p=0,this.old_value=0,this.first_scan=!0,this.relative_position=0,this.set_annotation=function(t,e){10<=t||(this.annotv[t]=e)},this.set_annotation_pixmap=function(t,e){10<=t||(this.pixmapv[t]=e)},this.draw_object=function(){this.draw(this.ctx.gdraw.gctx,null,null,!1)},this.draw=function(t,e,i,n){var s=this.x_left*this.ctx.zoom_factor,o=this.y_low*this.ctx.zoom_factor-1,a=(this.x_right-this.x_left)*this.ctx.zoom_factor,l=(this.y_high-this.y_low)*this.ctx.zoom_factor+2;t.fillStyle="white",this.select&&(t.fillStyle="lightblue"),t.fillRect(s,o,a,l),this.nc.draw(t,this.pos,this,this.highlight)},this.connect=function(){if(""!=this.trace_object&&""!=this.trace_attribute){var t=this.trace_attribute.indexOf("#");-1!=t&&(this.trace_attribute=this.trace_attribute.substring(0,t));var e=this.trace_object+"."+this.trace_attribute;this.p=n.gdh.refObjectInfo(e,this.trace_attr_type),console.log("connecting",e,this.p)}},this.scan=function(){if(0!=this.p){var t=n.gdh.getRefObjectInfo(this.p);if(this.first_scan)this.first_scan=!1;else if(t==this.old_value)return;this.highlight=!!t,this.old_value=t,this.draw_object()}},this.set_borders=function(){this.x_left=1e37,this.x_right=-1e37,this.y_low=1e37,this.y_high=-1e37,t.a.set_borders(this)},this.event_handler=function(t,e,i){return(e-this.ctx.offset_x)/this.ctx.zoom_factor>=this.x_left&&(e-this.ctx.offset_x)/this.ctx.zoom_factor<=this.x_right&&(i-this.ctx.offset_y)/this.ctx.zoom_factor>=this.y_low&&(i-this.ctx.offset_y)/this.ctx.zoom_factor<=this.y_high?(n.event_object=this,1):0},this.set_select=function(t){t?(this.select=!0,this.ctx.select_object=this):(this.select=!1,this.ctx.select_object==this&&(this.ctx.select_object=null)),t!=this.select&&this.draw_object()},this.set_invert=function(t){this.invert=t,this.draw_object()},this.set_userdata=function(t){this.userdata=t},this.get_userdata=function(){return this.userdata},this.in_icon=function(t,e){return t>=this.x_left*this.ctx.zoom_factor&&t<=(this.x_left+1.75)*this.ctx.zoom_factor},this.measure=function(){var t=new PlowGeometry;return t.ll_x=this.x_left*this.ctx.zoom_factor,t.ll_y=this.y_low*this.ctx.zoom_factor,t.ur_x=this.x_right*this.ctx.zoom_factor,t.ur_y=this.y_high*this.ctx.zoom_factor,t}}function PlowPoint(t,e,i){this.x=e,this.y=i,this.ctx=t}function PlowAnnot(t,e,i,n,s,o,a){this.RELATIVE_OFFSET=1,this.p=new PlowPoint(t,e,i),this.draw_type=s,this.text_size=n,this.annot_type=o,this.number=a,this.ctx=t,this.draw=function(t,e,i,n){if(null!=i&&null!=i.annotv[this.number]){var s=0,o=this.ctx.zoom_factor/this.ctx.base_zoom_factor*(this.text_size+4)-4;if(!(o<0)){switch(o){case 0:s=8;break;case 1:s=10;break;case 2:s=12;break;case 3:case 4:s=14;break;case 5:case 6:case 7:s=18;break;default:s=3*o}t.font=s+"px Arial",i.invert?t.fillStyle="white":t.fillStyle="black",n&&(t.fillStyle="red"),t.lineWidth=.5;var a=(this.p.x+e.x)*this.ctx.zoom_factor,l=(this.p.y+e.y)*this.ctx.zoom_factor-s/4;if(0!=(this.annot_type&Plow.RELATIVE_POSITION)){var r=(e.x+i.relative_position+this.RELATIVE_OFFSET)*this.ctx.zoom_factor;a<r&&(a=r)}for(var h=i.annotv[this.number].split("\n"),A=0;A<h.length;A++)t.fillText(h[A],a,l),l+=1.4*s;0==(this.annot_type&Plow.NEXT_RELATIVE_POSITION)&&0==(this.annot_type&Plow.RELATIVE_POSITION)||(i.relative_position=(a+t.measureText(i.annotv[this.number]).width)/this.ctx.zoom_factor-e.x)}}},this.set_borders=function(t){}}function PlowAnnotPixmap(t,e,i,n){this.p=new PlowPoint(t,e,i),this.number=n,this.ctx=t,this.draw=function(e,t,i,n){var s,o=(this.p.x+t.x)*this.ctx.zoom_factor,a=(this.p.y+t.y)*this.ctx.zoom_factor,l=i.pixmapv[this.number];null!=l&&(i.invert&&l++,null==(s=Bitmaps.img[l])?((s=new Image).src=Bitmaps.images[l],Bitmaps.img[l]=s,Bitmaps.pending[l]=[],Bitmaps.pending[l].push(new PlowPoint(this.ctx,o,a)),s.onload=function(){for(var t=0;t<Bitmaps.pending[l].length;t++)e.drawImage(s,Bitmaps.pending[l][t].x,Bitmaps.pending[l][t].y);Bitmaps.pending[l]=null}):s.complete?e.drawImage(s,o,a):Bitmaps.pending[l].push(new PlowPoint(this.ctx,o,a)))},this.set_borders=function(t){}}function PlowRect(t,e,i,n,s,o,a,l,r){this.ll=new PlowPoint(t,e,i),this.ur=new PlowPoint(t,e+n,i+s),this.border_color=a,this.fill_color=o,this.fill=l,this.fix_color=r,this.ctx=t,this.draw=function(t,e,i,n){var s=(this.ll.x+e.x)*this.ctx.zoom_factor,o=(this.ll.y+e.y)*this.ctx.zoom_factor,a=(this.ur.x-this.ll.x)*this.ctx.zoom_factor,l=(this.ur.y-this.ll.y)*this.ctx.zoom_factor;switch(t.lineWidth=1,this.border_color){case Plow.COLOR_GRAY:t.strokeStyle="grey";break;case Plow.COLOR_RED:t.strokeStyle="red";break;case Plow.COLOR_WHITE:t.strokeStyle="white";break;default:t.strokeStyle="black"}if(n&&(t.strokeStyle="red"),t.strokeRect(s,o,a,l),this.fill){switch(this.fill_color){case Plow.COLOR_GRAY:t.fillStyle="grey";break;case Plow.COLOR_RED:t.fillStyle="red";break;case Plow.COLOR_YELLOW:t.fillStyle="yellow";break;case Plow.COLOR_GREEN:t.fillStyle="lightgreen";break;case Plow.COLOR_WHITE:i.invert?t.fillStyle="black":t.fillStyle="white";break;default:i.invert?t.fillStyle="white":t.fillStyle="black"}t.fillRect(s,o,a,l)}},this.set_borders=function(t){this.ll.x+t.pos.x<t.x_left&&(t.x_left=this.ll.x+t.pos.x),this.ur.x+t.pos.x>t.x_right&&(t.x_right=this.ur.x+t.pos.x),this.ll.y+t.pos.y<t.y_low&&(t.y_low=this.ll.y+t.pos.y),this.ur.y+t.pos.y>t.y_high&&(t.y_high=this.ur.y+t.pos.y)}}function GDraw(t){this.ctx=t,this.canvas=document.querySelector("canvas"),this.gctx=this.canvas.getContext("2d"),this.offset_top=this.canvas.offsetTop}function PlowCtx(){this.gdh=0,this.debug=!1,this.nodraw=0,this.zoom_factor=20,this.base_zoom_factor=20,this.offset_x=0,this.offset_y=0,this.x_right=0,this.x_left=0,this.y_high=0,this.y_low=0,this.a=new PlowArray(this),this.a_nc=new PlowArray(this),this.name="Claes context",this.gdraw=new GDraw(this),this.selct_object=null,this.event_cb=null,this.event_object=null,this.draw=function(){0<this.nodraw||(this.gdraw.gctx.fillStyle="white",this.gdraw.gctx.fillRect(0,0,this.gdraw.canvas.width,this.gdraw.canvas.height),this.a.draw(this.gdraw.gctx,null,null,!1))},this.connect=function(){for(var t=0;t<this.a.size();t++)this.a.get(t).connect()},this.scan=function(){console.log("ctx scan",this.a.size());for(var t=0;t<this.a.size();t++)this.a.get(t).scan()},this.set_nodraw=function(){this.nodraw++},this.reset_nodraw=function(){this.nodraw--},this.size=function(){return this.a.size()},this.event_handler=function(t,e,i){var n=0;switch(t){case Plow.eEvent_MB1Click:case Plow.eEvent_MB1ClickShift:for(var s=0;s<this.a.size()&&!(this.a.get(s)instanceof PlowNode&&1==(n=this.a.get(s).event_handler(t,e,i)));s++);1==n&&(this.event_cb(t,this.event_object,e,i),this.draw());break;case Plow.eEvent_Key_Up:case Plow.eEvent_Key_Down:case Plow.eEvent_Key_Left:case Plow.eEvent_Key_Right:case Plow.eEvent_Key_ShiftRight:case Plow.eEvent_Key_CtrlR:case Plow.eEvent_Key_CtrlL:case Plow.eEvent_Key_CtrlG:this.event_cb(t,null,0,0)}},this.set_select=function(t){for(var e=0;e<this.a.size();e++)this.a.get(e)instanceof PlowNode&&this.a.get(e).set_select(t)},this.set_invert=function(t){for(var e=0;e<this.a.size();e++)this.a.get(e)instanceof PlowNode&&this.a.get(e).set_invert(t)},this.get_select=function(){return this.select_object},this.insert=function(t,e){this.a.add(t)},this.insertNode=function(t,e,i){this.a.insertNode(t,e,i)},this.remove=function(t){this.select_object==t&&(this.select_object=null),this.a.remove(t)},this.insert_nc=function(t){this.a_nc.add(t)},this.configure=function(){this.a.configure(),this.a.set_borders();var t=1*this.a.a.length*this.zoom_factor;this.gdraw.canvas.height=t},this.get_parent_object=function(t){return this.a.get_parent_object(t)},this.get_next_object=function(t){return this.a.get_next_object(t)},this.get_last_object=function(){return this.a.get_last_object()},this.get_first_object=function(){return this.a.get_first_object()},this.get_previous_object=function(t){return this.a.get_previous_object(t)},this.close_node=function(t){this.a.close_node(t)},this.is_visible=function(t){return t.y_high*this.zoom_factor<=window.pageYOffset+window.innerHeight-this.gdraw.offset_top&&t.y_low*this.zoom_factor>=window.pageYOffset-this.gdraw.offset_top},this.scroll=function(t,e){window.scrollTo(window.scrollX,t*this.zoom_factor-window.innerHeight*e+this.gdraw.offset_top)}}function XttOpenChildrenData(t,e){this.node=t,this.open_next=e}function Xtt(){this.ctx=null,this.ncObject=null,this.scan_update,this.priv=0;var A=this;this.init=function(){this.priv=sessionStorage.getItem("pwr_privilege"),console.log("pwr_privilege",this.priv),this.methods_init(),this.ctx=new PlowCtx,this.ctx.event_cb=this.plow_event,this.createNodeClasses(),this.ctx.gdh=new Gdh,this.ctx.gdh.open_cb=this.gdh_init_cb,this.ctx.gdh.init(),this.ctx.gdraw.canvas.addEventListener("click",function(t){var e=t.pageY-A.ctx.gdraw.offset_top,i=t.pageX;t.shiftKey?xtt.ctx.event_handler(Plow.eEvent_MB1ClickShift,i,e):xtt.ctx.event_handler(Plow.eEvent_MB1Click,i,e)}),document.addEventListener("keydown",function(t){40==t.keyCode?(A.ctx.event_handler(Plow.eEvent_Key_Down),t.preventDefault()):39==t.keyCode?(t.shiftKey?A.ctx.event_handler(Plow.eEvent_Key_ShiftRight):A.ctx.event_handler(Plow.eEvent_Key_Right),t.preventDefault()):37==t.keyCode?(A.ctx.event_handler(Plow.eEvent_Key_Left),t.preventDefault()):38==t.keyCode?(A.ctx.event_handler(Plow.eEvent_Key_Up),t.preventDefault()):82==t.keyCode?(t.ctrlKey&&A.ctx.event_handler(Plow.eEvent_Key_CtrlR),t.preventDefault()):76==t.keyCode?(t.ctrlKey&&A.ctx.event_handler(Plow.eEvent_Key_CtrlL),t.preventDefault()):71==t.keyCode&&(t.ctrlKey&&A.ctx.event_handler(Plow.eEvent_Key_CtrlG),t.preventDefault())}),document.getElementById("toolitem1").addEventListener("click",function(t){var e=A.ctx.get_select();if(e.userdata instanceof XttItemObject){var i=window.open("","_blank");A.ctx.gdh.getObject(e.userdata.objid,GdhOp.GET_OP_METHOD_GRAPH,A.open_graph_cb,i)}console.log("toolitem1 event")}),document.getElementById("toolitem2").addEventListener("click",function(t){var e=A.ctx.get_select();if(e.userdata instanceof XttItemObject){var i=window.open("","_blank");A.ctx.gdh.getObject(e.userdata.objid,GdhOp.GET_OP_METHOD_OBJECTGRAPH,A.open_objectgraph_cb,i)}console.log("toolitem2 event")}),document.getElementById("toolitem3").addEventListener("click",function(t){console.log("toolitem1 event");var e=A.ctx.get_select();if(e.userdata instanceof XttItemObject){var i=window.open("","_blank");A.ctx.gdh.getObject(e.userdata.objid,GdhOp.GET_OP_METHOD_PLC,A.open_plc_cb,i)}else if(e.userdata instanceof XttItemCrr){var n=e.userdata.name.lastIndexOf("-"),s="";-1!=n&&(s="&obj="+e.userdata.name.substring(n+1)),console.log("flow.html?vid="+e.userdata.objid.vid+"&oix="+e.userdata.objid.oix+s),window.open("flow.html?vid="+e.userdata.objid.vid+"&oix="+e.userdata.objid.oix+s)}console.log("toolitem3 event")}),document.getElementById("toolitem4").addEventListener("click",function(t){console.log("toolitem4 event")}),document.getElementById("toolitem5").addEventListener("click",function(t){console.log("toolitem5 event");var e=A.ctx.get_select();null!=e&&e.userdata.open_attributes(A)}),document.getElementById("toolitem6").addEventListener("click",function(t){var e=A.ctx.get_select();A.ctx.gdh.crrSignal(e.userdata.objid,A.open_crr_cb,e),console.log("toolitem6 event")}),document.getElementById("toolitem7").addEventListener("click",function(t){console.log("toolitem7 event")}),document.getElementById("toolitem8").addEventListener("click",function(t){console.log("toolitem8 event");var e=A.ctx.get_select();if(null!=e&&e.userdata instanceof XttItemObject){var i=window.open("","_blank");A.ctx.gdh.getObject(e.userdata.objid,GdhOp.GET_OP_METHOD_HELPCLASS,A.open_helpclass_cb,i)}}),window.addEventListener("storage",function(t){""!=t.newValue&&(localStorage.setItem("XttMethodNavigator",""),A.display_object(t.newValue))})},this.is_authorized=function(t){return!!(this.priv&t)},this.gdh_init_cb=function(){null==A.priv&&A.ctx.gdh.login("","",A.login_cb,A);var t=new PwrtObjid(0,0);A.ctx.gdh.getAllXttChildren(t,A.open_children_cb,new XttOpenChildrenData(null,null)),A.ctx.gdh.listSent=!0,A.trace_cyclic()},this.login_cb=function(t,e,i,n){console.log("Login:",i,n),A.priv=1&i?n:0},this.open_children_cb=function(t,e,i,n){A.ctx.set_nodraw();for(var s=0;s<n.length;s++)null==e.node?(n[s].full_name=n[s].name,new XttItemObject(A,n[s],null,Plow.DEST_AFTER)):(n[s].full_name=e.node.userdata.full_name+"-"+n[s].name,new XttItemObject(A,n[s],e.node,Plow.DEST_INTOLAST));if(A.ctx.configure(),null!=e.open_next){if(0==e.open_next.length)return void A.ctx.reset_nodraw();for(var o=A.ctx.a.get_first_child(e.node);null!=o;){if(o.userdata.name==e.open_next[0]){1==e.open_next.length?(o.set_select(!0),o.set_invert(!0),A.ctx.is_visible(o)||A.ctx.scroll(o.y_low,.5),window.focus()):(e.open_next.splice(0,1),"."==e.open_next[0]?(e.open_next.splice(0,1),o.userdata.open_attributes(A,e.open_next)):o.userdata.open_children(A,e.open_next));break}o=A.ctx.a.get_next_sibling(o)}}A.ctx.reset_nodraw(),A.ctx.draw()},this.open_attributes_cb=function(t,e,i,n){A.ctx.set_nodraw();for(var s=0;s<n.length;s++)n[s].objid=e.node.userdata.objid,n[s].full_name=e.node.userdata.full_name+"."+n[s].name,0!=(n[s].flags&Pwr.mAdef_array)?new XttItemAttrArray(A,n[s],e.node,Plow.DEST_INTOLAST):0!=(n[s].flags&Pwr.mAdef_class)?new XttItemAttrObject(A,n[s],e.node,Plow.DEST_INTOLAST):new XttItemAttr(A,n[s],e.node,Plow.DEST_INTOLAST);if(A.ctx.configure(),null!=e.open_next){if(0==e.open_next.length)return void A.ctx.reset_nodraw();for(var o=A.ctx.a.get_first_child(e.node);null!=o;){if(o.userdata.name==e.open_next[0]){1==e.open_next.length?(o.set_select(!0),o.set_invert(!0),A.ctx.is_visible(o)||A.ctx.scroll(o.y_low,.5),window.focus()):(e.open_next.splice(0,1),o.userdata.open_attributes(A,e.open_next));break}o=A.ctx.a.get_next_sibling(o)}}A.ctx.reset_nodraw(),A.ctx.draw()},this.open_plc_cb=function(t,e,i,n){var s;0!=(1&i)?(s=""!==n.param1?"&obj="+n.param1:"",console.log("flow.html?vid="+n.objid.vid+"&oix="+n.objid.oix+s),e.location.href="flow.html?vid="+n.objid.vid+"&oix="+n.objid.oix+s,e.document.title="Trace "+n.fullname):e.document.write("Error status "+i)},this.open_objectgraph_cb=function(t,e,i,n){0!=(1&i)?(e.location.href="ge.html?graph="+n.param1+"&instance="+n.fullname,e.document.title=n.fullname):e.document.write("Error status "+i)},this.open_graph_cb=function(t,e,i,n){if(0!=(1&i)){var s=n.param1.indexOf(".");-1!=s&&(n.param1=n.param1.substring(0,s));var o="";""!==n.fullname&&(o="&instance="+n.fullname),e.location.href="ge.html?graph="+n.param1+o,e.document.title=n.param1}else e.document.write("Error status "+i)},this.open_crr_cb=function(t,e,i,n){0!=(1&i)&&e.userdata.open_crossreferences(A,n)},this.open_helpclass_cb=function(t,e,i,n){if(0!=(1&i)){console.log("open_helpclass",n.param1);var s=location.protocol+"//"+location.host+n.param1;e.location.href=s}else e.document.write("Error status "+i)},this.plow_event=function(t,e,i,n){var s=null;switch(null!=e&&(s=e.get_userdata()),t){case Plow.eEvent_ObjectDeleted:e.userdata instanceof XttItemAttr&&e.userdata.scan_close(A);break;case Plow.eEvent_MB1Click:e.in_icon(i,n)?s.open_children(A,null):e.select?(e.set_select(!1),e.set_invert(!1)):(A.ctx.set_select(!1),e.set_select(!0),A.ctx.set_invert(!1),e.set_invert(!0),A.ctx.draw());break;case Plow.eEvent_MB1ClickShift:e.in_icon(i,n)&&s.open_attributes(A,null);break;case Plow.eEvent_Key_Down:if(null!=(h=A.ctx.get_select()))null!=(o=A.ctx.get_next_object(h))&&(h.set_select(!1),h.set_invert(!1),o.set_select(!0),o.set_invert(!0),A.ctx.is_visible(o)||A.ctx.scroll(o.y_low,.1));else(h=A.ctx.a.a[0]).set_select(!0),h.set_invert(!0);break;case Plow.eEvent_Key_Up:var o;if(null!=(h=A.ctx.get_select()))null!=(o=A.ctx.get_previous_object(h))&&(h.set_select(!1),h.set_invert(!1),o.set_select(!0),o.set_invert(!0),h.draw(A.ctx.gdraw.gctx,null,null,0),o.draw(A.ctx.gdraw.gctx,null,null,0),A.ctx.is_visible(o)||A.ctx.scroll(o.y_low,.9));break;case Plow.eEvent_Key_Right:null!=(h=A.ctx.get_select())&&(s=h.userdata).open_children(A,null);break;case Plow.eEvent_Key_Left:null!=(h=A.ctx.get_select())&&(s=h.userdata).close(A);break;case Plow.eEvent_Key_ShiftRight:null!=(h=A.ctx.get_select())&&(s=h.userdata).open_attributes(A,null);break;case Plow.eEvent_Key_CtrlR:null!=(h=A.ctx.get_select())&&A.ctx.gdh.crrSignal(h.userdata.objid,A.open_crr_cb,h);break;case Plow.eEvent_Key_CtrlL:if((h=A.ctx.get_select()).userdata instanceof XttItemObject){var a=window.open("","_blank");A.ctx.gdh.getObject(h.userdata.objid,GdhOp.GET_OP_METHOD_PLC,A.open_plc_cb,a)}else if(h.userdata instanceof XttItemCrr){var l=h.userdata.name.lastIndexOf("-"),r="";-1!=l&&(r="&obj="+h.userdata.name.substring(l+1)),window.open("flow.html?vid="+h.userdata.objid.vid+"&oix="+h.userdata.objid.oix+r)}break;case Plow.eEvent_Key_CtrlG:var h;if((h=A.ctx.get_select()).userdata instanceof XttItemObject){console.log("CtrlG",h.userdata.objid.vid,h.userdata.objid.oix);a=window.open("","_blank");A.ctx.gdh.getObject(h.userdata.objid,GdhOp.GET_OP_METHOD_OBJECTGRAPH,A.open_objectgraph_cb,a)}}},this.createNodeClasses=function(){var t=new PlowRect(this.ctx,0,0,50,1,Plow.COLOR_WHITE,Plow.COLOR_WHITE,!0,!1),e=new PlowAnnot(this.ctx,3,.9,4,Plow.COLOR_BLACK,Plow.NEXT_RELATIVE_POSITION,0),i=new PlowAnnot(this.ctx,7.5,.9,4,Plow.COLOR_BLACK,Plow.RELATIVE_POSITION,1),n=new PlowAnnot(this.ctx,12,.9,4,Plow.COLOR_BLACK,Plow.RELATIVE_POSITION,2),s=new PlowAnnotPixmap(this.ctx,.4,.2,0);this.ncObject=new PlowNodeClass(this.ctx),this.ncObject.insert(t),this.ncObject.insert(e),this.ncObject.insert(i),this.ncObject.insert(n),this.ncObject.insert(s),this.ctx.insert_nc(this.ncObject)},this.methods_init=function(){localStorage.setItem("XttMethodNavigator","")},this.collapse=function(){this.ctx.set_nodraw();for(var t=0;t<this.ctx.a.size();t++){var e=this.ctx.a.get(t);0==e.level&&e.userdata.close(this)}this.ctx.reset_nodraw(),this.ctx.draw()},this.display_object=function(t){var e,i=t.indexOf("."),n=null;if(-1!=i){n=t.substring(i+1);var s=(t=t.substring(0,i)).split("-"),o=n.split(".");for(e=new Array(s.length+o.length+1),a=0;a<s.length;a++)e[a]=s[a];for(e[s.length]=".",a=0;a<o.length;a++)e[a+s.length+1]=o[a]}else e=t.split("-");this.collapse();for(var a=0;a<this.ctx.a.size();a++)if(this.ctx.a.get(a).userdata.name==e[0]){if(a==this.ctx.a.size()-1){var l=this.ctx.a.get(a);l.set_select(!0),l.set_invert(!0),this.ctx.is_visible(l)||this.ctx.scroll(l.y_low,.5),window.focus()}else e.splice(0,1),this.ctx.a.get(a).userdata.open_children(this,e);break}},this.trace_cyclic=function(){A.ctx.gdh.getRefObjectInfoAll(A.trace_scan)},this.trace_scan=function(t,e){A.scan_update=!1;for(var i=0;i<A.ctx.a.size();i++){var n=A.ctx.a.get(i).userdata;n instanceof XttItemAttr&&n.scan(A)}A.scan_update&&A.ctx.draw(),A.timer=setTimeout(A.trace_cyclic,1e3)},this.openValueInputDialog=function(t,e){if(console.log("priv acc",this.priv,Pwr.mAccess_RtWrite|Pwr.mAccess_System),this.is_authorized(Pwr.mAccess_RtWrite|Pwr.mAccess_System)){var i=prompt(e,"");null!==i&&t.set_value(this,i)}else alert("Not authorized for this operation")}}function XttItemObject(t,e,i,n){this.objid=e.objid,this.cid=e.cid,this.name=e.name,this.full_name=e.full_name,this.has_children=e.has_children,this.node=new PlowNode(t.ctx,t.ncObject,0),this.node.set_userdata(this),this.node.set_annotation(0,e.name),this.node.set_annotation(1,e.classname),this.node.set_annotation(2,e.description),this.node.set_annotation_pixmap(0,Bitmaps.map),t.ctx.insertNode(this.node,i,n),e.has_children?this.node.set_annotation_pixmap(0,Bitmaps.map):this.node.set_annotation_pixmap(0,Bitmaps.leaf),this.open_children=function(t,e){0!=this.node.node_open?this.close(t):this.has_children?(t.ctx.gdh.getAllXttChildren(this.objid,t.open_children_cb,new XttOpenChildrenData(this.node,e)),this.node.node_open|=Plow.OPEN_CHILDREN,this.node.set_annotation_pixmap(0,Bitmaps.openmap)):this.open_attributes(t,null)},this.open_attributes=function(t,e){0!=this.node.node_open?this.close(t):(t.ctx.gdh.getAllClassAttributes(this.cid,this.objid,t.open_attributes_cb,new XttOpenChildrenData(this.node,e)),this.node.node_open|=Plow.OPEN_ATTRIBUTES,t.ctx.configure(),t.ctx.draw())},this.open_crossreferences=function(t,e){if(0!=this.node.node_open)this.close(t);else{for(var i=0;i<e.length;i++)new XttItemCrr(t,e[i],this.node,Plow.DEST_INTOLAST);this.node.node_open|=Plow.OPEN_CROSSREFERENCES,t.ctx.configure(),t.ctx.draw()}},this.close=function(t){if(this.node.node_open&Plow.OPEN_CHILDREN)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_CHILDREN,this.node.set_annotation_pixmap(0,Bitmaps.map),t.ctx.configure(),t.ctx.draw();else if(this.node.node_open&Plow.OPEN_ATTRIBUTES)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_ATTRIBUTES,t.ctx.configure(),t.ctx.draw();else if(this.node.node_open&Plow.OPEN_CROSSREFERENCES)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_CROSSREFERENCES,t.ctx.configure(),t.ctx.draw();else{var e=t.ctx.get_parent_object(this.node);null!=e&&(e.userdata.close(t),e.set_select(!0),e.set_invert(!0))}}}function XttItemAttr(t,e,i,n){this.name=e.name,this.objid=e.objid,this.full_name=e.full_name,this.type=e.type,this.flags=e.flags,this.size=e.size,this.refid,this.firstScan=!0,this.old_value,this.node=new PlowNode(t.ctx,t.ncObject,0),this.node.set_userdata(this),this.node.set_annotation(0,this.name),this.node.set_annotation_pixmap(0,Bitmaps.attr),t.ctx.insertNode(this.node,i,n),this.refid=t.ctx.gdh.refObjectInfo(this.full_name,e.type,1),this.open_children=function(t,e){t.openValueInputDialog(this,"Enter value")},this.set_value=function(t,e){switch(this.type){case Pwr.eType_Float32:var i=parseFloat(e.trim());t.ctx.gdh.setObjectInfoFloat(this.full_name,i);break;case Pwr.eType_Int8:case Pwr.eType_Int16:case Pwr.eType_Int32:case Pwr.eType_UInt8:case Pwr.eType_UInt16:case Pwr.eType_UInt32:case Pwr.eType_Status:case Pwr.eType_Mask:case Pwr.eType_Enum:case Pwr.eType_Boolean:i=parseInt(e.trim(),10);t.ctx.gdh.setObjectInfoInt(this.full_name,i);break;case Pwr.eType_String:case Pwr.eType_Time:case Pwr.eType_DeltaTime:case Pwr.eType_AttrRef:case Pwr.eType_Objid:t.ctx.gdh.setObjectInfoString(this.full_name,e)}},this.open_attributes=function(t,e){},this.close=function(t){var e=t.ctx.get_parent_object(this.node);null!=e&&(e.userdata.close(t),e.set_select(!0),e.set_invert(!0))},this.scan=function(t){if(this.refid){var e=t.ctx.gdh.getObjectRefInfo(this.refid);if(this.firstScan||e!=this.old_value){var i;switch(this.type){case Pwr.eType_Float32:i=""+e;break;case Pwr.eType_Boolean:i=e?"1":"0";break;case Pwr.eType_Int32:case Pwr.eType_Int16:case Pwr.eType_Int8:case Pwr.eType_UInt32:case Pwr.eType_UInt16:case Pwr.eType_UInt8:i=""+e;break;case Pwr.eType_String:case Pwr.eType_AttrRef:case Pwr.eType_Objid:i=e;break;default:i=""+e}this.old_value=e,this.node.set_annotation(1,i),t.scan_update=!0}this.firstScan=!1}},this.scan_close=function(t){t.ctx.gdh.unrefObjectInfo(this.refid)}}function XttItemAttrArray(t,e,i,n){this.name=e.name,this.objid=e.objid,this.full_name=e.full_name,this.type=e.type,this.flags=e.flags,this.size=e.size,this.elements=e.elements,this.node=new PlowNode(t.ctx,t.ncObject,0),this.node.set_userdata(this),this.node.set_annotation(0,this.name),this.node.set_annotation_pixmap(0,Bitmaps.attrarra),t.ctx.insertNode(this.node,i,n),this.open_children=function(t,e){this.open_attributes(t,e)},this.open_attributes=function(t,e){var i=new AttributeInfo;i.objid=this.objid,i.type=this.type,i.flags=this.flags&~Pwr.mAdef_array,i.size=this.size/this.elements,i.elements=1,i.name="",i.full_name="",i.classname="",t.ctx.set_nodraw();for(var n=0;n<this.elements;n++)i.name=this.name+"["+n+"]",i.full_name=this.full_name+"["+n+"]",0!=(i.flags&Pwr.mAdef_array)?new XttItemAttrArray(t,i,this.node,Plow.DEST_INTOLAST):0!=(i.flags&Pwr.mAdef_class)?new XttItemAttrObject(t,i,this.node,Plow.DEST_INTOLAST):new XttItemAttr(t,i,this.node,Plow.DEST_INTOLAST);this.node.node_open|=Plow.OPEN_ATTRIBUTES,t.ctx.configure(),t.ctx.reset_nodraw(),t.ctx.draw()},this.close=function(t){if(this.node.node_open&Plow.OPEN_ATTRIBUTES)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_ATTRIBUTES,t.ctx.configure(),t.ctx.draw();else{var e=t.ctx.get_parent_object(this.node);null!=e&&(e.userdata.close(t),e.set_select(!0),e.set_invert(!0))}}}function XttItemAttrObject(t,e,i,n){this.name=e.name,this.classname=e.classname,this.objid=e.objid,this.full_name=e.full_name,this.cid=e.type,this.flags=e.flags,this.size=e.size,this.node=new PlowNode(t.ctx,t.ncObject,0),this.node.set_userdata(this),this.node.set_annotation(0,this.name),this.node.set_annotation(1,this.classname),this.node.set_annotation_pixmap(0,Bitmaps.object),t.ctx.insertNode(this.node,i,n),this.open_children=function(t,e){this.open_attributes(t,null)},this.open_attributes=function(t,e){0!=this.node.node_open?this.close(t):(t.ctx.gdh.getAllClassAttributes(this.cid,this.objid,t.open_attributes_cb,new XttOpenChildrenData(this.node,e)),this.node.node_open|=Plow.OPEN_ATTRIBUTES)},this.close=function(t){if(this.node.node_open&Plow.OPEN_ATTRIBUTES)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_ATTRIBUTES,t.ctx.configure(),t.ctx.draw();else if(this.node.node_open&Plow.OPEN_CROSSREFERENCES)t.ctx.close_node(this.node),this.node.node_open&=~Plow.OPEN_CROSSREFERENCES,t.ctx.configure(),t.ctx.draw();else{var e=t.ctx.get_parent_object(this.node);null!=e&&(e.userdata.close(t),e.set_select(!0),e.set_invert(!0))}}}function XttItemCrr(t,e,i,n){switch(this.name=e.name,this.classname=e.classname,this.objid=e.objid,this.type=e.type,this.node=new PlowNode(t.ctx,t.ncObject,0),this.node.set_userdata(this),this.node.set_annotation(0,this.name),this.node.set_annotation(1,this.classname),this.type){case 0:this.node.set_annotation_pixmap(0,Bitmaps.crrread);break;case 1:case 2:this.node.set_annotation_pixmap(0,Bitmaps.crrwrite)}t.ctx.insertNode(this.node,i,n),this.close=function(t){var e=t.ctx.get_parent_object(this.node);null!=e&&(e.userdata.close(t),e.set_select(!0),e.set_invert(!0))}}var xtt=new Xtt;xtt.init();
\ No newline at end of file
...@@ -517,6 +517,8 @@ bool wb_print_wbl::printValue(wb_volume& v, pwr_eType type, unsigned int flags, ...@@ -517,6 +517,8 @@ bool wb_print_wbl::printValue(wb_volume& v, pwr_eType type, unsigned int flags,
strcpy(sval, "ATTIME_MIN"); strcpy(sval, "ATTIME_MIN");
else if (memcmp(val, &pwr_cAtMax, sizeof(pwr_tTime)) == 0) else if (memcmp(val, &pwr_cAtMax, sizeof(pwr_tTime)) == 0)
strcpy(sval, "ATTIME_MAX"); strcpy(sval, "ATTIME_MAX");
else if (memcmp(val, &pwr_cNotATime, sizeof(pwr_tTime)) == 0)
strcpy(sval, "NotATime");
else { else {
sts = time_AtoAscii( sts = time_AtoAscii(
(pwr_tTime*)val, time_eFormat_DateAndTime, timbuf, sizeof(timbuf)); (pwr_tTime*)val, time_eFormat_DateAndTime, timbuf, sizeof(timbuf));
...@@ -535,6 +537,8 @@ bool wb_print_wbl::printValue(wb_volume& v, pwr_eType type, unsigned int flags, ...@@ -535,6 +537,8 @@ bool wb_print_wbl::printValue(wb_volume& v, pwr_eType type, unsigned int flags,
strcpy(sval, "DTTIME_MIN"); strcpy(sval, "DTTIME_MIN");
else if (memcmp(val, &pwr_cDtMax, sizeof(pwr_tDeltaTime)) == 0) else if (memcmp(val, &pwr_cDtMax, sizeof(pwr_tDeltaTime)) == 0)
strcpy(sval, "DTTIME_MAX"); strcpy(sval, "DTTIME_MAX");
else if (memcmp(val, &pwr_cNotADeltaTime, sizeof(pwr_tDeltaTime)) == 0)
strcpy(sval, "NotADeltaTime");
else { else {
sts = time_DtoAscii((pwr_tDeltaTime*)val, 1, timbuf, sizeof(timbuf)); sts = time_DtoAscii((pwr_tDeltaTime*)val, 1, timbuf, sizeof(timbuf));
if (ODD(sts)) { if (ODD(sts)) {
......
...@@ -2206,6 +2206,8 @@ int wb_wblnode::attrStringToValue(int type_id, char* value_str, ...@@ -2206,6 +2206,8 @@ int wb_wblnode::attrStringToValue(int type_id, char* value_str,
memcpy(buffer_ptr, &pwr_cAtMin, sizeof(pwr_tTime)); memcpy(buffer_ptr, &pwr_cAtMin, sizeof(pwr_tTime));
else if (streq(value_str, "ATTIME_MAX")) else if (streq(value_str, "ATTIME_MAX"))
memcpy(buffer_ptr, &pwr_cAtMax, sizeof(pwr_tTime)); memcpy(buffer_ptr, &pwr_cAtMax, sizeof(pwr_tTime));
else if (streq(value_str, "NotATime"))
memcpy(buffer_ptr, &pwr_cNotATime, sizeof(pwr_tTime));
else { else {
sts = time_AsciiToA(value_str, &time); sts = time_AsciiToA(value_str, &time);
if (EVEN(sts)) if (EVEN(sts))
...@@ -2221,6 +2223,8 @@ int wb_wblnode::attrStringToValue(int type_id, char* value_str, ...@@ -2221,6 +2223,8 @@ int wb_wblnode::attrStringToValue(int type_id, char* value_str,
memcpy(buffer_ptr, &pwr_cDtMin, sizeof(pwr_tDeltaTime)); memcpy(buffer_ptr, &pwr_cDtMin, sizeof(pwr_tDeltaTime));
else if (streq(value_str, "DTTIME_MAX")) else if (streq(value_str, "DTTIME_MAX"))
memcpy(buffer_ptr, &pwr_cDtMax, sizeof(pwr_tDeltaTime)); memcpy(buffer_ptr, &pwr_cDtMax, sizeof(pwr_tDeltaTime));
else if (streq(value_str, "NotADeltaTime"))
memcpy(buffer_ptr, &pwr_cNotADeltaTime, sizeof(pwr_tDeltaTime));
else { else {
sts = time_AsciiToD(value_str, &deltatime); sts = time_AsciiToD(value_str, &deltatime);
if (EVEN(sts)) if (EVEN(sts))
......
...@@ -596,7 +596,7 @@ XttQt::XttQt(int argc, char* argv[], int* return_sts) ...@@ -596,7 +596,7 @@ XttQt::XttQt(int argc, char* argv[], int* return_sts)
// Qt // Qt
toplevel = new XttQtWidget(this); toplevel = new XttQtWidget(this);
toplevel->setMinimumSize(window_width, window_height); toplevel->resize(window_width, window_height);
toplevel->setWindowTitle(fl(title)); toplevel->setWindowTitle(fl(title));
toplevel->setAttribute(Qt::WA_DeleteOnClose); toplevel->setAttribute(Qt::WA_DeleteOnClose);
......
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
#include <QPrinter> #include <QPrinter>
#include <QPushButton> #include <QPushButton>
#include <QScrollArea> #include <QScrollArea>
#include <QTime>
#include <QTimer> #include <QTimer>
#include <QVBoxLayout> #include <QVBoxLayout>
...@@ -265,6 +266,8 @@ CoWowListWidgetQt::CoWowListWidgetQt(QWidget* parent, const char* title, ...@@ -265,6 +266,8 @@ CoWowListWidgetQt::CoWowListWidgetQt(QWidget* parent, const char* title,
list->resizeColumnToContents(0); list->resizeColumnToContents(0);
show(); show();
pop(this);
list->setFocus(); list->setFocus();
} }
...@@ -388,6 +391,10 @@ CoWowWarrantQt::CoWowWarrantQt(CoWowQtObject* parent) ...@@ -388,6 +391,10 @@ CoWowWarrantQt::CoWowWarrantQt(CoWowQtObject* parent)
void CoWowQtObject::DisplayWarranty() void CoWowQtObject::DisplayWarranty()
{ {
// Display only once
if (wow->HideWarranty()) {
return;
}
new CoWowWarrantQt(this); new CoWowWarrantQt(this);
} }
...@@ -607,6 +614,7 @@ void CoWowEntryQt::keyPressEvent(QKeyEvent* event) ...@@ -607,6 +614,7 @@ void CoWowEntryQt::keyPressEvent(QKeyEvent* event)
} }
case Qt::Key_Escape: case Qt::Key_Escape:
if (m_hide_on_esc) { if (m_hide_on_esc) {
emit editingFinished();
clearFocus(); clearFocus();
hide(); hide();
} }
...@@ -622,6 +630,10 @@ void CoWowEntryQt::keyPressEvent(QKeyEvent* event) ...@@ -622,6 +630,10 @@ void CoWowEntryQt::keyPressEvent(QKeyEvent* event)
} }
} }
void CoWowEntryQt::focusOutEvent(QFocusEvent *event) {
event->ignore();
}
// //
// Modal Dialog with text and tree buttons // Modal Dialog with text and tree buttons
// //
...@@ -887,13 +899,12 @@ pwr_tStatus CoWowQt::DeleteMenuItem(const char* name, void* menu) ...@@ -887,13 +899,12 @@ pwr_tStatus CoWowQt::DeleteMenuItem(const char* name, void* menu)
return 1; return 1;
} }
void CoWowQtObject::wait_cb()
{
}
void CoWowQt::Wait(float time) void CoWowQt::Wait(float time)
{ {
initOneShotTimer(m_wait_timerid, SLOT(wait_cb()), int(time * 1000)); QTime start = QTime::currentTime().addMSecs(int(time * 1000));
while (QTime::currentTime() < start) {
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
} }
void CoWowQt::update_title(QWidget* w, int editmode) void CoWowQt::update_title(QWidget* w, int editmode)
...@@ -912,7 +923,7 @@ void CoWowQt::update_title(QWidget* w, int editmode) ...@@ -912,7 +923,7 @@ void CoWowQt::update_title(QWidget* w, int editmode)
CoWowQt::CoWowQt(QWidget* parent) CoWowQt::CoWowQt(QWidget* parent)
{ {
object = new CoWowQtObject(parent); object = new CoWowQtObject(parent, this);
m_wait_timerid = new QTimer(object); m_wait_timerid = new QTimer(object);
} }
......
...@@ -65,6 +65,7 @@ public: ...@@ -65,6 +65,7 @@ public:
protected: protected:
void keyPressEvent(QKeyEvent* event); void keyPressEvent(QKeyEvent* event);
void focusOutEvent(QFocusEvent *);
}; };
class CoWowModalDialogQt : public QDialog { class CoWowModalDialogQt : public QDialog {
...@@ -233,14 +234,13 @@ class CoWowQtObject : public QObject { ...@@ -233,14 +234,13 @@ class CoWowQtObject : public QObject {
Q_OBJECT Q_OBJECT
public: public:
CoWowQtObject(QWidget* parent) : QObject(), parent_wid(parent) {} CoWowQtObject(QWidget* parent, CoWowQt* w) : QObject(), parent_wid(parent), wow(w) {}
QWidget* parent_wid; QWidget* parent_wid;
CoWowQt* wow;
public slots: public slots:
void DisplayWarranty(); void DisplayWarranty();
void DisplayLicense(); void DisplayLicense();
void wait_cb();
}; };
#endif #endif
...@@ -234,69 +234,6 @@ void XttGeQtWidget::closeEvent(QCloseEvent* event) ...@@ -234,69 +234,6 @@ void XttGeQtWidget::closeEvent(QCloseEvent* event)
event->ignore(); event->ignore();
} }
void XttGeQtWidget::resizeEvent(QResizeEvent* event)
{
int oldWidth = event->oldSize().width();
int oldHeight = event->oldSize().height();
int width = event->size().width();
int height = event->size().height();
event->accept();
if (width != oldWidth && height != oldHeight) {
if (ge->min_aspect * height > width) {
int delta = height - width / ge->min_aspect;
if (height - delta >= 0) {
height -= delta;
} else {
delta = height * ge->min_aspect - width;
if (width + delta <= INT_MAX) {
width += delta;
}
}
}
if (ge->max_aspect * height < width) {
int delta = width - height * ge->max_aspect;
if (width - delta >= 0) {
width -= delta;
} else {
delta = width / ge->max_aspect - height;
if (height + delta <= INT_MAX) {
height += delta;
}
}
}
} else if (width != oldWidth) {
if (ge->min_aspect * height > width) {
int delta = height - width / ge->min_aspect;
if (height - delta >= 0) {
height -= delta;
}
}
if (ge->max_aspect * height < width) {
int delta = width / ge->max_aspect - height;
if (height + delta <= INT_MAX) {
height += delta;
}
}
} else if (height != oldHeight) {
if (ge->min_aspect * height > width) {
int delta = height * ge->min_aspect - width;
if (width + delta <= INT_MAX) {
width += delta;
}
}
if (ge->max_aspect * height < width) {
int delta = width - height * ge->max_aspect;
if (width - delta >= 0) {
width -= delta;
}
}
}
resize(width, height);
}
XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name, XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name,
const char* xg_filename, int xg_scrollbar, int xg_menu, int xg_navigator, const char* xg_filename, int xg_scrollbar, int xg_menu, int xg_navigator,
int xg_width, int xg_height, int x, int y, double scan_time, int xg_width, int xg_height, int x, int y, double scan_time,
...@@ -367,7 +304,7 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name, ...@@ -367,7 +304,7 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name,
graph->sound_cb = &ge_sound_cb; graph->sound_cb = &ge_sound_cb;
graph->eventlog_cb = &ge_eventlog_cb; graph->eventlog_cb = &ge_eventlog_cb;
grow_widget->setMinimumSize(window_width, window_height); grow_widget->resize(window_width, window_height);
QObject::connect(((GraphQt*)graph)->grow_widget, QObject::connect(((GraphQt*)graph)->grow_widget,
SIGNAL(resize_signal(QResizeEvent*)), toplevel, SIGNAL(resize_signal(QResizeEvent*)), toplevel,
...@@ -454,10 +391,6 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name, ...@@ -454,10 +391,6 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name,
window_height = zoom * (y1 - y0); window_height = zoom * (y1 - y0);
} }
float rd = (window_width < 300 || window_height < 300) ? 0.2 : 0.05;
min_aspect = double(window_width) / window_height * (1.0 - rd);
max_aspect = double(window_width) / window_height * (1.0 + rd);
toplevel->resize(window_width, window_height); toplevel->resize(window_width, window_height);
} }
......
...@@ -102,7 +102,6 @@ public: ...@@ -102,7 +102,6 @@ public:
protected: protected:
void focusInEvent(QFocusEvent* event); void focusInEvent(QFocusEvent* event);
void closeEvent(QCloseEvent* event); void closeEvent(QCloseEvent* event);
void resizeEvent(QResizeEvent* event);
public slots: public slots:
void activate_confirm_ok(); void activate_confirm_ok();
......
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
#include "xtt_trace_qt.h" #include "xtt_trace_qt.h"
#include <QAction> #include <QAction>
#include <QCloseEvent>
#include <QMenu> #include <QMenu>
#include <QMenuBar> #include <QMenuBar>
#include <QSplitter> #include <QSplitter>
...@@ -173,14 +174,12 @@ void RtTraceQtWidget::activate_helpplclist() ...@@ -173,14 +174,12 @@ void RtTraceQtWidget::activate_helpplclist()
RtTraceQt::~RtTraceQt() RtTraceQt::~RtTraceQt()
{ {
trace_tNode *node, *fnode;
trace_stop(); trace_stop();
/* Delete all trace children windows */ /* Delete all trace children windows */
for (node = trace_list; node;) { for (trace_tNode *node = trace_list; node;) {
delete node->tractx; delete node->tractx;
fnode = node->Next; trace_tNode *fnode = node->Next;
free((char*)node); free((char*)node);
node = fnode; node = fnode;
} }
...@@ -188,6 +187,10 @@ RtTraceQt::~RtTraceQt() ...@@ -188,6 +187,10 @@ RtTraceQt::~RtTraceQt()
nav_shell->close(); nav_shell->close();
} }
if (toplevel) {
delete toplevel;
}
if (trace_timerid) { if (trace_timerid) {
delete trace_timerid; delete trace_timerid;
} }
...@@ -211,7 +214,7 @@ RtTrace* RtTraceQt::subwindow_new(void* ctx, pwr_tObjid oid, pwr_tStatus* sts) ...@@ -211,7 +214,7 @@ RtTrace* RtTraceQt::subwindow_new(void* ctx, pwr_tObjid oid, pwr_tStatus* sts)
void RtTraceQtWidget::closeEvent(QCloseEvent* event) void RtTraceQtWidget::closeEvent(QCloseEvent* event)
{ {
rt->activate_close(); rt->activate_close();
QWidget::closeEvent(event); event->ignore();
} }
RtTraceQt::RtTraceQt(void* tr_parent_ctx, pwr_tObjid tr_objid, RtTraceQt::RtTraceQt(void* tr_parent_ctx, pwr_tObjid tr_objid,
...@@ -468,4 +471,4 @@ RtTraceQt::RtTraceQt(void* tr_parent_ctx, pwr_tObjid tr_objid, ...@@ -468,4 +471,4 @@ RtTraceQt::RtTraceQt(void* tr_parent_ctx, pwr_tObjid tr_objid,
} }
wow->DisplayError("Version mismatch", msg); wow->DisplayError("Version mismatch", msg);
} }
} }
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment