به چه روشی در WINCE6 با زبان C# می شود با پورتهای برد tiny210 ارتباط برقرار کرد.من می خواهم یک صفحه کلید ماتریسی را باهاش راه اندازی کنم
ممنون می شم کمک کنید.
ممنون می شم کمک کنید.
using System; using System.Linq; using System.Collections.Generic; using System.Text; namespace SerialPort.ViewModel { public class Port { #region Property /// <summary> /// این پراپرتی مقدار شماره پورت را نگه داشته /// </summary> private string PortName { get; set; } /// <summary> /// این پراپرتی میزان باند ریت را نگه میدارد /// </summary> private int BaudRate { get; set; } private System.IO.Ports.SerialPort _mySerialPort; /// <summary> /// این پراپرتی یک پورت را تعریف کرده که با اولین بار فراخوانی پورت را ساخته و تنظیمات اولیه را انجام داده و برای دورهای بعد میتوان از آن استفاده نمود /// </summary> private System.IO.Ports.SerialPort MySerialPort { get { if (_mySerialPort == null) { _mySerialPort = new System.IO.Ports.SerialPort(); _mySerialPort.BaudRate = BaudRate; _mySerialPort.DataBits = 8; _mySerialPort.StopBits = System.IO.Ports.StopBits.One; _mySerialPort.Parity = System.IO.Ports.Parity.None; _mySerialPort.PortName = PortName; _mySerialPort.RtsEnable = true; _mySerialPort.DtrEnable = true; _mySerialPort.Handshake = System.IO.Ports.Handshake.None; _mySerialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(SerialPort_DataReceived); } return _mySerialPort; } } #endregion /// <summary> /// شما با فراخوانی این تابع ابتدا پورت را ساخته و مقدار باندریت و شماره پورت را بدان اختصاص میدهید /// </summary> /// <param name="baudRate">مقدار باند ریت</param> /// <param name="portName">شماره پورت</param> public void InitData(int baudRate, string portName) { PortName = portName; BaudRate = baudRate; MySerialPort.Open(); } /// <summary> /// جهت ارسال مقداری به پورت مقدار خود را به صورت رشته به این تابع ارسال کرده و این تابع بر اساس یکی از دو راحل انتخابی شما مقدار را به پورت ارسال می نماید /// لازم به ذکر است انتخاب هر راحل بسته به نیاز شماست /// </summary> /// <param name="command">متن ارسالی به پورت</param> internal void SendData(string command) { //راحل اول foreach (char ch in command) { MySerialPort.Write(new char[] { ch }, 0, 1); //System.Threading.Thread.Sleep(2); } //راحل دوم //MySerialPort.Write(command); } /// <summary> /// زمانی که داده ای از پورت دریافت شود این تابع به صورت اتوماتیک فراخوانی شده و شما میتوانید مقدار دریافت شده را کنترل نمایید /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SerialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { //System.Threading.Thread.Sleep(100); int byteCount = MySerialPort.BytesToRead; byte[] byteContext = new byte[byteCount]; MySerialPort.Read(byteContext, 0, byteCount); //الان داده مورد نظر شما به صورت بایت در متغیر //byteContext //قرار دارد } } }
دیدگاه