精华内容
下载资源
问答
  • 本文主要对基于TCP/IP串口数据流做了阐述,并提出了基于硬件与软件相结合实现的串口服务器的系统整体解决方案,对硬件系统的总体、组成框架应用架构做了阐述。 关键词: 串口数据流 TCP/IP 串口服务器 着...
  • DTU (Data Transfer unit),是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过无线通信网络进行传送的无线终端设备。DTU广泛应用于气象、水文水利、地质等行业。 转载于:...

    DTU (Data Transfer unit),是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过无线通信网络进行传送的无线终端设备。DTU广泛应用于气象、水文水利、地质等行业。

    转载于:https://www.cnblogs.com/shuenjian901/p/3606453.html

    展开全文
  • TCP/IP通信或串口通信数据类型转换

    千次阅读 2016-09-27 15:39:40
    TCP/IP通信或串口通信数据类型转换
            /// <summary>
            /// string转换为byte[]数组
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static byte[] GetBytes(string str)
            {
                byte[] bytes = new byte[str.Length * sizeof(char)];
                System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
                return bytes;
            }
    
            /// <summary>
            /// byte[]数组转换为strng
            /// </summary>
            /// <param name="bytes"></param>
            /// <returns></returns>
            public static string GetString(byte[] bytes)
            {
                char[] chars = new char[bytes.Length / sizeof(char)];
                System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
                return new string(chars);
            }
    
            /// <summary>
            /// 字节数组转16进制字符串
            /// </summary>
            /// <param name="bytes"></param>
            /// <returns></returns>
            public static string byteToHexStr(byte[] bytes)
            {
                string returnStr = "";
                if (bytes != null)
                {
                    for (int i = 0; i < bytes.Length; i++)
                    {
                        returnStr += bytes[i].ToString("X2");
                    }
                }
                return returnStr;
            }
    
            /// <summary>
            /// byte转换为string
            /// </summary>
            /// <param name="bytes"></param>
            /// <param name="len"></param>
            /// <returns></returns>
            public static string ToHexString(byte[] bytes, int len)
            {
                return ToHexString(bytes, 0, len);
            }
    
            public static string ToHexString(byte[] bytes, int start, int len)
            {
                string strReturn = "";
                for (int i = start; i < (start + len); i++)
                {
                    byte bt = bytes[i];
                    strReturn += bt.ToString("x2");
                }
                return strReturn;
            }
    
    
    
            /// <summary>
            /// 16进制转ASCII
            /// </summary>
            /// <param name="Msg"></param>
            /// <returns></returns>
            public static string HexToASCII(string Msg)
            {
                byte[] buff = new byte[Msg.Length / 2];
                string Message = "";
                for (int i = 0; i < buff.Length; i++)
                {
                    buff[i] = byte.Parse(Msg.Substring(i * 2, 2),
                       System.Globalization.NumberStyles.HexNumber);
                }
    
                System.Text.Encoding chs = System.Text.Encoding.ASCII;
                Message = chs.GetString(buff);
                return Message;
            }
    
            /// <summary>
            /// 字符串转16进制字节数组
            /// </summary>
            /// <param name="hexString"></param>
            /// <returns></returns>
            private static byte[] strToToHexByte(string hexString)
            {
                hexString = hexString.Replace(" ", "");
                if ((hexString.Length % 2) != 0)
                    hexString += " ";
                byte[] returnBytes = new byte[hexString.Length / 2];
                for (int i = 0; i < returnBytes.Length; i++)
                    returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
                return returnBytes;
            }
    
            /// <summary>
            /// 16进制转换为byte[]
            /// </summary>
            /// <param name="hexStr"></param>
            /// <returns></returns>
            public static byte[] ToByesByHex(string hexStr)
            {
                int len = hexStr.Length;
    
                byte[] data = new byte[len / 2];
    
                for (int k = 0; k < data.Length; k++)
                {
                    data[k] = Convert.ToByte(hexStr.Substring(k * 2, 2), 16);
                    //k = k* 2;
                }
    
                return data;
            }
    
            /// <summary>
            /// 从汉字转换到16进制
            /// </summary>
            /// <param name="s"></param>
            /// <param name="charset">编码,如"utf-8","gb2312"</param>
            /// <param name="fenge">是否每字符用逗号分隔</param>
            /// <returns></returns>
            public static string ToHex(string s, string charset, bool fenge)
            {
                if ((s.Length % 2) != 0)
                {
                    s += " ";//空格
                             //throw new ArgumentException("s is not valid chinese string!");
                }
                System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
                byte[] bytes = chs.GetBytes(s);
                string str = "";
                for (int i = 0; i < bytes.Length; i++)
                {
                    str += string.Format("{0:X}", bytes[i]);
                    if (fenge && (i != bytes.Length - 1))
                    {
                        str += string.Format("{0}", ",");
                    }
                }
                return str.ToLower();
            }
            
            ///<summary>
            /// 从16进制转换成汉字
            /// </summary>
            /// <param name="hex"></param>
            /// <param name="charset">编码,如"utf-8","gb2312"</param>
            /// <returns></returns>
            public static string UnHex(string hex, string charset)
            {
                if (hex == null)
                    throw new ArgumentNullException("hex");
                hex = hex.Replace(",", "");
                hex = hex.Replace("\n", "");
                hex = hex.Replace("\\", "");
                hex = hex.Replace(" ", "");
                if (hex.Length % 2 != 0)
                {
                    hex += "20";//空格
                }
                // 需要将 hex 转换成 byte 数组。 
                byte[] bytes = new byte[hex.Length / 2];
    
                for (int i = 0; i < bytes.Length; i++)
                {
                    try
                    {
                        // 每两个字符是一个 byte。 
                        bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
                        System.Globalization.NumberStyles.HexNumber);
                    }
                    catch
                    {
                        // Rethrow an exception with custom message. 
                        throw new ArgumentException("hex is not a valid hex number!", "hex");
                    }
                }
                System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
                return chs.GetString(bytes);
            }
    
            /// <summary>
            /// Unicode转汉字
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            public static string UnicodeToGB(string text)
            {
                System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})");
                if (mc != null && mc.Count > 0)
                {
                    foreach (System.Text.RegularExpressions.Match m2 in mc)
                    {
                        string v = m2.Value;
                        string word = v.Substring(2);
                        byte[] codes = new byte[2];
                        int code = Convert.ToInt32(word.Substring(0, 2), 16);
                        int code2 = Convert.ToInt32(word.Substring(2), 16);
                        codes[0] = (byte)code2;
                        codes[1] = (byte)code;
                        text = text.Replace(v, Encoding.Unicode.GetString(codes));
                    }
                }
                else
                {
    
                }
                return text;
            }
    
            public static string unicodetogbx(string text)
            {
                System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})");
                string a = text.Replace("\\u", "");
                char[] arr = new char[mc.Count];
                for (int i = 0; i < arr.Length; i++)
                {
                    arr[i] = (char)Convert.ToInt32(a.Substring(i * 4, 4), 16);
                }
                string c = new string(arr);
                return c;
            }
    
            /// <summary>
            /// Unicode转汉字(测试通过)
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            public static string UnicodeToCn(string text)
            {
                string cd = text;
                string cd2 = cd.Replace(" ", "");
                cd2 = cd2.Replace("\r", "");
                cd2 = cd2.Replace("\n", "");
                cd2 = cd2.Replace("\r\n", "");
                cd2 = cd2.Replace("\t", "");
                if (cd2.Length % 4 != 0)
                {
                    //MessageBox.Show("Unicode编码为双字节,请删多或补少!确保是二的倍数。");
                    return "";
                }
                else
                {
                    int len = cd2.Length / 2;
                    byte[] b = new byte[len];
                    for (int i = 0; i < cd2.Length; i += 2)
                    {
                        string bi = cd2.Substring(i, 2);
                        b[i / 2] = (byte)Convert.ToInt32(bi, 16);
                    }
                    string o = Encoding.Unicode.GetString(b);
                    //textBox2.Text = o;
                    return o;
                }
            }
    
            /// <summary>  
            /// 字符串转为UniCode码字符串  
            /// </summary>  
            /// <param name="s"></param>  
            /// <returns></returns>  
            public static string StringToUnicode(string s)
            {
                char[] charbuffers = s.ToCharArray();
                byte[] buffer;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < charbuffers.Length; i++)
                {
                    buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
                    sb.Append(String.Format("//u{0:X2}{1:X2}", buffer[1], buffer[0]));
                }
                return sb.ToString();
            }
            /// <summary>  
            /// Unicode字符串转为正常字符串  
            /// </summary>  
            /// <param name="srcText"></param>  
            /// <returns></returns>  
            public static string UnicodeToString(string srcText)
            {
                string dst = "";
                string src = srcText;
                int len = srcText.Length / 6;
                for (int i = 0; i <= len - 1; i++)
                {
                    string str = "";
                    str = src.Substring(0, 6).Substring(2);
                    src = src.Substring(6);
                    byte[] bytes = new byte[2];
                    bytes[1] = byte.Parse(int.Parse(str.Substring(0, 2), NumberStyles.HexNumber).ToString());
                    bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), NumberStyles.HexNumber).ToString());
                    dst += Encoding.Unicode.GetString(bytes);
                }
                return dst;
            }

    展开全文
  • 简述 有很多的小伙伴说用Linux树莓派来读取JY61的串口数据不知道怎么操作。今天我大家分享下我是从三个方面分享的。1、JY61树莓派的连接方式及VNC的使用;2、下载到树莓派的程序是如何编写的;3、结果展示1、JY...

    简述

    有很多的小伙伴说用Linux树莓派来读取JY61的串口数据不知道怎么操作。今天我和大家分享下我是从三个方面分享的。1、JY61和树莓派的连接方式及VNC的使用;2、下载到树莓派的程序是如何编写的;3、结果展示

    1、JY61和树莓派的连接方式及VNC的使用

    1.1给树莓派 连接电源和网线

    c93f67f5805ff65810780af06e7db507.png

    1.2连接上树莓派和JY61的模块

    注意六合一串口模块拨码1为ON、拨码2为OFF,开关S1置other ;

    JY61模块跟六合一串口模块引脚需要一一对应

    VCC对3V3

    RX对TX

    TX对RX

    GND对GND

    0dc1e6378b55d3eb622e4ff9762fab8e.png

    1.3 下载VNC

    前往官网下载VNC,官网地址:https://www.realvnc.com/en/

    软件安装步骤参考官网安装步骤,在下载的文件夹VNC Viewer中打开vncviewer.exe

    3cc5596dd68b2fbb0ebff14844adfa79.png

    在这里输入树莓派的ip地址(可通过ip搜索器搜索,选择ip名为raspberrypi的ip地址)

    (## IP搜索器可自行百度下载)

    1.4 登陆VNC

    输入账号密码, 账号:**** 密码:**** 账号密码参考自己的树莓派资料

    28e8c5cf6a98ad6229b0bf9752183f15.png

    1.5 把代码拷贝到VNC

    907e530285c50a461e3c949720250484.png

    1.6 拷贝文件位置

    9ba04c14985329639611b6aef6a1aa63.png

    1.7 终端运行程序

    注:右键可打开终端

    终端中的Desktop文件夹即为桌面

    编辑:gcc Uart61Demo.cpp -o Uart61Demo

    运行:./ Uart61Demo

    36a4359a887c8b34d1c7dca4fdacf789.png

    2 程序编写

    程序一共包括串口打开部分、串口设置、JY61数据接收与处理、主程序的运行。

    2.1 串口打开

    int 

    2.2 串口设置

    int 

    2.3 JY61串口数据的接受和处理

    void 

    2.4 主函数

    int 

    3 结果展示

    181ffb2ca590827e99a318eae1e440c3.png
    展开全文
  • 简述 有很多的小伙伴说用Linux树莓派来读取JY901的串口数据不知道怎么操作。今天我大家分享下我是从三个方面分享的。1、JY901树莓派的连接方式及VNC的使用;2、下载到树莓派的程序是如何编写的;3、结果展示1、...

    简述

    有很多的小伙伴说用Linux树莓派来读取JY901的串口数据不知道怎么操作。今天我和大家分享下我是从三个方面分享的。1、JY901和树莓派的连接方式及VNC的使用;2、下载到树莓派的程序是如何编写的;3、结果展示

    1、JY901和树莓派的连接方式及VNC的使用

    1.1给树莓派 连接电源和网线

    444e791fcb06ff9a2117f777389b19d4.png

    1.2连接上树莓派和JY901的模块

    注意六合一串口模块拨码1为ON、拨码2为OFF,开关S1置other ;

    JY61模块跟六合一串口模块引脚需要一一对应

    VCC对3V3

    RX对TX

    TX对RX

    GND对GND

    ece86cfb64a38ded6995afb8ff323f35.png

    1.3 下载VNC

    前往官网下载VNC,官网地址:https://www.realvnc.com/en/

    软件安装步骤参考官网安装步骤,在下载的文件夹VNC Viewer中打开vncviewer.exe

    1d5e0c4ba827ca915101e8a26545d4e9.png

    在这里输入树莓派的ip地址(可通过ip搜索器搜索,选择ip名为raspberrypi的ip地址)

    (## IP搜索器可自行百度下载)

    1.4 登陆VNC

    输入账号密码, 账号:**** 密码:**** 账号密码参考自己的树莓派资料

    2e2944630050b8fb28cc444a7e4d4a83.png

    1.5 把代码拷贝到VNC

    c4302eded95cfd45e3f759b13c1942ce.png

    1.6 拷贝文件位置

    cb345bb1d209a64329ba96a93fbef534.png

    1.7 终端运行程序

    注:右键可打开终端

    终端中的Desktop文件夹即为桌面

    编辑:gcc Uart61Demo.cpp -o Uart61Demo

    运行:./ Uart61Demo

    243e459131524c37df3d3be7d6ecc18c.png

    2 程序编写

    程序一共包括串口打开部分、串口设置、JY901数据接收与处理、主程序的运行。

    2.1 串口打开

    int 

    2.2 串口设置

    int 

    2.3 JY61串口数据的接受和处理

    void 

    2.4 主函数

    int 

    3 结果展示

    08d3473d2049c21fa276d9ee9d5b1a03.png
    展开全文
  • TCP/IP通信或串口通信数据校验

    千次阅读 2016-09-27 15:30:14
    TCP/IP通信或串口通信数据校验
  • 串口和tcp/ip调试工具

    2018-04-26 13:55:50
    用于串口或 TCP/IP 数据接收调试,C# 版本,需要。net 3.5 运行环境
  • 串口数据转以太网

    千次阅读 2018-09-28 14:55:16
    DTU (Data Transfer unit),是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过无线通信网络进行传送的无线终端设备。DTU广泛应用于气象、水文水利、地质等行业。 1.概述  串口转以太网目前可以采用...
  • 在电脑上虚拟出来一个串口设备,可以将程序向串口设备写入的数据转发给tcp,tcp返回的数据转发给虚拟出来的当前串口号 ubuntu测试通过,windows未知 一,使用方法: 1,配置代码中的 server_ip ="192.168.2.248" ...
  • linux下将串口RS232采集到的数据通过232/usb转接线采集到PC上,现在要把PC上接收到的串口数据通过tcp/ip协议进行数据传输以实现实时通信,请问该程序要如何编写或者有没有相似的范例参考。谢谢!
  • 使用RS232RS485芯片接收发送低速的串口数据,使用单片机C8051F120作为核心处理芯片,使用W5300芯片进行以太网数据的发送接收,设计了具体的硬件电路,使用C语言完成了单片机的程序设计.由于W5300内部集成了TCP/IP...
  • 这是一款多功能型嵌入式以太网串口数据转换模块, 它内部集成了 TCP/IP 协议栈, 用户利用它可以轻松完成嵌入式设备的网络功能, 节省人力物力开发时间, 使产品更快的投入市场, 增强竞争力。 串口数据转换模块集成 10...
  • Modbus串口数据转发样例rar,Modbus串口数据转发样例
  • Java串口编程:串口数据的发送与监听读取

    万次阅读 多人点赞 2015-03-15 11:23:53
    本人在近期的开发工作中遇到向串口发送设备控制指令的需求,遂对串口编程进行了略微深入的钻研,在此对自己的一些心得经验进行总结,以供大家参考与交流。 串口介绍  串口全称为串行接口,一般指COM接口,是...
  • serial tcp/ip 串口通讯
  • 摘要: 串口传输常用于基于FPGADSP结构的信号处理板外部设备之间的数据交换。以GPS RTK定位应用为基础,针对单个串口全双工传输不足以应对多种数据类型同时输入输出的情形,设计并实现了一种面向多串口不同类型...
  • 实现串口和网口数据收发,使用select函数轮询端口,涉及socket编程,多线程等,该程序可以用在工业控制上下位机的通信与控制
  • 1、netty框架接受串口数据信息 2、netty接受到串口数据以后把信息通过websocket实时推送到html/jsp页面上 我们先看效果 我现在呈现上所有的代码 1、启动程序 package com.example.demo; import ...
  • 1.串口初始化配置//串口二初始化配置 void usart2_init(u32 bound) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;... //开启GPIO时钟和串口2时钟 RCC_APB2Perip...
  • 功能:解析串口数据(此程序中以回车符作为解析对象,如需要解析其他字符可以自行参考修改),并将解析后的串口数据通过Wi-Fi透传。 测试过程:使用PC端串口助手软件,通过串口分别按照115200至1382400波特率(实际...
  • 实测亲测xilinx fpga uart 串口rs232例子实例工程,ISE打包工程,不出错发送接收数据测试,无状态机,节省资源3根线串口,可以学习rs232串口和倍频ip core用法,字节编写,用verilog编写 基于一个xilinx的学习板子...
  • 1.protues仿真器串口数据上传至Web服务器。 2.此处单片机端为TCP socket服务器,Web端连接时发送相应请求,单片机及上传数据。 数据传输原理 转换程序读取protues串口数据通过发送给socket 转换程序监控socket接受到...
  • 利用串口网络助手上传数据、图片到OneNet平台以及获取数据(HTTP...使用OneNet提供的服务器IP地址:183.230.40.34 端口:80连接服务器。 下面的链接是我使用的串口工具: 链接:https://pan.baidu.com/s/1_L75wEb...
  • SICK LMS511 利用串口数据采集

    千次阅读 2017-09-21 12:46:35
    更多的时候为了定制化产品,我们需要通过串口技术发送命令对LMS511进行设置和数据的输出。此时官方提供的Developers Guide手册对于开发者是重要的,手册涵盖了串口通讯、数据处理、参数设置等大量命令介绍。这篇博文...
  • 包含一个与PLC进行网络通讯与外部设备进行串口通讯的程序
  • 1. 要试试从串口读取数据 2. 将读到的数据从网口发送出去 3.开机启动 4. 没有界面 第一部分 配置Qt Pro文件 需要Qt +=serialport network 第二部分 -串口初始化 void Serial_To_Internet::initialize_...
  • 串口通信通过Tcp传到服务器实现串口数据转发

    千次阅读 热门讨论 2018-10-29 18:52:39
    主要目的:通过串口获取外设的数据,转发到服务器进行处理并在Web端显示设备的信息。 主要用到的知识点: 第一:串口通信相关的知识。 1.串口通信用到的两个头文件: #include <QtSerialPort/QSerialPort>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,148
精华内容 12,459
关键字:

串口数据和ip数据区别