Calibration_Stand/backend/Src/utils.c

89 lines
2.9 KiB
C
Raw Permalink Normal View History

2024-11-26 10:17:15 +07:00
#include "../Inc/utils.h"
char* concat_strings(const char *str1, const char *str2) {
size_t len = strlen(str1) + strlen(str2) + 1;
char *result = (char*) malloc(len);
if (result == NULL) {
log_error("Ошибка выделения памяти!\n");
return NULL;
}
strcpy(result, str1);
strcat(result, str2);
return result;
}
cJSON *cJSON_GetObject(cJSON *object, uint8_t *key){
cJSON *objectJSON = cJSON_GetObjectItemCaseSensitive(object, key);
if (objectJSON == NULL) {
log_error("Ошибка: объект '%s' не найден\n", key);
return EXIT_FAILURE;
}
return objectJSON;
}
uint8_t InitializationProject(uint8_t* api_url, uint8_t pin_nss, uint8_t pin_rst, uint8_t pin_dio0, uint8_t pin_koncevik, uint8_t pin_air_input, uint8_t pin_air_output, int8_t* serial_port, uint8_t* serial_device){
log_info("Initialization...");
Set_New_ButtonMain_Label("Initialization...");
// int connection_init = CURL_Check_connection(api_url);
// if(connection_init < 0){
// log_error("Conncection ERROR");
// return 1;
// }
log_info("SX1278Init...");
Set_New_ButtonMain_Label("SX1278Init...");
int sx_init = SX1278_Init(pin_nss, pin_rst, pin_dio0);
if(sx_init < 0){
log_error("SX1278 Initialization ERROR");
return 1;
}
pinMode(pin_koncevik, INPUT);
pinMode(pin_air_input, OUTPUT);
pinMode(pin_air_output, OUTPUT);
log_info("SX1278_load...");
Set_New_ButtonMain_Label("SX1278_load...");
SX1278_load();
// delay(500);
// *serial_port = GODEX500_setup_serial(&serial_device);
// if (*serial_port < 0) {
// log_error("GODEX500 Initialization ERROR");
// return 1;
// }
log_info("Initialization completed!");
Set_New_ButtonMain_Label("Initialization completed!");
return 0;
}
void print_bytes(SxResive* ptr, size_t size){
uint8_t* byte_ptr = (uint8_t*)ptr;
for(size_t i = 0; i < size; i++){
printf("0x%02X, ", byte_ptr[i]);
}
printf("\n");
}
// Функция для упаковки структуры в массив байтов
void packSxTransmit(SxTransmit* data, uint8_t* buffer) {
int index = 0;
// Упаковка полей структуры в буфер
memcpy(&buffer[index], &data->payload, sizeof(data->payload));
index += sizeof(data->payload);
memcpy(&buffer[index], &data->type, sizeof(data->type));
index += sizeof(data->type);
memcpy(&buffer[index], &data->id_sensor, sizeof(data->id_sensor));
index += sizeof(data->id_sensor);
memcpy(&buffer[index], &data->pressure, sizeof(data->pressure));
index += sizeof(data->pressure);
memcpy(&buffer[index], &data->temperature, sizeof(data->temperature));
index += sizeof(data->temperature);
memcpy(&buffer[index], data->otherData, sizeof(data->otherData));
}