Skip to content

Commit 04a4ff2

Browse files
authored
Merge pull request #844 from nasa/feature/little-endian
Merge feature/little-endian into main
2 parents 45ccdd1 + 20fbf0c commit 04a4ff2

File tree

139 files changed

+1108
-935
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+1108
-935
lines changed

compiler/lib/src/main/scala/codegen/CppWriter/ArrayCppWriter.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,13 +484,19 @@ case class ArrayCppWriter (
484484
CppDoc.Type("Fw::SerializeBufferBase&"),
485485
"buffer",
486486
Some("The serial buffer"),
487+
),
488+
CppDoc.Function.Param(
489+
CppDoc.Type("Fw::Endianness"),
490+
"mode",
491+
Some("Endianness of serialized buffer"),
492+
Some("Fw::Endianness::BIG"),
487493
)
488494
),
489495
CppDoc.Type("Fw::SerializeStatus"),
490496
List.concat(
491497
lines("Fw::SerializeStatus status = Fw::FW_SERIALIZE_OK;"),
492498
indexIterator(
493-
line("status = buffer.serializeFrom((*this)[index]);") ::
499+
line("status = buffer.serializeFrom((*this)[index], mode);") ::
494500
wrapInIf("status != Fw::FW_SERIALIZE_OK", lines("return status;")),
495501
),
496502
lines("return status;"),
@@ -506,13 +512,19 @@ case class ArrayCppWriter (
506512
CppDoc.Type("Fw::SerializeBufferBase&"),
507513
"buffer",
508514
Some("The serial buffer"),
515+
),
516+
CppDoc.Function.Param(
517+
CppDoc.Type("Fw::Endianness"),
518+
"mode",
519+
Some("Endianness of serialized buffer"),
520+
Some("Fw::Endianness::BIG"),
509521
)
510522
),
511523
CppDoc.Type("Fw::SerializeStatus"),
512524
List.concat(
513525
lines("Fw::SerializeStatus status = Fw::FW_SERIALIZE_OK;"),
514526
indexIterator(
515-
line("status = buffer.deserializeTo((*this)[index]);") ::
527+
line("status = buffer.deserializeTo((*this)[index], mode);") ::
516528
wrapInIf("status != Fw::FW_SERIALIZE_OK", lines("return status;")),
517529
),
518530
lines("return status;"),

compiler/lib/src/main/scala/codegen/CppWriter/EnumCppWriter.scala

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,12 +316,19 @@ case class EnumCppWriter(
316316
CppDoc.Type("Fw::SerializeBufferBase&"),
317317
"buffer",
318318
Some("The serial buffer")
319+
),
320+
CppDoc.Function.Param(
321+
CppDoc.Type("Fw::Endianness"),
322+
"mode",
323+
Some("Endianness of serialized buffer"),
324+
Some("Fw::Endianness::BIG"),
319325
)
320326
),
321327
CppDoc.Type("Fw::SerializeStatus"),
322328
lines(
323329
s"""|const Fw::SerializeStatus status = buffer.serializeFrom(
324-
| static_cast<SerialType>(this->e)
330+
| static_cast<SerialType>(this->e),
331+
| mode
325332
|);
326333
|return status;"""
327334
),
@@ -336,12 +343,18 @@ case class EnumCppWriter(
336343
CppDoc.Type("Fw::SerializeBufferBase&"),
337344
"buffer",
338345
Some("The serial buffer")
346+
),
347+
CppDoc.Function.Param(
348+
CppDoc.Type("Fw::Endianness"),
349+
"mode",
350+
Some("Endianness of serialized buffer"),
351+
Some("Fw::Endianness::BIG"),
339352
)
340353
),
341354
CppDoc.Type("Fw::SerializeStatus"),
342355
lines(
343356
s"""|SerialType es;
344-
|Fw::SerializeStatus status = buffer.deserializeTo(es);
357+
|Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
345358
|if (status == Fw::FW_SERIALIZE_OK) {
346359
| this->e = static_cast<T>(es);
347360
| if (!this->isValid()) {

compiler/lib/src/main/scala/codegen/CppWriter/StructCppWriter.scala

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,9 +466,9 @@ case class StructCppWriter(
466466
lines("return status;")
467467
)
468468
def writeSerializeCall(n: String) =
469-
line(s"status = buffer.serializeFrom(this->m_$n);") :: writeSerializeStatusCheck
469+
line(s"status = buffer.serializeFrom(this->m_$n, mode);") :: writeSerializeStatusCheck
470470
def writeDeserializeCall(n: String) =
471-
line(s"status = buffer.deserializeTo(this->m_$n);") :: writeSerializeStatusCheck
471+
line(s"status = buffer.deserializeTo(this->m_$n, mode);") :: writeSerializeStatusCheck
472472

473473
List(
474474
List(
@@ -487,6 +487,12 @@ case class StructCppWriter(
487487
CppDoc.Type("Fw::SerializeBufferBase&"),
488488
"buffer",
489489
Some("The serial buffer")
490+
),
491+
CppDoc.Function.Param(
492+
CppDoc.Type("Fw::Endianness"),
493+
"mode",
494+
Some("Endianness of serialized buffer"),
495+
Some("Fw::Endianness::BIG"),
490496
)
491497
),
492498
CppDoc.Type("Fw::SerializeStatus"),
@@ -511,6 +517,12 @@ case class StructCppWriter(
511517
CppDoc.Type("Fw::SerializeBufferBase&"),
512518
"buffer",
513519
Some("The serial buffer")
520+
),
521+
CppDoc.Function.Param(
522+
CppDoc.Type("Fw::Endianness"),
523+
"mode",
524+
Some("Endianness of serialized buffer"),
525+
Some("Fw::Endianness::BIG"),
514526
)
515527
),
516528
CppDoc.Type("Fw::SerializeStatus"),

compiler/tools/fpp-to-cpp/test/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ default-tests.sh
1515
default-update-ref.sh
1616

1717
!*/include/*
18-
!*.ref.h
18+
!*.ref.h
19+
fpp-*.json

compiler/tools/fpp-to-cpp/test/alias/AbsSerializableAc.ref.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,14 @@ std::ostream& operator<<(std::ostream& os, const Abs& obj) {
7878
// ----------------------------------------------------------------------
7979

8080
Fw::SerializeStatus Abs ::
81-
serializeTo(Fw::SerializeBufferBase& buffer) const
81+
serializeTo(
82+
Fw::SerializeBufferBase& buffer,
83+
Fw::Endianness mode
84+
) const
8285
{
8386
Fw::SerializeStatus status;
8487

85-
status = buffer.serializeFrom(this->m_A);
88+
status = buffer.serializeFrom(this->m_A, mode);
8689
if (status != Fw::FW_SERIALIZE_OK) {
8790
return status;
8891
}
@@ -91,11 +94,14 @@ Fw::SerializeStatus Abs ::
9194
}
9295

9396
Fw::SerializeStatus Abs ::
94-
deserializeFrom(Fw::SerializeBufferBase& buffer)
97+
deserializeFrom(
98+
Fw::SerializeBufferBase& buffer,
99+
Fw::Endianness mode
100+
)
95101
{
96102
Fw::SerializeStatus status;
97103

98-
status = buffer.deserializeTo(this->m_A);
104+
status = buffer.deserializeTo(this->m_A, mode);
99105
if (status != Fw::FW_SERIALIZE_OK) {
100106
return status;
101107
}

compiler/tools/fpp-to-cpp/test/alias/AbsSerializableAc.ref.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,14 @@ class Abs :
8585

8686
//! Serialization
8787
Fw::SerializeStatus serializeTo(
88-
Fw::SerializeBufferBase& buffer //!< The serial buffer
88+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
89+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
8990
) const;
9091

9192
//! Deserialization
9293
Fw::SerializeStatus deserializeFrom(
93-
Fw::SerializeBufferBase& buffer //!< The serial buffer
94+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
95+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
9496
);
9597

9698
//! Get the dynamic serialized size of the struct

compiler/tools/fpp-to-cpp/test/alias/BasicSerializableAc.ref.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,26 @@ std::ostream& operator<<(std::ostream& os, const Basic& obj) {
9898
// ----------------------------------------------------------------------
9999

100100
Fw::SerializeStatus Basic ::
101-
serializeTo(Fw::SerializeBufferBase& buffer) const
101+
serializeTo(
102+
Fw::SerializeBufferBase& buffer,
103+
Fw::Endianness mode
104+
) const
102105
{
103106
Fw::SerializeStatus status;
104107

105-
status = buffer.serializeFrom(this->m_A);
108+
status = buffer.serializeFrom(this->m_A, mode);
106109
if (status != Fw::FW_SERIALIZE_OK) {
107110
return status;
108111
}
109-
status = buffer.serializeFrom(this->m_B);
112+
status = buffer.serializeFrom(this->m_B, mode);
110113
if (status != Fw::FW_SERIALIZE_OK) {
111114
return status;
112115
}
113-
status = buffer.serializeFrom(this->m_C);
116+
status = buffer.serializeFrom(this->m_C, mode);
114117
if (status != Fw::FW_SERIALIZE_OK) {
115118
return status;
116119
}
117-
status = buffer.serializeFrom(this->m_D);
120+
status = buffer.serializeFrom(this->m_D, mode);
118121
if (status != Fw::FW_SERIALIZE_OK) {
119122
return status;
120123
}
@@ -123,23 +126,26 @@ Fw::SerializeStatus Basic ::
123126
}
124127

125128
Fw::SerializeStatus Basic ::
126-
deserializeFrom(Fw::SerializeBufferBase& buffer)
129+
deserializeFrom(
130+
Fw::SerializeBufferBase& buffer,
131+
Fw::Endianness mode
132+
)
127133
{
128134
Fw::SerializeStatus status;
129135

130-
status = buffer.deserializeTo(this->m_A);
136+
status = buffer.deserializeTo(this->m_A, mode);
131137
if (status != Fw::FW_SERIALIZE_OK) {
132138
return status;
133139
}
134-
status = buffer.deserializeTo(this->m_B);
140+
status = buffer.deserializeTo(this->m_B, mode);
135141
if (status != Fw::FW_SERIALIZE_OK) {
136142
return status;
137143
}
138-
status = buffer.deserializeTo(this->m_C);
144+
status = buffer.deserializeTo(this->m_C, mode);
139145
if (status != Fw::FW_SERIALIZE_OK) {
140146
return status;
141147
}
142-
status = buffer.deserializeTo(this->m_D);
148+
status = buffer.deserializeTo(this->m_D, mode);
143149
if (status != Fw::FW_SERIALIZE_OK) {
144150
return status;
145151
}

compiler/tools/fpp-to-cpp/test/alias/BasicSerializableAc.ref.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,14 @@ class Basic :
9696

9797
//! Serialization
9898
Fw::SerializeStatus serializeTo(
99-
Fw::SerializeBufferBase& buffer //!< The serial buffer
99+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
100+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
100101
) const;
101102

102103
//! Deserialization
103104
Fw::SerializeStatus deserializeFrom(
104-
Fw::SerializeBufferBase& buffer //!< The serial buffer
105+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
106+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
105107
);
106108

107109
//! Get the dynamic serialized size of the struct

compiler/tools/fpp-to-cpp/test/alias/NamespaceSerializableAc.ref.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,26 @@ std::ostream& operator<<(std::ostream& os, const Namespace& obj) {
9898
// ----------------------------------------------------------------------
9999

100100
Fw::SerializeStatus Namespace ::
101-
serializeTo(Fw::SerializeBufferBase& buffer) const
101+
serializeTo(
102+
Fw::SerializeBufferBase& buffer,
103+
Fw::Endianness mode
104+
) const
102105
{
103106
Fw::SerializeStatus status;
104107

105-
status = buffer.serializeFrom(this->m_A);
108+
status = buffer.serializeFrom(this->m_A, mode);
106109
if (status != Fw::FW_SERIALIZE_OK) {
107110
return status;
108111
}
109-
status = buffer.serializeFrom(this->m_B);
112+
status = buffer.serializeFrom(this->m_B, mode);
110113
if (status != Fw::FW_SERIALIZE_OK) {
111114
return status;
112115
}
113-
status = buffer.serializeFrom(this->m_C);
116+
status = buffer.serializeFrom(this->m_C, mode);
114117
if (status != Fw::FW_SERIALIZE_OK) {
115118
return status;
116119
}
117-
status = buffer.serializeFrom(this->m_D);
120+
status = buffer.serializeFrom(this->m_D, mode);
118121
if (status != Fw::FW_SERIALIZE_OK) {
119122
return status;
120123
}
@@ -123,23 +126,26 @@ Fw::SerializeStatus Namespace ::
123126
}
124127

125128
Fw::SerializeStatus Namespace ::
126-
deserializeFrom(Fw::SerializeBufferBase& buffer)
129+
deserializeFrom(
130+
Fw::SerializeBufferBase& buffer,
131+
Fw::Endianness mode
132+
)
127133
{
128134
Fw::SerializeStatus status;
129135

130-
status = buffer.deserializeTo(this->m_A);
136+
status = buffer.deserializeTo(this->m_A, mode);
131137
if (status != Fw::FW_SERIALIZE_OK) {
132138
return status;
133139
}
134-
status = buffer.deserializeTo(this->m_B);
140+
status = buffer.deserializeTo(this->m_B, mode);
135141
if (status != Fw::FW_SERIALIZE_OK) {
136142
return status;
137143
}
138-
status = buffer.deserializeTo(this->m_C);
144+
status = buffer.deserializeTo(this->m_C, mode);
139145
if (status != Fw::FW_SERIALIZE_OK) {
140146
return status;
141147
}
142-
status = buffer.deserializeTo(this->m_D);
148+
status = buffer.deserializeTo(this->m_D, mode);
143149
if (status != Fw::FW_SERIALIZE_OK) {
144150
return status;
145151
}

compiler/tools/fpp-to-cpp/test/alias/NamespaceSerializableAc.ref.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,14 @@ class Namespace :
9696

9797
//! Serialization
9898
Fw::SerializeStatus serializeTo(
99-
Fw::SerializeBufferBase& buffer //!< The serial buffer
99+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
100+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
100101
) const;
101102

102103
//! Deserialization
103104
Fw::SerializeStatus deserializeFrom(
104-
Fw::SerializeBufferBase& buffer //!< The serial buffer
105+
Fw::SerializeBufferBase& buffer, //!< The serial buffer
106+
Fw::Endianness mode = Fw::Endianness::BIG //!< Endianness of serialized buffer
105107
);
106108

107109
//! Get the dynamic serialized size of the struct

0 commit comments

Comments
 (0)