Wakayo-Quozorox / SACS

Définition et développement d'un protocole de communication qui en envoie.
1 stars 0 forks source link

Probleme emission reception à la suite #24

Closed Wakayo-Quozorox closed 1 year ago

Wakayo-Quozorox commented 1 year ago

Réception et émission impossible dans le même code, problème d'instruction lorsqu'on essaie d'envoyer après une réception. Problème venant probablement de la bibliothèque SC1272.

Wakayo-Quozorox commented 1 year ago

Problème rencontré par Hugo N., résolu (de son côté) en modifiant comme suit la fonction BSP_SX1272_receivePacketTimeout(uint32_t wait) dans le fichier SX1272.c

/*
 Function: Configures the module to BSP_SX1272_receive information.
 Returns: Integer that determines if there has been any error
   state = 2  --> The command has not been executed
   state = 1  --> There has been an error while executing the command
   state = 0  --> The command has been executed with no errors
*/
uint8_t BSP_SX1272_receivePacketTimeout(uint32_t wait)
{
    uint8_t state = 2;
    uint8_t state_f = 2;
    uint8_t st0 = 0;

    #if (SX1272_debug_mode > 1)
        my_printf("\r\n");
        my_printf("Starting 'receivePacketTimeout'\r\n");
    #endif
    // Save the previous status
    st0 = BSP_SX1272_Read(REG_OP_MODE);

    // set RX mode
    state = BSP_SX1272_receive();

    // if RX mode is set correctly then wait for data
    if( state == 0 )
    {
        // Wait for a new packet for 'wait' time
        if( BSP_SX1272_availableData(wait) )
        {
            // If packet received, getPacket
            state_f = BSP_SX1272_getPacket(MAX_TIMEOUT);
        }
        else
        {
            state_f = 1;
        }
    }
    else
    {
        state_f = state;
    }

    BSP_SX1272_Write(REG_OP_MODE, st0); // Getting back to previous status

    return state_f;
}
Wakayo-Quozorox commented 1 year ago

Solution proposée par Hugo N. ne fonctionne pas, le problème est toujours présent après modification de la fonction BSP_SX1272_receivePacketTimeout(uint32_t wait).

Wakayo-Quozorox commented 1 year ago

Malo dit que si on appelle la fonction setup transmission (???) avant d'envoyer ça fonctionne, à étudier pour voir quel mode de configuration permet de résoudre le problème.

hmnz commented 1 year ago

Vena m'a dit que faire un init (peut être ce dont parlait malo) entre chaque changement de mode devrait resoudre le pobleme car remise a la config intiale qui marche bien. Pour débugger, il m'a ensuite dit de commenter une par une les lignes de l'init pour voir laquelle est necessaire.

hmnz commented 1 year ago

La technique de vena marche, reste plus qu'a affiner et trouver la ligne qui nous intéresse

hmnz commented 1 year ago
    e = BSP_SX1272_setSF(paramSF);      // SF = 12
    e = BSP_SX1272_setBW(paramBW);    // BW = 125 KHz

regle le probleme pour linstant

hmnz commented 1 year ago

Plus précisément, le problème semble être réglé en ajoutant les lignes :

if( currentstate._modem == FSK )
        {
            BSP_SX1272_setLORA();               // Setting LoRa mode
        }
        else
        {
            /// LoRa mode
            // LoRa standby mode
            BSP_SX1272_Write(REG_OP_MODE, LORA_STANDBY_MODE);
        }