effectivement c'est sur l'autocom ETD 500
voici la structure d'un programme qui gere un abonné. accrochez vous bien.........
#include "structures_donnees.h"
#include "Cpu_reg.h"
#include "proslic.h"
#include "etd500.h"
#include <stdio.h>
#include <string.h>
#include "abonne.h"
extern chipStruct chip[4];
Abonne TabAbonne[] ={
{"SD","10",0,NULL},
{"BB","20",1,NULL},
{"RJL","30",2,NULL},
{"DW","40",3,NULL}
};
int GestionAbonne(int n_equip) //gere l'etat de l'abonne
{
int result=0;
int i,nb;
int etat;
int a_mcm;
nb=sizeof(TabAbonne)/sizeof(Abonne);
for(i=0;i<nb;i++)
{
if (0==strcmp(chip[n_equip].DTMF_digits,TabAbonne[i].numero))
{
etat=chip[TabAbonne[i].n_equipement].state;
if (etat==ONHOOK)
{
a_mcm=RechercheMcm();
if (a_mcm!=0)
{
chip[n_equip].vt_distant=a_mcm;
chip[i].vt_distant=LitVt(n_equip);
SetEtatMcm(a_mcm,1);
EcritVt(i,a_mcm);
EnableVt(i,1);
setState(i,CALLERiD);
result=1;
}
}
break;
}
}
return result;
}
void DeconnectPCM(int adr) //deconnecte l'equipement ayant le numero de vt
{
int i;
for(i=0;i<4;i++)
{
if (adr==LitVt(i))
{
EcritVt(i,0);
EnableVt(i,0);
setState(LOOPtRANSITION);
break;
}
}
}
void connectRcx(int n_chip,int mode) //connecte ou deconnecte un equipement sur le RCX
{
int i;
int n_vt1,n_vt2;
n_vt1=LitVt(n_chip);
n_vt2=chip[n_chip].vt_distant;
gotoxy(1,35);
printf("mode=%d, vt1=%d, vt2=%d\n",mode,n_vt1,n_vt2);
if (mode==1) //connecte
{
E_Mcm(n_vt1,n_vt2); //liaison de la vt1 vers la vt2
E_Mcm(n_vt2,n_vt1); //liaison de la vt2 vers la vt1
}
else
{
E_Mcm(n_vt1,1);
E_Mcm(n_vt2,1);
}
}
|