/* * 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 isChangedTransGearState(); bool isChangedLampState(); bool isChangedParkingBrakeState(); bool isChangedAccelPedalState(); const char* getCurrentTransGearState(); const char* getCurrentLampState(); const char* getCurrentParkingBrakeState(); const char* getCurrentAccelPedalState(); private: // Disable copy and move LowCanClient(LowCanClient const &) = delete; LowCanClient &operator=(LowCanClient const &) = delete; LowCanClient(LowCanClient &&) = delete; LowCanClient &operator=(LowCanClient &&) = delete; enum TransGearPosVal { TransGearPosValD1 = 1, TransGearPosValD2, TransGearPosValD3, TransGearPosValD4, TransGearPosValD5, TransGearPosValD6, TransGearPosValD7, TransGearPosValD8, TransGearPosValR, TransGearPosValN, }; enum SignalNo { SignalNoVehicliSpeed = 0, SignalNoTransGearPos, SignalNoHeadlame, SignalNoParkingBrake, SignalNoAccelPedalPos, SignalNum, SignalNoMin = SignalNoVehicliSpeed, SignalNoMax = SignalNum - 1, }; const std::vector kEventName_{ "vehicle.speed", "transmission_gear_position", "headlamp_status", "parking_brake_status", "accelerator.pedal.position", }; const std::vector kFilterValue_{ "", "", "", "", "", //"{ \"min\": 0, \"max\": 10}", }; int vehicle_speed_; int trans_gear_pos_; json_bool headlamp_status_; json_bool parking_brake_status_; double accel_pedal_pos_; std::string prv_trans_gear_state_; std::string crr_trans_gear_state_; 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_; bool is_changed_trans_gear_state_; bool is_changed_lamp_state_; bool is_changed_parking_brake_state_; bool is_changed_accel_pedal_state_; }; } // namespace wm #endif // TMCAGLWM_LOW_CAN_CLIENT_HPP