Example #1
0
		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;
		}
Example #2
0
        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);
        }
Example #3
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);
		}
Example #4
0
		/// <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);


		}
Example #5
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);
				}
			}
		}
Example #6
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);
			}
		}
Example #7
0
		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="";
		}