刚接了任务,要调用另一家公司写的485接口,直接向学校的门锁下发白名单和接收返回值和谁刷了卡的winform程序。由于一直是搞B/S开发,winform的没怎么搞过(还要考虑点对点还是TCP方式)
     分只有那么多了!求高手指导

解决方案 »

  1.   

    C# 的 Serialport 对象 用来实现串口通信 ,去MSDN查查SerialPort的相关资料吧!
      

  2.   

    最近写的一个类,
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using System.IO.Ports;
    namespace Common
    {
        public class SerialPortWrapper : IDisposable
        {
            private System.IO.Ports.SerialPort serialPort;        #region serial port properties
            private int _baudRate;
            public int BaudRate
            {
                get { return _baudRate; }
                set { _baudRate = value; }
            }        private System.IO.Ports.Parity _parity;
            public System.IO.Ports.Parity Parity
            {
                get { return _parity; }
                set { _parity = value; }
            }        private System.IO.Ports.StopBits _stopBits;
            public System.IO.Ports.StopBits StopBits
            {
                get { return _stopBits; }
                set { _stopBits = value; }
            }        private int _dataBits;
            public int DataBits
            {
                get { return _dataBits; }
                set { _dataBits = value; }
            }        private string _portName;
            public string PortName
            {
                get { return _portName; }
                set { _portName = value; }
            }        private System.IO.Ports.Handshake handshake;        public System.IO.Ports.Handshake _Handshake
            {
                get { return handshake; }
                set { handshake = value; }
            }
            #endregion        private string receivedData;        public string ReceivedData
            {
                get { return receivedData; }
                set { receivedData = value; }
            }        private Communication.Request receivedRequest;        public Communication.Request ReceivedRequest
            {
                get { return receivedRequest; }
                set { receivedRequest = value; }
            }        private string requestString;        public string RequestString
            {
                get { return requestString; }
                set { requestString = value; }
            }        public SerialPortWrapper()
            {
                receivedData = string.Empty;
            }        public bool OpenPort()
            {
                try
                {
                    if (serialPort == null)
                    {
                        serialPort = new System.IO.Ports.SerialPort(this.PortName, this.BaudRate, this.Parity, this.DataBits, this.StopBits);
                        serialPort.Handshake = this.handshake;                    serialPort.ReceivedBytesThreshold = 1;                    serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
                    }                if (!serialPort.IsOpen)
                    {
                        serialPort.Open();
                    }
                }
                catch (Exception e)
                {
                    
                }            return serialPort.IsOpen;
            }        void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                SerialPort sp = (SerialPort)sender;
                byte[] buf = new byte[sp.BytesToRead];
                sp.Read(buf, 0, buf.Length);
                //string dataReceived = sp.ReadExisting();            string dataReceived = new System.Text.UTF8Encoding().GetString(buf);            receivedData += dataReceivedHex;            
            }        public bool Send(byte[] data)
            {
                try
                {
                    if (serialPort != null)
                    {
                        if (serialPort.IsOpen)
                        {
                            serialPort.Write(data, 0, data.Length);
                            return true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    
                }            return false;
            }        #region IDisposable Members        public void Dispose()
            {
                if (serialPort != null)
                {
                    if (serialPort.IsOpen)
                    {
                        serialPort.Close();
                    }                serialPort.Dispose();
                }
            }        #endregion
        }
    }
      

  3.   

    他们应该有接口的,还有demo 
      

  4.   

    是不是直接引用他们提供的.dll文件就可以了