diff options
Diffstat (limited to 'obsolete/ll-can-binding.h')
-rw-r--r-- | obsolete/ll-can-binding.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/obsolete/ll-can-binding.h b/obsolete/ll-can-binding.h new file mode 100644 index 0000000..8e0ee27 --- /dev/null +++ b/obsolete/ll-can-binding.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2015, 2016 "IoT.bzh" + * Author "Romain Forlot" <romain.forlot@iot.bzh> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Interface between the daemon and the binding + */ +static const struct afb_binding_interface *interface; + +/* + * the type of position expected + * + * here, this type is the selection of protocol + */ +enum type { + type_OBDII, + type_CAN, + type_DEFAULT = type_CAN, + type_INVALID = -1 +}; + +#define type_size sizeof(enum type)-2 + +/* + * names of the types + */ +static const char * const type_NAMES[type_size] = { + "OBDII", + "CAN" +}; + +/* CAN variable initialization */ +struct canfd_frame canfd_frame; + +class can_handle { + int socket; + char *device; + bool is_fdmode_on; + struct sockaddr_can txAddress; +}; + +/* + * each generated event + */ +typedef struct _event event; +struct _event { + event *next; /* link for the next event */ + const char *name; /* name of the event */ + struct afb_event afb_event; /* the event for the binder */ + openxc_CanMessage can_message; /* value for the can_message */ +}; + +/* + * each can event, will browse by the id + */ +typedef struct _can_event can_event; +struct _can_event { + can_event *next; /* Link to the next other can message */ + event *events; /* events for the can message */ + uint32_t id; /* id of the event for unsubscribe */ + enum type type; /* the type of data expected */ +}; + +can_event *can_events_list; + +// Initialize default can_handler values +static struct can_handler can_handler = { + .socket = -1, + .device = "vcan0", + .is_fdmode_on = false, +}; + +/* Redefining openxc_CanMessage_init_default for C */ +#ifdef openxc_CanMessage_init_default +#undef openxc_CanMessage_init_default +#endif +openxc_CanMessage openxc_CanMessage_init_default = {.has_bus = false, .bus = 0, .has_id = false, .id = 0, .has_data = false, .data = {0, {0}}, .has_frame_format = false, .frame_format = (openxc_CanMessage_FrameFormat)0}; |