summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
authorArthur Guyader <arthur.guyader@iot.bzh>2019-08-29 15:10:15 +0200
committerArthur Guyader <arthur.guyader@iot.bzh>2019-08-29 18:10:47 +0200
commit7869e2e2ca1feb6a85919eab7c1da9c698d6d680 (patch)
tree4241b584cbc6ce57a6d0683645f4357295eb1d0f /src/main.cpp
parent93debbc7de331c4d8b9dda0cdfa8d785017dc27a (diff)
Change enum type to flag and add iso tp protocol
This commits changes all enum types to flag. And adds management of iso tp protocol. Bug-AGL : SPEC-2779 Change-Id: I84cb315a99b1b1913fd1bdb24ef388fa391dc742 Signed-off-by: Arthur Guyader <arthur.guyader@iot.bzh>
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp52
1 files changed, 44 insertions, 8 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 9961105..b35f9e3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -33,6 +33,20 @@
#define EXIT_COMMAND_LINE_ERROR 2
#define EXIT_PROGRAM_ERROR 3
+
+/**
+ * FLAGS
+ */
+
+#define INVALID_FLAG 0x0001
+#define STANDARD_ID 0x0002
+#define EXTENDED_ID 0x0004
+#define BCM_PROTOCOL 0x0008
+#define J1939_PROTOCOL 0x0010
+#define J1939_ADDR_CLAIM_PROTOCOL 0x0020
+#define ISOTP_PROTOCOL 0x0040
+#define FD_FRAME 0x0800
+
template <typename T>
struct generator
{
@@ -185,18 +199,40 @@ std::ostream& operator<<(std::ostream& o, const generator<openxc::can_message>&
<< gen(v.v_.bus()) << ","
<< v.v_.id() << ","
<< "\"" << v.v_.name() << "\","
- << v.v_.length() << ","
- << gen(v.v_.is_fd()) << ",";
- if(v.v_.is_j1939()){
- o << "message_format_t::J1939,";
+ << v.v_.length() << ",";
+ uint32_t flags = 0;
+ if(v.v_.is_fd())
+ {
+ flags = flags|FD_FRAME;
}
- else if(v.v_.is_extended())
+
+ if(v.v_.is_j1939())
{
- o << "message_format_t::EXTENDED,";
+ flags = flags|J1939_PROTOCOL;
}
- else{
- o << "message_format_t::STANDARD,";
+
+ if(v.v_.is_isotp())
+ {
+ flags = flags|ISOTP_PROTOCOL;
}
+
+ if(v.v_.is_extended())
+ {
+ flags = flags|EXTENDED_ID;
+ }
+ else
+ {
+ flags = flags|STANDARD_ID;
+ }
+
+
+ if(v.v_.is_fd())
+ {
+ flags = flags|FD_FRAME;
+ }
+
+ o << gen(flags) << ",";
+
o << "frequency_clock_t(" << gen(v.v_.max_frequency()) << "),"
<< gen(v.v_.force_send_changed()) << ",";
std::uint32_t index = 0;