我正在使用Python和PyGTK.我对运行某个函数感兴趣,该函数每隔几分钟从串口获取数据并保存.
目前,我在时间库中使用sleep()函数.为了能够进行处理,我的系统设置如下:
import time
waittime = 300 # 5 minutes
while(1):
time1 = time.time()
readserial() # Read data from serial port
processing() # Do stuff with serial data, including dumping it to a file
time2 = time.time()
processingtime = time2 - time1
sleeptime = waittime - processingtime
time.sleep(sleeptime)
Run Code Online (Sandbox Code Playgroud)
此设置允许我在从串行端口读取数据之间有5分钟的间隔.我的问题是,我希望能够让我的readserial()函数暂停每5分钟发生一次,并且能够一直做事而不是使用time.sleep()函数.
有关如何解决这个问题的任何建议?多线程?中断?请记住我正在使用python.
谢谢.
什么库用于制作静态终端窗口,如vim,nano,irssi或aptitude,而不是滚动终端?
我正在使用C,但我对其他语言的库感兴趣(例如,C++特定的库).
我正在开发一个跨越多个C文件的项目.对于我的第一对练习程序,我只是编写了我的代码main.c并使用编译gcc main.c -o main.在我学习的过程中,这对我有用.
现在,我正在自己开展一个更大的项目.我想继续自己编译(或者至少手动设置),这样我就可以理解这个过程了.读了一下后,我决定制作一个Makefile.
注意:我也在使用GTK +,所以我不得不查看如何将它添加到编译命令中.
这是经过一些研究后的样子:
main:
gcc -Wall -g main.c -o main `pkg-config --cflags --libs gtk+-2.0`
Run Code Online (Sandbox Code Playgroud)
起初,我只是在运行"make".然后我遇到一些问题,即使我已经更改了文件,也会出现错误"main is latest".
所以我写了一个脚本:
#!/bin/bash
rm main
make
./main
Run Code Online (Sandbox Code Playgroud)
所以我做了更改,然后运行这个脚本.
这是一个好的/正常的系统吗?我希望拥有可扩展的系统,因为我的项目将会增长.我假设我可以保留该脚本,只需将依赖项添加到makefile并更改makefile中的主编译命令.我对么?
提前致谢.
编辑:
感谢您提供有关如何修复Makefile的反馈.
那么典型的编译过程1)类型make然后2)./main无论项目如何设置或其大小(假设您已经编写了正确的makefile)?
是否有标准的C函数允许您使用格式说明符构建字符串?
现在我这样做:
char buffer[256];
char *name = "Fred";
strcpy(buffer, "Hello, ");
strcat(buffer, name);
strcat(buffer, ". How are you today?\n");
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个函数中将消息添加到缓冲区?
像这样的东西:
makestr(buffer, "Hello, %s. How are you today?\n", name);
Run Code Online (Sandbox Code Playgroud) 我正在使用C,但我认为这是一个更低级别的问题,不是语言特定的.
程序如何使用array [0]或array [6]正确地获取正确的数据,而不管它包含什么类型的数据?它是在内部存储长度还是有某种分隔符来查找?