public class ASME2SSME_Translate_PeriodicThread extends ASME2SSME_Translate_Thread
Modifier and Type | Field and Description |
---|---|
java.lang.String |
THREAD_TYPE |
LABEL1, LABEL2, NOT_YET_IMPLEMENTED, SIGNAL_BOOLEAN_TYPE, SIGNAL_EVENT_TYPE
ACTUAL_CONNECTION_BINDING_ID, ACTUAL_LATENCY_ID, ACTUAL_MEMORY_BINDING_ID, ACTUAL_PROCESSOR_BINDING_ID, CLOCK_PERIOD_ID, COMPUTE_EXECUTION_TIME, COMPUTE_EXECUTION_TIME_PROPERTY_ID, DEADLINE_ID, DEQUEUE_PROTOCOL_ID, DEQUEUE_PROTOCOL_PROPERTY_ID, DEQUEUED_ITEMS_ID, DEQUEUED_ITEMS_PROPERTY_ID, DEVICE_DISPATCH_PROTOCOL_ID, DISPATCH_PROTOCOL_ID, DISPATCH_PROTOCOL_PROPERTY_ID, FAN_OUT_POLICY_ID, FLOWLATENCY_ID, FROZEN_TIME_EVENT_ID, INPUT_TIME_PROPERTY_ID, INPUT_TIME_REFERENCE_TIME_ID, INPUT_TIME_REFERENCE_TIME_PROPERTY_ID, LATENCY_ID, LATENCY_PROPERTY_ID, LATENCY_TIME_EVENT_ID, OUTPUT_TIME_EVENT_ID, OUTPUT_TIME_PROPERTY_ID, OUTPUT_TIME_REFERENCE_TIME_ID, OUTPUT_TIME_REFERENCE_TIME_PROPERTY_ID, OVERFLOW_HANDLING_PROTOCOL_ID, OVERFLOW_HANDLING_PROTOCOL_PROPERTY_ID, PERIOD_ID, PERIOD_PROPERTY, PRIORITY_ID, PROPERTY_ID, QUEUE_PROCESSING_PROTOCOL_ID, QUEUE_PROCESSING_PROTOCOL_PROPERTY_ID, QUEUE_SIZE_ID, QUEUE_SIZE_PROPERTY_ID, READ_TIME_ID, READ_TIME_PROPERTY_ID, REFERENCE_TIME_EVENT_ID, SUPPORTED_DISPATCH_PROTOCOLS, TIME_OFFSET_ID, TIME_OFFSET_PROPERTY_ID, TIME_UNITS_ID, TIMING_ID, TIMING_PROPERTY_ID
ALARM_ID, COMPLETE_ID, COMPLETION_ID, CTL1_ID, CTL2_ID, DISPATCH_ID, ERROR_ID, NameList, RESUME_ID, START_ID, TIME1_ID, TIME2_ID, TOP_ID, TREAD_ID, TRESET_ID, TWRITE_ID
Constructor and Description |
---|
ASME2SSME_Translate_PeriodicThread()
Class constructor
|
Modifier and Type | Method and Description |
---|---|
void |
ASME2SSME_Dispatch_Constraint(org.osate.aadl2.ThreadImplementation timpl,
ProcessModelImpl t_property) |
void |
ASME2SSME_FixProperties(org.osate.aadl2.ThreadImplementation timpl,
ProcessModelImpl t_property)
It generates the fix properties of periodic thread (Dispatch protocol, period)
|
ProcessModelImpl |
ASME2SSME_thread_behavior(org.osate.aadl2.ThreadImplementation t,
java.lang.String t_name)
Returns a Signal process "xx_behavior", which is a subprocess of thread
The interface is created by a called method ASME2SSME_ComponentInterface().
|
ProcessModelImpl |
ASME2SSME_thread_property(org.osate.aadl2.ThreadImplementation timpl,
java.lang.String t_name)
Returns a Signal process "xx_thread_property" that represents the properties of a thread
process xx_Thread_property =(?
|
ProcessModelImpl |
ASME2SSME_ThreadImpl(org.osate.aadl2.ThreadImplementation t,
ModuleImpl vmodule)
Returns a Signal process that represents an AADL thread implementation component
The interface is generated by a method ASME2SSME_ComponentInterface(), where its type component is passed as a parameter.
|
ASME2SSME_Actual_Connection_Binding_Property, ASME2SSME_Actual_Memory_Binding_Property, ASME2SSME_Actual_Processor_Binding_Property, ASME2SSME_ActualLatency_Property_Call, ASME2SSME_Clock_Period_Property, ASME2SSME_Component_Properties_Call, ASME2SSME_Deadline_Property, ASME2SSME_Dequeue_Protocol_Property_Call, ASME2SSME_Dequeue_Protocol, ASME2SSME_Dequeued_Items_Property_Call, ASME2SSME_Dequeued_Items, ASME2SSME_Device_Dispatch_Protocol_Property, ASME2SSME_Device_property_call, ASME2SSME_Dispatch_Protocol_Property, ASME2SSME_Fan_Out_Policy_Property_Call, ASME2SSME_FlowLatency_Property_Call, ASME2SSME_Input_Time_Reference_Time_Property_Call, ASME2SSME_InputTime, ASME2SSME_Latency_Property_Call, ASME2SSME_Output_Time_Reference_Time_Property_Call, ASME2SSME_OutputTime, ASME2SSME_Overflow_Handling_Protocol_Property_Call, ASME2SSME_Overflow_Handling_Protocol, ASME2SSME_Period_Property, ASME2SSME_Priority_Property_Call, ASME2SSME_Property_Call_withName, ASME2SSME_Property_Call, ASME2SSME_PropertySet, ASME2SSME_Queue_Processing_Protocol_Property_Call, ASME2SSME_Queue_Processing_Protocol, ASME2SSME_Queue_Size_Property_Call, ASME2SSME_Queue_Size, ASME2SSME_Read_Time_Property, ASME2SSME_Source_Name, ASME2SSME_Time_Offset_Property_Call, ASME2SSME_Time_Unit_ConstantEnum, ASME2SSME_Timing_Property_Call, ASME2SSME_Timing, Name_of_Reference_data_classifier, read_PropertyAssociation
Generate_Process_Instance_comment, Get_top_sname, getSname, Name_of_Bus, Name_of_Connection, Name_of_CTL1_type, Name_of_CTL2_type, Name_of_Data, Name_of_DataBundle, Name_of_DataReadTime, Name_of_DataReset, Name_of_DataType, Name_of_DataWriteTime, Name_of_Device, Name_of_FeatureGroup, Name_of_FeatureGroupType, Name_of_Flow, Name_of_Local_Signal, Name_of_Memory, Name_of_ParameterConnection, Name_of_PortGroup, Name_of_PortGroupType, Name_of_Process, Name_of_Processor, Name_of_Subprogram_Struct_In, Name_of_Subprogram_Struct_Out, Name_of_Subprogram, Name_of_SubprogramCall, Name_of_System, Name_of_Thread, Name_of_ThreadDataPort, Name_of_ThreadEventDataPort, Name_of_ThreadEventPort, Name_of_ThreadTimeBundle, Name_of_TriggerDispatch_Event, Name_of_Type_Process, Trace
public final java.lang.String THREAD_TYPE
public ASME2SSME_Translate_PeriodicThread()
public ProcessModelImpl ASME2SSME_ThreadImpl(org.osate.aadl2.ThreadImplementation t, ModuleImpl vmodule)
ASME2SSME_Translate_Thread
The interface is generated by a method ASME2SSME_ComponentInterface(), where its type component is passed as a parameter. Beside the original in/out port of the corresponding thread type, additional signals are added: ctl1 (Dispatch, Resume and Deadline) are added as input signals, and ctl2 (Complete and Error), Alarm as output signals.
The data access (ASME2SSME_ComponentInterface_DataAccess()), subprogram access (ASME2SSME_ComponentInterface_SubprogramAccesses()) features are translated and added into the interface.
Call external subprograms are required in ASME2SSME_ComponentInterface_CallSubprograms(), sub-subprograms are provided through ASME2SSME_ComponentInterface_Sub_Subprograms()
The body is composed of t_thread_behavior(), t_thread_property(), and the subprocesses of ports and subcomponents. Each in data port xx is declared as a Signal process xx_InDataPort(), and called in the body. Each out data port xx is declared as a Signal process xx_OutDataPort(), and called in the body. The subprogram and data subcomponents are declared as local Signal processes, and the instances are composed in the body.
ASME2SSME_ThreadImpl
in class ASME2SSME_Translate_Thread
t
- thread implementation componentASME2SSME_Translate_Thread#ASME2SSME_ThreadImpl()
public ProcessModelImpl ASME2SSME_thread_behavior(org.osate.aadl2.ThreadImplementation t, java.lang.String t_name)
ASME2SSME_Translate_Thread
The interface is created by a called method ASME2SSME_ComponentInterface(). Besides the original in/out port of the corresponding thread type, three input signals: Dispatch, Start, Resume, and two output signals: Complete and Error are added in the interface. The data access and subprogram access/subprogram call signals are added in the interface. process xx_behavior = (? ... event Dispatch, Start, Resume; ! ... xx_CTL2 ctl2;) (| e1 :: (...) := xx_external(...) | e1 ^= when Start | e2 :: ctl2.Complete := when Start | e1 --> e2 | ctl2.Error := ^0 | out ^= when Start | dd_ReadTime := when Start | dd_WriteTime := when Start | dd_reset := when Start | sp := ^0 | L_x.a ::= a when sp | ... |) where process xx_external = (? ... ! ...) external; label e1, e2; end;
ASME2SSME_thread_behavior
in class ASME2SSME_Translate_Thread
t
- thread implementation componentt_name
- string name of the Signal process for the thread implementationASME2SSME_Translate_Thread#ASME2SSME_thread_behavior()
public ProcessModelImpl ASME2SSME_thread_property(org.osate.aadl2.ThreadImplementation timpl, java.lang.String t_name)
ASME2SSME_Translate_Thread
All the properties defined in this thread are represented as process calls: ccc_property{}(), where ccc is the name of the property, and the property values are fetched and passed as process call parameters. The "Specific constraints" part must be generated in the implementation of the abstract method ASME2SSME_Dispatch_Constraint
ASME2SSME_thread_property
in class ASME2SSME_Translate_Thread
timpl
- a thread implementation componentt_name
- a Signal process name of this thread implementationASME2SSME_Translate_Thread#ASME2SSME_thread_property()
public void ASME2SSME_Dispatch_Constraint(org.osate.aadl2.ThreadImplementation timpl, ProcessModelImpl t_property)
ASME2SSME_Translate_Thread#genAlarm()
public void ASME2SSME_FixProperties(org.osate.aadl2.ThreadImplementation timpl, ProcessModelImpl t_property)
timpl
- thread implementationt_property
- a Signal process that represents thread property