X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=ll-can-binding.h;h=8e0ee27d3fd5b18454a0b0317c52897b57b729c0;hb=c7a9be5be6bc984c0d68868528b7891a2fa5da1b;hp=6280cc4cbf95330ac1e83684ba6fbac86918b922;hpb=7a15d9138cd18bee2835467c5854d25e16b8f1ce;p=apps%2Fagl-service-can-low-level.git diff --git a/ll-can-binding.h b/ll-can-binding.h index 6280cc4c..8e0ee27d 100644 --- a/ll-can-binding.h +++ b/ll-can-binding.h @@ -1,15 +1,19 @@ -/* max. number of CAN interfaces given on the cmdline */ -#define MAXSOCK 16 - -/* buffer sizes for CAN frame string representations */ -#define CL_ID (sizeof("12345678##1")) -#define CL_DATA sizeof(".AA") -#define CL_BINDATA sizeof(".10101010") - - /* CAN FD ASCII hex short representation with DATA_SEPERATORs */ -#define CL_CFSZ (2*CL_ID + 64*CL_DATA) - -#define CANID_DELIM '#' +/* + * Copyright (C) 2015, 2016 "IoT.bzh" + * Author "Romain Forlot" + * + * 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 @@ -41,7 +45,7 @@ static const char * const type_NAMES[type_size] = { /* CAN variable initialization */ struct canfd_frame canfd_frame; -struct can_handler { +class can_handle { int socket; char *device; bool is_fdmode_on; @@ -72,35 +76,6 @@ struct _can_event { can_event *can_events_list; -/* TODO : Add help comments :p */ -static int connect_to_event_loop(); - -const char hex_asc_upper[] = "0123456789ABCDEF"; - -#define hex_asc_upper_lo(x) hex_asc_upper[((x) & 0x0F)] -#define hex_asc_upper_hi(x) hex_asc_upper[((x) & 0xF0) >> 4] - -static inline void put_hex_byte(char *buf, __u8 byte) -{ - buf[0] = hex_asc_upper_hi(byte); - buf[1] = hex_asc_upper_lo(byte); -} - -static inline void _put_id(char *buf, int end_offset, canid_t id) -{ - /* build 3 (SFF) or 8 (EFF) digit CAN identifier */ - while (end_offset >= 0) { - buf[end_offset--] = hex_asc_upper[id & 0xF]; - id >>= 4; - } -} - -#define put_sff_id(buf, id) _put_id(buf, 2, id) -#define put_eff_id(buf, id) _put_id(buf, 7, id) - -static void parse_can_frame(openxc_CanMessage *can_message, struct canfd_frame *canfd_frame, int maxdlen); - - // Initialize default can_handler values static struct can_handler can_handler = { .socket = -1, @@ -108,4 +83,8 @@ static struct can_handler can_handler = { .is_fdmode_on = false, }; -static void send_event(); +/* 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};