固定扫描枪的C#程序

1. new SerialPort 对象 serialPort1
2. 给serialPort1的端口名赋值.
3. 设置serialPort1的参数值
 如:
private void SettingComm(object serialPortobj)
        {
            SerialPort serialPort = (SerialPort)serialPortobj;
            serialPort.BaudRate = 9600;
            serialPort.Parity = Parity.None;
            serialPort.StopBits = StopBits.One;
            serialPort.DataBits = 8;
            serialPort.DiscardNull = true;

        }
4. 打开端口   serialPort1.Open();
5. 将事件挷定到端口上.
 serialPort1.DataReceived += serialportReceiveData;
6. 接收来自端口的数据
        private void serialportReceiveData(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                SerialPort serialPort = (SerialPort)sender;
                ReceiveData(serialPort);
            }
            catch (Exception ex)
            {
                ScannerEventLog.WriteEntry("Error receiving data. Error Msg=" + ex.Message);
            }
        }

 private void ReceiveData(SerialPort serialPort)
        {
            try
            {
                Thread threadReceiveSub = new Thread(new ParameterizedThreadStart(AsyReceiveData));
                threadReceiveSub.Start(serialPort);
            }
            catch (Exception ex)
            {
                ScannerEventLog.WriteEntry("Error receiving data. Error Msg=" + ex.Message);
            }
        }

7.
private void AsyReceiveData(object serialPortobj)
        {

            string strXML = "";
            try
            {
                SerialPort serialPort = (SerialPort)serialPortobj;
         

                System.Threading.Thread.Sleep(100);
           
                string str = serialPort.ReadExisting();
               
                if (str == string.Empty)
                {
                    return;
                }

                // Station ID is hardcoded for the moment
              
                //strXML = "<STATIONID>" + System.Configuration.ConfigurationSettings.AppSettings[serialPort.PortName].ToString()+ "</STATIONID><DATA>";
                       
                // remove redundant 1st char.
                //str = str.Substring(1, str.Length - 1);

                //strXML = "<PRODUCTION_REQUEST><COMPLETE><SFC_LIST><SFC><SITE>" + System.Configuration.ConfigurationSettings.AppSettings["SITE"].ToString() + "</SITE>";
                //strXML += "<ACTIVITY>" + System.Configuration.ConfigurationSettings.AppSettings["ACTIVITY"].ToString() + "</ACTIVITY>";
                //strXML += "<ID>" + str + "</ID>";
                //strXML += "<RESOURCE>" + System.Configuration.ConfigurationSettings.AppSettings["RESOURCE"].ToString() + "</RESOURCE>";
                //strXML += "<OPERATION>" + System.Configuration.ConfigurationSettings.AppSettings["OPERATION"].ToString() + "</OPERATION>";
                //strXML += "<USER>" + System.Configuration.ConfigurationSettings.AppSettings["USER"].ToString() + "</USER>";
                //strXML += "<QUICK_COMPLETE>" + System.Configuration.ConfigurationSettings.AppSettings["QUICK_COMPLETE"].ToString() + "</QUICK_COMPLETE>";
                //strXML += "</SFC></SFC_LIST></COMPLETE></PRODUCTION_REQUEST>";

                strXML = str + "      哈哈哈..mmmmmmmmmmmmmmghggggggggggggggg///////wwwwwwww<<<<<<<>?>>>>>>>>>>>.";

                System.Console.Write(strXML);
                HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(strUrl);
                HttpWebResponse res = (HttpWebResponse)wr.GetResponse();
            }
            catch (Exception ex)
            {
                ScannerEventLog.WriteEntry("Error receiving data. Error Msg=" + ex.Message);
            }
        }


线程间操作无效: 从不是创建控件“listBox1”的线程访问它
http://www.polsnet.com/home/html/tech74_100864.html

 

posted @ 2008-02-29 10:15  wj-conquer  阅读(1518)  评论(2编辑  收藏  举报