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内核的浏览器,一般做串口数据就会碰到这样的限制。

  • 相关阅读:
    【今日CV 视觉论文速览】 19 Nov 2018
    【numpy求和】numpy.sum()求和
    【今日CV 视觉论文速览】16 Nov 2018
    【今日CV 视觉论文速览】15 Nov 2018
    poj 2454 Jersey Politics 随机化
    poj 3318 Matrix Multiplication 随机化算法
    hdu 3400 Line belt 三分法
    poj 3301 Texas Trip 三分法
    poj 2976 Dropping tests 0/1分数规划
    poj 3440 Coin Toss 概率问题
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3483424.html
Copyright © 2011-2022 走看看