我正在做个人项目.我想用旧火腿收音机通过空中传输一些数据.
我的第一个草案申请就是这样的:
我用4"信号"构造一个字节:
5000hz表示"00"
6khz的意思是"01"
7khz的意思是"10"
8khz的意思是"11"
9khz与前一个相同
然后我将这4个位合并在一起并重新开始下一个位.
解调效果很好,应该足够快,但我的声音产生问题......它很慢......
这是我的调试代码:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
Beep( 5000, 100 );
Beep( 6000, 100 );
Beep( 7000, 100 );
Beep( 8000, 100 );
Beep( 9000, 100 );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期待5次哔哔声,靠近在一起,每次100毫秒,但这是我得到的(在顶部,五个"100ms哔哔声()",在底部,五个"20ms哔哔声()":
正如你所看到的,我得到的是50ms的哔哔声,然后75ms暂停,当我想要100ms的哔哔声,10ms的哔哔声,接着是100ms的暂停,当我想要20ms的哔哔声时.
对于Windows,有比Beep()更快更准确的东西吗?(适用于Linux的东西会更好,因为最终的应用程序应该在覆盆子pi上工作)
我会用3ms的声音获得更高的可用带宽(...... 41字节/秒......这对我的应用来说已经足够了)
编译器:g ++(mingw)
Os:七个64位
我想通过在主类之外编写嵌套类的实际代码来保持代码的可读性,是否可行,以及如何实现?
class AA{
//random code
class BB : public CC <double> {
// very long code
};
// random code
};
Run Code Online (Sandbox Code Playgroud)
我想写一些类似的东西:
class AA{
//random code
//<declaration of class BB>
// random code
};
class BB : public CC <double>{
// very long code
};
Run Code Online (Sandbox Code Playgroud)
BB级只能在AA级内进行...
我需要你的帮助 !
我做了一个报告deamon(用c ++),需要在服务器上定期执行一堆命令.
一个简单的示例命令是:"/ bin/ps aux |/usr/bin/wc -l"
第一个想法是使用popen()分叉运行命令的子进程,并在父进程中设置一个alarm(),如果命令尚未退出,则在5秒后终止该子进程.
我尝试使用"sleep 20000"作为命令,子进程被杀死但是sleep命令仍在运行...不好.
第二个想法是使用execlp()而不是popen(),它使用简单的命令(即没有管道),如"ls -lisa"或"sleep 20000".我可以得到结果,如果5秒后没有完成,则会杀死进程.
现在我需要执行"/ bin/ps aux |/usr/bin/wc -l"命令,显然它不能直接使用execlp(),所以我尝试了"hack":
execlp("sh","sh","-c","/bin/ps aux | /usr/bin/wc -l",NULL);
Run Code Online (Sandbox Code Playgroud)
我工作......或者说我想...我试过了
execlp("sh","sh","-c","sleep 20000",NULL);
Run Code Online (Sandbox Code Playgroud)
只是为了确定并且子进程在5秒后被终止(我的超时)但是sleep命令就在那里...
我愿意接受建议(我会讨价还价)!
提前致谢 !
TLDR;
我需要一种方法: