void CAlarmParamsDlg::showEvent(QShowEvent * event) { if(NULL == event) { } getAlarmInfo(); changeAlarmInIndex(0); changeAlarmOutIndex(0); }
//发送节点液位报警信息 int sendAlarmBroadInfo(uint64 *time,enum RealLabel type,uint8 drum,uint32 leveldiff) { //如果生成的协议为空 if((time == NULL) || (drum == (uint8)0) || (leveldiff == (uint32)0)) return -1; char resend_type = RESEND_NONE; char *buf = NULL; uint16 len = 0; switch(type) { //以下信息都是广播信息 case REAL_ALARM_FISRT: case REAL_ALARM_SECOND: case REAL_ALARM_THIRD: resend_type = RESEND_ALARM; break; default: return -1; } if(my_mutex_lock(&send_lock)) return -1; RealSendNode *rsn = RealSendList; //寻找节点发送 while(rsn != NULL) { buf = getAlarmInfo(rsn->username,drum,time,type,leveldiff,&len); //所有节点都发送,并且要保证发送成功,即保证失败重发 InTimelyReSendQueue(rsn->fd,&(rsn->sendaddr),buf,len,resend_type,drum); //发送到定时发送函数,以确保这些重要信息完整的被接收 free(buf); len = 0; rsn = rsn->next; } pthread_mutex_unlock(&send_lock); return 0; }
//设置报警输出参数button void CAlarmParamsDlg::on_pushButtonAlarmOutSave_clicked() { setAlarmoutInfo(); getAlarmInfo(); }