#include <Main/util.hxx>
+Clock::Clock ( SGPropertyNode *node )
+ : _is_serviceable(true),
+ _gmt_time_sec(0),
+ _offset_sec(0),
+ _indicated_sec(0),
+ _indicated_min(0),
+ _indicated_hour(0),
+ _standstill_offset(0),
+ name("clock"),
+ num(0)
+{
+ _indicated_string[0] = '\0';
+
+ int i;
+ for ( i = 0; i < node->nChildren(); ++i ) {
+ SGPropertyNode *child = node->getChild(i);
+ string cname = child->getName();
+ string cval = child->getStringValue();
+ if ( cname == "name" ) {
+ name = cval;
+ } else if ( cname == "number" ) {
+ num = child->getIntValue();
+ } else {
+ SG_LOG( SG_INSTR, SG_WARN, "Error in clock config logic" );
+ if ( name.length() ) {
+ SG_LOG( SG_INSTR, SG_WARN, "Section = " << name );
+ }
+ }
+ }
+}
+
Clock::Clock ()
: _is_serviceable(true),
_gmt_time_sec(0),
_standstill_offset(0)
{
_indicated_string[0] = '\0';
+ _indicated_short_string[0] = '\0';
}
Clock::~Clock ()
void
Clock::init ()
{
- _serviceable_node = fgGetNode("/instrumentation/clock/serviceable", true);
- _offset_node = fgGetNode("/instrumentation/clock/offset-sec", true);
- _sec_node = fgGetNode("/instrumentation/clock/indicated-sec", true);
- _string_node = fgGetNode("/instrumentation/clock/indicated-string", true);
+ string branch;
+ branch = "/instrumentation/" + name;
+
+ SGPropertyNode *node = fgGetNode(branch.c_str(), num, true );
+ _serviceable_node = node->getChild("serviceable", 0, true);
+ _offset_node = node->getChild("offset-sec", 0, true);
+ _sec_node = node->getChild("indicated-sec", 0, true);
+ _min_node = node->getChild("indicated-min", 0, true);
+ _hour_node = node->getChild("indicated-hour", 0, true);
+ _string_node = node->getChild("indicated-string", 0, true);
+ _string_node1 = node->getChild("indicated-short-string", 0, true);
}
void
sprintf(_indicated_string, "%02d:%02d:%02d", hour, min, sec);
_string_node->setStringValue(_indicated_string);
+ sprintf(_indicated_short_string, "%02d:%02d", hour, min);
+ _string_node1->setStringValue(_indicated_short_string);
_is_serviceable = true;
+
+ _indicated_min = min;
+ _min_node->setLongValue(_indicated_min);
+ _indicated_hour = hour;
+ _hour_node->setLongValue(_indicated_hour);
}