zoukankan      html  css  js  c++  java
  • silverlight 进行本地串口调用的一种可行的解决方法 之silverlight端代码

    接上边的文章。

    在javascript暴露操作activex 串口接收之后,就是silverlight端进行串口数据的显示,我们的显示方式比较简单,只是为了演示,我们每隔1秒进行数据的获取并显示,

    为了进行测试我们使用的是虚拟串口,虚拟串口的软件比较多,我使用的是VSPD虚拟串口的破解版(大家都爱这样用),这个软件的使用是比较简单的。我的虚拟串口如图

    我测试的时候使用的是COM3 与COM4 这是成对出现的,主要是方便调试,一个发送,一个接受。

    我了进行发送,我写了一个比较简单的发送端,使用C#的,思路很简单就是每隔一定的时间进行连续的发送数据,这些数据是有编号的(主要是方便查看)。

    主要的代码如下:

    public string comMame = "COM4"; //使用COM4
    public SerialPort port; //定义串口类
    public int index = 0; // 进行发送编号的。

    private void write()
    {
    port = new SerialPort(comMame);
    if (port.IsOpen == false)
    {
    try
    {
    port.Open();
    index++;
    port.Write("dalong" + index);
    port.Close();
    }
    catch (Exception)
    {


    }
    }
    else
    {
    index++;
    port.Write("dalong" + index);
    }
    }

    上边的write方法是进行数据发送的,比较简单。间隔发送使用的是Timer组件。直接双击写代码即可。

    silverlight的界面如下:

    打开串口COM3的代码如下:

    private void Button_Click_5(object sender, RoutedEventArgs e)
    {
    bool istrue= Start("COM3");
    MessageBox.Show(istrue.ToString());
    }

    关闭串口COM3的代码如下:

    private void Button_Click_6(object sender, RoutedEventArgs e)
    {
    bool istrue = Stop("COM3");
    MessageBox.Show(istrue.ToString());
    }

    获取连续数据的代码如下:

       string result = ""; // 接受的数据

      DispatcherTimer time; //定时器

      private void Button_Click_3(object sender, RoutedEventArgs e)        {           

         time = new DispatcherTimer();         

        time.Interval =new TimeSpan(0,0 ,1);       

        time.Tick += time_Tick;         

       time.Start();       

      }

     void time_Tick(object sender, EventArgs e)
     {
        result ="接受到的数据是:"+ getData();
        textinfo.Dispatcher.BeginInvoke(new Action(() => textinfo.Text = result));
    }

    调试界面如下:(比较简单)

    这个获取瞬间数据的方法。

    连续数据的界面如下:

    以上方案编码经测试是可行的,只是对于客户端需要安装.net Framework 实际在部署的时候可以使用.net 2.0 进行activex插件的开发,可以减少用户的下载,并且我们使用的过程中客户必须使用IE内核的浏览器,一般做串口数据就会碰到这样的限制。

  • 相关阅读:
    菜鸟合作伙伴日志接入规范之C#实现
    使用JS在textarea在光标处插入内容
    ASP.NET MVC API 接口验证
    CSS3 grayscale滤镜+SVG使图片变黑白实例页面
    .NET MVC 获取 当前请求的 控制器/视图/区域 的名字
    asp.net 后台获取flv视频地址进行播放【转】
    实现输出h264直播流的rtmp服务器 flash直播服务器【转】
    如何实现一个c/s模式的flv视频点播系统
    视频流服务器配置[windows平台][转]
    小计
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3483424.html
Copyright © 2011-2022 走看看