基于ARM 的红外光汽车速度管理系统研究
c、fm7843.h 到/src/ial 目录,同时修改Makefile.am文件。加入MINIGUI 扩展库libmgext 支持,以Threads 模式交叉编译并将得到的MiniGUI静态链接库与交叉编译后的用户应用程序进行链接,生成可在目标板上运行的目标文件,最后在移植好的uclinux 系统上安装运行MiniGUI 所需的资源文件。
3.4 用户界面设计
用户界面主要包括一个主窗体用来显示速度信息以及一个为车辆速度报警而设定的对话框。以MniniGUIMain( int argc, const char* argv[ ] ) 为入口,定义显示区域,使用CreateThreadForMainWindow( )函数创建了两个并发的线程,定义线程的入口函数地址并返回线程标识符;在主线程中配置完成对timer1 的初始化操作,通过hMainWnd =CreateMainWindow( &Createinfo ) 创建主窗体并配置Createinfo 的各项属性, 调用ShowWindows( hMainWnd, SW_SHOWNORMAL )函数显示窗体作为用户主界面,最终进入消息循环。监视线程和主线程同时启动,此后,监视线程在后台对车速信息数据进行实时监控,并通过SendMessage( )向主线程发送相应的消息。消息的处理与超速报警判定可在主窗体窗口过程函数SpeedWinProc( )中实现。主窗体中的SET和About 下拉菜单通过CreatMenu( )和CreatePopupMenu( )函数实现,分别用于弹出速度设定对话框和系统说明对话框。将菜单句柄赋给主窗体的hMenu 属性并在窗体过程函数中加入对应菜单的处理代码,当菜单被管理者点击时,该窗体会收到相应的MSG_COMMAND 消息,系统根据消息执行相应菜单下的速度设定处理程序或系统说明显示程序。在速度设定对话框中,按钮使用普通"确定/OK"按钮CTRL_BUTTON,两个静态框CTRL_STATIC 分别标识两个单行编辑框CTRL_SLEDIT的功能:"上限速度设定"和"下限速度设定"。两个编辑框用来接收管理者输入的上限速度和下限速度。编辑框内的速度设定值通过MSG_GETTEXT 消息由CTRL_COOLBAR 控件实现的数字按钮输入。各控件的创建通过以控件类名调用Createwindow 函数实现。
4 结论
调制式红外光汽车速度识别系统,不仅能准确测出汽车车速状况,其测速信息还能避开"电子狗"式的反测速装置捕捉,使违章车辆难以逃避处罚,对提高交通管制的质量、消除事故隐患、保证人民群众的生命财产安全具有重要作用,并可用于其他测速场合,应用前景非常广阔。由于感应头仅对38 kHz 的调制红外光敏感, 其他红外光对其几乎无作用, 因此,系统具有较强的抗干扰能力。系统采用了ARM 嵌入式处理器、uclinux 操作系统以及触摸屏,不但人机交互性好,而且升级和扩展能力强,工作稳定,具有较大的应用前景。