public static ControlFrame convertToFrame(byte[] receivedBytes) { ControlFrame receivedControlFrame = new ControlFrame(); if(receivedBytes.Length == 7) { receivedControlFrame.sym = new byte[]{receivedBytes[0],receivedBytes[1]}; receivedControlFrame.desAddr = receivedBytes[2]; receivedControlFrame.srcAddr = receivedBytes[3]; receivedControlFrame.response = receivedBytes[4]; receivedControlFrame.seq = receivedBytes[5]; receivedControlFrame.checkSum = receivedBytes[6]; } return receivedControlFrame; }
public static ControlFrame convertToFrame(byte[] receivedBytes) { ControlFrame receivedControlFrame = new ControlFrame(); if (receivedBytes.Length == 7) { receivedControlFrame.sym = new byte[] { receivedBytes[0], receivedBytes[1] }; receivedControlFrame.desAddr = receivedBytes[2]; receivedControlFrame.srcAddr = receivedBytes[3]; receivedControlFrame.response = receivedBytes[4]; receivedControlFrame.seq = receivedBytes[5]; receivedControlFrame.checkSum = receivedBytes[6]; } return(receivedControlFrame); }
public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // responseFrame = new ControlFrame(); responseFrame.sym = new byte[]{(byte)'*',(byte)'*'}; responseFrame.desAddr = 1; responseFrame.srcAddr = 0; responseFrame.response = Form1.RECEIVE_SUCCESS_TOKEN; responseFrame.seq = Form1.FRAME_SEQUENCE_VALUE; responseFrame.computeCheckSum(); handleComClass = new HandleComClass(); handleComClass.Start(Form1.COM1_PORT_NUMBER,Form1.COM_BAUD_RATE,1); handleComClass.DataArrived += new _IHandleComEvents_DataArrivedEventHandler(handleComClass_DataArrived); handleComData = new HandleComData(this.InsertMorningCheckData); }
/// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器 /// 修改此方法的内容。 /// </summary> private void InitializeComponent() { this.timerTimeSynch = new System.Timers.Timer(); this.timer_ReceiveReply = new System.Timers.Timer(); ((System.ComponentModel.ISupportInitialize)(this.timerTimeSynch)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.timer_ReceiveReply)).BeginInit(); // // timerTimeSynch // timerTimeSynch.Interval = CPTT.SystemFramework.Util.TIMESYNCH_TIMER_INTERVAL;//设置时间同步timer this.timerTimeSynch.Elapsed += new System.Timers.ElapsedEventHandler(this.timerTimeSynch_Elapsed); // // timer_ReceiveReply // this.timer_ReceiveReply.Enabled = false; this.timer_ReceiveReply.Interval = 40000; this.timer_ReceiveReply.Elapsed += new System.Timers.ElapsedEventHandler(this.timer_ReceiveReply_Elapsed); // // AutoService // this.CanPauseAndContinue = true; this.CanShutdown = true; this.ServiceName = "CPTT4.0AutoService"; ((System.ComponentModel.ISupportInitialize)(this.timerTimeSynch)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.timer_ReceiveReply)).EndInit(); handleComClass = new HandleComClass(); handleComClass.Start(CPTT.SystemFramework.Util.COM1_PORT_NUMBER,CPTT.SystemFramework.Util.COM_BAUD_RATE,1); handleComClass.DataArrived += new _IHandleComEvents_DataArrivedEventHandler(handleComClass_DataArrived); machineSystem = new MachineSystem(); responseFrame = new ControlFrame(); responseFrame.sym = new byte[]{(byte)'*',(byte)'*'}; responseFrame.srcAddr = 0; responseFrame.response = CPTT.SystemFramework.Util.RECEIVE_SUCCESS_TOKEN; responseFrame.seq = CPTT.SystemFramework.Util.FRAME_SEQUENCE_VALUE; handleComData = new HandleComData(this.InsertMorningCheckData); }
//问询指令 private void SendQuery() { while(true) { if(!comPortIsBusy) { if (machineAddrList != null) { if ( machineAddrList.Tables[0].Rows.Count > 0 ) { foreach(DataRow machineAddr in machineAddrList.Tables[0].Rows) { ControlFrame controlFrame = new ControlFrame(); controlFrame.sym = new byte[]{(byte)'*',(byte)'*'}; controlFrame.desAddr = Convert.ToByte(machineAddr["machine_address"]); controlFrame.srcAddr = 0; controlFrame.response = CPTT.SystemFramework.Util.QUERY_TOKEN; controlFrame.seq = CPTT.SystemFramework.Util.FRAME_SEQUENCE_VALUE; controlFrame.computeCheckSum(); Monitor.Enter(handleComClass); handleComClass.WriteSerialCmd(CPTT.SystemFramework.Util.CONTROL_FRAME_LENGTH,controlFrame.convertToBytes());//发送问询帧 Monitor.Exit(handleComClass); // Thread.Sleep(3000); Thread.Sleep(CPTT.SystemFramework.Util.QUERY_TIMER_INTERVAL); } if (_lastSyncDate.AddMinutes(10) <= DateTime.Now) { foreach(DataRow machineAddr in machineAddrList.Tables[0].Rows) { SynchDate(machineAddr["machine_address"]); } _lastSyncDate = DateTime.Now; } } else Thread.Sleep(CPTT.SystemFramework.Util.QUERY_NULL_INTERVAL); } else Thread.Sleep(1000); // if ( _alAuthenticatedHardWare.Count > 0 ) // { // foreach(object o in _alAuthenticatedHardWare) // { // ControlFrame controlFrame = new ControlFrame(); // controlFrame.sym = new byte[]{(byte)'*',(byte)'*'}; // controlFrame.desAddr = Convert.ToByte(o.ToString()); // controlFrame.srcAddr = 0; // controlFrame.response = CPTT.SystemFramework.Util.QUERY_TOKEN; // controlFrame.seq = CPTT.SystemFramework.Util.FRAME_SEQUENCE_VALUE; // controlFrame.computeCheckSum(); // // Monitor.Enter(handleComClass); // handleComClass.WriteSerialCmd(CPTT.SystemFramework.Util.CONTROL_FRAME_LENGTH,controlFrame.convertToBytes());//发送问询帧 // Monitor.Exit(handleComClass); // // Thread.Sleep(CPTT.SystemFramework.Util.QUERY_TIMER_INTERVAL); // } // } // else Thread.Sleep(CPTT.SystemFramework.Util.QUERY_NULL_INTERVAL); } } }
//问询指令 private void SendQuery() { simpleButton_FastDataReceive.Enabled = false; Thread.Sleep(CPTT.SystemFramework.Util.QUERY_TIMER_INTERVAL); while(true) { ControlFrame controlFrame = new ControlFrame(); controlFrame.sym = new byte[]{(byte)'*',(byte)'*'}; controlFrame.desAddr = Convert.ToByte(gridView5.GetDataRow(gridView5.GetSelectedRows()[0])["machine_address"]); controlFrame.srcAddr = 0; controlFrame.response = CPTT.SystemFramework.Util.QUERY_TOKEN; controlFrame.seq = CPTT.SystemFramework.Util.FRAME_SEQUENCE_VALUE; controlFrame.computeCheckSum(); //Monitor.Enter(Login.handleComClass); Monitor.Enter(Login.syncRoot); try { Login.handleComClass.WriteSerialCmd(CPTT.SystemFramework.Util.CONTROL_FRAME_LENGTH,controlFrame.convertToBytes());//发送问询帧 } finally { Monitor.Exit(Login.syncRoot); } Thread.Sleep(CPTT.SystemFramework.Util.QUERY_TIMER_INTERVAL); } }
public Login() { utilSystem = new UtilSystem(); #if MaxClients int maxClients = utilSystem.GetMaxClients(); if ( maxClients != -1 ) CPTT.SystemFramework.Util.MaxClients = maxClients; else { MessageBox.Show("初始化服务器会话状态时发生严重错误,请与供应商联系!"); return; } #endif _alUnAuthenticatedHardWare = HardWareAuthentication.GetUnAuthorizedHardWare(); _alAuthenticatedHardWare = HardWareAuthentication.GetAuthorizedHardWare(); _registerDays = HardWareAuthentication.GetDaysValid; //显示Splash // Splash splash = new Splash(); // splash.StartPosition = FormStartPosition.CenterScreen; // splash.Show(); //初始化LoginForm InitializeComponent(); userSystem = new UserSystem(); ArrayList settings = ConfigurationManager.GetConfiguration("CustomizeSettings") as ArrayList; isAutoShutDown = Convert.ToBoolean((settings[2] as XmlNode[])[1].InnerText); // shutDownTime = Convert.ToDateTime((settings[3] as XmlNode[])[1].InnerText); if(isAutoShutDown) { timer_AutoShutDown.Enabled = true; } // appUpdater_ForCTPP.UpdateUrl = CPTT.SystemFramework.Util.AUTO_UPDATE_ADDRESS; prepareForCheckThread = new Thread(new ThreadStart(PrepareForCheck)); prepareForCheckThread.IsBackground = true; prepareForCheckThread.Priority = ThreadPriority.Normal; prepareForCheckThread.Start(); //splash.Close(); //初始化查询线程 if(!COM_PORT_IS_BUSY) { handleComClass = new HandleCom(); handleComClass.Start(CPTT.SystemFramework.Util.COM1_PORT_NUMBER,CPTT.SystemFramework.Util.COM_BAUD_RATE,1); handleComClass.DataArrived += new _IHandleComEvents_DataArrivedEventHandler(handleComClass_DataArrived); machineSystem = new MachineSystem(); queryThread = new Thread(new ThreadStart(SendQuery)); queryThread.IsBackground = true; queryThread.Priority = ThreadPriority.Normal; queryThread.Start(); // queryThread = new Thread(new ThreadStart(SendHardWareAuthenticationToken)); // queryThread.IsBackground = true; // queryThread.Priority = ThreadPriority.Normal; // queryThread.Start(); controlFrame = new ControlFrame(); responseFrame = new ControlFrame(); responseFrame.sym = new byte[]{(byte)'*',(byte)'*'}; // responseFrame.desAddr = 1; responseFrame.srcAddr = 0; responseFrame.response = CPTT.SystemFramework.Util.RECEIVE_SUCCESS_TOKEN; responseFrame.seq = CPTT.SystemFramework.Util.FRAME_SEQUENCE_VALUE; handleComData = new HandleComData(this.InsertMorningCheckData); } this.StartPosition = FormStartPosition.CenterScreen; // this.Opacity = 0.0; // Activate(); // Refresh(); // fadeTimer.Start(); // Refresh(); textEdit_UserLoginID.Text=""; textEdit_UserLoginPwd.Text=""; }