public virtual bool fromMasterModule(Receive.Body.ReceiveRec transportData) { // Typically, AEODRS systems use node 100 for master (discovery) while IOP use 1 bool fromMas = (transportData.getSourceID().getNodeID() == 1) || (transportData.getSourceID().getNodeID() == 100); return(fromMas); }
public void ReceiveTransition(UpdateEvent msg, Receive.Body.ReceiveRec transportData) { transition_ = "ReceiveTransition"; State.ReceiveTransition(this, msg, transportData); transition_ = ""; return; }
public void ReceiveTransition(ReportHeartbeatPulse msg, Receive.Body.ReceiveRec transportData) { transition_ = "ReceiveTransition"; State.ReceiveTransition(this, msg, transportData); transition_ = ""; return; }
public void ReceiveTransition(ReportIdentification msg, Receive.Body.ReceiveRec transportData) { transition_ = "ReceiveTransition"; State.ReceiveTransition(this, msg, transportData); transition_ = ""; return; }
public void ReceiveTransition(ReportServices msg, Receive.Body.ReceiveRec transportData) { transition_ = "ReceiveTransition"; State.ReceiveTransition(this, msg, transportData); transition_ = ""; return; }
public void ReceiveTransition(GrantNodeID msg, Receive.Body.ReceiveRec transportData) { transition_ = "ReceiveTransition"; State.ReceiveTransition(this, msg, transportData); transition_ = ""; return; }
public virtual void updateNodeIDAction(GrantNodeID msg, Receive.Body.ReceiveRec transportData) { // Convert incoming MAC to string StringBuilder sb = new StringBuilder(); for (int i = 0; i < 7; i++) { sb.Append(((byte)msg.getBody().getGrantNodeIDRec().getRequesterID().getRequesterIDArrayField(i)).ToString("x2")); if (i < 6) { sb.Append(":"); } } Console.WriteLine("Got GrantNodeID message for " + sb); // Check the MAC address to see if this is for us. if (String.Compare(sb.ToString(), mac_string) == 0) { Console.WriteLine("Updating NodeID to " + msg.getBody().getGrantNodeIDRec().getNodeID() + " for MAC: " + sb); JausAddress id = new JausAddress((ushort)jausRouter.getJausAddress().getSubsystemID(), (byte)msg.getBody().getGrantNodeIDRec().getNodeID(), (byte)jausRouter.getJausAddress().getComponentID()); jausRouter.updateJausID(id); } else { Console.WriteLine("Ignoring grant message since " + sb + " != " + mac_string); } }
public virtual void StoreAddressAction(Receive.Body.ReceiveRec transportData) { Console.WriteLine("Storing address of controlling component as " + (ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); currentController = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); }
public virtual bool isControllingClient(Receive.Body.ReceiveRec transportData) { JausAddress requester = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); if ((currentController != null) && (requester.getSubsystemID() == currentController.getSubsystemID() && requester.getNodeID() == currentController.getNodeID() && requester.getComponentID() == currentController.getComponentID())) { return(true); } return(false); }
public virtual void SendAction(string arg0, Receive.Body.ReceiveRec transportData) { if (arg0.CompareTo("ReportStatus") == 0) { ReportStatus status_msg = new ReportStatus(); // Get the state from the context. Note that since we are inside a transition, the "current state" // is ill-defined. We instead use the state we left to execute this transition. Recall that the state // is actually an amalgamation of all parent states, we're only concerned with the management string currentState = context.PreviousState.Name; //getPreviousState().getName(); if (currentState.Contains("_")) { currentState = currentState.Substring(currentState.LastIndexOf("_") + 1); } if (currentState.CompareTo("Init") == 0) { status_msg.getBody().getReportStatusRec().setStatus(0); } if (currentState.CompareTo("Ready") == 0) { status_msg.getBody().getReportStatusRec().setStatus(1); } if (currentState.CompareTo("Standby") == 0) { status_msg.getBody().getReportStatusRec().setStatus(2); } if (currentState.CompareTo("Shutdown") == 0) { status_msg.getBody().getReportStatusRec().setStatus(3); } if (currentState.CompareTo("Failure") == 0) { status_msg.getBody().getReportStatusRec().setStatus(4); } if (currentState.CompareTo("Emergency") == 0) { status_msg.getBody().getReportStatusRec().setStatus(5); } Console.WriteLine("Sending ReportStatus: " + currentState); // Now send it to the requesting component JausAddress sender = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); sendJausMessage(status_msg, sender); } }
public virtual void updateSubsystemIDAction(Receive.Body.ReceiveRec transportData) { // Check to see if we already have a subsystem ID. If so, nothing to do. if ((jausRouter.getJausAddress().getSubsystemID() != 0xFFFF) && (jausRouter.getJausAddress().getSubsystemID() != 0)) { return; } // We need to update the JAUS ID Console.WriteLine("DiscoveryClient:: update subsystem ID to " + transportData.getSourceID().getSubsystemID()); JausAddress id = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)jausRouter.getJausAddress().getNodeID(), (byte)jausRouter.getJausAddress().getComponentID()); // We now know (and can set) the subsystem ID, but we might still not know the Node ID. // Force the lower layers to accept that the ID might still contain wildcards using the // optional boolean argument jausRouter.updateJausID(id, true); }
public virtual void registerServicesAction(Receive.Body.ReceiveRec transportData) { // Extract the sender information JausAddress sender = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); // Found a discovery service. Register our stuffs with it. RegisterServices register_msg = new RegisterServices(); RegisterServices.RegisterServicesBody.ServiceList.ServiceRec service = new RegisterServices.RegisterServicesBody.ServiceList.ServiceRec(); service.setMinorVersionNumber(1); service.setMajorVersionNumber(1); // Register local services service.setURI("urn:jaus:jss:core:Transport"); register_msg.getRegisterServicesBody().getServiceList().addElement(service); // Send the actual message sendJausMessage(register_msg, sender); }
public virtual void parseServiceListAction(ReportServices msg, Receive.Body.ReceiveRec transportData) { /// Insert User Code HERE }
public virtual void handleMessageAction(ReportIdentification msg, Receive.Body.ReceiveRec transportData) { // Since we found a discovery service, register our local services registerServicesAction(transportData); }
public void popWrapper_1014a7ff54cb3a51af2f80235d77d9d1(ClearEmergency msg, Receive.Body.ReceiveRec transportData) { string tempstr = "Receiving_Ready_Controlled_NotAvailable_Emergency"; string tempstr2 = context.peakTopStateStack(); string[] leafStateTOK = tempstr.Split(new char[] { '_' }); string[] stackStateTOK = tempstr2.Split(new char[] { '_' }); int currentToken = 0; if (tempstr2.CompareTo("Receiving_Ready_Controlled_NotAvailable_Emergency") == 0) { DeleteIDAction(transportData); return; } if (leafStateTOK[currentToken].CompareTo(stackStateTOK[currentToken]) != 0) { DeleteIDAction(transportData); return; } currentToken++; if (currentToken >= stackStateTOK.Length || currentToken >= leafStateTOK.Length) { Console.WriteLine("Problem with StringTokenizer."); } if (leafStateTOK[currentToken].CompareTo(stackStateTOK[currentToken]) != 0) { DeleteIDAction(transportData); return; } currentToken++; if (currentToken >= stackStateTOK.Length || currentToken >= leafStateTOK.Length) { Console.WriteLine("Problem with StringTokenizer."); } if (leafStateTOK[currentToken].CompareTo(stackStateTOK[currentToken]) != 0) { DeleteIDAction(transportData); return; } currentToken++; if (currentToken >= stackStateTOK.Length || currentToken >= leafStateTOK.Length) { Console.WriteLine("Problem with StringTokenizer."); } if (leafStateTOK[currentToken].CompareTo(stackStateTOK[currentToken]) != 0) { DeleteIDAction(transportData); return; } currentToken++; if (currentToken >= stackStateTOK.Length || currentToken >= leafStateTOK.Length) { Console.WriteLine("Problem with StringTokenizer."); } if (leafStateTOK[currentToken].CompareTo(stackStateTOK[currentToken]) != 0) { DeleteIDAction(transportData); return; } currentToken++; if (currentToken >= stackStateTOK.Length || currentToken >= leafStateTOK.Length) { Console.WriteLine("Problem with StringTokenizer."); } }
protected internal override void ReceiveTransition(DiscoveryClient_ReceiveFSMContext context, ReportServices msg, Receive.Body.ReceiveRec transportData) { DiscoveryClient_ReceiveFSM ctxt = context.Owner; #if TRACE Trace.WriteLine( "LEAVING STATE : DiscoveryClient_ReceiveFSM_SM.Receiving_Ready"); #endif DiscoveryClient_ReceiveFSMState endState = context.State; #if TRACE Trace.WriteLine( "ENTER TRANSITION: DiscoveryClient_ReceiveFSM_SM.DiscoveryClient_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, ReportServices msg, Receive.Body.ReceiveRec transportData)"); #endif context.ClearState(); try { ctxt.parseServiceListAction(msg, transportData); } finally { #if TRACE Trace.WriteLine( "EXIT TRANSITION : DiscoveryClient_ReceiveFSM_SM.DiscoveryClient_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, ReportServices msg, Receive.Body.ReceiveRec transportData)"); #endif context.State = endState; } return; }
protected internal override void ReceiveTransition(DiscoveryClient_ReceiveFSMContext context, ReportHeartbeatPulse msg, Receive.Body.ReceiveRec transportData) { DiscoveryClient_ReceiveFSM ctxt = context.Owner; #if TRACE Trace.WriteLine( "LEAVING STATE : DiscoveryClient_ReceiveFSM_SM.Receiving_Ready"); #endif if (ctxt.fromMasterModule(transportData)) { DiscoveryClient_ReceiveFSMState endState = context.State; #if TRACE Trace.WriteLine( "ENTER TRANSITION: DiscoveryClient_ReceiveFSM_SM.DiscoveryClient_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, ReportHeartbeatPulse msg, Receive.Body.ReceiveRec transportData)"); #endif context.ClearState(); try { ctxt.updateSubsystemIDAction(transportData); ctxt.registerServicesAction(transportData); } finally { #if TRACE Trace.WriteLine( "EXIT TRANSITION : DiscoveryClient_ReceiveFSM_SM.DiscoveryClient_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, ReportHeartbeatPulse msg, Receive.Body.ReceiveRec transportData)"); #endif context.State = endState; } } else { base.ReceiveTransition(context, msg, transportData); } return; }
protected internal virtual void ReceiveTransition(DiscoveryClient_ReceiveFSMContext context, ReportServices msg, Receive.Body.ReceiveRec transportData) { Default(context); }
public virtual bool isControllingClient(Receive.Body.ReceiveRec transportData) { //// By default, inherited guards call the parent function. //// This can be replaced or modified as needed. return(pAccessControl_ReceiveFSM.isControllingClient(transportData)); }
public virtual bool isIDStored(Receive.Body.ReceiveRec transportData) { /// Insert User Code HERE return(true); }
public virtual void DeleteIDAction(Receive.Body.ReceiveRec transportData) { /// Insert User Code HERE }
protected internal override void ReceiveTransition(Events_ReceiveFSMContext context, UpdateEvent msg, Receive.Body.ReceiveRec transportData) { Events_ReceiveFSM ctxt = context.Owner; #if TRACE Trace.WriteLine( "TRANSITION : Events_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, UpdateEvent msg, Receive.Body.ReceiveRec transportData)"); #endif if (ctxt.isSupported(msg) && ctxt.eventExists(msg)) { Events_ReceiveFSMState endState = context.State; context.ClearState(); try { ctxt.updateEventAction(msg); ctxt.SendAction("ConfirmEventRequest", msg, transportData); ctxt.resetEventTimerAction(); } finally { context.State = endState; } } else if (!ctxt.isSupported(msg) || !ctxt.eventExists(msg)) { Events_ReceiveFSMState endState = context.State; context.ClearState(); try { ctxt.SendAction("RejectEventRequest", msg, transportData); } finally { context.State = endState; } } else { base.ReceiveTransition(context, msg, transportData); } return; }
// This is the function that will process an event either generated // by the service, sent to it by another service on the same component, // or as a message sent by a different component. public override bool processTransitions(InternalEvent ie) { bool done = false; // Since this function can be called from multiple threads, // we use a mutex to ensure only one state transition is // active at a time. mutex.WaitOne(); // Invoke the FSM transition for this event. try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new QueryEvents().getID()) { QueryEvents msg = new QueryEvents(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new QueryEventTimeout().getID()) { QueryEventTimeout msg = new QueryEventTimeout(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new CreateEvent().getID()) { CreateEvent msg = new CreateEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new CreateEvent().getID()) { CreateEvent msg = new CreateEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new CreateEvent().getID()) { CreateEvent msg = new CreateEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new UpdateEvent().getID()) { UpdateEvent msg = new UpdateEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new UpdateEvent().getID()) { UpdateEvent msg = new UpdateEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new CancelEvent().getID()) { CancelEvent msg = new CancelEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new CancelEvent().getID()) { CancelEvent msg = new CancelEvent(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if (ie.getName().CompareTo("EventOccurred") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { EventOccurred casted_ie = (EventOccurred)ie; pEvents_ReceiveFSM.context.EventOccurredTransition(); done = true; } } catch (Exception e) {} try { if (ie.getName().CompareTo("EventError") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { EventError casted_ie = (EventError)ie; pEvents_ReceiveFSM.context.EventErrorTransition(); done = true; } } catch (Exception e) {} try { if (ie.getName().CompareTo("Timeout") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done)) { Timeout casted_ie = (Timeout)ie; pEvents_ReceiveFSM.context.TimeoutTransition(); done = true; } } catch (Exception e) {} mutex.ReleaseMutex(); return(done); }
public virtual void SendAction(string arg0, QueryEventTimeout msg, Receive.Body.ReceiveRec transportData) { /// Insert User Code HERE }
// This is the function that will process an event either generated // by the service, sent to it by another service on the same component, // or as a message sent by a different component. public override bool processTransitions(InternalEvent ie) { bool done = false; // Since this function can be called from multiple threads, // we use a mutex to ensure only one state transition is // active at a time. mutex.WaitOne(); // Invoke the FSM transition for this event. try { if ((!done) && ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("DiscoveryClient_ReceiveFSM") != 0)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new ReportHeartbeatPulse().getID()) { ReportHeartbeatPulse msg = new ReportHeartbeatPulse(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pDiscoveryClient_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if ((!done) && ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("DiscoveryClient_ReceiveFSM") != 0)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new ReportServices().getID()) { ReportServices msg = new ReportServices(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pDiscoveryClient_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if ((!done) && ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("DiscoveryClient_ReceiveFSM") != 0)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new ReportIdentification().getID()) { ReportIdentification msg = new ReportIdentification(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pDiscoveryClient_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if ((!done) && ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("DiscoveryClient_ReceiveFSM") != 0)) { Receive casted_ie = (Receive)ie; int pos = 0; ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); if (id == new GrantNodeID().getID()) { GrantNodeID msg = new GrantNodeID(); msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos); Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec(); pDiscoveryClient_ReceiveFSM.context.ReceiveTransition(msg, transportData); done = true; } } } catch (Exception e) {} try { if ((!done) && ie.getName().CompareTo("RHP_Timeout") == 0 && (ie.getSource().CompareTo("DiscoveryClient_ReceiveFSM") != 0)) { RHP_Timeout casted_ie = (RHP_Timeout)ie; pDiscoveryClient_ReceiveFSM.context.RHP_TimeoutTransition(); done = true; } } catch (Exception e) {} mutex.ReleaseMutex(); return(done); }
protected internal virtual void ReceiveTransition(Events_ReceiveFSMContext context, UpdateEvent msg, Receive.Body.ReceiveRec transportData) { Default(context); }
public virtual void SendAction(string arg0, string arg1, Receive.Body.ReceiveRec transportData) { if (arg0.CompareTo("RejectControl") == 0) { RejectControl reject_msg = new RejectControl(); if (arg1.CompareTo("CONTROL_RELEASED") == 0) { reject_msg.getBody().getRejectControlRec().setResponseCode(0); } if (arg1.CompareTo("NOT_ACCEPTED") == 0) { reject_msg.getBody().getRejectControlRec().setResponseCode(1); } // Now send it to the requesting component JausAddress sender = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); sendJausMessage(reject_msg, sender); } else if (arg0.CompareTo("ConfirmControl") == 0) { ConfirmControl confirm_msg = new ConfirmControl(); byte responseCode = 0; if (arg1.CompareTo("CONTROL_ACCEPTED") == 0) { responseCode = 0; } if (arg1.CompareTo("NOT_AVAILABLE") == 0) { responseCode = 1; } if (arg1.CompareTo("INSUFFICIENT_AUTHORITY") == 0) { responseCode = 2; } Console.WriteLine("Sending ConfirmControl with argument " + arg1); confirm_msg.getBody().getConfirmControlRec().setResponseCode(responseCode); // Now send it to the requesting component JausAddress sender = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); sendJausMessage(confirm_msg, sender); } else if (arg0.CompareTo("ReportControl") == 0) { ReportControl control_msg = new ReportControl(); control_msg.getBody().getReportControlRec().setSubsystemID((ushort)( (currentController == null) ? 0 : currentController.getSubsystemID())); control_msg.getBody().getReportControlRec().setNodeID((byte)( (currentController == null) ? 0 : currentController.getNodeID())); control_msg.getBody().getReportControlRec().setComponentID((byte)( (currentController == null) ? 0 : currentController.getComponentID())); // Now send it to the requesting component JausAddress sender = new JausAddress((ushort)transportData.getSourceID().getSubsystemID(), (byte)transportData.getSourceID().getNodeID(), (byte)transportData.getSourceID().getComponentID()); sendJausMessage(control_msg, sender); } }
public virtual void SendAction(string arg0, Receive.Body.ReceiveRec transportData) { /// Insert User Code HERE }
protected internal override void ReceiveTransition(Events_ReceiveFSMContext context, QueryEvents msg, Receive.Body.ReceiveRec transportData) { Events_ReceiveFSM ctxt = context.Owner; #if TRACE Trace.WriteLine( "TRANSITION : Events_ReceiveFSM_SM.Receiving_Ready.ReceiveTransition(, QueryEvents msg, Receive.Body.ReceiveRec transportData)"); #endif Events_ReceiveFSMState endState = context.State; context.ClearState(); try { ctxt.SendAction("ReportEvents", msg, transportData); } finally { context.State = endState; } return; }