串口c#如何解释接收到的数据

串口c#如何解释接收到的数据,c#,serial-port,C#,Serial Port,当我在控制台应用程序中使用c#读取串行端口时,这就是我得到的输出。 有人知道我应该如何读取这些数据,以便让人能够读取吗 应接收的数据如下:6025 1045 1806 116 0000000和GPS坐标。 我知道这有点模糊,但我对串行端口编程还不熟悉,我想知道如何继续。这是我到目前为止的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Thr

当我在控制台应用程序中使用c#读取串行端口时,这就是我得到的输出。 有人知道我应该如何读取这些数据,以便让人能够读取吗

应接收的数据如下:6025 1045 1806 116 0000000和GPS坐标。 我知道这有点模糊,但我对串行端口编程还不熟悉,我想知道如何继续。这是我到目前为止的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.Diagnostics;
using System.Threading;
using System.IO;

namespace ClarityListener
{
    class Program
    {
        static void Main(string[] args)
        {
            ClarityWarning("Starting communication...");
            SerialPort Dave = new SerialPort("COM1");
            Dave.BaudRate = 9600;
            Dave.Parity = Parity.Odd;
            Dave.DataBits = 8;
            Dave.StopBits = StopBits.One;
            Dave.Handshake = Handshake.None;


             Dave.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
             try
             {
             Dave.Open();
             ClarityMssg("Connected!\n");
             }
             catch
             {
                 ClarityError("Problem!\n");
             }

             ClarityWarning("Press any key to shutdown program");
             Console.WriteLine();
             Console.ReadKey();
             Dave.Close();

         }

         private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
         {
             SerialPort sp = (SerialPort)sender;
             string indata = sp.ReadExisting();
             ClarityWarning("Data received : ");
             ClarityWarning(indata.ToString() + "\n");

         }

         private static void ClarityMssg(string message)
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine(message);
            Console.ForegroundColor = ConsoleColor.White;
        }

        private static void ClarityError(string message)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(message);
            Console.ForegroundColor = ConsoleColor.White;
        }

        private static void ClarityWarning(string message)
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine(message);
            Console.ForegroundColor = ConsoleColor.White;
        }
    }
}

首先想到的是:

确保串行端口读取器的奇偶校验、停止位和波特率配置为符合发送数据的设备的要求

还要确保串行设备确实在发送ASCII编码的文本。
(这是NMEA的标准,NMEA是一种主要用于此类设备的协议,但不能保证您的设备100%遵守标准)。

首先想到的是:

确保串行端口读取器的奇偶校验、停止位和波特率配置为符合发送数据的设备的要求

还要确保串行设备确实在发送ASCII编码的文本。
(这是NMEA的标准,NMEA是一种主要用于此类设备的协议,但不能保证您的设备100%遵守标准)。

首先想到的是:

确保串行端口读取器的奇偶校验、停止位和波特率配置为符合发送数据的设备的要求

还要确保串行设备确实在发送ASCII编码的文本。
(这是NMEA的标准,NMEA是一种主要用于此类设备的协议,但不能保证您的设备100%遵守标准)。

首先想到的是:

确保串行端口读取器的奇偶校验、停止位和波特率配置为符合发送数据的设备的要求

还要确保串行设备确实在发送ASCII编码的文本。
(这是NMEA的标准,NMEA是一种主要用于此类设备的协议,但不能保证您的设备遵守标准100%)

通过通道接收的数据是一个字节流,通过tcp/ip或串行或从文件读取。针对串行端口编程并没有什么不同/困难,因为不涉及hitech黑魔法

只将接收到的字节转储到控制台(假设它是ascii)是不可取的。虽然它可以让你在决定发送什么时领先一步

首先检查接收串行端口上设置的参数。大多数设备使用9600波特、无奇偶校验、8位、1位停止位。如果存在不匹配,数据将被损坏。检查设备手册中的规格

你知道数据是以什么格式发送的吗?数字在发送前是否转换为ascii文本,还是以4字节的int32格式发送? 源的流量控制是什么? 消息中或消息之间是否有控制/命令字节?
简而言之:了解发送方使用的协议。查看文档,最后打电话给供应商/分销商。

通过通道接收的数据是一个字节流,可以是通过tcp/ip、串行或从文件读取的。针对串行端口编程并没有什么不同/困难,因为不涉及hitech黑魔法

只将接收到的字节转储到控制台(假设它是ascii)是不可取的。虽然它可以让你在决定发送什么时领先一步

首先检查接收串行端口上设置的参数。大多数设备使用9600波特、无奇偶校验、8位、1位停止位。如果存在不匹配,数据将被损坏。检查设备手册中的规格

你知道数据是以什么格式发送的吗?数字在发送前是否转换为ascii文本,还是以4字节的int32格式发送? 源的流量控制是什么? 消息中或消息之间是否有控制/命令字节?
简而言之:了解发送方使用的协议。查看文档,最后打电话给供应商/分销商。

通过通道接收的数据是一个字节流,可以是通过tcp/ip、串行或从文件读取的。针对串行端口编程并没有什么不同/困难,因为不涉及hitech黑魔法

只将接收到的字节转储到控制台(假设它是ascii)是不可取的。虽然它可以让你在决定发送什么时领先一步

首先检查接收串行端口上设置的参数。大多数设备使用9600波特、无奇偶校验、8位、1位停止位。如果存在不匹配,数据将被损坏。检查设备手册中的规格

你知道数据是以什么格式发送的吗?数字在发送前是否转换为ascii文本,还是以4字节的int32格式发送? 源的流量控制是什么? 消息中或消息之间是否有控制/命令字节?
简而言之:了解发送方使用的协议。查看文档,最后打电话给供应商/分销商。

通过通道接收的数据是一个字节流,可以是通过tcp/ip、串行或从文件读取的。针对串行端口编程并没有什么不同/困难,因为不涉及hitech黑魔法

只将接收到的字节转储到控制台(假设它是ascii)是不可取的。虽然它可以让你在决定发送什么时领先一步

首先检查接收串行端口上设置的参数。大多数设备使用9600波特、无奇偶校验、8位、1位停止位。如果存在不匹配,数据将被损坏。检查设备手册中的规格

你知道数据是以什么格式发送的吗?数字在发送前是否转换为ascii文本,还是以4字节的int32格式发送? 源的流量控制是什么? 消息中或消息之间是否有控制/命令字节? 简而言之:了解发送方使用的协议。检查文档并作为最后的解决方案