You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61850gui/dialog_ctrl.cpp

148 lines
4.6 KiB
C++

2 years ago
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: dialog_ctrl.cpp
* Author: shjd
*
* Created on 20171226, 4:20
*/
#include "dialog_ctrl.h"
#include "gui_srv.h"
extern gui_srv * w;
dialog_ctrl *dlg_ctrl;
typedef ST_RET(*ai_get_obj_dir_type)(AI_IED_CTRL*, AI_OBJ_ID, ST_BOOLEAN, AI_OBJ_ID **, ST_INT*);
typedef AI_IED_CTRL * (*ac_get_srvm_ied_type)(ST_INT);
typedef ST_RET(*ai_obj_id_to_ref_type)(AI_IED_CTRL *, AI_OBJ_ID, ST_CHAR *);
typedef ST_RET(*ai_read_obj_primVals_type) (AI_OBJ_ID, AI_IED_CTRL*, AI_OBJ_VAL*);
typedef ST_RET(*ai_prim_value_to_str_type)(AI_VAL_TYPE, ST_VOID *, ST_CHAR *);
typedef ST_VOID(*ai_cleanup_objVals_type) (AI_OBJ_VAL *);
extern ai_get_obj_dir_type ai_get_obj_dir_ad;
extern ac_get_srvm_ied_type ac_get_srvm_ied_ad;
extern ai_obj_id_to_ref_type ai_obj_id_to_ref_ad;
extern ai_read_obj_primVals_type ai_read_obj_primVals_ad;
extern ai_prim_value_to_str_type ai_prim_value_to_str_ad;
extern ai_cleanup_objVals_type ai_cleanup_objVals_ad;
dialog_ctrl::dialog_ctrl() {
// ST_CHAR obj_name[MAX_IDENT_LEN + 1] = {0};
// ST_CHAR ctrval_ref[MAX_IDENT_LEN + 1] = {0};
// ST_INT srv_id;
// AI_IED_CTRL *ied_ctrl;
// ST_CHAR *strp;
// AI_OBJ_ID ctlModel_id;
// ST_RET ret;
// AI_OBJ_VAL obj_val;
// AI_OBJ_ID ctlval_id;
// AI_OBJ_VAL ctlval_val;
// ST_INT i;
// char temp[MAX_REFERENCE_LENGTH + 1] = {0};
widget.setupUi(this);
// widget.pB_op->setEnabled(false);
// widget.pB_sel->setEnabled(false);
// widget.pB_selv->setEnabled(false);
// widget.pB_revoke->setEnabled(false);
// widget.lb_opt->setText("");
// widget.lb_opinfo->setText("");
// widget.lE_ts->setText("");
// widget.lE_ms->setText("");
// widget.cB_ctrl->clear();
// ied_ctrl = ac_get_srvm_ied(srv_id);
// ai_obj_id_to_ref(ied_ctrl, obj_id, obj_name);
// ai_obj_id_to_ref(ied_ctrl, obj_id, ctrval_ref);
// strp = strstr(obj_name, "$CO");
// if (strp == NULL) {
// QMessageBox::warning(NULL, "warning", "读取控制对象属性失败!", QMessageBox::Yes);
// return;
// }
// *(strp + 2) = 'F';
// strcat(obj_name, "$ctlModel");
// strcat(ctrval_ref, "$Oper$ctlVal");
// ctlModel_id = ai_obj_ref_to_id(ied_ctrl, obj_name);
// ctlval_id = ai_obj_ref_to_id(ied_ctrl, ctrval_ref);
// if (ctlModel_id == -1 || ctlval_id == -1) {
// QMessageBox::warning(NULL, "warning", "读取控制对象属性失败!", QMessageBox::Yes);
// return;
// }
// ret = ai_read_obj_primVals(ctlModel_id, ied_ctrl, &obj_val);
// ret = ai_read_obj_primVals(ctlval_id, ied_ctrl, &ctlval_val);
// ctlval_type = ctlval_val.prim_vals[0].type;
// if (ctlval_type == VAL_TYPE_BOOLEAN) {
// widget.cB_ctrl->insertItems(0, "true");
// widget.cB_ctrl->insertItems(1, "false");
// } else if (ctlval_type == VAL_TYPE_INT32) {
// for (i = 0; i < 256; i++) {
// m_ctrl_val.InsertString(i, itoa(i, temp, 10));
// }
// } else if (ctlval_type == VAL_TYPE_CODEDENUM) {
// widget.cB_ctrl->insertItems(0, "stop");
// widget.cB_ctrl->insertItems(1, "lower");
// widget.cB_ctrl->insertItems(2, "higher");
// widget.cB_ctrl->insertItems(3, "reserved");
// } else if (ctlval_type == VAL_TYPE_INT8) {
// for (i = -64; i < 64; i++) {
// m_ctrl_val.InsertString(i, itoa(i, temp, 10));
// }
// }
// ctlModel_val = *(ST_INT *) (obj_val.prim_vals[0].data);
// ctlModel_val &= 0x000000ff; //XYS 2009-4-10
// if (ctlModel_val == 1 || ctlModel_val == 3) {
// widget.pB_op->setEnabled(true);
// } else if (ctlModel_val == 2) {
// widget.pB_sel->setEnabled(true);
// } else if (ctlModel_val == 4) {
// widget.pB_selv->setEnabled(true);
// } else {
// QMessageBox::warning(NULL, "warning", "控制类型不对!", QMessageBox::Yes);
// ai_cleanup_objVals(&obj_val);
// ai_cleanup_objVals(&ctlval_val);
// return;
// }
// ai_cleanup_objVals(&obj_val);
// ai_cleanup_objVals(&ctlval_val);
//
// return; // return TRUE unless you set the focus to a control
// // EXCEPTION: OCX Property Pages should return FALSE
}
void dialog_ctrl::SetIds(ST_INT srvid, AI_OBJ_ID objid) {
srv_id = srvid;
obj_id = objid;
}
void dialog_ctrl::on_pB_sel_clicked() {
}
void dialog_ctrl::on_pB_selv_clicked() {
}
void dialog_ctrl::on_pB_op_clicked() {
}
void dialog_ctrl::on_pB_revoke_clicked() {
}
void dialog_ctrl::on_pB_quit_clicked() {
}
dialog_ctrl::~dialog_ctrl() {
}