fpp/compiler/tools/fpp-format/test/component.fpp
2025-06-03 09:12:24 -07:00

53 lines
1.3 KiB
Fortran

@ Component definition
active component C {
type T
array A = [3] U32
struct S { x: U32, y: F32, z: string }
enum E { X, Y, Z }
@ Interface import specifier
import I
@< Interface import specifier
@ Command specifier
async command C(a: U32, b: F32) opcode 0x00 priority 10 assert
@< Command specifier
@ Parameter specifier
external param P: U32 default 0 id 0x00 set opcode 0x01 save opcode 0x02
@< Parameter specifier
@ General port instance specifier
sync input port p: [10] P priority 10 assert
@< General port instance specifier
@ Special port instance specifier
command recv port cmdIn
@< Special port instance specifier
@ Telemetry channel specifier
telemetry T: U32 id 0x00 update on change format "{} s" \
low { red 0, orange 1, yellow 2 } \
high { yellow 10, orange 11, red 12 }
@< Telemetry channel specifier
@ Event specifier
event E(a: U32, b: F32) severity activity low id 0x00 format "{} counts" throttle 10
@< Event specifier
@ Internal port specifier
internal port I(a: U32, b: F32) priority 10 assert
@< Internal port specifier
@ Data product container specifier
product container C id 0x100 default priority 10
@< Data product container specifier
@ Data product record specifier
product record R: U32 id 0x100
@< Data product record specifier
}
@< Component definition