Skip to content

Commit

Permalink
Consolidate FMI Variable annotaiton references to fmi_variable_vref.
Browse files Browse the repository at this point in the history
Signed-off-by: Timothy Rule (VM/EMT3) <[email protected]>
  • Loading branch information
jsmidtbosch authored and timrulebosch committed Dec 10, 2024
1 parent dcda873 commit a25aa92
Show file tree
Hide file tree
Showing 15 changed files with 89 additions and 89 deletions.
34 changes: 17 additions & 17 deletions dse/fmimcl/examples/input/data/simulation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,79 +90,79 @@ spec:
signals:
- signal: real_3_rx
annotations:
fmi_variable_id: 0
fmi_variable_vref: 0
fmi_variable_name: real_3_rx
fmi_variable_type: Real
fmi_variable_causality: input
- signal: real_1_tx
annotations:
fmi_variable_id: 1
fmi_variable_vref: 1
fmi_variable_name: real_1_tx
fmi_variable_type: Real
fmi_variable_causality: output
- signal: integer_3_rx
annotations:
fmi_variable_id: 2
fmi_variable_vref: 2
fmi_variable_name: integer_3_rx
fmi_variable_type: Integer
fmi_variable_causality: input
- signal: integer_2_tx
annotations:
fmi_variable_id: 3
fmi_variable_vref: 3
fmi_variable_name: integer_2_tx
fmi_variable_type: Integer
fmi_variable_causality: output
- signal: integer_1_tx
annotations:
fmi_variable_id: 4
fmi_variable_vref: 4
fmi_variable_name: integer_1_tx
fmi_variable_type: Integer
fmi_variable_causality: output
- signal: real_2_rx
annotations:
fmi_variable_id: 5
fmi_variable_vref: 5
fmi_variable_name: real_2_rx
fmi_variable_type: Real
fmi_variable_causality: input
- signal: bool_1_rx
annotations:
fmi_variable_id: 6
fmi_variable_vref: 6
fmi_variable_name: bool_1_rx
fmi_variable_type: Integer
fmi_variable_causality: input
- signal: bool_2_tx
annotations:
fmi_variable_id: 7
fmi_variable_vref: 7
fmi_variable_name: bool_2_tx
fmi_variable_type: Integer
fmi_variable_causality: output
- signal: real_A_rx
annotations:
fmi_variable_id: 8
fmi_variable_vref: 8
fmi_variable_name: real_A_rx
fmi_variable_type: Real
fmi_variable_causality: input
- signal: real_A_rx
annotations:
fmi_variable_id: 9
fmi_variable_vref: 9
fmi_variable_name: real_A2_rx
fmi_variable_type: Real
fmi_variable_causality: input
- signal: real_B_tx
annotations:
fmi_variable_id: 10
fmi_variable_vref: 10
fmi_variable_name: real_A_rx
fmi_variable_type: Real
fmi_variable_causality: output
- signal: real_C_tx
annotations:
fmi_variable_id: 11
fmi_variable_vref: 11
fmi_variable_name: real_A2_rx
fmi_variable_type: Real
fmi_variable_causality: output
- signal: real_D_tx
annotations:
fmi_variable_id: 11
fmi_variable_vref: 11
fmi_variable_name: real_A2_rx
fmi_variable_type: Real
fmi_variable_causality: output
Expand All @@ -179,27 +179,27 @@ spec:
signals:
- signal: string_tx
annotations:
fmi_variable_id: 100
fmi_variable_vref: 100
fmi_variable_name: string_tx
fmi_variable_type: String
fmi_variable_causality: input
- signal: string_rx
annotations:
fmi_variable_id: 101
fmi_variable_vref: 101
fmi_variable_name: string_rx
fmi_variable_type: String
fmi_variable_causality: output
- signal: string_ascii85_tx
annotations:
fmi_variable_id: 102
fmi_variable_vref: 102
fmi_variable_name: string_ascii85_tx
fmi_variable_type: String
fmi_variable_causality: input
fmi_annotations:
dse.standards.fmi-ls-binary-to-text.encoding: ascii85
- signal: string_ascii85_rx
annotations:
fmi_variable_id: 103
fmi_variable_vref: 103
fmi_variable_name: string_ascii85_rx
fmi_variable_type: String
fmi_variable_causality: output
Expand Down
2 changes: 1 addition & 1 deletion dse/fmimcl/parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ static void* _fmu_signal_generator(ModelInstanceSpec* mi, void* data)

s->name = n->scalar;
dse_yaml_get_uint(
data, "annotations/fmi_variable_id", &s->variable_vref);
data, "annotations/fmi_variable_vref", &s->variable_vref);
dse_yaml_get_string(
data, "annotations/fmi_variable_name", &s->variable_name);
dse_yaml_get_string(data, "annotations/fmi_variable_type", &v_type);
Expand Down
8 changes: 4 additions & 4 deletions dse/fmimodelc/examples/network_fmu/sim/model.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ spec:
signals:
- signal: counter
annotations:
fmi_value_reference: 1
fmi_variable_vref: 1
fmi_variable_start_value: 42
fmi_variable_causality: "output"
---
Expand All @@ -57,9 +57,9 @@ spec:
#
# FMI Value Reference
# -------------------
fmi_value_reference: 4
fmi_value_reference_input: 4
fmi_value_reference_output: 5
fmi_variable_vref: 4
fmi_variable_vref_input: 4
fmi_variable_vref_output: 5
#
# FMI LS Text Encoding (applied to FMI String Variables):
# --------------------
Expand Down
6 changes: 3 additions & 3 deletions dse/fmimodelc/runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ void fmimodelc_index_scalar_signals(
for (uint32_t i = 0; i < sv->count; i++) {
/* Value Reference. */
const char* vref =
signal_annotation(sv, i, "fmi_value_reference", NULL);
signal_annotation(sv, i, "fmi_variable_vref", NULL);
if (vref == NULL) continue;

/* Locate the SimBus variable. */
Expand Down Expand Up @@ -134,7 +134,7 @@ void fmimodelc_index_binary_signals(
for (uint32_t i = 0; i < sv->count; i++) {
/* Value Reference. */
const char* vref =
signal_annotation(sv, i, "fmi_value_reference", NULL);
signal_annotation(sv, i, "fmi_variable_vref", NULL);
if (vref == NULL) continue;

/* Index according to bus topology. */
Expand Down Expand Up @@ -201,7 +201,7 @@ void fmimodelc_index_text_encoding(
for (uint32_t i = 0; i < sv->count; i++) {
/* Value Reference. */
const char* _ =
signal_annotation(sv, i, "fmi_value_reference", NULL);
signal_annotation(sv, i, "fmi_variable_vref", NULL);
if (_ == NULL) continue;

/* Encoding. */
Expand Down
2 changes: 1 addition & 1 deletion extra/tools/fmi/internal/app/generate/annotate.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ func (c *GenFmuAnnotationCommand) applyRule(ruleFile string, signalgroup *kind.S
}
}
}
(*signal.Annotations)["fmi_variable_id"] = strconv.Itoa(vr)
(*signal.Annotations)["fmi_variable_vref"] = strconv.Itoa(vr)
(*signal.Annotations)["fmi_variable_type"] = "Real"
(*signal.Annotations)["fmi_variable_name"] = signal.Signal
vr++
Expand Down
10 changes: 5 additions & 5 deletions extra/tools/fmi/internal/app/generate/annotate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,28 +66,28 @@ func TestGenFmuAnnotationSignals(t *testing.T) {
{
"Signal": "input_1",
"fmi_variable_causality": "input",
"fmi_variable_id": "1",
"fmi_variable_vref": "1",
"fmi_variable_type": "Real",
"fmi_variable_name": "input_1",
},
{
"Signal": "input_2",
"fmi_variable_causality": "input",
"fmi_variable_id": "2",
"fmi_variable_vref": "2",
"fmi_variable_type": "Real",
"fmi_variable_name": "input_2",
},
{
"Signal": "output_1",
"fmi_variable_causality": "output",
"fmi_variable_id": "3",
"fmi_variable_vref": "3",
"fmi_variable_type": "Real",
"fmi_variable_name": "output_1",
},
{
"Signal": "output_2",
"fmi_variable_causality": "output",
"fmi_variable_id": "4",
"fmi_variable_vref": "4",
"fmi_variable_type": "Real",
"fmi_variable_name": "output_2",
},
Expand All @@ -96,7 +96,7 @@ func TestGenFmuAnnotationSignals(t *testing.T) {
for i, s := range generatedYAML.Spec.Signals {
assert.Equal(t, s.Signal, test_data[i]["Signal"], "signal should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_causality"], test_data[i]["fmi_variable_causality"], "annotation/fmi_variable_causality should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_id"], test_data[i]["fmi_variable_id"], "annotation/fmi_variable_id should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_vref"], test_data[i]["fmi_variable_vref"], "annotation/fmi_variable_vref should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_type"], test_data[i]["fmi_variable_type"], "annotation/fmi_variable_type should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_name"], test_data[i]["fmi_variable_name"], "annotation/fmi_variable_name should match")
}
Expand Down
2 changes: 1 addition & 1 deletion extra/tools/fmi/internal/app/generate/signalgroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func (c *GenSignalGroupCommand) generateSignalVector(fmiMD fmi2.FmiModelDescript

annotations := kind.Annotations{
"fmi_variable_causality": s.Causality,
"fmi_variable_id": s.ValueReference,
"fmi_variable_vref": s.ValueReference,
"fmi_variable_type": variable_type,
"fmi_variable_name": s.Name,
}
Expand Down
14 changes: 7 additions & 7 deletions extra/tools/fmi/internal/app/generate/signalgroup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,42 +100,42 @@ func TestSignalGrpSignals(t *testing.T) {
{
"Signal": "scalar_1",
"fmi_variable_causality": "input",
"fmi_variable_id": "1",
"fmi_variable_vref": "1",
"fmi_variable_type": "Real",
"fmi_variable_name": "scalar_1",
},
{
"Signal": "scalar_2",
"fmi_variable_causality": "output",
"fmi_variable_id": "2",
"fmi_variable_vref": "2",
"fmi_variable_type": "Real",
"fmi_variable_name": "scalar_2",
},
{
"Signal": "scalar_3",
"fmi_variable_causality": "local",
"fmi_variable_id": "3",
"fmi_variable_vref": "3",
"fmi_variable_type": "Real",
"fmi_variable_name": "scalar_3",
},
{
"Signal": "boolean_1",
"fmi_variable_causality": "input",
"fmi_variable_id": "4",
"fmi_variable_vref": "4",
"fmi_variable_type": "Boolean",
"fmi_variable_name": "boolean_1",
},
{
"Signal": "boolean_2",
"fmi_variable_causality": "output",
"fmi_variable_id": "5",
"fmi_variable_vref": "5",
"fmi_variable_type": "Boolean",
"fmi_variable_name": "boolean_2",
},
{
"Signal": "scalar_4",
"fmi_variable_causality": "local",
"fmi_variable_id": "6",
"fmi_variable_vref": "6",
"fmi_variable_type": "Real",
"fmi_variable_name": "scalar_4",
"internal": true,
Expand All @@ -145,7 +145,7 @@ func TestSignalGrpSignals(t *testing.T) {
for i, s := range generatedYAML.Spec.Signals {
assert.Equal(t, s.Signal, test_data[i]["Signal"], "signal should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_causality"], test_data[i]["fmi_variable_causality"], "annotation/fmi_variable_causality should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_id"], test_data[i]["fmi_variable_id"], "annotation/fmi_variable_id should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_vref"], test_data[i]["fmi_variable_vref"], "annotation/fmi_variable_vref should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_type"], test_data[i]["fmi_variable_type"], "annotation/fmi_variable_type should match")
assert.Equal(t, (*s.Annotations)["fmi_variable_name"], test_data[i]["fmi_variable_name"], "annotation/fmi_variable_name should match")
}
Expand Down
4 changes: 2 additions & 2 deletions extra/tools/fmi/pkg/fmi/fmi2/xml.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,13 +158,13 @@ func ScalarSignal(signalGroupSpec schema_kind.SignalGroupSpec, FmiXml *FmiModelD
if (*signal.Annotations)["fmi_variable_start_value"] != nil {
start = strconv.Itoa((*signal.Annotations)["fmi_variable_start_value"].(int))
}
if (*signal.Annotations)["fmi_value_reference"] == nil {
if (*signal.Annotations)["fmi_variable_vref"] == nil {
return fmt.Errorf("Could not get value reference for signal %s", signal.Signal)
}

ScalarVariable := ScalarVariable{
Name: signal.Signal,
ValueReference: strconv.Itoa((*signal.Annotations)["fmi_value_reference"].(int)),
ValueReference: strconv.Itoa((*signal.Annotations)["fmi_variable_vref"].(int)),
Causality: (*signal.Annotations)["fmi_variable_causality"].(string),
Real: &FmiReal{
Start: start,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ spec:
signals:
- signal: counter
annotations:
fmi_value_reference: 1
fmi_variable_vref: 1
fmi_variable_start_value: 42
fmi_variable_causality: "output"
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ spec:
#
# FMI Value Reference
# -------------------
fmi_value_reference: 4
fmi_value_reference_input: 4
fmi_value_reference_output: 5
fmi_variable_vref: 4
fmi_variable_vref_input: 4
fmi_variable_vref_output: 5
#
# FMI LS Text Encoding (applied to FMI String Variables):
# --------------------
Expand Down
16 changes: 8 additions & 8 deletions tests/cmocka/fmimcl/data/fmu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,25 +42,25 @@ spec:
signals:
- signal: foo
annotations:
fmi_variable_id: 0
fmi_variable_vref: 0
fmi_variable_name: foo
fmi_variable_type: Real
fmi_variable_start: 42.0
- signal: bar
annotations:
fmi_variable_id: 1
fmi_variable_vref: 1
fmi_variable_name: bar
fmi_variable_type: Real
fmi_variable_start: 24.0
- signal: count
annotations:
fmi_variable_id: 2
fmi_variable_vref: 2
fmi_variable_name: count
fmi_variable_type: Integer
fmi_variable_start: 0
- signal: active
annotations:
fmi_variable_id: 3
fmi_variable_vref: 3
fmi_variable_name: active
fmi_variable_type: Boolean
fmi_variable_start: 0
Expand All @@ -77,27 +77,27 @@ spec:
signals:
- signal: string_tx
annotations:
fmi_variable_id: 4
fmi_variable_vref: 4
fmi_variable_name: string_tx
fmi_variable_type: String
fmi_variable_causality: input
- signal: string_rx
annotations:
fmi_variable_id: 5
fmi_variable_vref: 5
fmi_variable_name: string_rx
fmi_variable_type: String
fmi_variable_causality: output
- signal: string_ascii85_tx
annotations:
fmi_variable_id: 6
fmi_variable_vref: 6
fmi_variable_name: string_ascii85_tx
fmi_variable_type: String
fmi_variable_causality: input
fmi_annotations:
dse.standards.fmi-ls-binary-to-text.encoding: ascii85
- signal: string_ascii85_rx
annotations:
fmi_variable_id: 7
fmi_variable_vref: 7
fmi_variable_name: string_ascii85_rx
fmi_variable_type: String
fmi_variable_causality: output
Expand Down
Loading

0 comments on commit a25aa92

Please sign in to comment.