using System;
using System.IO;
internal class Program
{
static void Main(string[] args)
{
// 设置输出重定向到文件
string outputPath = @"C:\Users\lx192\Desktop\566777655555.txt";
FileStream fileStream = new FileStream(outputPath, FileMode.Create);
StreamWriter streamWriter = new StreamWriter(fileStream);
Console.SetOut(streamWriter);
FileStream fs = new FileStream(@"C:\Users\lx192\Desktop\sx.bin", FileMode.Open);
MAVLink.MavlinkParse parse = new MAVLink.MavlinkParse();
while (fs.Position < fs.Length)
{
var msg = parse.ReadPacket(fs);
if (msg != null && msg.msgid == 33)
{
MAVLink.mavlink_global_position_int_t p = (MAVLink.mavlink_global_position_int_t)msg.data;
double latitude = p.lat / 1E7; // 将纬度除以1E7得到经度值
double longitude = p.lon / 1E7; // 将经度除以1E7得到纬度值
Console.WriteLine("{1},{0}", latitude, longitude);
// 还可以执行其他操作...
}
}
fs.Close();
// 关闭文件流
streamWriter.Close();
fileStream.Close();
}
}
% 读取文件路径
filePath = 'C:\Users\lx192\Desktop\新建文件夹 (3)\八协解mavlink结果2.txt';
% 打开文件
fid = fopen(filePath, 'r');
% 初始化高度数据存储变量
altitudes = [];
% 逐行读取文件内容
while ~feof(fid)
line = fgetl(fid);
% 解析每一行的高度数据
if startsWith(line, '飞行器纬度: ') && contains(line, ', 飞行器经度: ') && contains(line, ', 飞行器高度: ')
% 提取高度数据
data = sscanf(line, '飞行器纬度: %f, 飞行器经度: %f, 飞行器高度: %fm');
altitudes = [altitudes; data(3)];
end
end
% 关闭文件
fclose(fid);
% 绘制高度图像
figure;
plot(altitudes);
xlabel('时间步');
ylabel('高度 (米)');
title('飞行器高度变化图');
grid on;