Inheritance: System.ComponentModel.Component
示例#1
0
        private void btnOpenPort_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.portName.Text == "" || baudRate.Text == "")
                {
                    this.messageReceived.Text = "Please select port settings.";
                }
                else
                {
                    System.ComponentModel.IContainer components = new System.ComponentModel.Container();
                    this.serialPort1              = new System.IO.Ports.SerialPort(components);
                    this.serialPort1.PortName     = portName.Text;
                    this.serialPort1.BaudRate     = Convert.ToInt32(baudRate.Text);
                    this.serialPort1.ReadTimeout  = 5000;
                    this.serialPort1.WriteTimeout = 500;
                    this.serialPort1.DtrEnable    = true;
                    this.serialPort1.Open();
                    this.btnSend.Enabled         = true;
                    this.messageSent.Enabled     = true;
                    this.messageReceived.Enabled = true;
                    this.btnOpenPort.Enabled     = false;
                    this.btnClosePort.Enabled    = true;
                    this.btnRefresh.Enabled      = false;

                    this.readThread = new Thread(new ThreadStart(read));
                    this.readThread.Start();
                }
            }
            catch (UnauthorizedAccessException)
            {
                this.messageReceived.Text = "Unauthorized Access";
            }
        }
示例#2
0
 public void Open()
 {
     serial = new SerialPort(portName, boudRate);
     serial.DataReceived += new SerialDataReceivedEventHandler(Serial_DataReceived);
     serial.Open();
     Write("Hello there.");
 }
示例#3
0
 public static void WritePage(byte[] pageData, int pageNumber, int pageSize, SerialPort port)
 {
     port.Write(new byte[1]{Convert.ToByte(pageNumber)},0,1);
     port.Write(pageData,pageNumber*pageSize,pageSize);
     if(port.ReadChar()!='A')
         throw new Exception("No acknowledge from target!");
 }
        //-------------------------------------------------------------------------------------------------//
        public ST360CounterSer(XmlNode xmlNodeEquipmentConfig)
            : base(xmlNodeEquipmentConfig)
        {
            const string STRLOG_MethodName = "ST360CounterSer";

            Logfile.WriteCalled(null, STRLOG_MethodName);

            //
            // Initialise local variables
            //
            this.disposed = true;
            this.receiveRunning = false;

            //
            // Get the serial port to use and the baud rate
            //
            XmlNode xmlNodeST360Counter = XmlUtilities.GetXmlNode(xmlNodeEquipmentConfig, Consts.STRXML_st360Counter);
            XmlNode xmlNodeSerial = XmlUtilities.GetXmlNode(xmlNodeST360Counter, Consts.STRXML_serial, false);
            string serialport = XmlUtilities.GetXmlValue(xmlNodeSerial, Consts.STRXML_port, false);
            int baudrate = XmlUtilities.GetIntValue(xmlNodeSerial, Consts.STRXML_baud);

            Logfile.Write(STRLOG_SerialPort + serialport +
                Logfile.STRLOG_Spacer + STRLOG_BaudRate + baudrate.ToString());

            //
            // Create an instance of the serial port, set read and write timeouts
            //
            Logfile.Write(STRLOG_CreatingSerialPort);
            this.serialPort = new SerialPort(serialport, baudrate);
            this.serialPort.ReadTimeout = 1000;
            this.serialPort.WriteTimeout = 3000;

            Logfile.WriteCompleted(null, STRLOG_MethodName);
        }
示例#5
0
文件: AccelListener.cs 项目: x4m/lr17
        private void Reading()
        {
            var currentPort = new SerialPort(_name, 115200);
            currentPort.Open();
            while (!stop)
            {
                var line = currentPort.ReadLine();
                try
                {
                    var strings = line.Replace("\r", "").Split(',');
                    var x = (int)int.Parse(strings[0]) / 16384.0F;
                    var y = (int)int.Parse(strings[1]) / 16384.0F;
                    var z = (int)int.Parse(strings[2]) / 16384.0F;
                    if (!_valuesInitialized)
                    {
                        _x = x;
                        _y = y;
                        _z = z;
                        _valuesInitialized = true;
                    }

                    _x = (_x*3 + x)/4;
                    _y = (_y*3 + y)/4;
                    _z = (_z*3 + z)/4;
                }
                catch (Exception)
                {

                }

                HasNew = true;
            }
        }
示例#6
0
 public LCD43()
 {
     comLcdPri = new SerialPort(SerialPorts.COM1, 115200, Parity.None, 8, StopBits.One);
     comLcdPri.DataReceived += new SerialDataReceivedEventHandler(Lcd_DataReceived);
     comLcdPri.ReadTimeout = 100;
     comLcdPri.Open();
 }
示例#7
0
        static void Main(string[] args)
        {
            int i = 0;
            SerialPort SP = null;
            Console.WriteLine("Specify which comport you want to connect to:");
            
            foreach (string s in SerialPort.GetPortNames())
            {
                Console.WriteLine($"{i++,2} {s}");
            }
            int PortNo = int.Parse(Console.ReadLine());
            try
            {
                SP = new SerialPort(SerialPort.GetPortNames()[PortNo]);
                SP.Open();
                while(true)
                {
                    Console.Write(SP.ReadExisting());
                }
            }
            finally
            {
                if (SP.IsOpen)
                {
                    SP.Close();
                }
            }

            Console.Read();
        }
示例#8
0
        public async static Task <byte[]> ReadAsync(this System.IO.Ports.SerialPort serialPort, int count)
        {
            var datos = new byte[count];
            await serialPort.ReadAsync(datos, 0, count);

            return(datos);
        }
示例#9
0
        public void IniInfo(Moose.Model.SerialPortInfo serialPortInfo)
        {
            SerialPortMng               = new SerialPort();
            SerialPortMng.PortName      = serialPortInfo.PortName;
            SerialPortMng.BaudRate      = serialPortInfo.BaudRate;
            SerialPortMng.Parity        = serialPortInfo.Parity;
            SerialPortMng.DataBits      = serialPortInfo.DataBits;
            SerialPortMng.StopBits      = serialPortInfo.StopBits;
            SerialPortMng.DataReceived += _Port_DataReceived;
            ReceiveDataListLock         = "ReceiveDataListLock";

            if (SendOrderQueue == null)
            {
                SendOrderQueue = new Queue <byte[]>();
            }
            if (ReceiveDataQueue == null)
            {
                ReceiveDataQueue = new Queue <byte[]>();
            }
            if (ReceiveData == null)
            {
                ReceiveData = new List <byte>();
            }

            SendOrderQueue.Clear();
            ReceiveDataQueue.Clear();

            ReceiveData.Clear();
        }
示例#10
0
        private void tmrData_Tick(object sender, EventArgs e)
        {
            string port = cbxPorts.SelectedItem.ToString();

            if (port == "")
            {
                return;
            }
            System.IO.Ports.SerialPort myPort = new System.IO.Ports.SerialPort(port);
            myPort.BaudRate = 9600;
            if (myPort.IsOpen == false) //if not open, open the port
            {
                myPort.Open();
            }
            //do your work here
            if (myPort.IsOpen == false) //if not open, open the port
            {
                return;
            }
            String data;

            //data = myPort.ReadExisting();
            data = myPort.ReadLine();
            myPort.Close();
            //tmrData.Enabled = true;
        }
示例#11
0
        public SerialPort(string portname     = "COM1", int baudrate = 9600, Parity parity = Parity.None, int databits = 8, StopBits stopbits = StopBits.One,
                          Handshake handshake = Handshake.None, int readtimeout = System.IO.Ports.SerialPort.InfiniteTimeout,
                          int writetimeout    = System.IO.Ports.SerialPort.InfiniteTimeout, string newline = "\n", bool isevent = false)
        {
            serialport = new System.IO.Ports.SerialPort(portname, baudrate, parity, databits, stopbits)
            {
                Handshake    = handshake,
                ReadTimeout  = readtimeout,
                WriteTimeout = writetimeout,
                NewLine      = newline
            };
            if (handshake != Handshake.None)
            {
                serialport.DtrEnable = true;
                if (handshake != Handshake.XOnXOff)
                {
                    serialport.RtsEnable = true;
                }
            }

            if (isevent)
            {
                DataReceivedEventHandler  = new SerialDataReceivedEventHandler(DataReceived);
                ErrorReceivedEventHandler = new SerialErrorReceivedEventHandler(ErrorReceived);
                PinChangedEventHandler    = new SerialPinChangedEventHandler(PinChanged);
                serialport.DataReceived  += DataReceivedEventHandler;
                serialport.ErrorReceived += ErrorReceivedEventHandler;
                serialport.PinChanged    += PinChangedEventHandler;
            }
        }
示例#12
0
    private void Update()
    {
        if (!IsInit)
        {
            IsInit           = true;
            Port             = new System.IO.Ports.SerialPort();
            Port.PortName    = "COM3";
            Port.BaudRate    = 9600;
            Port.ReadTimeout = 1000;
            Port.DtrEnable   = true;

            Port.Open();

            StartCoroutine(IReadTag());
        }

        //if(Port.ReadLine() != "")
        //{
        //Debug.Log(Port.ReadLine());
        //}

        //string readLine = Port.ReadLine();
        //if(readLine != "NULL")
        //{
        //    Debug.Log("connecté !!");
        //    sound.Play();
        //}
        //else
        //{
        //    Debug.Log(readLine);
        //}


        //Debug.Log("1");
    }
示例#13
0
        void CreatePort()
        {
            ComPortUartConfig uartConfig = comPortConfig.UartConfig;

            sp = new System.IO.Ports.SerialPort();
            // sp.PortName = comPortConfig.PortName;        // do this when opening the port
            sp.BaudRate  = uartConfig.BaudRateInt;
            sp.DataBits  = uartConfig.DataBits;
            sp.Handshake = uartConfig.Handshake;
            sp.Parity    = uartConfig.Parity;
            sp.StopBits  = uartConfig.StopBits;
            sp.RtsEnable = uartConfig.Handshake == System.IO.Ports.Handshake.None;
            sp.DtrEnable = true;

            sp.ReadTimeout  = 0;                // read operations are non-blocking at this level
            sp.WriteTimeout = 100;              // write operations are blocking at this level - we assume that there will always be enough buffer space to accept the bytes relatively quickly!

            // sp.Encoding;		// accept default of Ascii
            sp.ReadBufferSize  = (int)PortConfig.RxBufferSize;
            sp.WriteBufferSize = (int)PortConfig.TxBufferSize;

            sp.ReceivedBytesThreshold = 1;              // fire event after 1 character

            sp.PinChanged    += delegate(object sender, SerialPinChangedEventArgs e) { TraceData.Emit("<PinChangedEvent type='{0}'/>", e.EventType); threadWakeupNotifier.Notify(); };
            sp.ErrorReceived += delegate(object sender, SerialErrorReceivedEventArgs e) { TraceData.Emit("<ErrorReceivedEvent type='{0}'/>", e.EventType); threadWakeupNotifier.Notify(); };
            sp.DataReceived  += delegate(object sender, SerialDataReceivedEventArgs e) { threadWakeupNotifier.Notify(); };
        }
示例#14
0
        public Start(System.IO.Ports.SerialPort tcomm)
        {
            InitializeComponent();

            comm   = tcomm;
            pOk    = false;
            isOpen = false;
            isP    = false;
            string[] ports = SerialPort.GetPortNames(); //自动获取可用的串口名
            comboPortName.Items.AddRange(ports);        //增加到界面
            comboPortName.SelectedIndex   = comboPortName.Items.Count > 0 ? 0 : -1;
            comboBaudrate.SelectedIndex   = comboBaudrate.Items.IndexOf("115200");
            comboBoxParity.SelectedIndex  = comboBoxParity.Items.IndexOf("None");
            comboBoxDataBit.SelectedIndex = comboBoxDataBit.Items.IndexOf("8");
            comboBoxStopBit.SelectedIndex = 0;// comboBoxDataBit.Items.IndexOf("None")
            this.TopMost = true;

            setUpThread = new Thread(setUp);
            setUpThread.Start();

            /*
             * mainHome = new MainHome(comm);
             * or = new Origination(mainHome);
             * pOk = true;*/
        }
        public void Init()
        {
            try
            {
                try
                {
                    if (Port != null)
                    {
                        ConsoleOutputLogger.WriteLine("[COM] COM-Port soll reinitialisiert werden - schliesse alten COM-Port.");
                        Port.Close();
                    }
                }
                catch (Exception e)
                {
                    ConsoleOutputLogger.WriteLine("[FEHLER@COM] Beim Versuch den COM-Port zu schliessen ist ein Fehler aufgetreten.");
                    ConsoleOutputLogger.WriteLine("[FEHLER@COM] "+e.Message);
                }

                Port = new SerialPort("COM"+Convert.ToInt32(FFN_Switcher.Properties.Settings.Default.Comport));
                Port.Open();
                ConsoleOutputLogger.WriteLine("[COM] COM-Port " + Convert.ToInt32(FFN_Switcher.Properties.Settings.Default.Comport) + " geöffnet und bereit.");
            }
            catch (Exception e)
            {
                ConsoleOutputLogger.WriteLine("[FEHLER@COM] " + e.Message);
                ConsoleOutputLogger.WriteLine("[COM] Kann COM-Port nicht öffnen - bitte Konfiguration überprüfen.");
                Pause();
            }
        }
示例#16
0
 private void button3_Click(object sender, EventArgs e)
 {//连接
     try
     {
         if (_SP != null)
         {
             _SP.Dispose();
         }
         _SP                = new SerialPort();
         _SP.PortName       = comboBox1.Text;
         _SP.BaudRate       = int.Parse(comboBox2.Text);
         _SP.DataBits       = int.Parse(comboBox3.Text);
         _SP.StopBits       = (StopBits)comboBox4.SelectedValue;
         _SP.ReadBufferSize = 1024;
         _SP.Parity         = (Parity)comboBox5.SelectedValue; //Parity.Even;
         _SP.DataReceived  += _SP_DataReceived;
         _SP.Open();
         panel2.BackColor = Color.Green;
     }
     catch (Exception ex)
     {
         panel2.BackColor = Color.Red;
         MessageBox.Show(ex.Message);
     }
 }
 //        public Serial2Matlab(string port, int baudRate = 115200, Parity parity = Parity.None, int dataBits = 8, StopBits stopBits = StopBits.One)
 public Serial2Matlab()
 {
     serialPort = new SerialPort("COM43", 115200, Parity.None, 8, StopBits.One);
     serialPort.ReadTimeout = 2;
     serialPort.Open();
     serialPort.DiscardInBuffer();
 }
示例#18
0
        public void elecserialport_connect(String port, int baudrate, Parity parity, int databits, StopBits stopbits, Handshake flowcontrol)
        {
            DateTime dt  = DateTime.Now;
            String   dtn = dt.ToShortTimeString();


            try
            {
                elecsport = new System.IO.Ports.SerialPort(
                    port, baudrate, parity, databits, stopbits);
                elecsport.Handshake    = flowcontrol;
                elecsport.ReadTimeout  = 2000;
                elecsport.WriteTimeout = 2000;
                elecsport.Open();
                elecClose.IsEnabled   = true;
                elecConnect.IsEnabled = false;
                var serialnum = "";

                try
                {
                    elecsport.Write("SER" + "\r\n");
                    Thread.Sleep(55);
                    serialnum = Convert.ToString(elecsport.ReadExisting());
                } catch { }

                electxtReceive.AppendText("[" + dtn + "] " + "Connected\n");
                electxtReceive.AppendText("[" + dtn + "] " + "Serial Number: " + serialnum + "\n");
                //elecsport.DataReceived += new SerialDataReceivedEventHandler(elecsport_DataReceived);
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error"); }
        }
示例#19
0
 /// <summary>
 /// 构造函数,可以自定义串口的初始化参数
 /// </summary>
 /// <param name="comPortName">需要操作的COM口名称</param>
 /// <param name="baudRate">COM的速度</param>
 /// <param name="parity">奇偶校验位</param>
 /// <param name="dataBits">数据长度</param>
 /// <param name="stopBits">停止位</param>
 public SerialClass(string comPortName, int baudRate, Parity parity, int dataBits, StopBits stopBits)
 {
     _serialPort = new SerialPort(comPortName, baudRate, parity, dataBits, stopBits);
     _serialPort.RtsEnable = true;  //自动请求
     _serialPort.ReadTimeout = 3000;//超时
     setSerialPort();
 }
示例#20
0
 public HYDisplay()
 {
     try
     {
         String portName = PosConfiguration.Get("DisplayComPort");
         serialPort = new SerialPort(portName);
         if (!serialPort.IsOpen)
         {
             serialPort.ReadTimeout = 2048;
             serialPort.Open();
             Write(ledsOff, 0, 6);
             Write(initializeDisplay, 0, 3);
             serialPort.Write(horizontalScrollMode, 0, horizontalScrollMode.Length);
             System.Threading.Thread.Sleep(100);
             serialPort.Write(normalMode, 0, normalMode.Length);
         }
     }
     catch (UnauthorizedAccessException ex)
     {
         throw ex;
     }
     catch
     {
         Display.Log.Fatal("HYDisplay:HyDisplay - Exception {0} is {1}", serialPort.PortName, serialPort.IsOpen ? "Open" : "Closed");
     }
 }
        //ready
        //c_G?RS??FjS? fJ[??
        //[Vendor: www.ai-thinker.com Version:0.9.2.4]
        //OK
        //ready
        //FAIL
        private static string getIP(SerialPort sp)
        {
            string cmd = "AT+CIFSR";
            string result;
            string tmp;
            while (true) {
                do {
                    tmp = sp.ReadExisting();
                    Console.WriteLine(tmp);
                } while (tmp != "");
                sp.WriteLine(cmd);
                Thread.Sleep(1000);
                int end = 0, findMsg = 0; ;
                int resultReadCnt = 10;
                while ((findMsg == 0 || end == 0) && resultReadCnt-- > 0) {
                    result = sp.ReadExisting();
                    if (result.Contains(cmd)) findMsg = 1;
                    Console.WriteLine(result);
                    if (findMsg != 0 && ( result.Contains("192.168.16.") || result.Contains("192.168.137.") || result.Contains("192.168.10."))) return result; //Nieładnie, ale na razie - czekamy na IP
                    if (findMsg != 0 && result.Contains("0.0.0.0")) { Thread.Sleep(1000); break; } //Ponawiamy
                    Thread.Sleep(1000);
                }
                Thread.Sleep(5000);
            }

            return null;
        }
示例#22
0
        // private static System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
        public static void display(string Line1, string Line2, string Line3, string Line4)
        {
            System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
            try
            {
                serialPort1.PortName  = PortName;
                serialPort1.BaudRate  = Convert.ToInt32(BaudRate);
                serialPort1.DataBits  = Convert.ToInt32(DataBits);
                serialPort1.Parity    = Parity.None;
                serialPort1.StopBits  = StopBits.One;
                serialPort1.DtrEnable = true;
                serialPort1.RtsEnable = true;
                serialPort1.Open();
                serialPort1.Write(new byte[] { 0x0C }, 0, 1);
                // byte[] data = Encoding.ASCII.GetBytes(Line1 + space1 + Line2); // your byte data;
                serialPort1.Write(Line1 + Line2);

                //Goto Bottem Line
                //serialPort1.Write(new byte[] { 0x0A, 0x0D }, 0, 2);
                //byte[] data1 = Encoding.ASCII.GetBytes(Line3 + space2 + Line4); // your byte data;
                serialPort1.Write(Line3 + Line4);


                serialPort1.Close();
                serialPort1.Dispose();
                serialPort1 = null;
            }
            catch (Exception)
            {
                serialPort1.Close();
                serialPort1.Dispose();
                serialPort1 = null;
                //MessageBox.Show(ex.ToString() + "----"+ PortName+"----"+ BaudRate.ToString()+"----"+ DataBits.ToString());
            }
        }
示例#23
0
文件: Ports.cs 项目: Prizmer/ps
        public ComPort(byte number, int baudrate, byte data_bits, byte parity, byte stop_bits, ushort write_timeout, ushort read_timeout, byte attemts)
        {
            m_name = "COM" + Convert.ToString(number);
            m_baudrate = baudrate;
            m_data_bits = data_bits;
            m_parity = (Parity)parity;
            m_stop_bits = (StopBits)stop_bits;
            m_write_timeout = write_timeout;
            m_read_timeout = read_timeout;
            m_attemts = attemts;

            try
            {
                m_Port = new SerialPort(m_name, m_baudrate, m_parity, m_data_bits, m_stop_bits);

                /*ELF: для работы с elf108*/
                m_Port.DtrEnable = true;
                m_Port.RtsEnable = true;
            }
            catch (Exception ex)
            {
                #if (DEBUG)
                    WriteToLog("Create " + m_name + ": " + ex.Message);
                #endif
            }
        }
示例#24
0
 public static void OpenDrawer()
 {
     System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
     serialPort1.PortName  = CashDrawPortName;
     serialPort1.Encoding  = Encoding.ASCII;
     serialPort1.BaudRate  = Convert.ToInt32(CashDrawBaudRate);
     serialPort1.Parity    = System.IO.Ports.Parity.None;
     serialPort1.DataBits  = Convert.ToInt32(CashDrawDataBits);
     serialPort1.StopBits  = System.IO.Ports.StopBits.One;
     serialPort1.DtrEnable = true;
     try
     {
         serialPort1.Open();
         serialPort1.Write(Char.ConvertFromUtf32(27) + char.ConvertFromUtf32(64));
         serialPort1.Write(char.ConvertFromUtf32(27) +
                           char.ConvertFromUtf32(112) +
                           char.ConvertFromUtf32(0) +
                           char.ConvertFromUtf32(5) +
                           char.ConvertFromUtf32(5));
         serialPort1.Close();
         serialPort1.Dispose();
         serialPort1 = null;
     }
     catch (Exception)
     {
         serialPort1.Close();
         serialPort1.Dispose();
         serialPort1 = null;
         // MessageBox.Show(ex.ToString() + "----" + CashDrawPortName + "----" + CashDrawBaudRate.ToString() + "----" + CashDrawDataBits.ToString());
     }
 }
示例#25
0
        /*
        public bool ValidateSettings() {
            var builder = new StringBuilder();
            if (cbPortName.SelectedIndex == -1) {
                builder.AppendLine(Resources.Serial_PortError);
            }
            if (cbBaudRate.SelectedIndex == -1) {
                builder.AppendLine(Resources.Serial_BaudError);
            }
            if (cbParity.SelectedIndex == -1) {
                builder.AppendLine(Resources.Serial_ParityError);
            }
            int result;
            if (!int.TryParse(cbDataBits.SelectedItem.ToString(), out result)) {
                builder.AppendLine(Resources.Serial_DataBitsError);
            }
            if (cbStopBits.SelectedIndex == -1) {
                builder.AppendLine(Resources.Serial_StopBitsError);
            }
            if (builder.Length <= 0) {
                return true;
            }

            MessageBox.Show(Resources.Serial_Resolve + builder, Vendor.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Hand);

            return false;
        }
        */
        private void Init(SerialPort serialPort)
        {
            if (serialPort == null) {
                serialPort = new SerialPort(DefaultComPort, DefaultBaudRate, Parity.None, DefaultDataBits, StopBits.One);
            }

            cbPortName.Items.Add("None");

            if (!SerialPort.GetPortNames().Contains(serialPort.PortName)) {
                cbPortName.Items.Add(serialPort.PortName);
            }

            cbPortName.Items.AddRange(SerialPort.GetPortNames());

            cbParity.Items.Add(Parity.Even);
            cbParity.Items.Add(Parity.Mark);
            cbParity.Items.Add(Parity.None);
            cbParity.Items.Add(Parity.Odd);
            cbParity.Items.Add(Parity.Space);

            cbStopBits.Items.Add(StopBits.One);
            cbStopBits.Items.Add(StopBits.OnePointFive);
            cbStopBits.Items.Add(StopBits.Two);

            cbPortName.SelectedIndex = cbPortName.Items.IndexOf(serialPort.PortName);
            cbBaudRate.SelectedItem = serialPort.BaudRate.ToString(CultureInfo.InvariantCulture);
            cbParity.SelectedItem = serialPort.Parity;
            cbDataBits.SelectedItem = serialPort.DataBits.ToString(CultureInfo.InvariantCulture);
            cbStopBits.SelectedItem = serialPort.StopBits;
        }
示例#26
0
 public async Task <bool> Connect()
 {
     if (_serial == null)
     {
         _serial           = new SerialPort();
         _serial.PortName  = Name;
         _serial.BaudRate  = Baud;
         _serial.Parity    = Parity;
         _serial.DataBits  = DataBits;
         _serial.StopBits  = StopBits;
         _serial.Handshake = Handshake;
     }
     try
     {
         if (!_serial.IsOpen)
         {
             await Task.Factory.StartNew(() => _serial.Open());
         }
         Stream = _serial.BaseStream;
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#27
0
 private bool DetectSerialCom()
 {
     foreach (var portName in SerialPort.GetPortNames())
     {
         _serialPort = new SerialPort(portName, 38400, Parity.None, 8, StopBits.One) { ReadTimeout = 10 };
         try
         {
             _serialPort.Open();
         }
         catch (IOException)
         {
             continue;
         }
         try
         {
             _serialPort.Write("T");
             int read = _serialPort.ReadChar();
             if ((char)read == 'T')
                 return true;
         }
         catch (Exception)
         {
             continue;
         }
     }
     return false;
 }
示例#28
0
 // Constructor
 public IrdaPort()
 {
     ComPort               = new SerialPort();
     ComPort.BaudRate      = 9600;
     ComPort.DataBits      = 8;
     ComPort.Parity        = Parity.None;
     ComPort.StopBits      = StopBits.One;
     ComPort.Handshake     = Handshake.XOnXOff;
     ComPort.RtsEnable     = true;
     ComPort.DataReceived += new SerialDataReceivedEventHandler(ComPort_DataReceived);
     CountByte             = 0;
     //
     BufferPort    = new byte[250];
     strDataRecive = strEmpty;
     strPortStatus = "OK";
     //
     PortList = new ArrayList();
     PortList.Clear();
     // Find Ports
     foreach (string s in SerialPort.GetPortNames())
     {
         PortList.Add(s);
     }
     if (PortList.Count <= 0)
     {
         strPortStatus = "Unable to find Com-port!";
     }
 }
        /// <summary>
        /// Determines whether [is device connected].
        /// </summary>
        public static bool IsDeviceConnected(string portName)
        {
            using (var sp = new System.IO.Ports.SerialPort(portName, baudRates, parity, dataBits, stopBits))
            {
                sp.Open();

                sp.WriteLine(SendAcknoledge);

                int byteToRead = sp.BytesToRead;
                var inputData  = new byte[byteToRead];

                sp.Read(inputData, 0, byteToRead);



                var readData = System.Text.Encoding.Default.GetString(inputData);

                Console.WriteLine(string.Format(PortFoundMessage, sp.PortName));
                Console.WriteLine(readData);

                var result = readData.StartsWith(ReceivedAcknoledge);

                if (result)
                {
                    SetupDevice(sp, SetupMode.OneData);
                }

                sp.Close();

                return(result);
            }
        }
示例#30
0
    private void openThreadFun()
    {
        try
        {
#if DEBUG
            this.userSerialPort = new SerialPort(this.serialPortName, this.baud, Parity.None, 8, StopBits.One);
#else
            this.userSerialPort = new SerialPort(this.serialPortName, this.baud, Parity.None, 8, StopBits.One);
#endif
            this.userSerialPort.Handshake    = Handshake.None;
            this.userSerialPort.ReadTimeout  = 10;
            this.userSerialPort.WriteTimeout = 500;
            this.userSerialPort.Open();
            this.UpdateEnable(this.flash, false);
            this.UpdateText(this.statusLabel, "Connected");
            string message = "Device: " + this.serialPortName + " " + this.baud.ToString() + " -- Connected";
            this.changeStatusMessage(this.status_bar, message);
            this.UpdateText(this.connect, "Disconnect");

            if (this.userSerialPort.IsOpen)
            {
                this.Approved();
            }
            else
            {
                this.ShowMessageBox("Not Open Port");
            }
        }
        catch (System.IO.IOException ex)
        {
            this.ShowMessageBox("Unable to Open Port: " + ex.ToString());
        }
        this.openThread.Abort();
    }
示例#31
0
文件: Program.cs 项目: rtennys/XBee
        private static void Main()
        {
            using (var port = new SerialPort("COM3", 9600))
            {
                _xbee = new XBeeReader(port);

                CreatePipeListener();

                while (true)
                {
                    if (Console.KeyAvailable)
                    {
                        var c = char.ToUpper(Console.ReadKey(true).KeyChar);
                        if (c == 'X') break;
                        if (c == ' ') TriggerGarageDoor(_xbee);
                    }
                    else if (_xbee.FrameAvailable)
                    {
                        var frame = _xbee.ReadFrame();

                        if (frame.FrameType == XBeeFrameType.RXIOReceived)
                            ProcessTemperatureReading(new XBeeIOFrame(frame));
                        else
                            Console.WriteLine(frame);
                    }

                    Thread.Sleep(500);
                }
            }
        }
示例#32
0
        private bool sendSMS(string port, string phoneno, string msg)
        {
            bool status = false;

            try
            {
                System.IO.Ports.SerialPort sport = new System.IO.Ports.SerialPort();
                sport.PortName = port;
                sport.BaudRate = 9600;
                sport.DataBits = 8;
                sport.StopBits = StopBits.One;
                sport.Parity   = Parity.None;
                sport.Open();
                sport.Write(@"AT+CMGF=1" + (char)(13));
                sport.Write(@"AT+CMGS=" + (char)(34) + phoneno + (char)(34) + (char)(13));
                sport.Write(@msg + (char)(13) + (char)(26));
                sport.Close();
                status = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return(status);
        }
        public SerialPortService()
        {
            _serialPort = new SerialPort();
            setDefaultValues();

            ComIsOpen = false;
        }
示例#34
0
        public SerialGRBLInterface(string PortName, int BaudRate)
        {
            // Default Settings
            System.IO.Ports.SerialPort sport = new System.IO.Ports.SerialPort();
            this.Portname   = PortName;
            sport.PortName  = this.Portname;
            sport.BaudRate  = BaudRate;
            sport.Parity    = System.IO.Ports.Parity.None;
            sport.DataBits  = 8;
            sport.StopBits  = System.IO.Ports.StopBits.One;
            sport.Handshake = System.IO.Ports.Handshake.None;
            // Serial Port Time Outs
            sport.WriteTimeout = 200;
            sport.ReadTimeout  = 200;
            try
            {
                sport.Open();
                PortOpened(Portname, BaudRate);
            }
            catch (Exception ex)
            {
                OpenPortFailed(this, new EventArgs());
            }

            SerialInterface = sport;
        }
示例#35
0
        public GT730FLSController(string portName)
        {
            _com = new SerialPort(portName, 38400, Parity.None, 8, StopBits.One);

            _com.ReadTimeout = READ_TIMEOUT;
            _com.Open();
        }
示例#36
0
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            System.IO.Ports.SerialPort sp = (System.IO.Ports.SerialPort)sender;
            string indata = sp.ReadExisting();

            Console.WriteLine($"Serial Port Data Received: {indata}");
        }
示例#37
0
 public ArduiPort(string name, int baud, Logger logger)
 {
     _Logger = logger;
     _port = new SerialPort(name, baud);
     SetName(name);
     SetBaudRate(baud);
 }
示例#38
0
        /*----------------------------
        * 接続ボタンを押した時の処理
        *---------------------------*/
        private void connect_Click(object sender, RoutedEventArgs e)
        {
            // ポートが選択されている場合
            if (cmb.SelectedValue != null)
            {
                // ポート名を取得
                var port = cmb.SelectedValue.ToString();
                // まだポートに繋がっていない場合
                if (serialPort == null)
                {
                    // serialPortの設定
                    serialPort               = new SerialPort();
                    serialPort.PortName      = port;
                    serialPort.BaudRate      = Int32.Parse(cmb_baud.Text);
                    serialPort.DataBits      = 8;
                    serialPort.Parity        = Parity.None;
                    serialPort.StopBits      = StopBits.One;
                    serialPort.Encoding      = Encoding.UTF8;
                    serialPort.WriteTimeout  = 100000;
                    serialPort.DtrEnable     = true;
                    serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort_DataReceived);

                    // シリアルポートに接続
                    try
                    {
                        // ポートオープン
                        serialPort.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
示例#39
0
 public void init(COMServer tmpcomServer, int j)
 {
     comServer = tmpcomServer;
     while (mRun)
     {
         Console.WriteLine("new SerialPort()", Environment.NewLine);
         portnr = j;
         _serialPort = new SerialPort();
         int i = 0;
         foreach (string s in SerialPort.GetPortNames())
         {
             if (j == i)
             {
                 Console.WriteLine(s);
                 _serialPort.PortName = s;
             }
             i++;
         }
         _serialPort.ReadTimeout = 500;
         _serialPort.WriteTimeout = 500;
         _serialPort.BaudRate = 9600;
         _serialPort.Parity = (Parity)Enum.Parse(typeof(Parity), _serialPort.Parity.ToString());
         _serialPort.DataBits = int.Parse(_serialPort.DataBits.ToString());
         _serialPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), _serialPort.StopBits.ToString());
         _serialPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), _serialPort.Handshake.ToString());
         _serialPort.Open();
         _serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
         while (_serialPort.IsOpen == true)
         {
             Thread.Sleep(50);
         }
         Console.WriteLine("closed", Environment.NewLine);
     }
     Console.WriteLine("eind init", Environment.NewLine);
 }
示例#40
0
 public ESCommand(System.IO.Ports.SerialPort adapter)
 {
     this.adapter          = adapter;
     this.adapter.Parity   = Parity.None;
     this.adapter.StopBits = StopBits.Two;
     this.adapter.DataBits = 8;
 }
        //Methods - Helper
        private bool LoadDataToCombobox(ComboBox combobox,  ref SerialPort _GLOBAL_PORT, string _GLOBAL_PORT_NAME)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>();
            try
            {
                //Create items for Combobox
                foreach (var port in SerialPort.GetPortNames())
                {
                    dictionary.Add(port, port);
                }
                combobox.DataSource = new BindingSource(dictionary, null);
                combobox.DisplayMember = "Name";
                combobox.ValueMember = "Value";
                combobox.SelectedIndex = -1;

                //Query Ports (if they have in xml database)
                PortSetting portSetting = service.SelectByName(_GLOBAL_PORT_NAME);
                if (portSetting != null) { combobox.SelectedValue = portSetting.Value.ToString(); }

                //Open Ports 
                if (_GLOBAL_PORT.IsOpen) { _GLOBAL_PORT.Close(); }
                if (combobox.SelectedIndex != -1 && !_GLOBAL_PORT.PortName.Equals(combobox.SelectedValue.ToString()))
                {
                    _GLOBAL_PORT.PortName = combobox.SelectedValue.ToString();
                }
                _GLOBAL_PORT.Open();
            }
            catch
            {
                return false;
            }
            return true;
        }
示例#42
0
文件: LDS.cs 项目: qianc123/WMSJ_LDS
 public bool MyInit(ComportCfg comportCfg, bool bClose = false)
 {
     try
     {
         comPort = new System.IO.Ports.SerialPort();
         if (comPort != null && comportCfg != null)
         {
             this.comportCfg = comportCfg;
             GetPortProfileData(comportCfg);
             comPort.PortName       = comportData.Port;
             comPort.BaudRate       = comportData.BaudRate;
             comPort.Parity         = comportData.parity;
             comPort.StopBits       = comportData.stopbits;
             comPort.DataBits       = comportData.DataBits;
             comPort.ReadTimeout    = comportData.Timeout;
             comPort.WriteTimeout   = comportData.Timeout;
             comPort.ReadBufferSize = 4000;  //4000个字节
             if (comPort.IsOpen)
             {
                 comPort.Close();
             }
             if (!bClose)
             {
                 comPort.Open();
                 return(comPort.IsOpen);
             }
             return(true);
         }
         return(false);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
        static void Main(string[] args)
        {
            string result;
            int end = 0;
            SerialPort sp = new SerialPort("COM2");
            sp.BaudRate = 115200; // 56700;
            sp.NewLine = "\r\n";
            sp.Open();
            sendCommand(sp, "AT+RST", eWaitFor.eOK);
            Thread.Sleep(1000);
            sendCommand(sp, "AT+CWJAP=\"\",\"\"", eWaitFor.eOK | eWaitFor.eFAIL);
            Thread.Sleep(1000);
            sendCommand(sp, "AT+CWMODE=1", eWaitFor.eOK | eWaitFor.eNoChange);
            Thread.Sleep(1000);
            //sendCommand(sp, "AT+CWJAP=\"CBA_F1\",\"abc\"", eWaitFor.eOK);
            //sendCommand(sp, "AT+CWJAP=\"LumiaTk5276\",\"abc\"", eWaitFor.eOK);
            sendCommand(sp, "AT+CWJAP=\"edup-rt\",\"abc\"", eWaitFor.eOK);

            Thread.Sleep(1000);
            Console.WriteLine("IP: " + getIP(sp));
            sendCommand(sp, "AT+CIPMUX=1", eWaitFor.eOK);
            sendCommand(sp, "AT+CIPSTART=4,\"TCP\",\"google.com\",80", eWaitFor.eOK);
            sendCommand(sp, "AT+CIPSEND=4,18", eWaitFor.eGT);
            sp.Write("GET / HTTP/1.0\r\n\r\n");
            Thread.Sleep(5000); //Czekamy tu na internet
            result = sp.ReadExisting();
            Console.WriteLine(result);

            //sp.WriteLine("AT+CIFSR");
            //result = sp.ReadTo("OK\r");

            sp.Close();
        }
示例#44
0
        /// <summary>
        /// 得到指定端口名称的实例
        /// 该实例可用于后续的IO操作。可能需要打开关联的端口
        /// </summary>
        /// <param name="PortNo">串行端口名,例如 “COM1” ,范围 1..Max </param>
        /// <returns></returns>
        public System.IO.Ports.SerialPort GetComPortInstance(string portName)
        {
            int nPortNo;

            nPortNo = GetPortNo(portName);
            if (nPortNo <= 0)
            {
                return(null);
            }

            System.IO.Ports.SerialPort sp = _PortList[nPortNo];

            if (sp == null)                                                                     // 一般不可能出现找不到设备的情况
            {
                sp                 = new SerialPort(portName);
                sp.BaudRate        = 9600;                                                      // 默认速率、数据位、停止位、校验位等参数
                sp.DataBits        = 8;
                sp.StopBits        = StopBits.One;
                sp.Parity          = Parity.None;
                sp.Handshake       = Handshake.RequestToSendXOnXOff;
                _PortList[nPortNo] = sp;
                return(sp);
            }
            return(sp);
        }
示例#45
0
 /// <summary>Constructor con parámetros de puerto serie
 /// </summary>
 /// <param name="portName">nombre del port (generalmente "com1")
 /// se pueden obtener los nombres disponibles usando System.IO.Ports.SerialPort.GetPortNames()</param>
 /// <param name="bauds">velocidad (generalmente 9600)</param>
 /// <param name="parity">tipo de paridad (generalmente None)</param>
 /// <param name="dataBits">bits de datos (generalmente 8)</param>
 /// <param name="stopBits">bits de parada (generalmente One)</param>
 /// <param name="info"></param>
 public SerialTextOnly(PrinterInfo info)
     : base(info)
 {
     try
     {
         commPort = new SerialPort(Name, int.Parse(info.Parameters[kBouds]), Parity.None, int.Parse(info.Parameters[kDatabits]), StopBits.One);
         IsOnLine = true;
         LastError = null;
         PaperCut = CutMode.Partial;
         PaperCutJump = 32;
         UseCrLf = false;
     }
     catch (IOException ex)
     {
         IsOnLine = false;
         LastErrorDesc = "Configuración de puerto no válida";
         LastError = ex.ToString();
     }
     catch (Exception ex)
     {
         IsOnLine = false;
         LastErrorDesc = "Error no contemplado";
         LastError = ex.ToString();
     }
 }
示例#46
0
        //点击发送按钮事件的响应
        private void buttonfs_Click(object sender, EventArgs e)
        {
            //ASCII规则 comm.Write(this.textBoxfs.Text);
            //如果写错了一些,我们允许的,只用正则得到有效的十六进制数

            /*MatchCollection mc = Regex.Matches(textBoxfs.Text, @"(?i)[\da-f]{2}");
             * //填充到这个临时列表中
             * List<byte> buf = new List<byte>();
             * //依次添加到列表中
             * foreach (Match m in mc)
             * {
             *  buf.Add(byte.Parse(m.Value, System.Globalization.NumberStyles.HexNumber));
             * }
             */
            //转换列表为数组后发送
            try
            {
                if (!comm.IsOpen)
                {
                    comm.Open();
                }
            }
            //打开失败,抛出异常
            catch (Exception ex)
            {
                //捕获到异常信息,创建一个新的comm对象,之前的不能用了。
                comm = new SerialPort();
            }
            comm.Write("211");
        }
示例#47
0
        /// <summary>
        /// Constructor taking a SerialCommunicator object so as to allow COM settings to be
        /// implemented.
        /// </summary>
        /// <param name="communicator"></param>
        public SerialDataHandler(SerialCommunicator communicator, Rule rule, Value value)
        {
            //Create temp variable to read the required values.
            var comm = (SerialCommunicator) communicator;

            //Initialise the COM Port settings.
            _sPort = new SerialPort(comm.ComPort)
            {
                BaudRate = comm.BaudRate,
                Parity = Parity.None,
                StopBits = StopBits.One,
                DataBits = comm.DataBits,
                Handshake = Handshake.None,
                DtrEnable=comm.IsDTR,
                RtsEnable = comm.IsRTS
            };

            //Make the Value available.
            _value = value;

            //Output the data required - any instance of [val] is replaced with the actual value
            StringBuilder builder = new StringBuilder(rule.Action.OutputValue);
            builder.Replace("[val]", _value.StringValue);

            //Output the string
            OutputValue(builder.ToString());
        }
示例#48
0
        private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            System.IO.Ports.SerialPort sp = (System.IO.Ports.SerialPort)sender;
            if (sp.BytesToRead > 0 && sp.IsOpen)
            {
                try
                {
                    int count = sp.BytesToRead;
                    if (count > 0)
                    {
                        //Console.WriteLine("Recv线程id=" + System.Threading.Thread.CurrentThread.ManagedThreadId);
                        byte[] buffer = new byte[count];
                        sp.Read(buffer, 0, count);

                        _sendCount += buffer.Length;

                        if (tcpServer != null && tcpServer.IsRunning && currClientState != null)
                        {
                            tcpServer.SyncSend(currClientState, buffer);

                            if (sendCountChanged != null)
                            {
                                sendCountChanged(this, new CommDataCountEventArgs(_sendCount));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
示例#49
0
        /*
         *         public string ComPort = String.Empty;
        public int BaudRate = 110;
        public StopBits StopBits = StopBits.None;
        public int DataBits = 7;
        public Parity Parity = Parity.None;
         * */
        public BalanceReader(string comPort = "COM1", int baudRate = 9600, StopBits stopBits = StopBits.One,
            int dataBits = 7, Parity parity = Parity.Even, string sicsCommand = "SI", bool rts = false)
        {
            _sicsCommand = sicsCommand;

            if (comPort == String.Empty) comPort = "COM1";
            _port = new SerialPort
            {
                PortName = comPort,
                BaudRate = baudRate,
                StopBits = stopBits,
                DataBits = 7,
                Parity = Parity.Even,
                RtsEnable = rts
            };

            // from Page 39 of NewClassic Balances METTLER TOLEDO manual for MS-S / MS-L Models
            //_port.Handshake = Handshake.XOnXOff;

            if (_port.IsOpen == false)
            {
                try
                {
                    _port.Open();
                }
                catch (Exception)
                {
                    // port will not be open, therefore will become null
                }
            }

            _port.DataReceived += _port_DataReceived;
        }
示例#50
0
        public Buffer(System.IO.Ports.SerialPort com1, string strCom, string strLog)
        {
            right = 0;
            left  = 0;
            // 初始化 com
            this.com           = com1;
            com.ReadBufferSize = 16384;
            com.BaudRate       = 115200;
            com.StopBits       = StopBits.One;
            com.DataBits       = 8;
            com.Parity         = Parity.Even;
            this.strCom        = strCom;
            com.PortName       = strCom;

            this.strLog = strLog;
            bufLog      = new log(strLog);

            com.Open();
            buffer = new byte[MAXSIZE];
            // 此处得开启两个线程
            Thread rec = new Thread(new ThreadStart(RecieveComData));

            rec.Start();
            Thread any = new Thread(new ThreadStart(anyComData));

            any.Start();
        }
        private void btniniciar_Click(object sender, EventArgs e)
        {
            MSComm = new SerialPort();
            try
            {
                MSComm.PortName = cmbpuerto.Text.ToString();
                MSComm.BaudRate = Convert.ToInt32(cmbbaudios.Text.Trim());
                MSComm.Parity = System.IO.Ports.Parity.None;
                MSComm.DataBits = 8;
                MSComm.StopBits = System.IO.Ports.StopBits.One;
                MSComm.Handshake = System.IO.Ports.Handshake.None;
                MSComm.ReceivedBytesThreshold = 1;

                MSComm.DataReceived += serialPort_DataReceived;
                MSComm.Open();
                btniniciar.Enabled = false;
                btndetener.Enabled = true;
                Cambiar_Estado(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            CODBAR.Focus();
        }
示例#52
0
        public void Open()
        {
            Close();
            port = new System.IO.Ports.SerialPort();
            if (PortName == null)
            {
                throw new IOException("Serial port number not set");
            }
            if (baudRate == 0)
            {
                throw new IOException("Baud rate not set");
            }

            port.PortName     = PortName;
            port.BaudRate     = (int)baudRate;
            port.DataBits     = dataBits;
            port.DtrEnable    = dtrControl;
            port.NewLine      = newLine;
            port.Parity       = parity;
            port.ReadTimeout  = (int)readTimeout;
            port.RtsEnable    = rtsControl;
            port.StopBits     = stopBits;
            port.WriteTimeout = (int)writeTimeout;

            port.Open();
            while (port.IsOpen == false)
            {
            }
            isOpen = true;
        }
示例#53
0
        public SetupDialog(Data data)
        {
            InitializeComponent();

            _data = data;
            tbHeader.Enabled = false;
            tbFooter.Enabled = false;

            if (!string.IsNullOrEmpty(data.Header))
            {
                cbHeader.Checked = true;
                tbHeader.Enabled = true;
                tbHeader.Text = data.Header;
            }

            if (!string.IsNullOrEmpty(data.Footer))
            {
                cbFooter.Checked = true;
                tbFooter.Enabled = true;
                tbFooter.Text = data.Footer;
            }

            if (!string.IsNullOrEmpty(data.PortName))
            {
                _serialPort = new SerialPort(data.PortName, data.BaudRate, data.Parity, data.DataBits, data.StopBits);
                updateSettingLabel();
                btnOkay.Enabled = true;
            }
            else
            {
                lblSettings.Text = "Not Set";
                btnOkay.Enabled = false;
            }
        }
示例#54
0
 public ArduinoBoard()
 {
     _serialPort = new SerialPort();
     IsConnected = false;
     _communicationLock = new ManualResetEvent(true);
     _lock = new object();
 }
示例#55
0
        /// <summary>
        ///     Simple Modbus serial ASCII master read holding registers example.
        /// </summary>
        public static void ModbusSerialAsciiMasterReadRegisters()
        {
            using (SerialPort port = new SerialPort("COM1"))
            {
                // configure serial port
                port.BaudRate = 9600;
                port.DataBits = 8;
                port.Parity = Parity.None;
                port.StopBits = StopBits.One;
                port.Open();

                // create modbus master
                IModbusSerialMaster master = ModbusSerialMaster.CreateAscii(port);

                byte slaveId = 1;
                ushort startAddress = 1;
                ushort numRegisters = 5;

                // read five registers		
                ushort[] registers = master.ReadHoldingRegisters(slaveId, startAddress, numRegisters);

                for (int i = 0; i < numRegisters; i++)
                    Console.WriteLine("Register {0}={1}", startAddress + i, registers[i]);
            }

            // output: 
            // Register 1=0
            // Register 2=0
            // Register 3=0
            // Register 4=0
            // Register 5=0
        }
示例#56
0
        public GenericCATRadio(RadioConnectionSettings connectionSettings)
        {
            ConnectionSettings = connectionSettings;
            m_SerialPort = new SerialPort { PortName = connectionSettings.Port, BaudRate = connectionSettings.BaudRate, DtrEnable = connectionSettings.UseDTR, RtsEnable = connectionSettings.UseRTS };
            switch (connectionSettings.FlowControl)
            {
                case FlowControl.None:
                    m_SerialPort.Handshake = Handshake.None;
                    break;
                case FlowControl.DsrDtr:
                case FlowControl.RtsCts:
                    m_SerialPort.Handshake = Handshake.RequestToSend;
                    break;
                case FlowControl.XonXoff:
                    m_SerialPort.Handshake = Handshake.XOnXOff;
                    break;
            }
            m_SerialPort.Open();

            string logsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Cloudlog\\Logs");
            if (!Directory.Exists(logsFolder))
                Directory.CreateDirectory(logsFolder);
            string logPath = Path.Combine(logsFolder, "CloudlogCAT-" + DateTime.Now.ToString("yyyy-MM-dd-hhmmss") + ".txt");
            m_LogWriter = new StreamWriter(logPath);
            m_LogWriter.AutoFlush = true;

            m_PollThread = new Thread(PollMethod);
            m_PollThread.IsBackground = true;
            m_PollThread.Start();
        }
        public NodeConnection(string PortName)
        {
            serialPort = new SerialPort(PortName, 38400);
            serialPort.DataReceived += serialPort_DataReceived;

            currentReceiverMessage = new List<byte>();
        }
示例#58
0
        public void CreatePort(string portName)
        {
            // 默认:115200,无校验, 8数据位,1停止位
            if (sensorPort == null)
            {
                sensorPort = new System.IO.Ports.SerialPort(portName,
                                                            115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
            }
            // 重新创建新的串口
            else if (portName != sensorPort.PortName)
            {
                sensorPort.Close();
                sensorPort.Dispose();

                sensorPort = new System.IO.Ports.SerialPort(portName,
                                                            115200, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
            }

            if (sensorPort.IsOpen == false)
            {
                sensorPort.Open();

                sensorPort.ReadTimeout = 1000;

                sensorPort.WriteTimeout = 10;
            }
        }
示例#59
0
        public Arduino(string name, string comPort)
        {
            _sp = new SerialPort(comPort);
            _sp.BaudRate = BaudRate;
            _sp.DtrEnable = false;

            // Try to open the COM-port
            try
            {
                _sp.Open();
            }
            catch (Exception)
            {
                // Must cleanup ressources.
                this.Dispose();
                // Relay exception to the application.
                throw;
            }

            // Add event for incomming data
            _sp.DataReceived += DataReceivedHandler;

            _tempSerialData = new StringBuilder();

            NamesAndPorts.Add(name, comPort);
            Name = name;
        }
示例#60
0
 public ALDSerialPort(TotalConfiguration config)
 {
     serial = new Ports.SerialPort(config.COM, (int)config.Configuration.ConfigBitsPerSecond, config.Configuration.ConfigParity, (int)config.Configuration.ConfigDataBits, config.Configuration.ConfigStopBits);
     serial.ErrorReceived += new Ports.SerialErrorReceivedEventHandler(serial_ErrorReceived);
     serial.DataReceived  += new Ports.SerialDataReceivedEventHandler(serial_DataReceived);
     serial.Encoding       = Encoding.GetEncoding("Windows-1252");
 }