上位机软件开发实例(java开发上位机软件)

软件开发 4029
本篇文章给大家谈谈上位机软件开发实例,以及java开发上位机软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、

本篇文章给大家谈谈上位机软件开发实例,以及java开发上位机软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~

 用 socket  类  udp  tcp       我这 给你个  最简单的 例子  udp

服务器端

Imports System.Net.Sockets

Imports System.Net

Module socketsever

  Sub main()

      startserver()

    End Sub

  Private Sub startserver()

      '创建服务器端的socket

      Dim sServer As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

      Dim myip As IPAddress

      '制订本地回路的ip地址

      myip = IPAddress.Parse("10.13.115.105")

      '设置服务器端口号

      Dim sServerep As New IPEndPoint(myip, 2001)

      '设置客户端的端口号

      Dim clientep As New IPEndPoint(myip, 2002)

      '将端口与socket绑定

      sServer.Bind(sServerep)

      While True

          Try

              Dim bytes(100) As Byte

              '等待客户端的请求

              sServer.ReceiveFrom(bytes, clientep)

              Dim str As String = System.Text.Encoding.ASCII.GetString(bytes)

              '将字符转化成大写

              str = str.ToUpper

              bytes = System.Text.Encoding.ASCII.GetBytes(str)

              '返回结果

              sServer.SendTo(bytes, clientep)

          Catch e As SocketException

          End Try

      End While

  End Sub

End Module

客户端

界面  和程序

Imports System.Net.Sockets

Imports System.Net

Public Class Form1

  Inherits System.Windows.Forms.Form

  Private Sub bsend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsend.Click

      '创建客户端的socket

      Dim cClient As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

      '指定本地回路的ip地址

      Dim myip, myip1 As IPAddress

      myip = IPAddress.Parse("10.13.115.105")

      myip1 = IPAddress.Parse("10.13.115.136")

      '设置服务器端口号

      Dim Serverep As New IPEndPoint(myip1, 2001)

      '设置客户端的端口号

      Dim clientep As New IPEndPoint(myip, 2002)

      '将端口与socket绑定

      cClient.Bind(clientep)

      Try

          Dim str As String = Textinput.Text

          Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes(str)

          '向服务器发出请求

          cClient.SendTo(bytes, Serverep)

          Dim bytes2(100) As Byte

          '接受服务器的响应结果

          cClient.ReceiveFrom(bytes2, Serverep)

          str = System.Text.Encoding.ASCII.GetString(bytes2)

          '将结果显示在文本框中

          Textdisplay.Text = Textdisplay.Text  vbNewLine  str

      Catch er As SocketException

          MsgBox(er.ToString)

      End Try

      cClient.Close()

  End Sub

End Class

利用电脑做上位机开发一个软件,用单片机做下位机。在上位机上点击软件上的按钮能使单片机输出一路I/O口

主要涉及到单片机基础知识,重点是串口通信,上位机可以考虑vc和.net,这两种都可以。.net使用c#语言,感觉比较好上手,我也可以给你点视频教程,一学就会。

如何用c语言开发自己的上位机软件

一般开发上位机软件都是带图形界面的。C也能做出图形界面的软件,但是开发周期太长也不实用。所以最好还是需要会一些其他语言,例如C++,C#,Java这些做图形界面开发周期短的语言。既然会C,那么学习其他语言也只是一个熟悉语法的过程。所以很快就能上手,因为语言都是相通的嘛。可以开阔自己的视野去学习一下新的语言。不是说只会C有什么弊端,只是想说会的多才会知道语言之间的优劣。

vb串口通信程序实例

我也是自己摸索开发出来的每一款VBtoCOM通讯,有具体的思路如下:

给你推荐一个工具“com串口测试工具 ComTone V1.0 中文绿色版”

1、打开你的噪音计的测试软件,调整好串口号、通讯频率等等,我用温度计举例说明。

开始查询后有返回数值,这个Receive:就是返回的数值000304012200004b05,

打开串口监视精灵,监视软件的com口事件:

这里面的Write是测试软件发出的查询指令,read是设备返回的数据指令

Private Sub Command1_Click() '发送指令

If Not MSComm1.PortOpen Then

  MSComm1.CommPort = 7 '串口为7

  MSComm1.Settings = "9600,n,8,1"

  MSComm1.InBufferCount = 0 '清除接收缓冲区

  MSComm1.OutBufferCount = 0 '清除发送缓冲区

  MSComm1.InputMode = comInputModeBinary '二进制接收

  MSComm1.InputLen = 0 '读取接收缓冲区的所有字符

  MSComm1.PortOpen = True  '打开串口

  MSComm1.RTSEnable = False '置为发送状态

End If

Dim pu() As Byte

Dim strdata  As String

Dim crc_js() As Byte

ReDim pu(7)  '这个数组是8位的查询指令

pu(0) = "H00" '温度计地址

pu(1) = "H03" '查询指令

pu(2) = "H00" '2、3为温度计地址

pu(3) = "H00" '2、3为温度计地址

pu(4) = "H00" '4、5为读取寄存器长度

pu(5) = "H02" '4、5为读取寄存器长度

pu(6) = "HC5" '6、7为CRC校验码 因为我们不知道设备的CRC校验规则所以用测试软件产生的校验码

pu(7) = "HDA" '6、7为CRC校验码

MSComm1.Output = pu

'不做任何事情,仅仅允许其它应用程序处理它们的事件。

DoEvents

MSComm1.InBufferCount = 0 '清除接收缓冲区

MSComm1.RThreshold = 9 '所要接收的数据长度,我们通过COM检测精灵看到了回传数据一共是9字节

MSComm1.RTSEnable = True '转为接收状态

End Sub

Private Sub Command2_Click()

Timer1.Enabled = False

End Sub

Private Sub Form_Unload(Cancel As Integer)

    If MSComm1.PortOpen Then

        MSComm1.PortOpen = False  '关闭串口

    End If

    Timer1.Enabled = False

End Sub

Private Sub MSComm1_OnComm() 'COM事件

    Dim PA() As Byte

    Dim PB As String

Select Case MSComm1.CommEvent

 Case comEvReceive

            MSComm1.InputLen = 0 '读取接收缓冲区的所有字符

            PB = MSComm1.Input

            PA() = PB

            For i = 0 To UBound(PA())

                'Print "PA("  i  ")"; PA(i)

                If Len(Hex(PA(i))) = 1 Then

                    strdata = strdata  "0"  Hex(PA(i))

                Else

                    strdata = strdata  Hex(PA(i))

                End If

            Next

            '回传的数据串:000304012600000AC4,这9字节根据通讯协议我们进行拆分

            '00为协议内回传机号,03为读命令,04为返回的数据长度 0126 为我要的温度数据为十六进制表达,下面我进行数据处理

            wd = CLng("H"  Left(Right(strdata, 12), 4)) / 10  "℃"   '根据通讯协议换算成温度

            Text1 = Text1  vbCrLf  strdata  "  "  wd

            strdata = ""

   MSComm1.PortOpen = False  '关闭串口

 End Select

End Sub

Private Sub Timer1_Timer()

Call Command1_Click

End Sub

这是我的测试结果。

下面是通讯协议

这个是我的软件用检测精灵检测的结果

上位机软件开发实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java开发上位机软件、上位机软件开发实例的信息别忘了在本站进行查找喔。

扫码二维码