保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

嵌入式Linux下基于MiniGUI的信息终端软件开发


listen_fd=serv_listen(LISTEN_SOCKET))<0)

return FALSH;

return RegisterListenFD(listen_fd,POLLIN,hwnd,NULL);

}

服务器监听该套接字listen_fd。当客户有连接请求时,服务器的过程函数中就会收到MSG_FDEVENT消息,服务器就可以接受该请求以进行相应处理:

static int MainFunProc(HWND hWnd,

{ switch(message)

{case MSG_FDEVENT:

if(LOWORD(wParam)= =listen_fd){

……

conn_fd=serv_accept(listen_fd,&uid);

if(conn_fd>0){

sock_read(conn_fd,buff[20],40);

……

sock_write(conn_fd,buff[20],40);

}}

break;

}}

在主界面进程中,需要连接到服务器时,可以通过cli_conn(LISTEN_SOCKET,'b')来提出请求。

这样,服务器和客户程序之间即可相互交流数据了。

广告进程实现时,需要在服务器中设置事件钩子函数SetServerEventHook(my_event_hook)。因为广告屏保是在没有键盘鼠标输入的一段时间后自动打开的,有任意键时又自动关闭,所以只有始终运行在后台的服务器才能判断广告是否要打开关闭。

可以在消息循环时进行判断:

while(GetMessage(&Msg,HWND_DESKTOP))

{if (pid_scrnsaver= =0&&GetTickCount()>

old_tick_count+1000){

ShowCursor(FLASE);

pid_scrnsaver=exec_app("./scrnsaver","crnsaver");

}

DispatchMessage(&Msg);

}

dld_tick_count是前一次消息的时间。当从GetTickCount()得到的当前时间大于设定值时,还没有任何消息的话,广告屏保scrnsaver程序就启动,同时隐蔽鼠标光标。

当系统又接收到事件时,会自动执行前面注册过的事件钩子函数。在该函数中,使用kill(pid_scrnsaver,SIGINT)命令关闭广告程序,并显示鼠标即可。

软件系统的示意如图2所示。

将完成的C语言程序文件用交叉编译工具编译,并链接MiniGUI库文件,即可生成所需的可执行文件。

《嵌入式Linux下基于MiniGUI的信息终端软件开发(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/154396.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。