Beispiel #1
0
        private string BytesToString(byte[] bytes)
        {
            string s = string.Format("[{0}] {1}",
                                     bytes.Length.ToString("00"),
                                     CT.BytesToString(bytes));

            return(s);
        }
Beispiel #2
0
        //private string getlogstring( int commport, task task )
        private string GetLogString(string remoteIP, Task task)
        {
            CommCmdBase     cmd             = task.CommCmd;
            CommResultState commResultState = task.LastCommResultState;
            string          sLastReceive    = string.Empty;

            if (task.LastReceived != null)
            {
                sLastReceive = CT.BytesToString(task.LastReceived);
            }

            string s = string.Format("Send\t\t: {0}, {1}\r\nReceived\t: {2}, {3}\r\nCommResult\t: {4}\r\nCmdType\t\t: {5}\r\nRemoteIP\t: {6}\r\n",
                                     task.LastSendDateTime, CT.BytesToString(task.LastSendDatas),
                                     //task.LastReceivedDateTime, CT.BytesToString( task.LastReceived),
                                     task.LastReceivedDateTime, sLastReceive,
                                     commResultState.ToString(), cmd.GetType().Name, remoteIP);

            return(s);
        }
Beispiel #3
0
        //private string GetArdLogString( int commPort, byte[] bs )
        private string GetArdLogString(string remoteIP, byte[] bs)
        {
            string sData;

            if (bs == null || bs.Length <= 0)
            {
                sData = string.Empty;
            }
            else
            {
                sData = CT.BytesToString(bs);
            }

            //string s = string.Format("ArdTime\t: {0}\r\nArdData\t: {1}\r\nCommPort: {2}\r\n",
            string s = string.Format("ArdTime\t: {0}\r\nArdData\t: {1}\r\nRemoteIP: {2}\r\n",
                                     DateTime.Now, sData, remoteIP);

            return(s);
        }
Beispiel #4
0
        //private void CollRealData()
        //{
        //    GRRealDataCommand realCmd = new GRRealDataCommand(_defGrStation);
        //    Task realTask = new Task(realCmd, new ImmediateTaskStrategy() );
        //    _grTaskSch.Tasks.Add( realTask );
        //}
        //private void SetTemp()
        //{
        //    GRSetOutSideTempCommand c = new GRSetOutSideTempCommand( _defGrStation, 21.9F );
        //    Task t = new Task( c, new ImmediateTaskStrategy() );
        //    _grTaskSch.Tasks.Add( t );
        //}
        //private void SetOutSideMode()
        //{
        //    GRSetOutSideTempModeCommand c = new GRSetOutSideTempModeCommand( _defGrStation, OutSideTempWorkMode.SetByComputer );
        //    Task t = new Task( c, new ImmediateTaskStrategy() );
        //    _grTaskSch.Tasks.Add( t );
        //}
        private void CommPortProxy_ReceiveAutoReport(object sender, EventArgs e)
        {
            //try
            //{
            CommPortProxy cpp = (CommPortProxy)sender;

            byte[] bs = cpp.AutoReportData;
            string s  = CT.BytesToString(bs) + Environment.NewLine + bs.Length;

            //MsgBox.Show (s );o
            AddLog(s);
            GRAlarmData ad;

            if (GRAlarmData.ProcessAutoReport(bs, out ad) == CommResultState.Correct)
            {
                frmPropertiesGrid f = new frmPropertiesGrid();
                f.ShowMe(ad, "");
            }
            //}
            //catch(Exception ex)
            //{
            //    MsgBox.Show( ex.ToString() );
            //}
        }
Beispiel #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Process(object sender, EventArgs e)
        {
            ArgumentChecker.CheckNotNull(sender);
            TaskScheduler sch  = (TaskScheduler)sender;
            Task          task = sch.ActiveTask;

            ArgumentChecker.CheckNotNull(task);

            CommCmdBase     cmd             = task.CommCmd;
            CommResultState commResultState = task.LastCommResultState;

            if (commResultState != CommResultState.Correct)
            {
                if (XGConfig.Default.LogCommFail)
                {
                    string s = string.Format("Send\t\t: {0}, {1}\r\nReceived\t: {2}, {3}\r\nCommResult\t: {4}\r\nCmdType\t\t: {5}\r\n",
                                             task.LastSendDateTime, CT.BytesToString(task.LastSendDatas),
                                             task.LastReceivedDateTime, CT.BytesToString(task.LastReceived),
                                             commResultState.ToString(), cmd.GetType().Name);
                    FileLog.CommFail.Add(s);
                }
                return;
            }

            if (cmd is ReadRecordCommand)
            {
                ReadRecordCommand readRecordCmd = cmd as ReadRecordCommand;
                ProcessReadRecordCmd(readRecordCmd);
            }

            if (cmd is ReadTotalCountCommand)
            {
                ReadTotalCountCommand readCountCmd = cmd as ReadTotalCountCommand;
                ProcessReadTotalCountCmd(readCountCmd, task);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 处理执行完毕的命令
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TaskScheduler_Executed(object sender, EventArgs e)
        {
            TaskScheduler sch = sender as TaskScheduler;

            if (sch == null)
            {
                Debug.Fail("TaskScheduler_Executed(), sender == null");
            }
            AddLog("TC: " + sch.Tasks.Count);
            Task   at = sch.ActiveTask;
            string s  = string.Format("send: {0}, {1}\r\nrece: {2}, {3}",
                                      at.LastSendDateTime, CT.BytesToString(at.LastSendDatas),
                                      at.LastReceivedDateTime, CT.BytesToString(at.LastReceived));

            AddLog(s);
            s = at.LastCommResultState.ToString();
            AddLog(s);
            CommCmdBase cmd = sch.ActiveTask.CommCmd;

            // read total count cmd
            //
            if (cmd is ReadTotalCountCommand)
            {
                ReadTotalCountCommand c = cmd as ReadTotalCountCommand;

                AddLog("LocalTotalCount: " + c.TotalCount);
                AddLog(c.Station.StationName + c.Station.Address);

                // need read all record and clear xg ctrler data
                //
                if (at.Tag != null)
                {//&&
                    // (string)at.Tag == TagType.OP_ReadAndClearXgData.ToString() )
                    //{
                    object[] tags    = (object[])at.Tag;
                    TagType  tagType = (TagType)tags[0];
                    XGTask   xgtask  = (XGTask)tags[1];

                    RemoveAllCommand clearCmd  = new RemoveAllCommand(c.Station as XGStation);
                    Task             clearTask = new Task(clearCmd, new ImmediateTaskStrategy());
                    Singles.S.TaskScheduler.Tasks.Add(clearTask);

                    for (int i = 0; i < c.TotalCount; i++)
                    {
                        ReadRecordCommand rdcmd = new ReadRecordCommand(c.Station as XGStation, i + 1);
                        Task t = new Task(rdcmd, new ImmediateTaskStrategy());
                        Singles.S.TaskScheduler.Tasks.Add(t);
                    }

                    // ???
                    //
                    //RemoveAllCommand rac = new RemoveAllCommand( c.Station as XGStation );
                    //Task trac = new Task( "rdall", rac, new ImmediateTaskStrategy() );
                    //trac.Tag = xgtask;
                    //trac.BeforeExecuteTask +=new EventHandler(trac_BeforeExecuteTask);
                    //Singles.S.TaskScheduler.Tasks.Add( trac );
                }
            }

            // read record cmd
            //
            if (cmd is ReadRecordCommand)
            {
                ReadRecordCommand rdcmd = cmd as ReadRecordCommand;
                AddLog("record index: " + rdcmd.RecordIndex);

                if (rdcmd.XGData != null)
                {
                    // 2007.03.11 Modify
                    //
                    //XGDB.InsertXGData( rdcmd.XGData );
                    XGDB.InsertXGData(cmd.Station.DestinationIP, rdcmd.XGData);
                }

                XGTask[] tasks = Singles.S.XGScheduler.Tasks.MatchXGData(rdcmd.XGData);
                foreach (XGTask task in tasks)
                {
                    task.IsComplete = true;
                }
            }
        }