MF 模拟器读取PC串口数据

  1 using System;
  2 using Microsoft.SPOT;
  3 using Microsoft.SPOT.Input;
  4 using Microsoft.SPOT.Presentation;
  5 using Microsoft.SPOT.Presentation.Controls;
  6 using System.IO;
  7 using System.IO.Ports;
  8 using System.Threading;
  9 using Microsoft.SPOT.Hardware;
 10 using Microsoft.SPOT.Touch;
 11 using Microsoft.SPOT.IO;
 12
 13 namespace MFWindowApplication1
 14 {
 15     public class Program : Microsoft.SPOT.Application
 16     {
 17         public static void Main()
 18         {
 19             Program myApplication = new Program();
 20
 21             Window mainWindow = myApplication.CreateWindow();
 22
 23             // Create the object that configures the GPIO pins to buttons.
 24             GPIOButtonInputProvider inputProvider = new GPIOButtonInputProvider(null);
 25
 26             #region Test
 27
 28             //InterruptPort myBtn = new InterruptPort((Cpu.Pin)(0),
 29             //    true,
 30             //    Port.ResistorMode.PullDown,
 31             //    Port.InterruptMode.InterruptEdgeBoth);
 32             //myBtn.OnInterrupt += (a, b, c) =>
 33             //{
 34             //};
 35
 36             // InputPort[] inputs = new InputPort[5];
 37             //Cpu.Pin[] pins = new Cpu.Pin[]{
 38             //Cpu.Pin.GPIO_Pin0,
 39             //};
 40
 41             #endregion
 42
 43             // Start the application
 44             myApplication.Run(mainWindow);
 45         }
 46
 47         private Window mainWindow;
 48
 49         public Window CreateWindow()
 50         {
 51             // Create a window object and set its size to the
 52             // size of the display.
 53             mainWindow = new Window();
 54             mainWindow.Height = SystemMetrics.ScreenHeight;
 55             mainWindow.Width = SystemMetrics.ScreenWidth;
 56
 57             // Create a single text control.
 58             Text text = new Text();
 59
 60             text.Font = Resources.GetFont(Resources.FontResources.small);
 61             text.TextContent = Resources.GetString(Resources.StringResources.String1);
 62             text.HorizontalAlignment = Microsoft.SPOT.Presentation.HorizontalAlignment.Center;
 63             text.VerticalAlignment = Microsoft.SPOT.Presentation.VerticalAlignment.Center;
 64
 65             // Add the text control to the window.
 66             mainWindow.Child = text;
 67
 68             // Connect the button handler to all of the buttons.
 69             mainWindow.AddHandler(Buttons.ButtonUpEvent, new RoutedEventHandler(OnButtonUp), false);
 70
 71             // Set the window visibility to visible.
 72             mainWindow.Visibility = Visibility.Visible;
 73
 74             // Attach the button focus to the window.
 75             Buttons.Focus(mainWindow);
 76
 77             SerialPort sp = new SerialPort("COM1", 9600);
 78             sp.Open();
 79             sp.DataReceived += (a, b) =>
 80             {
 81                 int nDL = sp.BytesToRead;
 82                 int i = 0;
 83                 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 84                 while (i < nDL)
 85                 {
 86                     byte[] datas = new byte[nDL];
 87                     int nLen = sp.Read(datas, 0, datas.Length);
 88                     string s = new string(System.Text.Encoding.UTF8.GetChars(datas, 0, nLen));//0, nLen
 89                     sb.Append(s);
 90                     i += nLen;
 91                 }
 92
 93                 text.Dispatcher.Invoke(new TimeSpan(1),
 94                     new DispatcherOperationCallback((v) =>
 95                     {
 96                         text.TextContent = v == null ? "#ERROR" : v.ToString();
 97                         return true;
 98                     }),
 99                     sb.ToString());
100             };
101             return mainWindow;
102         }
103
104         private void OnButtonUp(object sender, RoutedEventArgs evt)
105         {
106             ButtonEventArgs e = (ButtonEventArgs)evt;
107
108             // Print the button code to the Visual Studio output window.
109             Debug.Print(e.Button.ToString());
110         }
111     }
112 }

原文地址:https://www.cnblogs.com/wang_xy/p/12050598.html

时间: 2024-11-09 01:22:21

MF 模拟器读取PC串口数据的相关文章

android模拟器使用PC串口调试

android模拟器使用PC串口调试1.模拟器可以使用PC的串口  启动模拟器并加载PC串口 命令如下:  运行 emulator @模拟器名称 -qemu -serial COM12.查看串口是否被加载  启动后使用 adb shell 命令打开命令行  cd dev 查看会发现ttyS0 ttyS1 ttyS2,其他ttyS2 就是我们加载上来的串口COM13.修改权限 chmod 777 ttyS2   现在我们可以开发串口程序了. 摘自

在VMware里的linux用minicom读取串口数据

在VMware里的linux装minicom读取串口数据: 软件环境:在win7上装VMwave,在VMware里装的Ubuntu,在Ubuntu 里装的串口工具minicom. 硬件:Z-Tek的usb转串口 (内部的IC:PL2303) 1,给电脑插上USB转串口的硬件,打开WMware,如果VMware检测到该硬件,则打开VMware时会出现对应的提示: 打开ubuntu后,同时在VMware软件的右下角也会有该设备的小图标,右键选择connect: 同时也要connect    Real

Android(Linux)实时监测串口数据

之前在做WinCE车载方案时,曾做过一个小工具TraceMonitor,用于显示WinCE系统上应用程序的调试信息,特别是在实车调试时,用于显示CAN盒与主机之间的串口数据.因为需要抢占市场先机,经常在新车上市前,就得配合CAN解码盒厂商同步调试车机端软件.这时候,TraceMonitor就可能派上大用场.遇到说不清是哪一边的问题时,抓数据一看,就清清楚楚了.有时终端客户的机器出现了原车功能异常的问题,也可以直接运行该工具,实时抓取串口数据提供给我们以分析问题原因.不过该工具需要业务应用程序做特

C# ---- 串口数据 YSI 实例

如本文时间 23:05 由于实际设备使用网络传输转虚拟串口模式,现场安装之后还是出了问题. 从20:30研究到23:30才终于弄明白 //打开新的串行端口连接 sp.Open(); //丢弃来自串行驱动程序的接受缓冲区的数据 sp.DiscardInBuffer(); //丢弃来自串行驱动程序的传输缓冲区的数据 sp.DiscardOutBuffer(); //使用缓冲区的数据将指定数量的字节写入串行端口 sp.Write(wbb, 0, wbb.Length); //当前线程挂起500毫秒 S

网络编程 --- URLConnection --- 读取服务器的数据 --- java

使用URLConnection类获取服务器的数据 抽象类URLConnection表示一个指向指定URL资源的活动连接,它是java协议处理器机制的一部分. URL对象的openConnection()方法就是调用了URLStreamHandler的openConnection()方法. 如有疑问请参考:JAVA网络编程[第三版], 如下图: 怎样获取服务器输出的数据呢?代码如下: import java.io.IOException; import java.io.InputStream; i

串口数据上传下发

1 import gnu.io.CommPortIdentifier; 2 import gnu.io.NoSuchPortException; 3 import gnu.io.PortInUseException; 4 import gnu.io.SerialPort; 5 import gnu.io.SerialPortEvent; 6 import gnu.io.SerialPortEventListener; 7 import gnu.io.UnsupportedCommOperatio

Modbus: 1. Java使用Modbus读取Slave端数据(TCP)

最近手上接了个Unity3D的项目,这个项目需要和真机联动,和真机联动我们需要通过Modbus协议.所以Modbus这一块的就我来实现,因为项目最好会打包为android的,所以就用java来做,看了下java中还真有不少相关的库,最后决定用Jamod这个库,地址:Jamod 在使用的过程中发现,Jamod再封装某些对象的时候都是单例的,比如说我想在一台电脑上模拟出一个Slave端出来,但是这个库限定了在同一台电脑的同一个程序中只能模拟出一个,如果我想模拟多个就需要弄出多个程序出来,这显然不符合

C# ---- 串口数据YSI实例

原文:C# ---- 串口数据YSI实例 C#----串口数据接收发送中,发送接收数据已经可以模拟了. 本次YSI实例过程中 主要是:类型转换问题 .计算校验码 一.不同设备不同的规则,本次实例代码如下: string serialNumber = sn;//Packet Command Payload int i1 = 0x11;//Packet Length Byte int i2 = 0xA5;//Packet Sync Byt[] string[] strarr = new string

WEB页获取串口数据

最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多  大致分两种 使用ActiveX控件,JS调用MSCOMM32.dll的串口控件对串口进行控制 使用C#语言的控件对串口进行控制,然后使用JS+AJAX与C#进行交互获得串口数据 详情见  使用JS获得串口数据 http://blog.csdn.net/xuing/article/details/6688306    但是小弟用这两种办法都获取到数据 串口配置如下: 1 serialPort1.PortN