搜索
bottom↓
回复: 97

帮他人发布一下:3000人民币移植一个Linux开源代码到stm32上...

  [复制链接]

出0入475汤圆

发表于 2018-10-26 15:40:34 | 显示全部楼层 |阅读模式
内容如下:

3000人民币移植一个Linux开源代码到stm32上面。
现有代码量约2000行,代码本身已经在树莓派、Linux电脑等上面正常运行。
代码功能:
      就是源源不断的采集一个音频信号后进行数学运算得到一些信息,然后将信息输出。算法等不用处理,均是现成代码。
程序流程如果不清楚,可以作为协助进行方向性建议。由于C语言不懂,所以代码本身很难看懂,因此外部求助。
个人觉得需要移植的部分是音频adc采集部分(参考程序是读取的电脑声卡或者音频wav文件获得的音频输入信息)和多线程?(多任务?)架构这两部分。

注意:
    为了不瞎忙乎,这里有一个需要事先做的判断工作,那就是:由于涉及到数学运算,而且又是源源不断的实时处理运算,因此要评估stm32是否处理性能足够。
这部分工作可以先做,评估的结论无论是行或者不行均表示200元话费(行则不额外单独支付,包含在总费用中。我想没有哪个网友为了200块立马就给我一个评估结果为性能不够的答案吧:)
音频信息大概是:音频采样率44.1k,立体声(即双声道),两个通道可能分别携带不同的信息,所以运算量应该是增加了一倍,处理不了就降为单声道看看是否可以,也就是说立体声就是两路adc采集信息,单声道就一路adc了。
采集的音频好像是每一位都要进行一次MSK解码运算,评估过程中,如果觉得处理器性能不够,看看是否可以降低adc采样率以满足处理能力。
---------以上截止--------


具体的话,可以这里跟帖或者私信给我代为转交,或者直接给电话各自联系。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入475汤圆

 楼主| 发表于 2018-10-26 15:51:53 | 显示全部楼层
补充了具体的参考代码,在压缩包里面。
另外说是,信息输出只需要STM32串口打印出来即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-10-26 16:15:58 | 显示全部楼层
最少再加个0啊,真是

出0入0汤圆

发表于 2018-10-26 16:26:34 | 显示全部楼层
buck 发表于 2018-10-26 16:13
这客我接了,站内信联系

真的大牛  厉害

出0入93汤圆

发表于 2018-10-26 16:30:51 | 显示全部楼层
buck 发表于 2018-10-26 16:13
这客我接了,站内信联系

他的文件里有个alsa.c,要是他定义了WITH_ALSA而你要把这个也给移植过去,相信我,3000人民币你会后悔的

出0入0汤圆

发表于 2018-10-26 16:36:01 | 显示全部楼层
此贴大腿多,快来抱住大腿

出0入0汤圆

发表于 2018-10-26 16:42:04 | 显示全部楼层
buck 发表于 2018-10-26 16:32
不敢当,团队作战而已,stm32+UVC的坑都爬过。Linux、安卓、物联网都能搞点

大哥,以后有项目找你哈

出0入0汤圆

发表于 2018-10-26 16:45:32 | 显示全部楼层
路过帮顶。。。。。

出0入0汤圆

发表于 2018-10-26 17:05:25 | 显示全部楼层
我也觉得,此价格,大腿会不屑一顾的!

出0入0汤圆

发表于 2018-10-26 17:05:55 | 显示全部楼层
这个是一个10W元左右的case

https://github.com/themadinvento ... entation/sound/alsa

#include <alsa/asoundlib.h>
#include "acarsdec.h"

int runAlsaSample(void)
{
        int r,n,i;
        signed short sndbuff[MAXNBFRAMES*MAXNBCHANNELS];

        do {
                r = snd_pcm_readi(capture_handle, sndbuff,MAXNBFRAMES );
                if (r <= 0) {
                        fprintf(stderr,"Alsa cannot read from interface (%s)\n", snd_strerror(r));
                        return -1;
                }

                for(n=0;n<nbch;n++) {
                          int len=r;
                          for(i=0;i<len;i++) demodMsk((float)(sndbuff[n+i*nbch])/32768.0,&(channel[n]));

                }

        } while(1);
        return 0;
}

r = snd_pcm_readi(capture_handle, sndbuff,MAXNBFRAMES );
这行代码要求ADC做ALSA驱动。

出0入475汤圆

 楼主| 发表于 2018-10-26 17:06:55 | 显示全部楼层
本帖最后由 1a2b3c 于 2018-10-26 17:09 编辑


我好像帮看懂了一下这个东西,
整个项目和声卡没关系,声卡只是一个获取数据的通道而已,朋友这个项目实际上就是替换声卡,改成直接芯片ADC采集音频数据拿去处理,因为声卡或者WAV文件也只是读取具体的模拟数值而已,

出0入90汤圆

发表于 2018-10-26 17:09:11 | 显示全部楼层
上面的都好厉害啊,alsa都可以移植到stm32上面去。uvc也可以移植到stm32。

出0入0汤圆

发表于 2018-10-26 17:13:06 | 显示全部楼层
移植肯定还要调戏吧?万一调戏几天还不过呢?

出0入104汤圆

发表于 2018-10-26 17:14:25 | 显示全部楼层
buck 发表于 2018-10-26 16:32
不敢当,团队作战而已,stm32+UVC的坑都爬过。Linux、安卓、物联网都能搞点

楼主做过STM32的网络摄像头吗

出0入0汤圆

发表于 2018-10-26 17:16:23 | 显示全部楼层
1a2b3c 发表于 2018-10-26 17:06
我好像帮看懂了一下这个东西,
整个项目和声卡没关系,声卡只是一个获取数据的通道而已,朋友这个项目实际 ...

对啊。
所以你朋友的要求不是看着开源代码改一下接口的代码移植。
而是要完整做一个采集卡的方案。

出0入475汤圆

 楼主| 发表于 2018-10-26 17:19:52 | 显示全部楼层
ttoto 发表于 2018-10-26 17:16
对啊。
所以你朋友的要求不是看着开源代码改一下接口的代码移植。
而是要完整做一个采集卡的方案。 ...

我不熟悉这方面的东西,再加上距离太远,所以叫我帮他我就婉言谢绝了。

出0入475汤圆

 楼主| 发表于 2018-10-26 17:20:51 | 显示全部楼层
retention 发表于 2018-10-26 17:13
移植肯定还要调戏吧?万一调戏几天还不过呢?

所以人家说了事前评估的确也比较有道理和理智,

出0入0汤圆

发表于 2018-10-26 17:32:41 | 显示全部楼层
我这只做一个硬件7口HUB     就收了1W   

出0入0汤圆

发表于 2018-10-26 17:34:34 | 显示全部楼层
瞬间觉得  外快真难赚

出10入0汤圆

发表于 2018-10-26 17:55:32 | 显示全部楼层
starli 发表于 2018-10-26 17:32
我这只做一个硬件7口HUB     就收了1W

我只做一个铁壳就收1万

出0入0汤圆

发表于 2018-10-26 18:07:46 | 显示全部楼层
1a2b3c 发表于 2018-10-26 17:20
所以人家说了事前评估的确也比较有道理和理智,

所以这种要之前做过很对口的项目,才好移植。如果在这方面不对口,做起来很麻烦。

出0入0汤圆

发表于 2018-10-26 19:09:11 | 显示全部楼层
我之前做过一个项目就是stm32103直接解码wav ,音质很好也是44.1kh,这个方案完全可以

出0入0汤圆

发表于 2018-10-26 19:11:47 | 显示全部楼层
前排围观大牛

出0入26汤圆

发表于 2018-10-26 19:13:03 | 显示全部楼层
buck 发表于 2018-10-26 16:32
不敢当,团队作战而已,stm32+UVC的坑都爬过。Linux、安卓、物联网都能搞点


楼主在哪里啊。我也有一个STM32的项目想外包。我想找深圳 本地的。

出0入0汤圆

发表于 2018-10-26 19:23:52 来自手机 | 显示全部楼层
换个路子 把单片机改成便宜linux是不是就没这个项目了

出0入0汤圆

发表于 2018-10-26 19:41:34 | 显示全部楼层
报个1000  找个学生来练练手

出0入0汤圆

发表于 2018-10-26 19:46:10 | 显示全部楼层
论坛 理性消费人群还是不少!!!!!!!!!这是好坛!!!!物美价廉的地方

出0入0汤圆

发表于 2018-10-26 21:45:21 | 显示全部楼层
你这个是做 降噪的。鉴定完毕。

出100入113汤圆

发表于 2018-10-26 22:00:27 | 显示全部楼层
3000也有人接,哎……嵌入式的确不好混了,我要转型做AI……

出0入58汤圆

发表于 2018-10-26 22:48:05 来自手机 | 显示全部楼层
好巧,我最近帮别人写了一个excel里面的vbs小脚本也是收了3000块钱。代码100行左右。看了一下LZ这个瞬间觉得自己赚到了。哈哈。

出0入0汤圆

发表于 2018-10-26 22:56:28 | 显示全部楼层
曾用STM8软解过22.05K的MFSK声音,解是绝对能解的,时间长短问题,STM32F4干这个绝对可能的。

出0入0汤圆

发表于 2018-10-26 22:59:48 来自手机 | 显示全部楼层
妹的,3000也有人接,肯定做过这种项目,

出0入0汤圆

发表于 2018-10-26 23:59:40 | 显示全部楼层
ACARS是飞机下传状态及地面发信息给飞机的协议,楼主发这个是电视棒爱好者常拿来看飞机的软件之一
本身ACARS是调制带宽5khz都不到的MSK,良好优化的接收系统并不用太多计算力,大神做个51都能跑的也不会奇怪,毕竟上个世纪70年代末的科技

看了下代码实现,不愧是PC平台的实现就是暴力,全浮点计算,带的wav文件例子大概率也是sdrsharp录下的
如果去掉那个暴力CRC错误修复,剩下主要问题来自下变频的正弦余弦和求反正切,用一下查表F4应付44100采样率暴力移植应该问题不大

话说,这是个看飞机的东西,移植到STM32上去……难道是接魔改航空频段收音机?不联网没有地图看飞机不是很蛋疼么……

出0入0汤圆

发表于 2018-10-27 00:07:19 | 显示全部楼层
本帖最后由 duanll 于 2018-10-27 00:09 编辑

这项目,有内存管理,有线程,可能还有alsa库,完美移植过去哪有那么容易的,即使忽略掉这些,完成客户最小需求,也没有那么便宜吧?

3楼如果能完美接下来,下次我有难度不超过这个的项目,我2倍到4倍费用包给你。。

就怕3楼看中的是200块,而不是3000块

出0入0汤圆

发表于 2018-10-27 05:11:14 来自手机 | 显示全部楼层
围观大神

出0入9汤圆

发表于 2018-10-27 07:38:19 来自手机 | 显示全部楼层
搞得我都想接项目直接外包了

出0入0汤圆

发表于 2018-10-27 09:30:34 | 显示全部楼层
看了一遍代码,有点疑问(以前没搞过这东西)
这个应该算是linux下的一段中间层吧。

如果要直接替声卡,那就要添加声卡驱动。
没有文件系统,读WAV还要加文件系统。
输出很随意,这俩输入有得搞。

还请楼主说明一下到底怎么用。

出0入0汤圆

发表于 2018-10-27 09:38:27 | 显示全部楼层
不搞开发了,直接外包多好

出0入0汤圆

发表于 2018-10-27 09:48:30 | 显示全部楼层
围观大神+1

出0入0汤圆

发表于 2018-10-27 10:12:47 | 显示全部楼层
xly 发表于 2018-10-26 19:13
楼主在哪里啊。我也有一个STM32的项目想外包。我想找深圳 本地的。

老板,啥项目能聊聊么?看我能接下来不
我在民治。

出0入0汤圆

发表于 2018-10-27 10:23:17 来自手机 | 显示全部楼层
duanll 发表于 2018-10-27 00:07
这项目,有内存管理,有线程,可能还有alsa库,完美移植过去哪有那么容易的,即使忽略掉这些,完成客户最小 ...

有时有些项目简直送钱,我前段时间遇到过一个项目,接收2个串口过来的四条指令,分别对应四个开关的开启和关闭,一周完成,5k。最后用stm32f103c8t6奢侈一下,半天完成。。。

出0入8汤圆

发表于 2018-10-27 11:22:49 | 显示全部楼层
楼主,给你一个评估结果,用的是STM32F4软件仿真
把附件的工程打开,编译后运行。


打开Printf Viewer


在反汇编窗口中加载dec.hex文件


运行后,可以在printf中看到结果,这个结果就是用你给的wav文件跑的




根据仿真的结果,这个代码不做优化很难在STM32上使用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

发表于 2018-10-27 11:47:51 来自手机 | 显示全部楼层
这个代码看起来复杂,其实稍微分析一下逻辑也很简单
里面的thread相关功能只做了一件事,解码核心解码完毕后通知后台线程输出数据
时间相关的函数主要是显示解码时间,不实现也不影响
alsa在这个代码中只是取音频数据,与解码任何关联
wav文件读取,其实稍微了解wav格式就知道这玩意根本不算事
不过上面这些都是细枝末节,没啥技术含量
重点来了:
这个解码库本身不是针对嵌入式平台写的,所以几乎没什么优化,数据处理也是大块大块的
如果要移植到stm32上,并且有较好的性能,这个解码器的框架需要重构,这需要对这个解码核心有比较深的了解
如果是我做,我先得学会这个解码原理,再根据处理器做深度优化,保守估计的要一个月,你这个价格得再加零我才会考虑
如果是一个熟悉这种解码格式的人,能够省去学习的时间,价格也会更合适。

出0入0汤圆

发表于 2018-10-27 11:48:14 来自手机 | 显示全部楼层
shawn_bu 发表于 2018-10-26 22:48
好巧,我最近帮别人写了一个excel里面的vbs小脚本也是收了3000块钱。代码100行左右。看了一下LZ这个瞬间觉 ...

这么说我做的项目得收3万了

出0入0汤圆

发表于 2018-10-27 12:28:12 | 显示全部楼层


随手拿了个STM32F405测了测试文件中的一个通道,数据放在flash里,未作优化已经能做到实时了(4.3秒24000hz采样率的文件1166ms完成)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

发表于 2018-10-27 14:15:37 来自手机 | 显示全部楼层
my12doom 发表于 2018-10-27 12:28
随手拿了个STM32F405测了测试文件中的一个通道,数据放在flash里,未作优化已经能做到实时了(4.3秒24000 ...

你这个不是用楼主代码跑的吧
所以楼主问题的最优解就是找到一个搞过这个解码的人,然后针对stm32开发
单纯移植和修改楼主给的代码,意义不大

出0入0汤圆

发表于 2018-10-27 14:29:05 | 显示全部楼层
搭個車問下,F4音頻傳輸數據的可行性

出0入0汤圆

发表于 2018-10-27 16:35:22 | 显示全部楼层
canspider 发表于 2018-10-27 14:15
你这个不是用楼主代码跑的吧
所以楼主问题的最优解就是找到一个搞过这个解码的人,然后针对stm32开发
单 ...

就是楼主的代码,要不然这速度不好意思出来丢人

FPU跑浮点速度比较惊人,把三角函数优化下估计6路实时问题不大

出0入475汤圆

 楼主| 发表于 2018-10-27 16:55:03 来自手机 | 显示全部楼层
一天时间没来看,发现已有好几位高手进行了实质性的评估,朋友昨天和第一位接单的网页进行了沟通,将会在周一时候确定那边的反馈。如果双方继续进行,那么可能就暂时跟他进行合作,如果网友明确放弃,就会马上请后面的网友跟进。另外,即使前面有网友合作,那么后面的网友有提供重要评估价值的,也同样会按照之前说的提供200报酬。当然可能不能面面俱到,但是肯定会执行这个事先承诺的,也请各位网友监督。

出0入475汤圆

 楼主| 发表于 2018-10-27 17:06:28 来自手机 | 显示全部楼层
晚上一一回复各位网友的疑问

出0入8汤圆

发表于 2018-10-27 17:16:41 来自手机 | 显示全部楼层
my12doom 发表于 2018-10-27 16:35
就是楼主的代码,要不然这速度不好意思出来丢人

FPU跑浮点速度比较惊人,把三角函数优化下估计6路实时问 ...

带FPU的好处就是移植算法方便
看你跑的结果还区分了各数据的含义
是之前搞过这方面的东西吗

出0入475汤圆

 楼主| 发表于 2018-10-27 19:21:49 | 显示全部楼层
lvfv 发表于 2018-10-27 09:30
看了一遍代码,有点疑问(以前没搞过这东西)
这个应该算是linux下的一段中间层吧。

这个不需要模拟声卡,也不需要模拟WAV文件,更没有什么文件系统、驱动之类啥的,之所以里面涉及到了声卡/WAV,是因为系统验证或者测试方便!!!
声卡的话,传输实时信息,或者其他地方转过来的实时音频信息很方便,比如直接拿一个喇叭对着电脑的话筒放声音即可。WAV文件更方便了,可以随时测试使用,拷贝过来放着就好了。

实际使用是实时接收一个声音信号(即是一个模拟电压输入),更具体一点的话就是一个话筒的模拟信号输入就行了,所以这里就用STM32的ADC采集就好了。采集下来的数据就相当于是WAV里面的载体数据或者声卡捕获到的一回事。
然后数据采集了怎么用,就是开源代理里面那样用了。

出0入475汤圆

 楼主| 发表于 2018-10-27 19:29:11 | 显示全部楼层
canspider 发表于 2018-10-27 11:22
楼主,给你一个评估结果,用的是STM32F4软件仿真
把附件的工程打开,编译后运行。

谢谢,
看到你最后说不做优化很难运行,我没有很好理解,意思就是说可能F4上面处理能力比较悬是吧?
看到你的截图,好像是已经解析出来了信息,但是这个只是表面逻辑或者算法是正确的,而不敢确定能够实时解析处理是吧?
如果你的结论是正确的,那么肯定会执行之前的承诺!
预计一周左右时间就反馈各位的评估。

出0入0汤圆

发表于 2018-10-27 19:39:22 | 显示全部楼层
duanll 发表于 2018-10-27 00:07
这项目,有内存管理,有线程,可能还有alsa库,完美移植过去哪有那么容易的,即使忽略掉这些,完成客户最小 ...

哈哈,电工真掉价

出0入8汤圆

发表于 2018-10-27 19:40:47 来自手机 | 显示全部楼层
本帖最后由 canspider 于 2018-10-27 19:42 编辑
1a2b3c 发表于 2018-10-27 19:29
谢谢,
看到你最后说不做优化很难运行,我没有很好理解,意思就是说可能F4上面处理能力比较悬是吧?
看到 ...


只是移植和跑出结果
我和54楼已经用楼主位的代码跑出来了
但是这个能不能用到实际产品中
我的意见是还需要做优化

结果验证和产品之间,差了100个初级程序员

出0入475汤圆

 楼主| 发表于 2018-10-27 19:53:03 | 显示全部楼层
my12doom 发表于 2018-10-27 12:28
随手拿了个STM32F405测了测试文件中的一个通道,数据放在flash里,未作优化已经能做到实时了(4.3秒24000 ...

感谢你给出了很直观定量的分析测试,
你的结论和前面一位网友的稍微有点相反,所以我们也还不敢马上确定你的是完全正确。如果你不介意,我们会在一周左右给你确定是否采纳,并且也会执行承诺。
另外,如果前面的网友放弃,就马上跟你商量。

出0入475汤圆

 楼主| 发表于 2018-10-27 20:00:17 | 显示全部楼层
canspider 发表于 2018-10-27 17:16
带FPU的好处就是移植算法方便
看你跑的结果还区分了各数据的含义
是之前搞过这方面的东西吗 ...

输出信息是应用层的东西,代码里面好像都是有的,所以不存在是否做过这个。
因为这个工程里面主要是解决输入信号源的移植切换问题。

出0入0汤圆

发表于 2018-10-27 20:09:03 来自手机 | 显示全部楼层
电工果然廉价

出0入475汤圆

 楼主| 发表于 2018-10-27 20:23:58 | 显示全部楼层
buck 发表于 2018-10-27 20:21
我们退出了,移植确实工作量大,况且家人也住院着。

好的,谢谢你的支持。

后面如果有网友感兴趣,可以私信或者直接留言。

出0入58汤圆

发表于 2018-10-27 20:25:50 | 显示全部楼层
cc2666 发表于 2018-10-27 09:48
好巧,最近帮老婆写了个python脚本,也是xls表格数据处理

表格数据处理vba蛮好用的,就是语法有些操蛋,不过熟悉了就好了。

出100入101汤圆

发表于 2018-10-27 20:38:35 | 显示全部楼层
找个带i2s接口的mcu,外置音频codec,简单些。stm32的adc不是来采集音频的

出0入475汤圆

 楼主| 发表于 2018-10-27 20:41:50 | 显示全部楼层
fengyunyu 发表于 2018-10-27 20:38
找个带i2s接口的mcu,外置音频codec,简单些。stm32的adc不是来采集音频的

这个项目不是处理音频,实际上应该是一个模拟量采集处理的概念,因为恰好这个模拟量是在音频范围而已。
也完全和音频的编码解码没有半点关系的。

出0入475汤圆

 楼主| 发表于 2018-10-27 20:47:54 | 显示全部楼层
CoolBird007 发表于 2018-10-26 22:56
曾用STM8软解过22.05K的MFSK声音,解是绝对能解的,时间长短问题,STM32F4干这个绝对可能的。 ...

你好,如果你确实熟悉这方面,可以直接私信给我,沟通一下具体情况。前面网友已经退出,所以这个帖子继续跟进中。

出0入0汤圆

发表于 2018-10-27 21:14:10 | 显示全部楼层
不懂,围观大神!!!!!

出0入475汤圆

 楼主| 发表于 2018-10-27 21:19:36 来自手机 | 显示全部楼层
fengyunyu 发表于 2018-10-27 20:38
找个带i2s接口的mcu,外置音频codec,简单些。stm32的adc不是来采集音频的

刚才仔细看了一遍,可能之前没有理会到你的意思,现在才明白你应该是说找个专门的数字音频接口芯片当作adc芯片做前端信号采集工作,然后stm32的i2s接口接收音频数据流即可。当然确实如果stm32的adc直接采集音频存在问题的话,完全可以接受这样的方式

出0入0汤圆

发表于 2018-10-27 21:55:04 | 显示全部楼层
其实我更想接触一下有这个需求的人,看看他是出于什么想法要做这个的,我恰好也是个航空爱好者,也比较熟软件无线电,可以说算是恰好撞上对口

出0入475汤圆

 楼主| 发表于 2018-10-27 22:02:12 来自手机 | 显示全部楼层
my12doom 发表于 2018-10-27 21:55
其实我更想接触一下有这个需求的人,看看他是出于什么想法要做这个的,我恰好也是个航空爱好者,也比较熟软 ...

那好的。因为我也是这些爱好才认识的这个朋友,你可以搜到他在这里之前也发了一个帖子介绍他的ads接收机。
哦抱歉现在是我(真正需求者)在用这个ID回复,可以私信交换联系信息。

出0入0汤圆

发表于 2018-10-27 22:03:12 | 显示全部楼层
看来这贴能跟出不少大神,不过也说明了资源的重要性!
有花1个月做完一个项目 收费6-8W的经历,也有花了接近一年(项目开发周期半年,另外为了量产帮设计工装和批量化优化修改花了半年),收入-5000的经历!

出0入475汤圆

 楼主| 发表于 2018-10-27 22:15:38 | 显示全部楼层
my12doom 发表于 2018-10-27 21:55
其实我更想接触一下有这个需求的人,看看他是出于什么想法要做这个的,我恰好也是个航空爱好者,也比较熟软 ...

已发你私信,请查收。

出105入79汤圆

发表于 2018-10-27 23:04:45 | 显示全部楼层
在ubuntu上编译了一下,感受一下这个项目。 本人有一定无人机,无人机通信项目,arm/linux开发经验。
首先安装解析音频文件需要的两个库到电脑:
1. alsa/asoundlib.h 是一个声音接口
运行:apt-get install libasound2-dev
2.sndfile.h
libsndfile 音频解码库,用来打开例子wav的。
http://www.mega-nerd.com/libsndf ... dfile-1.0.28.tar.gz
下载,解压,目录内执行:
./configure
make
make install
现在就安装好了。

3.进入楼主的源代码,运行 make编译, 运行 ./ sudo ./acarsdec -f ./test.wav 进行文件解码
[#2 (E:0)  --------------------------------
Aircraft reg: .PH-BXR Flight id: KL1681
Mode: E Msg. label: 5V
Block id: 4 Ack: !
Msg. no: S53A
Message :


[#4 (E:0)  --------------------------------
Aircraft reg: .LN-DYY Flight id: DY083J
Mode: 2 Msg. label: Q0
Block id: 4 Ack: !
Msg. no: S46A
Message :


[#2 (E:0)  --------------------------------
Aircraft reg: .LN-DYY Flight id: DY083J
Mode: E Msg. label: Q0
Block id: 6 Ack: !
Msg. no: S47A
Message :


[#1 (E:0)  --------------------------------
Aircraft reg: .F-GTAE Flight id: AF7728
Mode: G Msg. label: H1
Block id: 3 Ack: !
Msg. no: D65C
Message :
#DFB00000/V206,05,124,183,02,00,00000/V3XX,XX,XXX,XXX,XXXX/V4XX,XX,XXX,XXX,XXXX/V5XX,XX,XXX,XXX,XXXX/V6XX,XX,XXX,XXX,XXXX/V7044,078,00081,22222222222111/V8042,083,00061,22222222222111/

[#1 (E:0)  --------------------------------
Aircraft reg: .LN-DYY Flight id:
Mode: x Msg. label: _d
Block id: A Ack: 5
Msg. no:
Message :


[#3 (E:0)  --------------------------------
Aircraft reg: .G-DBCK Flight id: BA031T
Mode: 2 Msg. label: _d
Block id: 0 Ack: W
Msg. no: S64A
Message :

[#3 (E:0)  --------------------------------
Aircraft reg: .G-DBCK Flight id: BA031T
Mode: E Msg. label: Q0
Block id: 9 Ack: !
Msg. no: S63A
Message :

原来声音里面调制了编码,来达到通信的目的。
看一下解码文件算法
  1. static float fst_atan2(float y, float x)
  2. {
  3.    float r,angle;
  4.    float abs_y = fabs(y)+1e-10;      // kludge to prevent 0/0 condition
  5.    if (x>=0)
  6.    {
  7.       r = (x - abs_y) / (x + abs_y);
  8.       angle = M_PI_4 - M_PI_4 * r;
  9.    }
  10.    else
  11.    {
  12.       r = (x + abs_y) / (abs_y - x);
  13.       angle = 3*M_PI_4 - M_PI_4 * r;
  14.    }
  15.    if (y < 0)
  16.    return(-angle);     // negate if in quad III or IV
  17.    else
  18.    return(angle);
  19. }

  20. static void putbit(float v,channel_t *ch)
  21. {
  22.         ch->outbits>>=1;
  23.         if(v>0) {
  24.                 ch->outbits|=0x80;
  25.         }
  26.         ch->nbits--;
  27.         if(ch->nbits<=0)decodeAcars(ch);
  28. }

  29. void demodMsk(float in, channel_t *ch)
  30. {
  31.         int idx,j;

  32.         float iv,qv,s,bit;
  33.         float dphi;
  34.         float p,sp,cp;
  35.                
  36.         /* oscilator */
  37.         p=ch->MskFreq+ch->MskDf;
  38.         ch->MskClk+=p;
  39.         p=ch->MskPhi+p;
  40.         if(p>=2.0*M_PI){
  41.                 p-=2.0*M_PI;
  42.         }
  43.         ch->MskPhi=p;

  44.         idx=ch->idx;

  45.         if(ch->MskClk>3*M_PI/2) {
  46.                 ch->MskClk-=3*M_PI/2;

  47.                 /* matched filter */
  48.                 for(j=0,iv=qv=0;j<ch->flen-1;j++) {
  49.                         int k=(idx+1+j)%ch->flen;
  50.                         iv+=ch->h[j]*ch->I[k];
  51.                         qv+=ch->h[j]*ch->Q[k];
  52.                 }

  53.                 if((ch->MskS&1)==0) {
  54.                         if(iv>=0)
  55.                                 dphi=fst_atan2(-qv,iv);
  56.                         else
  57.                                 dphi=fst_atan2(qv,-iv);
  58.                         if(ch->MskS&2) {
  59.                                 bit=iv;
  60.                         } else {
  61.                                 bit=-iv;
  62.                         }
  63.                         putbit(bit,ch);
  64.                 } else {
  65.                         if(qv>=0)
  66.                                 dphi=fst_atan2(iv,qv);
  67.                         else
  68.                                 dphi=fst_atan2(-iv,-qv);
  69.                         if(ch->MskS&2) {
  70.                                 bit=-qv;
  71.                         } else {
  72.                                 bit=qv;
  73.                         }
  74.                         putbit(bit,ch);
  75.                 }
  76.                 ch->MskS=(ch->MskS+1)&3;

  77.                 /* PLL */
  78.                 dphi*=ch->MskKa;
  79.                 ch->MskDf=PLLKc*ch->MskDf+dphi-PLLKb*ch->Mska;
  80.                 ch->Mska=dphi;
  81.         }

  82.         /* DC blocking */
  83.         s=in-ch->Mskdc;
  84.         ch->Mskdc=(1.0-ch->Mskdcf)*ch->Mskdc+ch->Mskdcf*in;

  85.         /* FI */
  86.         sincosf(p,&sp,&cp);
  87.         ch->I[idx]=s*cp;
  88.         ch->Q[idx]=s*sp;

  89.         ch->idx=(idx+1)%ch->flen;               
  90. }
复制代码


以上,读入1k的数据,进行解码,原子操作。快速数学算法已经提供。移植难度很小,基本复制粘贴。

出105入79汤圆

发表于 2018-10-27 23:06:30 | 显示全部楼层
麦克风电路+ADC+DMA+双缓冲+解码块复制粘贴+串口输出 = 3000 还不错

出105入79汤圆

发表于 2018-10-27 23:10:50 | 显示全部楼层
最近我也想给我们公司的无人机加上ADS-B设备. 如果楼主提供设备给我调试,我可以免费给楼主做。

出0入475汤圆

 楼主| 发表于 2018-10-27 23:19:03 | 显示全部楼层
qwe2231695 发表于 2018-10-27 23:10
最近我也想给我们公司的无人机加上ADS-B设备. 如果楼主提供设备给我调试,我可以免费给楼主做。 ...

你好,adsb是ID(1a2b3c)的强项,可以深入合作。

出0入36汤圆

发表于 2018-10-27 23:23:28 来自手机 | 显示全部楼层
3000大洋?为什么这么廉价?

出0入475汤圆

 楼主| 发表于 2018-10-27 23:27:29 | 显示全部楼层
qwe2231695 发表于 2018-10-27 23:10
最近我也想给我们公司的无人机加上ADS-B设备. 如果楼主提供设备给我调试,我可以免费给楼主做。 ...

给你私信发了 (1a2b3c)的联系信息。

出0入0汤圆

发表于 2018-10-28 07:06:55 | 显示全部楼层
看了一遍,楼上几位高手已做出来了。

出0入0汤圆

发表于 2018-10-28 07:27:53 来自手机 | 显示全部楼层
楼上各位都是牛人,进来学习一下。

出0入0汤圆

发表于 2018-10-28 10:21:54 来自手机 | 显示全部楼层
看着看着好像变免费了

出0入475汤圆

 楼主| 发表于 2018-10-28 10:36:24 来自手机 | 显示全部楼层
最新进展,第一位网友退出后,有一位新的网友接手,待周一前确认反馈。

出0入475汤圆

 楼主| 发表于 2018-10-28 10:41:38 来自手机 | 显示全部楼层
Ray______ 发表于 2018-10-28 10:21
看着看着好像变免费了

没有免费。上面有一位网友提到免费字眼,实际上是与(1a2b3c)的产品合作的预想,和我这个事情不相干。

出0入8汤圆

发表于 2018-10-28 10:44:13 | 显示全部楼层
年前接了个项目,客户开价20K,当时以为赚了,但做着做着,客户又加价到40K,项目到现在才能试运行成功。

出0入0汤圆

发表于 2018-10-28 11:06:33 | 显示全部楼层
1a2b3c 发表于 2018-10-28 10:41
没有免费。上面有一位网友提到免费字眼,实际上是与(1a2b3c)的产品合作的预想,和我这个事情不相干。 ...

我就调侃一下~~~

出0入475汤圆

 楼主| 发表于 2018-10-28 11:11:18 来自手机 | 显示全部楼层
Ray______ 发表于 2018-10-28 11:06
我就调侃一下~~~

没事:) 我明白

出0入26汤圆

发表于 2018-10-28 19:53:09 | 显示全部楼层
redworlf007 发表于 2018-10-27 23:23
3000大洋?为什么这么廉价?

如果别人刚好做过类似的,举手之间就可以赚到3000,何乐而不为?

出0入26汤圆

发表于 2018-10-28 19:54:19 | 显示全部楼层
lvfv 发表于 2018-10-27 10:12
老板,啥项目能聊聊么?看我能接下来不
我在民治。

我这边还要做预算和规划。到实施阶段我再联系你。

出5入10汤圆

发表于 2018-10-28 20:04:35 | 显示全部楼层
xly 发表于 2018-10-28 19:53
如果别人刚好做过类似的,举手之间就可以赚到3000,何乐而不为?

如果是个人的没关系,但是我认为论坛里的绝大部分的都是是公司的,所以,就存在侵权的问题了。

出0入0汤圆

发表于 2018-10-29 14:32:14 | 显示全部楼层
这样的活, 这样的价格也接, 二楼究竟多等钱花啊~~~佛系的才肯接啊~~

出0入475汤圆

 楼主| 发表于 2018-10-29 17:40:47 | 显示全部楼层
最近进展通报:
第二位网友 my12doom 接手帮忙进行本次移植处理,目前来看他的评估结果已经可以实际测试运行了。
待最终结论出来后会公布出来本次完结情况。

出0入0汤圆

发表于 2018-10-29 21:21:29 | 显示全部楼层
印尼掉飞机了

出0入0汤圆

发表于 2018-10-30 09:23:41 | 显示全部楼层
宁缺毋滥,项目要做到1.5K 一天的报价,否则

出0入475汤圆

 楼主| 发表于 2018-10-30 10:25:42 | 显示全部楼层
黄晨0410 发表于 2018-10-30 09:23
宁缺毋滥,项目要做到1.5K 一天的报价,否则

人家是3K/天   前面高手上来也就是几个小时时间就给我结果了,一天时间就搞定了

出0入0汤圆

发表于 2018-10-30 11:54:15 来自手机 | 显示全部楼层
唉,现在混口饭吃真难

出20入128汤圆

发表于 2018-10-30 14:30:11 | 显示全部楼层
my12doom 发表于 2018-10-26 23:59
ACARS是飞机下传状态及地面发信息给飞机的协议,楼主发这个是电视棒爱好者常拿来看飞机的软件之一
本身ACAR ...

尼玛,这你都知道?

出0入475汤圆

 楼主| 发表于 2018-11-1 08:09:51 | 显示全部楼层
结果通报:本帖于昨天正式完成了与第二位网友的合作,并也按约定支付辛苦费,感谢关注本帖的所有网友以及更感谢对本帖提出建议和帮助的热心网友。同时也感谢本ID(1a2b3c),后面会不定期发布类似需求请各位网友帮助。

出0入50汤圆

发表于 2018-11-1 13:50:58 | 显示全部楼层
xly 发表于 2018-10-28 19:54
我这边还要做预算和规划。到实施阶段我再联系你。

同在深圳,什么项目,能了解下吗

出0入0汤圆

发表于 2018-11-8 20:29:27 | 显示全部楼层
哇,年轻真好

出870入263汤圆

发表于 2018-11-9 08:16:55 | 显示全部楼层
buck 发表于 2018-10-26 16:22
qiong,现在是理性消费人群

这样做,你永远都是理性消费人群。

出0入0汤圆

发表于 2018-11-14 12:03:21 | 显示全部楼层
最近想找开发板,stm32可以linux了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 16:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表