Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,78 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright 2020 - 2025 Pionix GmbH and Contributors to EVerest
#include "InfyCanDevice.hpp"
#include <iostream>
#include <unistd.h>
#include <everest/logging.hpp>
int main(int argc, char** argv) {
InfyCanDevice can;
if (!can.open_device("can0")) {
return 1;
}
EVLOG_debug << "CAN device started.";
can.switch_on_off(false);
can.adjust_power_factor(1.0);
can.set_output_mode(InfyCanDevice::OutputMode::Automatic);
sleep(2);
can.set_generic_setting(0x21, 0x20, 420 * 1000);
can.set_generic_setting(0x21, 0x21, 5 * 1000);
can.set_generic_setting(0x21, 0x22, 440 * 1000);
can.set_generic_setting(0x21, 0x23, 5 * 1000);
can.set_generic_setting(0x21, 0x24, 200 * 1000);
can.set_generic_setting(0x21, 0x25, 5 * 1000);
can.set_generic_setting(0x21, 0x26, 190 * 1000);
can.set_generic_setting(0x21, 0x27, 5 * 1000);
can.set_generic_setting(0x21, 0x28, 53 * 1000);
can.set_generic_setting(0x21, 0x29, 5 * 1000);
can.set_generic_setting(0x21, 0x2A, 54 * 1000);
can.set_generic_setting(0x21, 0x2B, 5 * 1000);
can.set_generic_setting(0x21, 0x2C, 47 * 1000);
can.set_generic_setting(0x21, 0x2D, 5 * 1000);
can.set_generic_setting(0x21, 0x2E, 46 * 1000);
can.set_generic_setting(0x21, 0x2F, 5 * 1000);
EVLOG_debug << "Protection settings applied";
can.set_inverter_mode(false);
can.set_voltage_current(200, 10);
can.set_walkin_enabled(false);
can.switch_on_off(true);
can.set_voltage_current(200, 10);
can.adjust_power_factor(1.0);
while (true) {
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x03, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x04, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x05, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x06, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x30, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x31, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x32, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x11, 0x33, 0x00));
for (uint8_t i = 0x01; i < 0x14; i++) {
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x21, i, 0x00));
}
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x41, 0x01, 0x00));
can.request_rx(can_packet_acdc::ADDR_MODULE, can_packet_acdc::GenericSetting(0x41, 0x02, 0x00));
usleep(50000);
EVLOG_debug << can.telemetry;
}
can.close_device();
return 0;
}