AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Ligne téléphonique RTC avec décodage DTMF

Description détaillée

Utilisation d'un décodeur MT8870 conformément au schéma de la note d'application de ST Microelectronics :
HULOUX (J.), Patrice MOREL (P.) - AN488/0695 Phone remote system.

Détail de l'implémentation

Comment détecter une sonnerie ?
Arrivée d'une sonnerie = front descendant sur ligne RING (INT0/PD2).
Les fronts descendants sont espacés de 20 ms +/- 2%. Si au bout de 22 ms, un nouveau front n'est pas arrivée => fin de la sonnerie.
Une sonnerie dure 1,5 s +/- 10% et chaque sonnerie est espacée de 3,5 s +/- 10 %. Donc si un blanc dure plus de 4 s, il y a interruption de la séquence des sonneries.

*  RING_FLAG CALL_FLAG
*      0        0  appel terminé (mode attente IDLE)
*      0        1  appel en cours, sonnerie inactive
*      1        1  appel en cours, sonnerie active
*  

ucRingCount doit être incrémenté lorsqu'une sonnerie dépasse une longueur minimale de RING_LENGTH_MIN.
ucRingCount doit être remis à zéro lorsque CALL_FLAG passe de 0 à 1.

Graphe de collaboration de Ligne téléphonique RTC avec décodage DTMF:

Fonctions

char cPhoneMsgGetChar (void)
 Lecture d'un octet dans la file de message Les événements générer dans la file de messages sont les suivants : Plus de détails...
 
int8_t iPhoneSetHookoffDelay (uint8_t ucDelay)
 Modification nombre de sonneries avant décrochage ligne téléphonique. Plus de détails...
 
uint8_t ucPhoneHookoffDelay (void)
 Nombre de sonneries avant décrochage ligne téléphonique.
 
uint8_t ucPhoneMsgLength (void)
 Nombre d'octets non lus dans la file de message.
 
void vPhoneHangup (void)
 Raccrocher ligne téléphonique.
 
void vPhoneHookoff (void)
 Décrocher ligne téléphonique.
 
void vPhoneInit (void)
 Init module phone.
 
bool xPhoneHangupRequest (void)
 Indique qu'une demande de raccrocher est en cours (délai d'inactivité)
 
bool xPhoneOffHook (void)
 Indique si la ligne est décrochée.
 

Documentation des fonctions

char cPhoneMsgGetChar ( void  )

Lecture d'un octet dans la file de message Les événements générer dans la file de messages sont les suivants :

  • Message H - longueur 1 octet (H) Demande de décrochage ligne si le nombre de sonneries dépasse PHONE_HOOKOFF_DELAY.
  • Message G - longueur 1 octet (G) Demande de racrochage ligne si aucune touche n'est détectée pendant PHONE_HANGUP_DELAY.
  • Message R - longueur 2 octets (Rx) Début d'une sonnerie avec son numéro d'ordre en hexa x.
  • Message K - longueur 2 octets (Ka) Appui sur une touche du téléphone avec son code ASCII a.
  • Message F - longueur 1 octets (F) Mode décrochage rapide validé suite à une sonnerie puis une attente de 10 secondes .
  • Message f - longueur 1 octets (f) Mode décrochage rapide dévalidé 1 minute après sa validation si pas d'appel.
int8_t iPhoneSetHookoffDelay ( uint8_t  ucDelay)

Modification nombre de sonneries avant décrochage ligne téléphonique.

Renvoie
0 succès, -1 erreur.