Exemple #1
0
		//问询指令
		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);
				}
			}
		}
Exemple #2
0
		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);
		}
Exemple #3
0
		//问询指令
		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);
			}
		}