定义变量只是为了讲解,实际项目可以从数据库中查上一条设备上报记录
如果报警的字段是数字类型
//数据库中设置的最大报警值阈值
double limitMaxValue ;
//该字段当本次报的值
double currentValue ;
//数据库中上一次上报的值
double previousValue ;
//本次上报值大于最大值并且上次上报值小于最大值
if(currentValue > limitMaxValue && previousValue <= limitMaxValue){
//执行报警逻辑,产生一条报警信息
//这样设备报警后,不会持续产生产生报警信息
//只有从正常值变为异常值的那一次,才会报警一次
//除非下次恢复正常值范围,再次异常,才会下次报警
}
如果报警的字段是布尔或者枚举类型
//该字段设置的报警状态
int warnStatus ;
//该字段本次上报的状态
int currentStatus ;
//该字段上一次上报的状态
int previousStatus ;
//本次上报值大于最大值并且上次上报值小于最大值
if(currentStatus == warnStatus && previousStatus != warnStatus){
//执行报警逻辑,产生一条报警信息
//这样设备报警后,不会持续产生产生报警信息
//只有从正常状态变为异常状态的那一次,才会报警一次
//除非下次恢复正常状态,再次异常,才会下次报警
}