首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >串行数据流的实时数学

串行数据流的实时数学
EN

Stack Overflow用户
提问于 2020-04-15 17:26:38
回答 1查看 39关注 0票数 0

我有一个硬件GPS输出一些数据:

代码语言:javascript
运行
复制
sudo cat /dev/ttyGPS_Device | grep -a GPRMC

它每隔半秒钟就打印一次,如下所示:

$GPRMC,171450.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420,,,A*74 $GPRMC,171503.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420,,,A*73 $GPRMC,171504.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420,,,A*74

我可以通过这样做来过滤掉“态度和经度”:

代码语言:javascript
运行
复制
sudo cat /dev/ttyACM2 | stdbuf -oL grep -a GPRMC | stdbuf -oL cut -d',' -f 4-7 | tr ',' '\t'

这个产出看上去要好得多:

4239.245592 N 07349.887355 W 4239.245592 N 07349.887355 W 4239.245592 N 07349.887355 W

我希望能够对数据进行一些数学计算和格式化。具体来说,前导零必须变成“-”,这两个值都必须乘以100。期望产出:

42.39245592 N -73.49887355 W 42.39245592 N -73.49887355 W 42.39245592 N -73.49887355 W

我会同意一个非bash解决方案,但我更喜欢一个好的一个班轮。我用来获取GPS数据的硬件是爱立信H5321 gw移动宽带模块

EN

回答 1

Stack Overflow用户

发布于 2020-04-15 20:04:01

单管壳:

代码语言:javascript
运行
复制
xargs -I"{}" -l1 sh -c 'IFS=,;set -- $1;LC_NUMERIC=C;printf "%f N %f W\n" "$4" "$6"' {}

显然,作为@DiegoTorresMilano提到,shell算法只处理整数,因此不对值进行缩放。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61234872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档