Aaron_tjc 2023-11-23 19:08 采纳率: 33.3%
浏览 20
已结题

simulink采集RTK数据

利用SImulink采集RTK信号,但是出现以下错误,希望有小伙伴帮忙解答一下;

img

下面是代码:

function gpsData = parseRTK(serialData)
    coder.extrinsic('split');
    % serialData: 串口接收到的 uint8 类型的 RTK 导航信
    % 将 uint8 数据转换成十六进制字符串
    hexData = dec2hex(serialData);

    % 将十六进制字符串转换成十进制数组
    decData = hex2dec(hexData);

    % 将十进制数组转换成字符串形式
    strData = char(decData');

    % 初始化所有的变量
    rtkSentence = '';
    dataFields = {};
    latitude = NaN;
    longitude = NaN;
    heading = NaN;
    speed = NaN;
    
    % 查找 $GNRMC
    startIdx = strfind(strData, '$GNRMC');
    
    % 检查 strData 是否是一个非空字符串
    if isempty(startIdx)
         gpsData = struct('latitude',0,'longitude',0,'heading',0,'speed',0); % 没有找到有效的 GPS 数据
        return;
    end
    
    % 只获取第一个匹配的索引
    startIdx = startIdx(1); 
    
    if ~isempty(startIdx)
        % 截取以 $GNRMC 开头的字符串
        rtkSentence = strData(startIdx:end);
        
     % 使用逗号分隔字符串
        
        dataFields = split(rtkSentence, ',');
        
        % 检查字段数量
        if numel(dataFields) >= 16
            % 提取经纬度、速度和航向角信息
            % 分割数据并存储到变量中
            latitude = str2double(dataFields{4});
            longitude = str2double(dataFields{6});
            heading = str2double(dataFields{9});
            speed = str2double(dataFields{8}) * 1.852; % 转换节到公里/小时
        end
    end
    
    %创建包含解析后数据的结构体
    gpsData = struct('latitude', latitude, 'longitude', longitude, 'heading', heading, 'speed', speed);
end

% function decimalDegree = nmeaToDecimal(nmeaDegree)
%     % 将 NMEA 格式的经纬度转换为十进制度
%     degrees = floor(nmeaDegree / 100);
%     minutes = nmeaDegree - degrees * 100;
%     decimalDegree = degrees + minutes / 60;
% end

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-11-23 21:04
    关注

    那你既然不愿意我们继续帮助你,你可以联系 1楼 Monster-XH,matlab他很专业

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月24日
  • 赞助了问题酬金20元 11月23日
  • 赞助了问题酬金15元 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 第一行输入n,第二行输入a b c输出的字符向后平移n个位置,当移动到z时,重新返回a开始
  • ¥15 为什么跑这个代码,文件显示不在呀
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求