Python 在线防护
简介
互联网连接无处不在,它不断发现新的应用,并为旧设计带来新的生命。在这个小型集成电路设备拥有 TCP/IP 协议栈和无线连接的时代,人们不再需要独立的 PC 来利用互联网。
VAHNZ Controls 开发了其 eBukal[1] 远程报警设备,以利用他们对微控制器接口和互联网协议的知识,为建筑自动化领域创造了一个创新的解决方案。
远程事件拨号互联网通知
这个想法源于一位客户在波特兰一个漫长炎热的夏天,需要监控办公楼空调的温度。办公室物业经理希望在办公室温度变得难以忍受,租户开始抱怨之前收到警报。该应用程序不仅限于检测温度变化,还可与各种输入设备(如接近开关和洪水传感器)一起使用。
第一个版本的设计使用 DTMF 音调在办公室经理的电话上留下数字消息。除了破译数字含义的粗糙性之外,呼叫设备还必须协商接收者语音邮件系统中的时间陷阱,以选择留下数字反馈的选项。由此产生的系统既不稳健也不美观。
短信似乎是正确的方法,因为任何手机都可以轻松接收消息。大多数无线运营商都维护电子邮件到 SMS 网关,并且许多现成的设备都可以生成电子邮件消息。我唯一受到限制的是拨号连接的必要性 —— 许多包含监控设备的地点都无法接收无线信号。
在提出了使用短信的基本想法并选择组件后,我必须弄清楚如何让各个部分协同工作。
来自 eBukal 设备的电子邮件消息必须在服务器上进行解析,以确定要通知的收件人和应接收条目的在线日志。必须将新设备添加到配置文件中。必须通过串行端口将诸如阈值、拨打的电话号码等参数发送到 eBukal。必须编写图形用户界面 (GUI) 以使现场人员能够设置设备。

eBukal 如何用于监控地下室的水况 放大
我知道如何编写命令行脚本和 PHP 来进行服务器编码,并使用 Perl 进行 CGI,并使用 Visual Basic 进行 GUI,但这次我想做得更好。我想把它做好。
Python - 一站式开发加平台独立性
我以前使用过 Python,它似乎有潜力完成所有必需的编码,并且是一种我喜欢使用的编程语言。我对任务的某些部分,特别是构建图形用户界面,不是完全有信心,但决定面对我的恐惧,相信 Python 的成熟度、强大的库和第三方支持。SPE 编辑器以及 Python 的解释性性质被证明特别有价值。

基于 wxPython 的 eBukal 消息配置用户界面屏幕截图
经过一些试验和错误后,我确定了最终的概念,使用以下标准库和第三方模块
- email、time 和 ConfigParser -- 用于电子邮件解析、电话消息生成以及服务器端的日志条目
- cgi 和 sha -- 用于编辑服务器配置文件的 CGI 模块
- wxPython 和 wx.xrc -- 用于在 XRCed 中编写的 GUI
- serial、pickle、ConfigParser 和 time -- 用于 eBukal 设定点下载的串行通信库
不幸的是,没有使用 Python 语法的 PIC 编译器;如果存在这样的工具,这个循环就完成了。因此,微控制器代码是用 PicBasic Pro 编写的,PicBasic Pro 是 MicroEngineering Labs, Inc 的一种流行的商业产品。

eBukal 在线事件日志的屏幕截图,红色为警报,日常诊断为信息性消息 放大
这次冒险得到了回报。该系统运行良好,并且可以添加许多附加功能:服务器日志记录功能、每日诊断和在线配置。Python 提供的功能超出了我的要求,并且根据正在使用的库模块中功能的可用性添加了一些功能。
总结
这可能还不是 VAHNZ Controls 的杀手级应用程序,但我认为选择 Python 编程语言是朝着正确方向迈出的一步。技术总是在不断发展,没有人知道接下来会发生什么,但我相信 Python 会在那里准备好迎接挑战。平台独立性是另一个值得高兴的方面 —— 在当今的环境下,将所有筹码押在一位玩家身上可能比以往任何时候都更冒险。
有关更多信息,请访问 VAHNZ Controls 在线网站 eBukal.vahnzcontrols.com 或联系 info at vahnzcontrols.com。