Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
c64855dc
Commit
c64855dc
authored
Feb 11, 2020
by
Claes Sjöfors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ge dynamics XY_Curve, hold attribute added
parent
7c865c99
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
0 deletions
+56
-0
xtt/lib/ge/src/ge_dyn.cpp
xtt/lib/ge/src/ge_dyn.cpp
+51
-0
xtt/lib/ge/src/ge_dyn.h
xtt/lib/ge/src/ge_dyn.h
+5
-0
No files found.
xtt/lib/ge/src/ge_dyn.cpp
View file @
c64855dc
...
@@ -95,6 +95,9 @@ static int get_dig(
...
@@ -95,6 +95,9 @@ static int get_dig(
case pwr_eType_String:
case pwr_eType_String:
*val = *(char*)p == 0 ? 0 : 1;
*val = *(char*)p == 0 ? 0 : 1;
break;
break;
case pwr_eType_Objid:
*val = cdh_ObjidIsNull(*(pwr_tObjid*)p) ? 0 : 1;
break;
default:
default:
return 0;
return 0;
}
}
...
@@ -10536,6 +10539,7 @@ GeXY_Curve::GeXY_Curve(GeDyn* e_dyn, ge_mInstance e_instance)
...
@@ -10536,6 +10539,7 @@ GeXY_Curve::GeXY_Curve(GeDyn* e_dyn, ge_mInstance e_instance)
strcpy(x_maxvalue_attr, "");
strcpy(x_maxvalue_attr, "");
strcpy(noofpoints_attr, "");
strcpy(noofpoints_attr, "");
strcpy(update_attr, "");
strcpy(update_attr, "");
strcpy(hold_attr, "");
strcpy(x_mark1_attr, "");
strcpy(x_mark1_attr, "");
strcpy(x_mark2_attr, "");
strcpy(x_mark2_attr, "");
strcpy(y_mark1_attr, "");
strcpy(y_mark1_attr, "");
...
@@ -10562,6 +10566,7 @@ GeXY_Curve::GeXY_Curve(const GeXY_Curve& x)
...
@@ -10562,6 +10566,7 @@ GeXY_Curve::GeXY_Curve(const GeXY_Curve& x)
strcpy(x_maxvalue_attr, x.x_maxvalue_attr);
strcpy(x_maxvalue_attr, x.x_maxvalue_attr);
strcpy(noofpoints_attr, x.noofpoints_attr);
strcpy(noofpoints_attr, x.noofpoints_attr);
strcpy(update_attr, x.update_attr);
strcpy(update_attr, x.update_attr);
strcpy(hold_attr, x.hold_attr);
strcpy(x_mark1_attr, x.x_mark1_attr);
strcpy(x_mark1_attr, x.x_mark1_attr);
strcpy(x_mark2_attr, x.x_mark2_attr);
strcpy(x_mark2_attr, x.x_mark2_attr);
strcpy(y_mark1_attr, x.y_mark1_attr);
strcpy(y_mark1_attr, x.y_mark1_attr);
...
@@ -10593,6 +10598,11 @@ void GeXY_Curve::get_attributes(attr_sItem* attrinfo, int* item_count)
...
@@ -10593,6 +10598,11 @@ void GeXY_Curve::get_attributes(attr_sItem* attrinfo, int* item_count)
attrinfo[i].type = glow_eType_String;
attrinfo[i].type = glow_eType_String;
attrinfo[i++].size = sizeof(update_attr);
attrinfo[i++].size = sizeof(update_attr);
strcpy(attrinfo[i].name, "XY_Curve.HoldAttr");
attrinfo[i].value = hold_attr;
attrinfo[i].type = glow_eType_String;
attrinfo[i++].size = sizeof(hold_attr);
strcpy(attrinfo[i].name, "XY_Curve.XMinValue");
strcpy(attrinfo[i].name, "XY_Curve.XMinValue");
attrinfo[i].value = &x_min_value;
attrinfo[i].value = &x_min_value;
attrinfo[i].type = glow_eType_Double;
attrinfo[i].type = glow_eType_Double;
...
@@ -10717,6 +10727,11 @@ void GeXY_Curve::get_attributes(attr_sItem* attrinfo, int* item_count)
...
@@ -10717,6 +10727,11 @@ void GeXY_Curve::get_attributes(attr_sItem* attrinfo, int* item_count)
attrinfo[i].type = glow_eType_String;
attrinfo[i].type = glow_eType_String;
attrinfo[i++].size = sizeof(update_attr);
attrinfo[i++].size = sizeof(update_attr);
sprintf(attrinfo[i].name, "XY_Curve%d.HoldAttr", inst);
attrinfo[i].value = hold_attr;
attrinfo[i].type = glow_eType_String;
attrinfo[i++].size = sizeof(hold_attr);
sprintf(attrinfo[i].name, "XY_Curve%d.XMinValue", inst);
sprintf(attrinfo[i].name, "XY_Curve%d.XMinValue", inst);
attrinfo[i].value = &x_min_value;
attrinfo[i].value = &x_min_value;
attrinfo[i].type = glow_eType_Double;
attrinfo[i].type = glow_eType_Double;
...
@@ -10808,6 +10823,8 @@ void GeXY_Curve::replace_attribute(char* from, char* to, int* cnt, int strict)
...
@@ -10808,6 +10823,8 @@ void GeXY_Curve::replace_attribute(char* from, char* to, int* cnt, int strict)
GeDyn::replace_attribute(y_attr, sizeof(y_attr), from, to, cnt, strict);
GeDyn::replace_attribute(y_attr, sizeof(y_attr), from, to, cnt, strict);
GeDyn::replace_attribute(
GeDyn::replace_attribute(
update_attr, sizeof(update_attr), from, to, cnt, strict);
update_attr, sizeof(update_attr), from, to, cnt, strict);
GeDyn::replace_attribute(
update_attr, sizeof(hold_attr), from, to, cnt, strict);
GeDyn::replace_attribute(
GeDyn::replace_attribute(
noofpoints_attr, sizeof(noofpoints_attr), from, to, cnt, strict);
noofpoints_attr, sizeof(noofpoints_attr), from, to, cnt, strict);
GeDyn::replace_attribute(
GeDyn::replace_attribute(
...
@@ -10844,6 +10861,7 @@ void GeXY_Curve::save(std::ofstream& fp)
...
@@ -10844,6 +10861,7 @@ void GeXY_Curve::save(std::ofstream& fp)
fp << int(ge_eSave_XY_Curve_noofpoints_attr) << FSPACE << noofpoints_attr
fp << int(ge_eSave_XY_Curve_noofpoints_attr) << FSPACE << noofpoints_attr
<< '\n';
<< '\n';
fp << int(ge_eSave_XY_Curve_update_attr) << FSPACE << update_attr << '\n';
fp << int(ge_eSave_XY_Curve_update_attr) << FSPACE << update_attr << '\n';
fp << int(ge_eSave_XY_Curve_hold_attr) << FSPACE << hold_attr << '\n';
fp << int(ge_eSave_XY_Curve_y_min_value) << FSPACE << y_min_value << '\n';
fp << int(ge_eSave_XY_Curve_y_min_value) << FSPACE << y_min_value << '\n';
fp << int(ge_eSave_XY_Curve_y_max_value) << FSPACE << y_max_value << '\n';
fp << int(ge_eSave_XY_Curve_y_max_value) << FSPACE << y_max_value << '\n';
fp << int(ge_eSave_XY_Curve_x_min_value) << FSPACE << x_min_value << '\n';
fp << int(ge_eSave_XY_Curve_x_min_value) << FSPACE << x_min_value << '\n';
...
@@ -10919,6 +10937,10 @@ void GeXY_Curve::open(std::ifstream& fp)
...
@@ -10919,6 +10937,10 @@ void GeXY_Curve::open(std::ifstream& fp)
fp.get();
fp.get();
fp.getline(update_attr, sizeof(update_attr));
fp.getline(update_attr, sizeof(update_attr));
break;
break;
case ge_eSave_XY_Curve_hold_attr:
fp.get();
fp.getline(hold_attr, sizeof(hold_attr));
break;
case ge_eSave_XY_Curve_y_min_value:
case ge_eSave_XY_Curve_y_min_value:
fp >> y_min_value;
fp >> y_min_value;
break;
break;
...
@@ -11007,6 +11029,25 @@ int GeXY_Curve::connect(
...
@@ -11007,6 +11029,25 @@ int GeXY_Curve::connect(
return sts;
return sts;
}
}
hold_p = 0;
hold_db = dyn->parse_attr_name(
hold_attr, parsed_name, &inverted, &attr_type, &attr_size);
if (!streq(parsed_name, "")) {
switch (hold_db) {
case graph_eDatabase_Gdh:
sts = dyn->graph->ref_object_info(dyn->cycle, parsed_name,
(void**)&hold_p, &hold_subid, attr_size, object, now);
if (EVEN(sts))
return sts;
break;
case graph_eDatabase_Local:
hold_p = (pwr_tBoolean*)dyn->graph->localdb_ref_or_create(
parsed_name, attr_type);
break;
default:;
}
}
noofpoints_p = 0;
noofpoints_p = 0;
dyn->parse_attr_name(
dyn->parse_attr_name(
noofpoints_attr, parsed_name, &inverted, &attr_type, &attr_size);
noofpoints_attr, parsed_name, &inverted, &attr_type, &attr_size);
...
@@ -11117,6 +11158,10 @@ int GeXY_Curve::disconnect(grow_tObject object)
...
@@ -11117,6 +11158,10 @@ int GeXY_Curve::disconnect(grow_tObject object)
gdh_UnrefObjectInfo(update_subid);
gdh_UnrefObjectInfo(update_subid);
update_p = 0;
update_p = 0;
}
}
if (hold_p) {
gdh_UnrefObjectInfo(hold_subid);
hold_p = 0;
}
if (noofpoints_p) {
if (noofpoints_p) {
gdh_UnrefObjectInfo(noofpoints_subid);
gdh_UnrefObjectInfo(noofpoints_subid);
noofpoints_p = 0;
noofpoints_p = 0;
...
@@ -11160,6 +11205,9 @@ int GeXY_Curve::scan(grow_tObject object)
...
@@ -11160,6 +11205,9 @@ int GeXY_Curve::scan(grow_tObject object)
{
{
bool redraw = false;
bool redraw = false;
if (hold_p && !first_scan && *hold_p)
return 1;
if (!update_p)
if (!update_p)
// Update every scan...
// Update every scan...
redraw = true;
redraw = true;
...
@@ -22307,6 +22355,9 @@ int GeOptionMenu::action(grow_tObject object, glow_tEvent event)
...
@@ -22307,6 +22355,9 @@ int GeOptionMenu::action(grow_tObject object, glow_tEvent event)
dyn->parse_attr_name(
dyn->parse_attr_name(
attribute, parsed_name, &inverted, &attr_type, &attr_size);
attribute, parsed_name, &inverted, &attr_type, &attr_size);
if (parsed_name[0] == '&')
// Attribute starting with '&' indicates reference
dyn->graph->get_reference_name(parsed_name, parsed_name);
switch (db) {
switch (db) {
case graph_eDatabase_Gdh:
case graph_eDatabase_Gdh:
...
...
xtt/lib/ge/src/ge_dyn.h
View file @
c64855dc
...
@@ -553,6 +553,7 @@ typedef enum {
...
@@ -553,6 +553,7 @@ typedef enum {
ge_eSave_XY_Curve_y_mark2_attr
=
3422
,
ge_eSave_XY_Curve_y_mark2_attr
=
3422
,
ge_eSave_XY_Curve_mark1_color
=
3423
,
ge_eSave_XY_Curve_mark1_color
=
3423
,
ge_eSave_XY_Curve_mark2_color
=
3424
,
ge_eSave_XY_Curve_mark2_color
=
3424
,
ge_eSave_XY_Curve_hold_attr
=
3425
,
ge_eSave_DigCommand_attribute
=
3500
,
ge_eSave_DigCommand_attribute
=
3500
,
ge_eSave_DigCommand_command
=
3501
,
ge_eSave_DigCommand_command
=
3501
,
ge_eSave_DigCommand_instance
=
3502
,
ge_eSave_DigCommand_instance
=
3502
,
...
@@ -2533,6 +2534,7 @@ public:
...
@@ -2533,6 +2534,7 @@ public:
pwr_tAName
x_maxvalue_attr
;
pwr_tAName
x_maxvalue_attr
;
pwr_tAName
noofpoints_attr
;
pwr_tAName
noofpoints_attr
;
pwr_tAName
update_attr
;
pwr_tAName
update_attr
;
pwr_tAName
hold_attr
;
pwr_tAName
x_mark1_attr
;
pwr_tAName
x_mark1_attr
;
pwr_tAName
x_mark2_attr
;
pwr_tAName
x_mark2_attr
;
pwr_tAName
y_mark1_attr
;
pwr_tAName
y_mark1_attr
;
...
@@ -2551,6 +2553,9 @@ public:
...
@@ -2551,6 +2553,9 @@ public:
pwr_tBoolean
*
update_p
;
pwr_tBoolean
*
update_p
;
pwr_tSubid
update_subid
;
pwr_tSubid
update_subid
;
pwr_tBoolean
old_update
;
pwr_tBoolean
old_update
;
pwr_tBoolean
*
hold_p
;
pwr_tSubid
hold_subid
;
graph_eDatabase
hold_db
;
pwr_tInt32
*
noofpoints_p
;
pwr_tInt32
*
noofpoints_p
;
pwr_tSubid
noofpoints_subid
;
pwr_tSubid
noofpoints_subid
;
pwr_tInt32
old_noofpoints
;
pwr_tInt32
old_noofpoints
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment