大家帮忙解决个PDA程序开发上的一个有关问题
大家帮忙解决个PDA程序开发上的一个问题
在PDA上写了个条码扫描功能,PDA系统是WinCE出了点问题大家帮忙看看:
在PDA上写了个条码扫描功能,PDA系统是WinCE出了点问题大家帮忙看看:
- C# code
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; using System.Text; using MEC.Nurse.Provider; namespace RFIDDemo { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button btnStart; private System.Windows.Forms.Button btnStop; private System.Windows.Forms.TextBox txtData; private System.Windows.Forms.Button btnClearText; private System.Windows.Forms.Button btnStartRead; private System.Windows.Forms.Button btnReadStop; private System.Windows.Forms.Label lblInfo; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // // 绑定函数到OnDataAttrived事件上 // 在读取到RFID数据后会回调绑定到该事件上的函数 RFID.GetInstance().OnDataArrived += new RFIDEventHandler(OnDataArrived); // 获取rfid服务的状态 if (RFID.GetInstance().GetServerState()) { StartEnable(); lblInfo.Text = "RFID服务已启动!"; } else { if(RFID.GetInstance().Start()) { StartEnable(); lblInfo.Text = "RFID服务启动成功!"; MessageBox.Show("aaaa"); } else { StopEnable(); lblInfo.Text = "RFID服务启动失败!"; } } } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.btnStart = new System.Windows.Forms.Button(); this.btnStop = new System.Windows.Forms.Button(); this.txtData = new System.Windows.Forms.TextBox(); this.btnClearText = new System.Windows.Forms.Button(); this.lblInfo = new System.Windows.Forms.Label(); this.btnReadStop = new System.Windows.Forms.Button(); this.btnStartRead = new System.Windows.Forms.Button(); // // btnStart // this.btnStart.Location = new System.Drawing.Point(16, 8); this.btnStart.Size = new System.Drawing.Size(88, 24); this.btnStart.Text = "启动"; this.btnStart.Click += new System.EventHandler(this.btnStart_Click); // // btnStop // this.btnStop.Location = new System.Drawing.Point(120, 8); this.btnStop.Size = new System.Drawing.Size(88, 24); this.btnStop.Text = "停止 "; this.btnStop.Click += new System.EventHandler(this.btnStop_Click); // // txtData // this.txtData.Location = new System.Drawing.Point(16, 72); this.txtData.Multiline = true; this.txtData.Size = new System.Drawing.Size(192, 152); this.txtData.Text = ""; // // btnClearText // this.btnClearText.Location = new System.Drawing.Point(16, 232); this.btnClearText.Size = new System.Drawing.Size(72, 32); this.btnClearText.Text = "清空"; this.btnClearText.Click += new System.EventHandler(this.btnClearText_Click); // // lblInfo // this.lblInfo.Location = new System.Drawing.Point(96, 240); this.lblInfo.Size = new System.Drawing.Size(128, 20); // // btnReadStop // this.btnReadStop.Location = new System.Drawing.Point(120, 40); this.btnReadStop.Size = new System.Drawing.Size(88, 24); this.btnReadStop.Text = "停止读取"; this.btnReadStop.Click += new System.EventHandler(this.btnReadStop_Click); // // btnStartRead // this.btnStartRead.Location = new System.Drawing.Point(16, 40); this.btnStartRead.Size = new System.Drawing.Size(88, 24); this.btnStartRead.Text = "开始读取"; this.btnStartRead.Click += new System.EventHandler(this.btnStartRead_Click); // // Form1 // this.ClientSize = new System.Drawing.Size(226, 268); this.Controls.Add(this.btnReadStop); this.Controls.Add(this.btnStartRead); this.Controls.Add(this.lblInfo); this.Controls.Add(this.btnClearText); this.Controls.Add(this.txtData); this.Controls.Add(this.btnStop); this.Controls.Add(this.btnStart); this.Text = "RFID示例"; this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.Load += new System.EventHandler(this.Form1_Load); this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { Application.Run(new Form1()); } /// <summary> /// 打开服务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStart_Click(object sender, System.EventArgs e) { if (RFID.GetInstance().GetServerState()) { StartEnable(); lblInfo.Text = "RFID服务启动成功!"; } else { if(RFID.GetInstance().Start()) { StartEnable(); lblInfo.Text = "RFID服务启动成功!"; MessageBox.Show("aaaa"); } else { StopEnable(); lblInfo.Text = "RFID服务启动失败!"; } } } /// <summary> /// 关闭rfid服务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStop_Click(object sender, System.EventArgs e) { if (!RFID.GetInstance().GetServerState()) { StopEnable(); lblInfo.Text = "RFID服务关闭成功!"; } else { if(RFID.GetInstance().Stop()) { StopEnable(); lblInfo.Text = "RFID服务关闭成功!"; } else { StartEnable(); lblInfo.Text = "RFID服务关闭失败!"; } } } private void StartEnable() { btnStart.Enabled = false; btnStop.Enabled = true; } private void StopEnable() { btnStart.Enabled = true; btnStop.Enabled = false; } private void SetText() { string strBak = txtData.Text; if (strBak.Length < 1000) { txtData.Text = strText + strBak; } else { txtData.Text = strText; } } string strText = string.Empty; /// <summary> /// 接收读取到的rfid数据 /// </summary> /// <param name="args"></param> public void OnDataArrived(MEC.Nurse.Provider.RFIDEventArgs args) { StringBuilder strData = new StringBuilder(); strData.Append("State : "); strData.Append(args.StateCode); strData.Append("\r\nData : "); strData.Append(args.Data); strData.Append("\r\n---------------------\r\n"); ControlInvokeHandler action = new ControlInvokeHandler(SetText); MessageBox.Show(strData.ToString()); txtData.Text = strData.ToString(); this.Invoke(action); } private delegate void ControlInvokeHandler(); protected override void OnClosing(System.ComponentModel.CancelEventArgs e) { e.Cancel = true; btnStop_Click(null, null); this.Hide(); base.OnClosing (e); } private void btnClearText_Click(object sender, System.EventArgs e) { txtData.Text = string.Empty; } /* * ReadStart和ReadEnd组合读取rfid * * 例如当手指按下按钮的时候ReadStart, 当手指离开按钮时ReadEnd * 这样模块就会自动执行一次读取 * */ /// <summary> /// 开始读取rfid数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStartRead_Click(object sender, System.EventArgs e) { RFID.GetInstance().ReadStart(); StartReadEnable(); } /// <summary> /// 结束rfid数据读取 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReadStop_Click(object sender, System.EventArgs e) { RFID.GetInstance().ReadEnd(); StopReadEnable(); } private void StartReadEnable() { btnStartRead.Enabled = false; btnReadStop.Enabled = true; } private void StopReadEnable() { btnStartRead.Enabled = true; btnReadStop.Enabled = false; } private void Form1_Load(object sender, System.EventArgs e) { } private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { this.Focus(); if (e.KeyValue==122) { RFID.GetInstance().ReadStart(); StartReadEnable(); } } private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) { this.Focus(); if (e.KeyValue==122) { RFID.GetInstance().ReadEnd(); StopReadEnable(); } } } }