12 Commits
0.0.5 ... main

Author SHA1 Message Date
316f095c55 Update .gitea/workflows/build.yaml
Some checks failed
C Release thumbv7em-none-eabihf / Build-Release (push) Failing after 19s
2024-12-06 00:19:02 +00:00
6f40370a94 Update .gitmodules
Some checks failed
C Release thumbv7em-none-eabihf / Build-Release (push) Failing after 13s
fixed ;
2024-12-06 00:11:14 +00:00
d8551c58b7 Update .gitmodules
Some checks failed
C Release thumbv7em-none-eabihf / Build-Release (push) Failing after 12s
now using https for all submodules
2024-12-06 00:10:14 +00:00
decb22747c Update .gitea/workflows/build.yaml
Some checks failed
C Release thumbv7em-none-eabihf / Build-Release (push) Failing after 1m8s
2024-12-06 00:04:40 +00:00
3b10f5ffe6 Update .gitea/workflows/build.yaml
Some checks failed
C Release thumbv7em-none-eabihf / Build-Release (push) Failing after 1s
2024-12-05 03:17:07 +00:00
1e0fd80f5c added MLZR_Comm 2024-06-03 22:04:46 +02:00
41cc7a9ff6 display current ambientlight 2024-06-02 02:26:33 +02:00
f263896cbf update proto 2024-06-02 02:10:45 +02:00
d8e27df3fe added a way to readout the current value 2024-06-02 02:05:31 +02:00
be0ce6dee5 now using cls-build container for faster builds 2024-05-30 04:04:57 +02:00
0798ec40c1 added ambient light to can bus 2024-05-29 04:01:55 +02:00
4724da0455 new version 2024-05-29 03:36:18 +02:00
17 changed files with 165 additions and 21 deletions

View File

@@ -4,15 +4,16 @@ on: [push]
jobs: jobs:
Build-Release: Build-Release:
runs-on: ubuntu-latest runs-on: cls-build
steps: steps:
- name: Install dependencies #- name: Install dependencies
run: apt-get update && apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi ninja-build cmake protobuf-compiler python3 python3-grpcio python3-protobuf python3-pkg-resources python3-requests # run: apt-get update && apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi ninja-build cmake protobuf-compiler python3 python3-grpcio python3-protobuf python3-pkg-resources python3-requests
# run: pip install setuptools # run: pip install setuptools
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
token: ${{ secrets.TOKEN }}
submodules: true submodules: true
fetch-depth: 0 fetch-depth: 0

12
.gitmodules vendored
View File

@@ -9,13 +9,19 @@
url = https://github.com/ThrowTheSwitch/Unity url = https://github.com/ThrowTheSwitch/Unity
[submodule "Application/CLS"] [submodule "Application/CLS"]
path = Application/CLS path = Application/CLS
url = git@git.lan:oliver/libCLS.git url = https://git.revwal.de/oliver/libCLS.git
[submodule "lib/ulog"] [submodule "lib/ulog"]
path = lib/ulog path = lib/ulog
url = https://github.com/rdpoor/ulog.git url = https://github.com/rdpoor/ulog.git
[submodule "lib/ee24"] [submodule "lib/ee24"]
path = lib/ee24 path = lib/ee24
url = git@git.lan:oliver/ee24.git url = https://git.revwal.de/oliver/ee24.git
[submodule "proto"] [submodule "proto"]
path = proto path = proto
url = git@git.lan:oliver/cls-proto.git url = https://git.revwal.de/oliver/cls-proto.git
[submodule "lib/TinyFrame"]
path = lib/TinyFrame
url = https://github.com/MightyPork/TinyFrame.git
[submodule "Application/MLZR_Comm"]
path = Application/MLZR_Comm
url = https://git.revwal.de/ODDIY/MLZR_Comm.git

View File

@@ -3,4 +3,5 @@ add_subdirectory(CLS)
add_subdirectory(CLS_BSP) add_subdirectory(CLS_BSP)
add_subdirectory(BSP) add_subdirectory(BSP)
add_subdirectory(ram_loader) add_subdirectory(ram_loader)
add_subdirectory(MLZR_Comm)
add_subdirectory(Vehicle) add_subdirectory(Vehicle)

1
Application/MLZR_Comm Submodule

Submodule Application/MLZR_Comm added at 48a98f4c82

View File

@@ -7,7 +7,8 @@
#include "CLS.h" #include "CLS.h"
#include "CLS_BSP.h" #include "CLS_BSP.h"
#include "CLSAddress.h" #include "CLSAddress.h"
#include "ulog.h"
#include "Vehicle.h"
cls_headlight_RequestSettings msg_cls_headlight_RequestSettings; cls_headlight_RequestSettings msg_cls_headlight_RequestSettings;
cls_headlight_Settings msg_cls_headlight_Settings; cls_headlight_Settings msg_cls_headlight_Settings;
@@ -20,6 +21,22 @@ typedef struct Headlight_Control_Setting {
uint16_t off_threshold; uint16_t off_threshold;
} Headlight_Control_Setting_t; } Headlight_Control_Setting_t;
uint16_t headlight_amblight = 0;
void CanData_ambilight(CanDataId canid, uint8_t* data, uint8_t len) {
if(len == 2) {
headlight_amblight = (data[1] << 8) | data[0];
}
ULOG_INFO("Ambilight: %d", headlight_amblight);
}
void AddHeadlightMessages() {
CanData_regEventMsg(GENERATE_CLS_ADDRESS(CLS_CODE_STATUS, 0, CLS_CH_STA_AMBIENTLIGHT), CanData_ambilight);
}
// whan a message is received, this function is called
void DataClbk_cls_headlight_Settings(void* msg, uint32_t length) { void DataClbk_cls_headlight_Settings(void* msg, uint32_t length) {
DATA_CLBK_SETUP(cls_headlight_Settings); DATA_CLBK_SETUP(cls_headlight_Settings);
uint8_t device = msg_cls_headlight_Settings.deviceId; uint8_t device = msg_cls_headlight_Settings.deviceId;
@@ -82,3 +99,18 @@ void DataClbk_cls_headlight_RequestSettings(void* msg, uint32_t length) {
CLS_BSP_CAN_AddMessageToSend(&can_header, (uint8_t*)&data); CLS_BSP_CAN_AddMessageToSend(&can_header, (uint8_t*)&data);
} }
void DataClbk_cls_headlight_RequestBrightness(void* msg, uint32_t length) {
cls_headlight_RequestBrightness msg_cls_headlight_RequestBrightness;
memcpy(&msg_cls_headlight_RequestBrightness, msg, sizeof(cls_headlight_RequestBrightness));
cls_headlight_Brightness msg_cls_headlight_Brightness;
msg_cls_headlight_Brightness.brightness = headlight_amblight;
USBDataResonse(&msg_cls_headlight_Brightness,cls_headlight_Brightness_fields, cls_usb_PackageType_HEADLIGHT_BRIGHTNESS);
}

View File

@@ -66,6 +66,7 @@ union {
cls_headlight_Settings msg_cls_headlight_Settings; cls_headlight_Settings msg_cls_headlight_Settings;
cls_headlight_SaveSettings msg_cls_headlight_SaveSettings; cls_headlight_SaveSettings msg_cls_headlight_SaveSettings;
cls_headlight_RequestSettings msg_cls_headlight_RequestSettings; cls_headlight_RequestSettings msg_cls_headlight_RequestSettings;
cls_headlight_RequestBrightness msg_cls_headlight_RequestBrightness;
} mem_msg_decode; } mem_msg_decode;
@@ -127,6 +128,7 @@ message_handler_t message_handlers[] = {
MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_SETTINGS, cls_headlight_Settings), MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_SETTINGS, cls_headlight_Settings),
MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_SAVE_SETTINGS, cls_headlight_SaveSettings), MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_SAVE_SETTINGS, cls_headlight_SaveSettings),
MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_REQUEST_SETTINGS, cls_headlight_RequestSettings), MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_REQUEST_SETTINGS, cls_headlight_RequestSettings),
MESSAGE_HANDLER(cls_usb_PackageType_HEADLIGHT_REQUEST_BRIGHTNESS, cls_headlight_RequestBrightness),
}; };

View File

@@ -139,6 +139,7 @@ void DataClbk_cls_light_RequestThemeSetting(void* msg, uint32_t length);
void DataClbk_cls_headlight_Settings(void* msg, uint32_t length); void DataClbk_cls_headlight_Settings(void* msg, uint32_t length);
void DataClbk_cls_headlight_SaveSettings(void* msg, uint32_t length); void DataClbk_cls_headlight_SaveSettings(void* msg, uint32_t length);
void DataClbk_cls_headlight_RequestSettings(void* msg, uint32_t length); void DataClbk_cls_headlight_RequestSettings(void* msg, uint32_t length);
void DataClbk_cls_headlight_RequestBrightness(void* msg, uint32_t length);
#include "usb.pb.h" #include "usb.pb.h"
void USBDataResonse(void * msg, const pb_msgdesc_t *fields, cls_usb_PackageType typeid); void USBDataResonse(void * msg, const pb_msgdesc_t *fields, cls_usb_PackageType typeid);

View File

@@ -144,3 +144,6 @@ bool Vehicle_UnlockedSignal() {
return unlocked; return unlocked;
} }

View File

@@ -143,7 +143,7 @@ target_sources(${CMAKE_PROJECT_NAME} PUBLIC ${sources_SRCS})
target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC Tasks CLS CLS_BSP BSP EE24 INA219 ulog ram_loader Vehicle) target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC Tasks CLS CLS_BSP BSP EE24 INA219 ulog ram_loader Vehicle)
#target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC PROTOS) #target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC PROTOS)
target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC uart_driver) target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC mlzr_comm TinyFrame uart_driver)
#target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC lwrb) #target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC lwrb)
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE

View File

@@ -41,6 +41,7 @@
#include "BSP_ADC.h" #include "BSP_ADC.h"
#include "BSP_SDLogger.h" #include "BSP_SDLogger.h"
#include "Vehicle.h" #include "Vehicle.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@@ -151,6 +152,8 @@ void MX_FREERTOS_Init(void) {
} }
/* USER CODE BEGIN Header_StartDefaultTask */ /* USER CODE BEGIN Header_StartDefaultTask */
void AddHeadlightMessages();
/** /**
* @brief Function implementing the defaultTask thread. * @brief Function implementing the defaultTask thread.
* @param argument: Not used * @param argument: Not used
@@ -159,6 +162,7 @@ void MX_FREERTOS_Init(void) {
#include "CLS_BSP.h" #include "CLS_BSP.h"
#include "CLSAddress.h" #include "CLSAddress.h"
#include "mlzr_comm.h"
/* USER CODE END Header_StartDefaultTask */ /* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument) void StartDefaultTask(void *argument)
{ {
@@ -168,6 +172,9 @@ void StartDefaultTask(void *argument)
BSP_EE24_Init(); BSP_EE24_Init();
BSP_INA_Init(); BSP_INA_Init();
MLZR_INIT();
retSD = f_mount(&SDFatFS,SDPath,0); retSD = f_mount(&SDFatFS,SDPath,0);
retSD = f_open(&SDFile, "counter.bin", FA_READ); retSD = f_open(&SDFile, "counter.bin", FA_READ);
@@ -189,6 +196,7 @@ void StartDefaultTask(void *argument)
} }
BSP_SDLogger_Init(counter); BSP_SDLogger_Init(counter);
AddHeadlightMessages();
char INA_LOG[72]; char INA_LOG[72];

View File

@@ -22,6 +22,7 @@
#include "stm32h7xx_it.h" #include "stm32h7xx_it.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "AsyncComm.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@@ -41,7 +42,8 @@
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */ /* USER CODE BEGIN PV */
extern uart_desc_t uart_duplex;
extern uart_desc_t uart_half;
/* USER CODE END PV */ /* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/
@@ -233,7 +235,7 @@ void DMA1_Stream0_IRQHandler(void)
/* USER CODE END DMA1_Stream0_IRQn 0 */ /* USER CODE END DMA1_Stream0_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
usart_dma_irq_handler(&uart_duplex);
/* USER CODE END DMA1_Stream0_IRQn 1 */ /* USER CODE END DMA1_Stream0_IRQn 1 */
} }
@@ -247,7 +249,7 @@ void DMA1_Stream1_IRQHandler(void)
/* USER CODE END DMA1_Stream1_IRQn 0 */ /* USER CODE END DMA1_Stream1_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */
usart_dma_irq_handler_tx(&uart_duplex);
/* USER CODE END DMA1_Stream1_IRQn 1 */ /* USER CODE END DMA1_Stream1_IRQn 1 */
} }
@@ -261,7 +263,7 @@ void DMA1_Stream2_IRQHandler(void)
/* USER CODE END DMA1_Stream2_IRQn 0 */ /* USER CODE END DMA1_Stream2_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream2_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream2_IRQn 1 */
usart_dma_irq_handler(&uart_half);
/* USER CODE END DMA1_Stream2_IRQn 1 */ /* USER CODE END DMA1_Stream2_IRQn 1 */
} }
@@ -275,7 +277,7 @@ void DMA1_Stream3_IRQHandler(void)
/* USER CODE END DMA1_Stream3_IRQn 0 */ /* USER CODE END DMA1_Stream3_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
usart_dma_irq_handler_tx(&uart_half);
/* USER CODE END DMA1_Stream3_IRQn 1 */ /* USER CODE END DMA1_Stream3_IRQn 1 */
} }
@@ -400,7 +402,7 @@ void USART1_IRQHandler(void)
/* USER CODE END USART1_IRQn 0 */ /* USER CODE END USART1_IRQn 0 */
/* USER CODE BEGIN USART1_IRQn 1 */ /* USER CODE BEGIN USART1_IRQn 1 */
usart_irq_handler(&uart_duplex);
/* USER CODE END USART1_IRQn 1 */ /* USER CODE END USART1_IRQn 1 */
} }
@@ -413,7 +415,7 @@ void USART3_IRQHandler(void)
/* USER CODE END USART3_IRQn 0 */ /* USER CODE END USART3_IRQn 0 */
/* USER CODE BEGIN USART3_IRQn 1 */ /* USER CODE BEGIN USART3_IRQn 1 */
usart_irq_handler(&uart_half);
/* USER CODE END USART3_IRQn 1 */ /* USER CODE END USART3_IRQn 1 */
} }

View File

@@ -157,7 +157,7 @@ void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */ /* USER CODE END USART1_Init 1 */
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1; USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = 1000000; USART_InitStruct.BaudRate = 2000000;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1; USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE; USART_InitStruct.Parity = LL_USART_PARITY_NONE;
@@ -273,7 +273,7 @@ void MX_USART3_UART_Init(void)
/* USER CODE END USART3_Init 1 */ /* USER CODE END USART3_Init 1 */
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1; USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = 1000000; USART_InitStruct.BaudRate = 2000000;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1; USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE; USART_InitStruct.Parity = LL_USART_PARITY_NONE;

View File

@@ -4,5 +4,10 @@ add_subdirectory(nanopb)
add_subdirectory(ulog) add_subdirectory(ulog)
add_subdirectory(ina219) add_subdirectory(ina219)
add_library(EE24 STATIC "ee24/ee24.c") add_library(EE24 STATIC "ee24/ee24.c")
target_include_directories(EE24 PUBLIC "ee24") target_include_directories(EE24 PUBLIC "ee24")
add_library(TinyFrame STATIC "TinyFrame/TinyFrame.c")
target_include_directories(TinyFrame PUBLIC "./TinyFrame" "./TinyFrameConf")

1
lib/TinyFrame Submodule

Submodule lib/TinyFrame added at a29167a69f

View File

@@ -0,0 +1,81 @@
//
// TinyFrame configuration file.
//
// Rename to TF_Config.h
//
#ifndef TF_CONFIG_H
#define TF_CONFIG_H
#include <stdint.h>
#include <stdio.h> // used by the TF_Error() macro defined below
//#include <esp8266.h> // when using with esphttpd
//----------------------------- FRAME FORMAT ---------------------------------
// The format can be adjusted to fit your particular application needs
// If the connection is reliable, you can disable the SOF byte and checksums.
// That can save up to 9 bytes of overhead.
// ,-----+-----+-----+------+------------+- - - -+-------------,
// | SOF | ID | LEN | TYPE | HEAD_CKSUM | DATA | DATA_CKSUM |
// | 0-1 | 1-4 | 1-4 | 1-4 | 0-4 | ... | 0-4 | <- size (bytes)
// '-----+-----+-----+------+------------+- - - -+-------------'
// !!! BOTH PEERS MUST USE THE SAME SETTINGS !!!
// Adjust sizes as desired (1,2,4)
#define TF_ID_BYTES 2
#define TF_LEN_BYTES 2
#define TF_TYPE_BYTES 2
// Checksum type. Options:
// TF_CKSUM_NONE, TF_CKSUM_XOR, TF_CKSUM_CRC8, TF_CKSUM_CRC16, TF_CKSUM_CRC32
// TF_CKSUM_CUSTOM8, TF_CKSUM_CUSTOM16, TF_CKSUM_CUSTOM32
// Custom checksums require you to implement checksum functions (see TinyFrame.h)
#define TF_CKSUM_TYPE TF_CKSUM_CRC16
// Use a SOF byte to mark the start of a frame
#define TF_USE_SOF_BYTE 1
// Value of the SOF byte (if TF_USE_SOF_BYTE == 1)
#define TF_SOF_BYTE 0x01
//----------------------- PLATFORM COMPATIBILITY ----------------------------
// used for timeout tick counters - should be large enough for all used timeouts
typedef uint16_t TF_TICKS;
// used in loops iterating over listeners
typedef uint8_t TF_COUNT;
//----------------------------- PARAMETERS ----------------------------------
// Maximum received payload size (static buffer)
// Larger payloads will be rejected.
#define TF_MAX_PAYLOAD_RX 1024
// Size of the sending buffer. Larger payloads will be split to pieces and sent
// in multiple calls to the write function. This can be lowered to reduce RAM usage.
#define TF_SENDBUF_LEN 1024
// --- Listener counts - determine sizes of the static slot tables ---
// Frame ID listeners (wait for response / multi-part message)
#define TF_MAX_ID_LST 50
// Frame Type listeners (wait for frame with a specific first payload byte)
#define TF_MAX_TYPE_LST 5
// Generic listeners (fallback if no other listener catches it)
#define TF_MAX_GEN_LST 5
// Timeout for receiving & parsing a frame
// ticks = number of calls to TF_Tick()
#define TF_PARSER_TIMEOUT_TICKS 10
// Whether to use mutex - requires you to implement TF_ClaimTx() and TF_ReleaseTx()
#define TF_USE_MUTEX 1
// Error reporting function. To disable debug, change to empty define
#define TF_Error(format, ...) printf("[TF] " format "\n", ##__VA_ARGS__)
//------------------------- End of user config ------------------------------
#endif //TF_CONFIG_H

2
proto

Submodule proto updated: 06dd6f873d...37c0e46f59