/***** * Copyright (c) 2023 - Poivron Robotique * * SPDX-License-Identifier: BSD-3-Clause */ #include "pico/stdlib.h" #include #include #include #include "communication.h" #include "messagerie.h" void stdio_usb_out_chars(const char *buf, int length); #define NB_MORCEAUX 100 absolute_time_t envoie_nb_char(int nb_char); char chaine_envoie[10000]; void envoie_donnees(char * donnees, uint16_t length){ for (int i=0; iDevice 1 - demarrage\n"); for(int i=0; i<10000; i++){ /*j++; if(j>25){ j=0; } chaine_envoie[i]= j + 'a';*/ chaine_envoie[i]= i%26 + 'a'; } int nb_ech = 10; int taille_morceau = 60; int nb_message=0; stdio_init_all(); sleep_ms(5000); gpio_init(PICO_DEFAULT_LED_PIN); gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); gpio_put(PICO_DEFAULT_LED_PIN, 0); temps_message_detection = get_absolute_time(); communication_init(); while(1){ if(get_absolute_time() - temps_message_detection > MESSAGE_TIMEOUT_US){ start_time_us = get_absolute_time(); envoie_structure(&message_requete_detection, sizeof(message_requete_detection) ); temps_message_detection = get_absolute_time(); current_time_us = get_absolute_time(); //printf(">temps_emission:%lld\n", current_time_us - start_time_us); } start_time_us = get_absolute_time(); communication_reception_message(); if(messagerie_message_disponible()){ while(messagerie_message_disponible()){ message = messagerie_get_message(); nb_message++; if(message.type == 'r'){ if(message.id_carte == 'D'){ temps_message_detection = get_absolute_time(); if(message.donnees[0] > 0 && message.donnees[0] < 30){ //printf(">LED ON\n"); gpio_put(PICO_DEFAULT_LED_PIN, 1); }else{ //printf(">LED OFF\n"); gpio_put(PICO_DEFAULT_LED_PIN, 0); } } } } } current_time_us = get_absolute_time(); //printf(">temps_reception:%lld\n", current_time_us - start_time_us); printf(">nb_message:%u\n",nb_message); } } absolute_time_t envoie_nb_char(int nb_char) { absolute_time_t current_time_us, start_time_us; int j=0; if (nb_char == 0){ return 0; } chaine_envoie[nb_char - 1] = '\n'; chaine_envoie[nb_char] = '\0'; start_time_us = get_absolute_time(); printf("%s", chaine_envoie); envoie_donnees(chaine_envoie, strlen(chaine_envoie)); current_time_us = get_absolute_time(); chaine_envoie[nb_char - 1] = 'a'; chaine_envoie[nb_char] = 'a'; return current_time_us - start_time_us; }