== MCU产气,补水流程 == === 补水 === 补水阶段涉及到一楼水箱和二楼湿化杯,j6电磁阀1,j15电磁阀2,j8真空泵,加水是加到二楼湿化杯里面,一楼水箱是机器工作时用的水,补水时一楼会向二楼进行吸水,一楼的水能供机器产8h; ==== 一楼二楼都没水 ==== * 一楼二楼都没水时,点击运行提示“若为新设备首次补水,请继续补水,否则请检测设备是否漏水”,然后向二楼湿化杯加水,当二楼水位大于等于L时,进入补水——j6、j15分别on\off 2个循环,然后再on,再将j8真空泵on,在补水过程中,若二楼湿化杯的水位到H或者VH都要播报语音:“请暂停加水”,检测到一楼等于H后,补水结束,并自动产气12s,自动产气结束后判断二楼水位,并根据水位播报相应语音; * 若在补水过程中,二楼水位小于L,则会停止补水,当二楼水位再次满足条件时才会继续进行补水——j6、j15分别on\off 2个循环,然后再on,再将j8真空泵on; ==== 一楼水位为非H,二楼没水 ==== * 若一楼水位为非H,点击运行提示“补水箱水位低,请加水”,向二楼湿化杯加水,水位大于等于L时,进入补水——j6、j15分别on\off 2个循环,然后再on,再将j8真空泵on,在补水过程中,若二楼湿化杯的水位到H或者VH都要播报语音:“请暂停加水”,检测到一楼等于H后,补水结束,并自动产气12s,自动产气结束后判断二楼水位,并根据水位播报相应语音; * 若在补水过程中,二楼水位小于L,则会停止补水,当二楼水位再次满足条件时才会继续进行补水——j6、j15分别on\off 2个循环,然后再on,再将j8真空泵on; ==== 一楼水位为H,二楼没水 ==== * 若一楼水位为H,则判断二楼水位,并根据二楼水位来播报语音,当一楼二楼双H之后,播报“补水箱水位已满,请旋紧注水口盖”,之后可进行产气; === 产气 === * 产气时会记录每次产气的时间,并进行累加,每次点开始产气时,会判断累加的产气值+设定的产气时间是否大于8h,若大于8h则会进入上述补水流程; * 产气过程中当二楼的水位为低时,会强制停止产气,播报“水位太低,停止产气”,若再次点击开始则会进入补水流程,若直接向二楼加水到L后可继续产气; * 产气过程中当一楼的水位为低时,会强制停止产气,播报“水位太低,停止产气”,直接进入补水流程; * 当已累计时间+设定时间小于8h并且一楼和二楼的水位都大于L时,均可产气; ==== 额外条件 ==== * 若产气停止,电源软关机,产气暂停后,j15要等待10min后才能关闭,若10min期间开始产气,则计时清零; * 若(累计已产气时间)<7.5H,系统不自动补水,若(累计已产气时间)≥7.5H,系统自动补水; * 产气过程中,累计产气时间4小时自动补水一次至1楼=H; * 当进行补水时,若补水时间大于100s则强制停止补水; * 每次补水时都会清空累计产气时间; == 上位机更新MCU流程 == * 上位机写入”AT+VER\r\n”到ttyS3串口; * MCU读取串口数据,然后以”+VER,”+版本号形式写入ttyS3串口; * 上位机读取串口数据,并判断stm32.bin文件是否存在; * stm32.bin存在则写入”AT+IAP\r\n”到ttyS3串口; * MCU读取串口数据,然后将”+IAP,OK”写入ttyS3串口,再将C写入串口; * 上位机读取串口数据,读取到”+IAP,OK”后创建Ymodem对象,并将串口传入Ymodem; * Ymodem通过串口读取到C后,发送SOH数据包到串口; * MCU接收到SOH后,先发送ACK到串口,再发送C; * 上位机接收到ACK和C后发送STX数据包到串口; * MCU接收到STX后发送ACK到串口; * 重复STX和ACK的流程,STX的数据帧大小为1024字节,当最后一帧不足1024字节,上位机发送SOH到串口; * Ymodem收到MCU回复的ACK后,发送EOT到串口; * Ymodem收到MCU回复的NAK后,再次发送EOT到串口; * MCU回复ACK和C; * Ymodem回复SOH结束帧; * MCU回复ACK后,传输结束; * MCU对接收到的stm32.bin文件进行校验,校验成功后将APP对应的地址进行擦除,然后stm32.bin复制到相应地址上,升级完成; == 扫码录入设备编号流程 == === 准备工作 === * 下载扫码录入的App:https://www.pgyer.com/7xqRTW * 准备好设备编号的二维码 === 流程 === * 进入App,连接对应的蓝牙,点击30CSN输入 * 扫描二维码成功后点击发送 * 机器进入录入设备编号的界面,点击确认写入UDI码即可