Esempio n. 1
0
        internal void Init(bool enableDebug)
        {
            isDebug       = enableDebug;
            contextSwitch = new ContextSwitchService(jsContext, syncHandle);
            ServiceNode.PushService <IContextSwitchService>(contextSwitch);
            ServiceNode.PushService <IGCSyncService>(new GCSyncService());
            Enter();
            promiseContinuationCallback = delegate(JavaScriptValue task, IntPtr callbackState)
            {
                promiseTaskQueue.Add(task);
            };

            if (Native.JsSetPromiseContinuationCallback(promiseContinuationCallback, IntPtr.Zero) != JavaScriptErrorCode.NoError)
            {
                throw new InvalidOperationException("failed to setup callback for ES6 Promise");
            }
            StartPromiseTaskLoop(shutdownCTS.Token);



            JSGlobalObject = JavaScriptValue.GlobalObject;
            GlobalObject   = new JSValue(ServiceNode, JSGlobalObject);
            Leave();


            contextService = new ContextService(shutdownCTS);
            ServiceNode.PushService <IContextService>(contextService);
            timerService = GlobalObject.InitTimer();
        }
Esempio n. 2
0
        //Arun Geo Thomas
        private void btnStartOperation_Click(object sender, EventArgs e)
        {
            if (File.Exists(logFileName))
            {
                File.Delete(logFileName);
            }

            try
            {
                serialPortManager = new SerialPortManager(cbCOMPortsSelector.SelectedItem.ToString());


                if (serialPortManager.Connect())
                {
                    lblSerialportMessages.Text = "Connected";
                    readSerialPortData         = true;
                    serialPortReadThread       = new Thread(new ThreadStart(BackendThreadExecute));
                    serialPortReadThread.Start();
                    cbCOMPortsSelector.Enabled = false;
                    btnStartOperation.Enabled  = false;
                    JSTimer.Start();
                }
                else
                {
                    lblSerialportMessages.Text = "Already Connected";
                }
            }
            catch (Exception ex)
            {
                lblSerialportMessages.Text = "Error Cant Connect: " + ex.Message;
            }
        }
        public static JSTimer InitTimer(this JSValue globalObject)
        {
            JSTimer result = new JSTimer(globalObject.ServiceNode);

            globalObject.WriteProperty <JSTimer>("timer", result);
            return(result);
        }
Esempio n. 4
0
        //Arun Geo Thomas
        private void btnStopOpertion_Click(object sender, EventArgs e)
        {
            if (serialPortManager != null)
            {
                Object thisLock = new Object();
                lock (thisLock)
                {
                    readSerialPortData = false;
                }

                if (serialPortManager.CloseConnection())
                {
                    JSTimer.Stop();


                    lblSerialportMessages.Text = "Disconnected";
                    cbCOMPortsSelector.Enabled = true;
                    btnStartOperation.Enabled  = true;
                    serialPortManager          = null;
                }
                else
                {
                    lblSerialportMessages.Text = "Already Disconnected";
                }
            }
            else
            {
                lblSerialportMessages.Text = "No valid connection";
            }
            ClearUI();
        }
    public override void OnInspectorGUI()
    {
        _mJsTimer = target as JSTimer;
        if (_mJsTimer == null)
        {
            return;
        }

        var coolDownTaskList = _mJsTimer.CdTasks;

        GUILayout.Label("----------倒计时---------");
        _coolDownToggle = EditorGUILayout.Foldout(_coolDownToggle, string.Format("CoolDown:{0}", coolDownTaskList.Count));
        GUILayout.Label("-------------------------");
        if (_coolDownToggle)
        {
            for (int i = 0; i < coolDownTaskList.Count; i++)
            {
                DrawCoolDownTask(coolDownTaskList[i]);
            }
        }

        var timerTaskList = _mJsTimer.TimeTasks;

        GUILayout.Label("----------计时器---------");
        _timerToggle = EditorGUILayout.Foldout(_timerToggle, string.Format("CoolDown:{0}", coolDownTaskList.Count));
        GUILayout.Label("-------------------------");
        if (_timerToggle)
        {
            for (int i = 0; i < timerTaskList.Count; i++)
            {
                DrawTimerTask(timerTaskList[i]);
            }
        }

        this.Repaint();
    }