📄 graph.cpp
字号:
/*
* 控制界面程序
*/
#include <stdlib.h>
#include "graph.h"
extern float DC_MotorCur_MIN; //单锤破电机电流,最小值
extern float DC_MotorCur_MAX; //单锤破电机电流,最大值
extern float DC_Axle1DevX_MIN; //单锤破轴承一X方向振动幅值,最小值
extern float DC_Axle1DevX_MAX; //单锤破轴承一X方向振动幅值,最大值
extern float DC_Axle1DevY_MIN; //单锤破轴承一Y方向振动幅值,最小值
extern float DC_Axle1DevY_MAX; //单锤破轴承一Y方向振动幅值,最小值
extern float DC_Axle2DevX_MIN; //单锤破轴承二X方向振动幅值,最小值
extern float DC_Axle2DevX_MAX; //单锤破轴承二X方向振动幅值,最大值
extern float DC_Axle2DevY_MIN; //单锤破轴承二Y方向振动幅值,最小值
extern float DC_Axle2DevY_MAX; //单锤破轴承二Y方向振动幅值,最小值
extern float DC_Axle1Temp_MIN; //单锤破轴承一温度,最小值
extern float DC_Axle1Temp_MAX; //单锤破轴承一温度,最大值
extern float DC_Axle2Temp_MIN; //单锤破轴承二温度,最小值
extern float DC_Axle2Temp_MAX; //单锤破轴承二温度,最大值
extern float BW_MotorCur_MIN; //板喂机电机电流,最小值
extern float BW_MotorCur_MAX; //板喂机电机电流,最大值
extern int sc;
extern unsigned32 net_client_id;
extern char ConnectState;
extern bool CPI[8], CPO[8]; //软PLC输入量和输出量数组
extern void InitDisp(void); //初始化软PLC界面显示
extern void cb_DCpoweron();
extern void cb_DCpoweroff();
extern void cb_DCstart();
extern void cb_DCstop();
extern void cb_DCreset();
extern void cb_DCemcstop();
extern void cb_BWstart();
extern void cb_BWstop();
extern "C" void cltnet(void*p);
extern void Read_Para(void);
extern void DispChg(void);
//extern "C" void Connect_BW(void);
Fl_Window *data_window=(Fl_Window *)0; //数据显示窗口
Fl_Window *para_window=(Fl_Window *)0; //参数设置窗口
Fl_Light_Button *lb_DCpoweron = (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCstart = (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCpoweroff = (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCstop = (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCreset = (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCemcstop = (Fl_Light_Button *)0;
Fl_Light_Button *lb_BWstart = (Fl_Light_Button *)0;
Fl_Light_Button *lb_BWstop = (Fl_Light_Button *)0;
Fl_Light_Button *lb_ConnectBW = (Fl_Light_Button *)0;
Fl_Output *output1=(Fl_Output *)0; //单锤破电机电流
Fl_Output *output2=(Fl_Output *)0; //单锤破轴承一X方向振动幅值
Fl_Output *output3=(Fl_Output *)0; //单锤破轴承一Y方向振动幅值
Fl_Output *output4=(Fl_Output *)0; //单锤破轴承二X方向振动幅值
Fl_Output *output5=(Fl_Output *)0; //单锤破轴承二Y方向振动幅值
Fl_Output *output6=(Fl_Output *)0; //单锤破轴承一温度
Fl_Output *output7=(Fl_Output *)0; //单锤破轴承二温度
Fl_Output *output8=(Fl_Output *)0; //板喂机电机电流
//Fl_Output *output9=(Fl_Output *)0; //CPO[0],测试用
//Fl_Output *output10=(Fl_Output *)0; //CPO[1],测试用
Fl_Value_Input *input11=(Fl_Value_Input *)0; //单锤破电机电流,最小值
Fl_Value_Input *input12=(Fl_Value_Input *)0; //单锤破电机电流,最大值
Fl_Value_Input *input21=(Fl_Value_Input *)0; //单锤破轴承一X方向振动幅值,最小值
Fl_Value_Input *input22=(Fl_Value_Input *)0; //单锤破轴承一X方向振动幅值,最大值
Fl_Value_Input *input31=(Fl_Value_Input *)0; //单锤破轴承一Y方向振动幅值,最小值
Fl_Value_Input *input32=(Fl_Value_Input *)0; //单锤破轴承一Y方向振动幅值,最大值
Fl_Value_Input *input41=(Fl_Value_Input *)0; //单锤破轴承二X方向振动幅值,最小值
Fl_Value_Input *input42=(Fl_Value_Input *)0; //单锤破轴承二X方向振动幅值,最大值
Fl_Value_Input *input51=(Fl_Value_Input *)0; //单锤破轴承二Y方向振动幅值,最小值
Fl_Value_Input *input52=(Fl_Value_Input *)0; //单锤破轴承二Y方向振动幅值,最大值
Fl_Value_Input *input61=(Fl_Value_Input *)0; //单锤破轴承一温度,最小值
Fl_Value_Input *input62=(Fl_Value_Input *)0; //单锤破轴承一温度,最大值
Fl_Value_Input *input71=(Fl_Value_Input *)0; //单锤破轴承二温度,最小值
Fl_Value_Input *input72=(Fl_Value_Input *)0; //单锤破轴承二温度,最大值
Fl_Value_Input *input81=(Fl_Value_Input *)0; //板喂机电机电流,最小值
Fl_Value_Input *input82=(Fl_Value_Input *)0; //板喂机电机电流,最大值
/*************************************************************
* Code Start *
*************************************************************/
/*
* 切换至参数设置窗口
*/
static void change_to_para_window(Fl_Button*, void*) {
data_window->hide();
para_window->show();
}
/*
* 切换至数据显示窗口
*/
static void change_to_data_window(Fl_Button*, void*) {
para_window->hide();
data_window->show();
}
/*
* 连接板喂机实现函数
*/
static void Connect_BW() {
// para_window->hide();
// data_window->show();
// taskSpawn("NETCLIENT",90,0,8*1024,cltnet,0,0,0,0,0,0,0,0,0,0);
sc = OSTaskCreate(" net_client",
90,
16*1024,
OS_PREEMPT|OS_NO_TIMESLICE|OS_NO_ASR|OS_INTERRUPT_LEVEL(0),
OS_FP|OS_LOCAL,
&net_client_id);
if (sc != OS_OK) {
printf("Can't create task \n");
return;
}
sc = OSTaskStart(net_client_id ,cltnet, 0);
if (sc != OS_OK) {
printf("Can't start cltnet task \n");
return;
}
}
/*
* 参数设置
*/
//static void parameterset(Fl_Button*, void*) {
static void parameterset() {
DC_MotorCur_MIN = input11->value();
DC_MotorCur_MAX = input12->value();
DC_Axle1DevX_MIN = input21->value();
DC_Axle1DevX_MAX = input22->value();
DC_Axle1DevY_MIN = input31->value();
DC_Axle1DevY_MAX = input32->value();
DC_Axle2DevX_MIN = input41->value();
DC_Axle2DevX_MAX = input42->value();
DC_Axle2DevY_MIN = input51->value();
DC_Axle2DevY_MAX = input52->value();
DC_Axle1Temp_MIN = input61->value();
DC_Axle1Temp_MAX = input62->value();
DC_Axle2Temp_MIN = input71->value();
DC_Axle2Temp_MAX = input72->value();
BW_MotorCur_MIN = input81->value();
BW_MotorCur_MAX = input82->value();
}
void Para_Display() {
input11->value(DC_MotorCur_MIN);
input12->value(DC_MotorCur_MAX);
input21->value(DC_Axle1DevX_MIN);
input22->value(DC_Axle1DevX_MAX);
input31->value(DC_Axle1DevY_MIN);
input32->value(DC_Axle1DevY_MAX);
input41->value(DC_Axle2DevX_MIN);
input42->value(DC_Axle2DevX_MAX);
input51->value(DC_Axle2DevY_MIN);
input52->value(DC_Axle2DevY_MAX);
input61->value(DC_Axle1Temp_MIN);
input62->value(DC_Axle1Temp_MAX);
input71->value(DC_Axle2Temp_MIN);
input72->value(DC_Axle2Temp_MAX);
input81->value(BW_MotorCur_MIN);
input82->value(BW_MotorCur_MAX);
}
Fl_Window* make_window() {
Fl_Window* w;
/*
* 初始化数据显示窗口
*/
{ Fl_Window* o = data_window = new Fl_Window(638, 472, "重矿设备嵌入式控制系统数据显示窗口");
w = o;
{ Fl_Box* o = new Fl_Box(163, 25, 225, 40, "重矿设备嵌入式控制系统");
o->box(FL_NO_BOX);
o->align(FL_ALIGN_TOP);
}
{ Fl_Group* o = new Fl_Group(7, 57, 240, 405);
o->box(FL_THIN_DOWN_BOX);
o->align(FL_ALIGN_TOP_LEFT);
{ Fl_Box* o = new Fl_Box(65, 81, 147, 30, "单锤破主要数据显示");
o->box(FL_NO_BOX);
o->align(FL_ALIGN_TOP);
}
{ Fl_Box* o = new Fl_Box(65, 392, 147, 30, "板喂机主要数据显示");
o->box(FL_NO_BOX);
o->align(FL_ALIGN_TOP);
}
{ output1 = new Fl_Output(133, 106, 100, 25, "电机电流 (A)");
output1->box(FL_THIN_DOWN_BOX);
}
{ output2 = new Fl_Output(133, 142, 100, 25, "轴承一X方向振动(m/s2)");
output2->box(FL_THIN_DOWN_BOX);
}
{ output3 = new Fl_Output(133, 179, 100, 25, "轴承一Y方向振动(m/s2)");
output3->box(FL_THIN_DOWN_BOX);
}
{ output4 = new Fl_Output(133, 216, 100, 25, "轴承二X方向振动(m/s2)");
output4->box(FL_THIN_DOWN_BOX);
}
{ output5 = new Fl_Output(133, 252, 100, 25, "轴承二Y方向振动(m/s2)");
output5->box(FL_THIN_DOWN_BOX);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -