Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电

Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电,第1张

以下是单片机实践团为您解答:

1)既然你已经在windows下面搞qt了,转到linux下面就没啥编程问题了,都一样的只是环境搭建有一点点不一样。

2)windows下面直接用的qtsdk for windows的吧,其实是人家直接给你做好的环境,建议自己用everywhelesource自己编译了解整个框架的结构,搞清楚windows下面如何显示的问题就差不多清楚了。

3)啰嗦的说,windows下面你虽然能够编译你的代码看到运行界面,不过我猜你没有深入了解这个框架不是mfc他如何调用windows的显示的,其实在linux下面道理也是一样的。

4)下面说说要怎么弄,主要是环境搭建,用你板子的交叉编译器编译qt源码就是那个everywhelesource了,这个主要要搞清楚那个configure,进入目录运行他生成makefile,记得configure后面要带参数,很多的比如你的交叉编译器。你可以用--help来看这些参数的详细说明。这些你要找点专业的文章来看看,英文好点可以直接上官方网站看的,很详细。

5)编译好这个之后其实你就可以直接把windows下面的代码拿来再次编译就行了,不过有一点你控制继电器的话还要你板子的gpio驱动,也就是控制引脚的,一般板子的驱动都有的。

6)如果你要仿真的话还要编译x11版本的qt,这个主要是要得到那个虚拟显存,用于调试用的,不用直接搞到板子上看效果,这个是x86版本提供的快捷方式,一般都用的,嗯很多的,看一些文章吧,毕竟我只能给你说个大纲盖的。

7)再说个你这就零分,不然给你多说点,看着烦。不明白在hi我吧。

运行级就是 *** 作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。

不同的运行级定义如下

# 0 - 停机(千万不能把initdefault 设置为0 )

# 1 - 单用户模式 # s init s = init 1

# 2 - 多用户,没有 NFS

# 3 - 完全多用户模式(标准的运行级)

# 4 - 没有用到

# 5 - X11 多用户图形模式(xwindow)

# 6 - 重新启动 (千万不要把initdefault 设置为6 )

这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)

chkconfig 命令有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

语法为:

chkconfig --list [name]

chkconfig --add name

chkconfig --del name

chkconfig [--level levels] name

chkconfig [--level levels] name

chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回 true,否则返回false。 --level 选项可以指定要查看的运行级而不一定是当前运行级。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。

对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset 可以对所有运行级有效。指定 --level 选项时,可以选择特定的运行级。

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init 不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

选项介绍:

--level levels

指定运行级,由数字 0 到 7 构成的字符串,如:

--level 35 表示指定运行级3 和5。

要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off

--add name

这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动建立。

--del name

用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

--list name

列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

运行级文件

每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。

第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。

第二行对服务进行描述,可以用 跨行注释。

例如,random.init 包含三行:

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for

# higher quality random number generation.

表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。

好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。

设置自启动服务:chkconfig --level 345 nfs on

配置启动项方法

命令行模式

#service servicename status是当前状态

#chkconfig --list servicename是查看启动状态,也就是是否开机自动启动

#chkconfig --list列出所有开机启动项#chkconfig --level 345 xx off 把不想启动的项345级别设置为off(关闭)(服务名xx)

界面模式终端中直接输入#ntsysv

Linux启动项说明

apmd--apmd用来监视系统用电状态,并将相关信息通过syslogd写入日志。也可以用来在电源不足时关机

arpwatch--用来维护以太网物理地址和ip地址的对应关系

atd--运行用户用at命令调度的任务。也在系统负荷比较低时运行批处理任务

autofs--当您需要时自动转载文件系统,而当您不需要时自动卸载

chargen--tcp版本的chargen server

chargen-udp--udp版本的chargen server

crond--周期地运行用户调度的任务。比起传统的unix版本添加了不少属性,而且更安全,配置更简单

daytime--tcp版本的daytime server

daytime-udp--udp版本的daytime server

echo--tcp版本的echo server

echo-udp--udp版本的echo server

eklogin--接受rlogin会话鉴证和用kerberos5加密的一种服务

finger--用于应答finger请求的服务

gpm--为文本模式下的linux程序提供了鼠标的支持。它也支持控制台鼠标的拷贝,粘帖 *** 作以及d出式菜单 (必须)

gssftp--接受可被kerberos5验证的ftp连接

httpd--http是著名的www服务器,可用来提供html文件以及cgi动态内容服务

identd--提供验证身份的方法

ipchains--ipchains包过滤防火墙

iptables--iptables包过滤防火墙

ipvsadm--调用ipvsadm来建立和维护ipvs路由选择表

isdn--启用isdn(综合服务数字网)服务

kadmin--更改在主控kdc中使用本机的kadmin工具,或透过kadmin服务来完成

kdcrotate--设置配置文件/etc/krb5.con中的kdcs表项

keytable--该程序的功能是转载您在/etc/sysconfig/keyboards里说明的键盘映射表

klogin--接受bsd方式的rlogin会话,但需要使用kerbeos5验证

kprop--是否允许kdc接收来的master kdc的升级

krb5-telnet--允许普通的telnet登陆,但也可使用kerberos5验证

krb524--是以改变kerberos5到kerberosIV的赁证

krb5kdc--开启kerberosIV和5所需的连接以获得赁证

kshell--接受rshell命令鉴证和用kerberos加密的服务

kudzu--运行硬件检测,并可选择性地设置硬件变化

lpd--lpd是系统打印守护程序,负责将lpr等程序提交给打印作业

netfs--负责装载/卸载nfs、samba、ncp文件系统

network--激活/关闭启动时的各个网络接口 (必须)

nfs--nfs是一个流行的基于tcp/ip网络的文件共享协议.该服务提供了nfs文件共享服务

nfslock--提供nfs文件上锁功能

nscd--该服务负责密码和组的查询,并且缓冲查询结果

portmap--portmap用来支持rpc连接,rpc被用于nfs以及nis等服务

postgresql--postgresql关系数据库引擎

random--保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的

rlogin--rlogin程序服务,提供来自远程信任主机的注册功能

routed--该守护程序支持rip协议的自动ip路由表维护.rip主要使用在小型网络上,大一点的网络就需要复杂一点的协议

rsh--提供rcmd程序或者rsh程序的服务

rstatd--rstat协议允许网络上的用户获得同一网络上各机器的性能参数

rsync--对ftp服务的一个很好的附加,允许循环码求和校验等

rusersd--该服务使网络用户可以定位同一网络上的其他用户

rwalld--rwall协议允许远程用户向在同一系统中活跃着的终端发送消息,类似wall的本地行为

rwhod--允许远程用户获得运行rwho精灵的机器上所有已登录用户的列表,与finger类似

smb--启动和关闭smbd和nmbd精灵程序以提供smb网络服务

snortd--一个轻量级的网络入侵检测工具

swat--samba网络配置工具,可以通过流览器的901端口连接使用swat

syslog--syslog是 *** 作系统提供一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件 (必须)

telnet--提供telnet服务,使用未加密的用户/密码组进行验证

time--tcp版本的rfc 868 time server

time-udp--udp版本的rfc 868 time server

webmin--webmin是基于web的集系统管理与网络管理于一身的强大管理工具

xfs--在引导和关闭时启动和停上x字体服务,并可能重新生成字体表 (必须)

xinetd--因特网 *** 作服务程序。提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全,监控网络对各种它管理的服务的需求,并在要的时候启动相应的服务程序

ypbind--实现网络信息服务的服务器端

redhat 下常用服务介绍

anacron 不考虑系统downtime期间的cron服务

amd 自动安装NFS守候进程

apmd 高级电源管理

arpwatch 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库

atd 用于at和batch的服务

autofs 自动安装管理进程automount,与NFS相关,依赖于NIS

crond 为Linux下自动安排的进程提供运行服务.

Gpm 提供字符模式下对鼠标的支持.

Keytable 用于装载键盘镜像

Kudzu 硬件探测器

Netfs 安装和卸载NFS、SAMBA和NETWARE网络文件系统

Network 激活已配置网络接口的脚本程序

Nfslock NFS锁定

Pcmcia 安装pcmcia卡(一般用于笔记本电脑)

Sshd OpenSSH服务器

Syslog 一个让系统引导时启动syslog和klogd系统日志守候里程的脚本

Xfs Xwindow字型服务器,为本地和远程X服务器提供字型集

Xinetd 支持多种网络服务的核心守候程序。

这个课题挺切合实际啊 不过没几个月做不出来实物吧

重点是

1,发信息就用发微信或者微博就行 发条微信给开发板 家里的窗帘的关闭了 类似这样

2,你有开发板估计linux qe都装好了写写界面 不过现在智能开关都用zigbee或zwave通信

你重点可以写写这两个方面

然后搜搜资料 “基于xxx的智能家居” 看看别人的设计 应该自己也能写出来

期待牛人来解答


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7441745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存