图片35
智能药盒的控制程序采用C语言程序编辑,对各个模块的功能以及对应的MCU接口进行初始化,各个模块之间配合运行,模块间通过全局变量以及状态标志位的形式进行数据通信。通过判断全局变量或状态标志位的值﹐决定某个模块是否需要运行﹐某个模块什么时候停止运行。
1、服药流程
服药过程在循环扫描中首先扫描时间是否到达设定服药时间﹐即服药提醒闹钟响起,按下Alarm按键停止闹钟后即可进入服药模式。
服药过程中考虑到结核病治疗的严苛性﹐需要患者按要求取服正确药物,因此在患者取药时会检测判断患者取药正确性。当患者正确取药服药后,系统自动保存服药数据并锁定药盒后,即退出服药过程;若患者出现取药错误的情况,蜂鸣器便会发声提醒患者﹐患者手动结束声音提醒后重新开始取药服药,直至患者按要求正确服药后才被确认完成当次服药过程。这样的服药流程可以起到及时提醒患者按要求服药的目的,而且出现不良服药记录后可及时锁定药盒,在以后手机软件的设计中,医生可根据获取的服药记录及时作出应急处理,有效地实现患者自主服药、医生远程监督的效果。
2、预警自锁装置驱动流程
预警自锁装置有上述介绍的电机驱动,配合药盒内部齿轮齿条结构完成药盒的锁定和开启功能。
药盒自锁切换采用的是齿轮齿条机构实现,所以切换中需要考虑齿条的行程问题。在程序控制过程中,分别设置了锁定状态标志位和锁定动作标志位。在切换过程中会判断切换动作和锁定状态是否一致,若一致则保持当前状态不变,不一致则根据锁定动作要求执行锁定或者开锁动作﹐然后更改锁定状态标志保存后退出。为保障系统的稳定性,这两个变量均被保存在FC芯片中,断电也不会丢失。