Commit 3dffc334 authored by Claes Sjofors's avatar Claes Sjofors

Profinet editor, Phase added to network attributes

parent 734e269e
...@@ -451,7 +451,7 @@ GsdmlAttrNav::GsdmlAttrNav( ...@@ -451,7 +451,7 @@ GsdmlAttrNav::GsdmlAttrNav(
parent_ctx(xn_parent_ctx), parent_ctx(xn_parent_ctx),
gsdml(xn_gsdml), edit_mode(xn_edit_mode), trace_started(0), gsdml(xn_gsdml), edit_mode(xn_edit_mode), trace_started(0),
message_cb(0), change_value_cb(0), device_num(0), device_item(0), message_cb(0), change_value_cb(0), device_num(0), device_item(0),
device_confirm_active(0), device_read(0), viewio(0), time_ratio(1), send_clock(32) device_confirm_active(0), device_read(0), viewio(0), time_ratio(1), send_clock(32), phase(0)
{ {
strcpy( name, xn_name); strcpy( name, xn_name);
...@@ -1393,12 +1393,14 @@ int GsdmlAttrNav::save( const char *filename) ...@@ -1393,12 +1393,14 @@ int GsdmlAttrNav::save( const char *filename)
dev_data.iocr_data[0]->properties = 1; // Class 1 dev_data.iocr_data[0]->properties = 1; // Class 1
dev_data.iocr_data[0]->send_clock_factor = send_clock; dev_data.iocr_data[0]->send_clock_factor = send_clock;
dev_data.iocr_data[0]->reduction_ratio = time_ratio; // send_time = 8 * 31.2 us * send_clock dev_data.iocr_data[0]->reduction_ratio = time_ratio; // send_time = 8 * 31.2 us * send_clock
dev_data.iocr_data[0]->phase = phase;
dev_data.iocr_data[0]->api = 0; dev_data.iocr_data[0]->api = 0;
dev_data.iocr_data[1]->type = 2; // Output ? dev_data.iocr_data[1]->type = 2; // Output ?
dev_data.iocr_data[1]->properties = dev_data.iocr_data[0]->properties; dev_data.iocr_data[1]->properties = dev_data.iocr_data[0]->properties;
dev_data.iocr_data[1]->send_clock_factor = dev_data.iocr_data[0]->send_clock_factor; dev_data.iocr_data[1]->send_clock_factor = dev_data.iocr_data[0]->send_clock_factor;
dev_data.iocr_data[1]->reduction_ratio = dev_data.iocr_data[0]->reduction_ratio; dev_data.iocr_data[1]->reduction_ratio = dev_data.iocr_data[0]->reduction_ratio;
dev_data.iocr_data[1]->phase = dev_data.iocr_data[0]->phase;
dev_data.iocr_data[1]->api = dev_data.iocr_data[0]->api; dev_data.iocr_data[1]->api = dev_data.iocr_data[0]->api;
// Load channel diag // Load channel diag
...@@ -1579,6 +1581,7 @@ int GsdmlAttrNav::open( const char *filename) ...@@ -1579,6 +1581,7 @@ int GsdmlAttrNav::open( const char *filename)
gsdml->byte_order = dev_data.byte_order; gsdml->byte_order = dev_data.byte_order;
time_ratio = dev_data.iocr_data[0]->reduction_ratio; time_ratio = dev_data.iocr_data[0]->reduction_ratio;
send_clock = dev_data.iocr_data[0]->send_clock_factor; send_clock = dev_data.iocr_data[0]->send_clock_factor;
phase = dev_data.iocr_data[0]->phase;
if ( device_num > 0) { if ( device_num > 0) {
if ( device_num > gsdml->ApplicationProcess->DeviceAccessPointList-> if ( device_num > gsdml->ApplicationProcess->DeviceAccessPointList->
DeviceAccessPointItem.size()) { DeviceAccessPointItem.size()) {
...@@ -2409,6 +2412,11 @@ int ItemPnNetwork::open_children( GsdmlAttrNav *attrnav, double x, double y) ...@@ -2409,6 +2412,11 @@ int ItemPnNetwork::open_children( GsdmlAttrNav *attrnav, double x, double y)
new ItemPnEnumTimeRatio( attrnav, "ReductionRatio", new ItemPnEnumTimeRatio( attrnav, "ReductionRatio",
attrnav->device_item->SystemDefinedSubmoduleList->InterfaceSubmoduleItem, attrnav->device_item->SystemDefinedSubmoduleList->InterfaceSubmoduleItem,
p, node, flow_eDest_IntoLast); p, node, flow_eDest_IntoLast);
p = (void *) &attrnav->phase;
new ItemPnBase( attrnav, "Phase", "LocalGsdmlAttr",
pwr_eType_UInt32, sizeof(pwr_tUInt32), 0, 0,
p, 0, node, flow_eDest_IntoLast);
} }
brow_SetOpen( node, attrnav_mOpen_Children); brow_SetOpen( node, attrnav_mOpen_Children);
brow_SetAnnotPixmap( node, 0, attrnav->brow->pixmap_openmap); brow_SetAnnotPixmap( node, 0, attrnav->brow->pixmap_openmap);
......
...@@ -149,6 +149,7 @@ class GsdmlAttrNav { ...@@ -149,6 +149,7 @@ class GsdmlAttrNav {
int viewio; int viewio;
unsigned int time_ratio; unsigned int time_ratio;
unsigned int send_clock; unsigned int send_clock;
unsigned int phase;
GsdmlAttrNav( GsdmlAttrNav(
void *xn_parent_ctx, void *xn_parent_ctx,
......
...@@ -113,6 +113,7 @@ int GsdmlIOCRData::print( ofstream& fp) ...@@ -113,6 +113,7 @@ int GsdmlIOCRData::print( ofstream& fp)
" Properties=\"" << properties << "\"" << endl << " Properties=\"" << properties << "\"" << endl <<
" SendClockFactor=\"" << send_clock_factor << "\"" << endl << " SendClockFactor=\"" << send_clock_factor << "\"" << endl <<
" ReductionRatio=\"" << reduction_ratio << "\"" << endl << " ReductionRatio=\"" << reduction_ratio << "\"" << endl <<
" Phase=\"" << phase << "\"" << endl <<
" API=\"" << api << "\" />" << endl; " API=\"" << api << "\" />" << endl;
return 1; return 1;
...@@ -471,6 +472,8 @@ int GsdmlDataReader::tag_attribute( const char *name, const char *value) ...@@ -471,6 +472,8 @@ int GsdmlDataReader::tag_attribute( const char *name, const char *value)
sscanf( value, "%hu", &iod->send_clock_factor); sscanf( value, "%hu", &iod->send_clock_factor);
else if ( strcmp( name, "ReductionRatio") == 0) else if ( strcmp( name, "ReductionRatio") == 0)
sscanf( value, "%hu", &iod->reduction_ratio); sscanf( value, "%hu", &iod->reduction_ratio);
else if ( strcmp( name, "Phase") == 0)
sscanf( value, "%u", &iod->phase);
else if ( strcmp( name, "API") == 0) else if ( strcmp( name, "API") == 0)
sscanf( value, "%u", &iod->api); sscanf( value, "%u", &iod->api);
break; break;
......
...@@ -51,12 +51,13 @@ class GsdmlDataRecord { ...@@ -51,12 +51,13 @@ class GsdmlDataRecord {
class GsdmlIOCRData { class GsdmlIOCRData {
public: public:
GsdmlIOCRData() : type(0), properties(0), send_clock_factor(0), api(0) {} GsdmlIOCRData() : type(0), properties(0), send_clock_factor(0), phase(0), api(0) {}
unsigned short type; unsigned short type;
unsigned int properties; unsigned int properties;
unsigned short send_clock_factor; unsigned short send_clock_factor;
unsigned short reduction_ratio; unsigned short reduction_ratio;
unsigned int phase;
unsigned int api; unsigned int api;
int print( ofstream& fp); int print( ofstream& fp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment