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(
parent_ctx(xn_parent_ctx),
gsdml(xn_gsdml), edit_mode(xn_edit_mode), trace_started(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);
......@@ -1393,12 +1393,14 @@ int GsdmlAttrNav::save( const char *filename)
dev_data.iocr_data[0]->properties = 1; // Class 1
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]->phase = phase;
dev_data.iocr_data[0]->api = 0;
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]->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]->phase = dev_data.iocr_data[0]->phase;
dev_data.iocr_data[1]->api = dev_data.iocr_data[0]->api;
// Load channel diag
......@@ -1579,6 +1581,7 @@ int GsdmlAttrNav::open( const char *filename)
gsdml->byte_order = dev_data.byte_order;
time_ratio = dev_data.iocr_data[0]->reduction_ratio;
send_clock = dev_data.iocr_data[0]->send_clock_factor;
phase = dev_data.iocr_data[0]->phase;
if ( device_num > 0) {
if ( device_num > gsdml->ApplicationProcess->DeviceAccessPointList->
DeviceAccessPointItem.size()) {
......@@ -2409,6 +2412,11 @@ int ItemPnNetwork::open_children( GsdmlAttrNav *attrnav, double x, double y)
new ItemPnEnumTimeRatio( attrnav, "ReductionRatio",
attrnav->device_item->SystemDefinedSubmoduleList->InterfaceSubmoduleItem,
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_SetAnnotPixmap( node, 0, attrnav->brow->pixmap_openmap);
......
......@@ -149,6 +149,7 @@ class GsdmlAttrNav {
int viewio;
unsigned int time_ratio;
unsigned int send_clock;
unsigned int phase;
GsdmlAttrNav(
void *xn_parent_ctx,
......
......@@ -113,6 +113,7 @@ int GsdmlIOCRData::print( ofstream& fp)
" Properties=\"" << properties << "\"" << endl <<
" SendClockFactor=\"" << send_clock_factor << "\"" << endl <<
" ReductionRatio=\"" << reduction_ratio << "\"" << endl <<
" Phase=\"" << phase << "\"" << endl <<
" API=\"" << api << "\" />" << endl;
return 1;
......@@ -471,6 +472,8 @@ int GsdmlDataReader::tag_attribute( const char *name, const char *value)
sscanf( value, "%hu", &iod->send_clock_factor);
else if ( strcmp( name, "ReductionRatio") == 0)
sscanf( value, "%hu", &iod->reduction_ratio);
else if ( strcmp( name, "Phase") == 0)
sscanf( value, "%u", &iod->phase);
else if ( strcmp( name, "API") == 0)
sscanf( value, "%u", &iod->api);
break;
......
......@@ -51,12 +51,13 @@ class GsdmlDataRecord {
class GsdmlIOCRData {
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 int properties;
unsigned short send_clock_factor;
unsigned short reduction_ratio;
unsigned int phase;
unsigned int api;
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