public abstract class ASME2SSME_Translate_Thread extends ASME2SSME_Translate_Property
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
LABEL1 |
static java.lang.String |
LABEL2 |
static java.lang.String |
NOT_YET_IMPLEMENTED |
static java.lang.String |
SIGNAL_BOOLEAN_TYPE |
static java.lang.String |
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_Thread()
Class constructor
|
Modifier and Type | Method and Description |
---|---|
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 static final java.lang.String NOT_YET_IMPLEMENTED
public static final java.lang.String LABEL1
public static final java.lang.String LABEL2
public static final java.lang.String SIGNAL_EVENT_TYPE
public static final java.lang.String SIGNAL_BOOLEAN_TYPE
public ProcessModelImpl ASME2SSME_ThreadImpl(org.osate.aadl2.ThreadImplementation t, ModuleImpl vmodule)
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.
t
- thread implementation componentpublic ProcessModelImpl ASME2SSME_thread_behavior(org.osate.aadl2.ThreadImplementation t, java.lang.String t_name)
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;
t
- thread implementation componentt_name
- string name of the Signal process for the thread implementationpublic ProcessModelImpl ASME2SSME_thread_property(org.osate.aadl2.ThreadImplementation timpl, java.lang.String t_name)
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
timpl
- a thread implementation componentt_name
- a Signal process name of this thread implementation