{"id":20591480,"url":"https://github.com/lmtreser/trestruct","last_synced_at":"2026-04-16T20:33:07.192Z","repository":{"id":215016131,"uuid":"737910954","full_name":"lmtreser/TreStruct","owner":"lmtreser","description":"TreStruct es una biblioteca experimental para Arduino","archived":false,"fork":false,"pushed_at":"2024-02-01T12:51:27.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-08T13:43:17.812Z","etag":null,"topics":["arduino","cpp","libraries"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmtreser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-01T23:45:35.000Z","updated_at":"2024-02-05T19:20:50.000Z","dependencies_parsed_at":"2025-03-06T13:45:59.670Z","dependency_job_id":"53869e18-5d4d-4b66-a3d8-b1f021d9c409","html_url":"https://github.com/lmtreser/TreStruct","commit_stats":null,"previous_names":["lmtreser/trestruct"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lmtreser/TreStruct","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FTreStruct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FTreStruct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FTreStruct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FTreStruct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmtreser","download_url":"https://codeload.github.com/lmtreser/TreStruct/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FTreStruct/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31903700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","cpp","libraries"],"created_at":"2024-11-16T07:40:30.327Z","updated_at":"2026-04-16T20:33:07.153Z","avatar_url":"https://github.com/lmtreser.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Biblioteca TreStruct\n\nPrimer experiencia en el proceso de creación de bibliotecas para Arduino. Se trata de una biblioteca para crear y manipular una estructura que almacena datos personales.\n\n## Descripción del código\n\nTreStruct permite almacenar usuarios y datos personales mediante una estructura de datos. La misma se aloja en la memoria dinámica mediante la función `void *malloc(size_t size)`. Puede aprender más sobre *malloc()* leyendo en [Wikipedia](https://es.wikipedia.org/wiki/Malloc) o [aquí](https://en.cppreference.com/w/c/memory/malloc).\n\nPara copiar el contenido de un array en otro se utiliza la función `strncpy(destino, fuente, cantidad_a_copiar)`. Como *strncpy* no garantiza la copia del caracter nulo de fin de cadena `\\0`, se recomienda agregarlo manualmente. Un poco más sobre *strncpy* en este [enlace](https://en.cppreference.com/w/cpp/string/byte/strncpy).\n\nLa función *snprintf()* se utilizar para almacenar un string con un tamaño especificado en un determinado formato. Además retorna el número de caracteres escritos (sin incluir el caracter nulo `\\0`): `int snprintf(char *str, size_t size, const char *format, …)`, donde `*str` es un buffer, `size` es el numero maximo de bytes (caracteres) que seran escritos en el buffer. Más sobre *snprintf()* [aquí](https://cplusplus.com/reference/cstdio/snprintf/).\n\nLa biblioteca expone de manera publica los siguientes métodos:\n\n- `TreStruct(void)` Constructor.\n- `bool begin(uint16_t numUsers)` Crea una lista de usuarios.\n- `void addUser(const char *userName, uint32_t userDni, uint8_t userHome, const char *userTag, bool userAcces, const char *timeStamp)` Agrega usuarios a la lista.\n- `void fullReport(uint8_t option, char *output)` Genera un reporte completo.\n- `void minReport(char *output)` Genera un reporte minimo.\n\n## Licencia\n\nEste trabajo está protegido por la **Licencia MIT**. Puedes acceder a la versión original de la licencia (en inglés) a través del archivo [LICENSE](./LICENSE) o en línea en [The MIT License (MIT)](https://mit-license.org/). También proporcionamos una traducción no oficial desde [Wikipedia](https://es.m.wikipedia.org/wiki/Licencia_MIT#La_licencia):\n\nCopyright (c) 2024 Lucas Martín Treser\n\nPor la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el \"Software\"), a utilizar el Software sin restricción, incluyendo sin limitación los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y a permitir a las personas a las que se les proporcione el Software a hacer lo mismo, sujeto a las siguientes condiciones:\n\nEl aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.\n\nEL SOFTWARE SE PROPORCIONA \"COMO ESTÁ\", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDAD PARA UN PROPÓSITO PARTICULAR E INCUMPLIMIENTO. EN NINGÚN CASO LOS AUTORES O PROPIETARIOS DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRO MOTIVO, DERIVADAS DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmtreser%2Ftrestruct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmtreser%2Ftrestruct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmtreser%2Ftrestruct/lists"}