24小时热门版块排行榜    

查看: 457  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

nana_张

新虫 (初入文坛)

[求助] 软件数据处理

各位大神有没有人做过关于AIS相关的经验,本人新人一枚,用STM32进行AIS信号处理,处理过程中,要把8byte转为6byte,以下是我的处理方式
char msg1_data[28]="1>MdsF>P?W<tSF01Q@>4wv0t00";
char *sh;
char sixbyte[28];
int i;
sh=sixbyte;
for(i=0;i<28;i++)
(*sh)=msg1_data+0x28;
if((*sh)>0x80)
  (*sh)+=0x20;
else
  (*sh)+=0x28;
(*sh)=(*sh)&0x3F;
sh++;

得到的sixtbyte不是28位的正确字符串,实在是想不明白了,麻烦各位法神帮帮忙了,感激不尽
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nana_张

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by feixiaolin at 2016-01-06 17:35:59
8 byte 转为6 byte ? 8 byte转为16 byte ?

AIS消息处理时,8比特转6比特
3楼2016-01-06 20:51:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

feixiaolin

荣誉版主 (文坛精英)

优秀版主

8 byte ??6 byte ? 8 byte??16 byte ?
2楼2016-01-06 17:35:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一生十年

铁杆木虫 (职业作家)

锤锤帮小罗罗

你贴的程序有问题。
关键在这一行
(*sh)=msg1_data+0x28
每次循环,都是这个值赋值给*sh
关键是,你这个付的是一个指针值呀。前面加上*才是内容呀

[ 发自手机版 http://muchong.com/3g ]
安定中。。。
4楼2016-01-11 00:16:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一生十年

铁杆木虫 (职业作家)

锤锤帮小罗罗

我可以猜到你的出来的结果,全部都是同一个值

[ 发自手机版 http://muchong.com/3g ]
安定中。。。
5楼2016-01-11 00:19:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见