Tamandutech / LineFollower_Braia_Code

Repositório de códigos do robô segue linha Braia
5 stars 1 forks source link

Transformar a param_list em json #51

Closed Matheus-de-Sousa closed 1 month ago

Matheus-de-Sousa commented 2 years ago

Ao utilizar o comando param_list que retorna a lista de parâmetros, utilizar o formato Json ao invés de string, pois o processamento e interpretação do dado ficará mais simples e padronizada para a utilização no dashboard.

Matheus-de-Sousa commented 2 years ago

O arquivo que será alterado é o DataManager.cpp (branch ble/gatt) ou DataManager.cpp (branch develop), o método que será alterado é o std::string DataManager::listRegistredParamData(). A alteração deve ser feita a partir da develop, mas dependendo da situação a estrutura atual da develop pode mudar (sofrer um merge da BLE_GATT) e ela se tornará como a branch BLE_GATT, então eu coloquei o caminho para o arquivo das duas branches.

Matheus-de-Sousa commented 2 years ago

Exemplo de criação do json com C++ que pode ser utilizado nessa issue:

#include "cJSON.h"
cJSON *root;
root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "cmdExecd", line);
cJSON_AddStringToObject(root,"data", ret.c_str());
char *my_json_string = cJSON_Print(root);
cJSON_Delete(root);
cJSON_free(my_json_string); 

Segue a documentação da biblioteca utilizada no exemplo. Por hora a estrutura do json pode ser algo como chave : valor, entretanto no futuro o ideal é o json armazenar um objeto para cada classe de dados, por exemplo:

{
  "speed":{"max": "125", "min":"30", "base":"70"},
  "PID":{"kp":"0.90", "ki":"0.12","kd":"0.35"},
  "slatmarks":{"markstostop":"5","wheelDiameter":"32","thresholdtocurve":"20"}
}

A estrutura seguiria esse padrão em que as classes seriam separadas em objetos e dentro desses objetos se encontrarão os parâmetros relacionados. Porém, antes apenas criar um json com nome:valor dos parâmetros já servirá para início de testes.