blob: 7b89f1c75bac29b90e76a65370b88f46e9a4a38a [file] [log] [blame]
RoomModel ProtocolClasses {
import etrice.api.types.int16
import etrice.api.types.int32
// eventdriven ProtocolClass (asynchronous message passing, bidirectional)
eventdriven ProtocolClass ProtocolClassEvt {
// ProtocolClass ProtocolClassEvt { // same like above because eventdriven is default
incoming {
// incoming means incoming for a regular port and outging for a conjugated port
Message message1() // message without data
Message message2(int32) // message with simple data
Message message3(DMessageData) // message with complex data (DataClass)
}
outgoing {
// outgoing means outging for a regular port and incoming for a conjugated port
Message message1(int32) // incoming and outgoing Messages can have the same name to enable symmetric protocols
}
}
// DataClass for sending complex data via message
DataClass DMessageData {
Attribute SomeData: int16
Attribute SomeMoreData: int32
}
// datadriven ProtocolClass (asynchronous data flow, unidirectional)
datadriven ProtocolClass ProtocolClassData {
incoming {
// incoming means incoming for a regular port and outging for a conjugated port
Message value1(int32) // a datadriven message (signal) always needs data
Message value2(int16) // datadriven message with simple data
Message value3(DMessageData) // datadriven message with complex data (DataClass)
}
// no outgoing messages for datadriven ports allowed
}
// sync ProtocolClass (synchronous function calls, unidirectional)
// not implemented yet
// sync ProtocolClass ProtocolClassSync {
// incoming {
// Message value1(value: int32) // a datadriven message (signal) always needs data
// Message value2(value: int16) // datadriven message with simple data
// Message value3(value: DMessageData) // datadriven message with complex data (DataClass)
// }
// }
}