/* * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * 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. */ #ifndef TMCAGLWM_LOW_CAN_CLIENT_HPP #define TMCAGLWM_LOW_CAN_CLIENT_HPP #include #include #include namespace wm { class LowCanClient { public: explicit LowCanClient(); ~LowCanClient() = default; void initialize(); void analyzeCanSignal(struct json_object *object); bool isChangedLampState(); bool isChangedParkingBrakeState(); bool isChangedAccelPedalState(); bool isChangedCarState(); const char* getCurrentLampState(); const char* getCurrentParkingBrakeState(); const char* getCurrentAccelPedalState(); const char* getCurrentCarState(); private: // Disable copy and move LowCanClient(LowCanClient const &) = delete; LowCanClient &operator=(LowCanClient const &) = delete; LowCanClient(LowCanClient &&) = delete; LowCanClient &operator=(LowCanClient &&) = delete; const std::vector kEventName_{ "vehicle.speed", "transmission_gear_position", "headlamp_status", "parking_brake_status", "accelerator.pedal.position", }; int vehicle_speed_; int trans_gear_pos_; json_bool headlamp_status_; json_bool parking_brake_status_; double accel_pedal_pos_; std::string prv_lamp_state_; std::string crr_lamp_state_; std::string prv_parking_brake_state_; std::string crr_parking_brake_state_; std::string prv_accel_pedal_state_; std::string crr_accel_pedal_state_; std::string prv_car_state_; std::string crr_car_state_; bool is_changed_lamp_state_; bool is_changed_parking_brake_state_; bool is_changed_accel_pedal_state_; bool is_changed_car_state_; }; } // namespace wm #endif // TMCAGLWM_LOW_CAN_CLIENT_HPP