public virtual IEnumerator<ITask> GenericSubscribeHandler(pxbattery.Subscribe subscribe)
        {
            base.SubscribeHelper(_subMgrPort, subscribe.Body, subscribe.ResponsePort);

            if (_state.TimeStamp != DateTime.MinValue)
            {
                SendNotificationToTarget<pxbattery.Replace>(subscribe.Body.Subscriber, _subMgrPort, _state.SyncGenericState(ref _genericState));
            }

            yield break;
        }
 public virtual IEnumerator<ITask> GenericReplaceHandler(pxbattery.Replace replace)
 {
     _state.CopyFrom(replace.Body);
     replace.ResponsePort.Post(DefaultReplaceResponseType.Instance);
     yield break;
 }
 public virtual IEnumerator<ITask> GenericSetCriticalLevelHandler(pxbattery.SetCriticalLevel setCriticalLevel)
 {
     _state.CriticalBatteryVoltage = _state.MaxVoltage * setCriticalLevel.Body.PercentCriticalBattery;
     SendNotification<pxbattery.SetCriticalLevel>(_subMgrPort, setCriticalLevel);
     setCriticalLevel.ResponsePort.Post(DefaultUpdateResponseType.Instance);
     yield break;
 }
 public virtual IEnumerator<ITask> GenericGetHandler(pxbattery.Get get)
 {
     _state.SyncGenericState(ref _genericState);
     get.ResponsePort.Post(_genericState);
     yield break;
 }