Ответ:(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено REC 04 марта 2005 г. 19:57
В ответ на: погодь... дай весь тект плиз отправлено DASM 04 марта 2005 г. 19:49

#ifndef DATA_DASE_H
#define DATA_BASE_H
//#include "SpiMemIO.h"
#ifndef SPIMEMIO_H
#define PAGE_SIZE 264
#endif

#define ABONENT_PHONE_LENGTH 18
#define PASS_LENGTH 7
#define DEF_GROUP 0
#define DEF_TARIF 0
#define UNKNOWN_AB 0
#define MAX_NUM_LENGTH 18
#define EMPTY_RECORD 0xFF
#define TRACE_PREFIKS_LENGTH 8

typedef struct
{
union
{
unsigned char Flag;
struct
{
unsigned char
CallBack:1,//Âêë-âûêë CallBack
En8:1, //Âêë-âûêk íàáîðà "8" ïðè çâîíêå ÷åðåç FXO
Onlim:1, //Âêë-âûêë ðåæèìà Onlimited
Flag_Bit3:1,
Flag_Bit4:1,
Flag_Bit5:1,
Flag_Bit6:1,
Flag_Bit7:1;
};
};
unsigned long IdCod;
char PhoneIn[ABONENT_PHONE_LENGTH+1]; //Íîìåð äëÿ âõîäÿùèõ çâîíêîâ
char PhoneOut[ABONENT_PHONE_LENGTH+1];//Íîìåð äëÿ èñõîäÿùèõ çâîíêîâ
char Password[PASS_LENGTH+1]; //Ïàðîëü
union
{
unsigned char AllowedLineMask;
struct
{
unsigned char
MobToFxoAllowed:1, //Ðàçðåøåíèå äîñòóïà ñ Ìîá íà FXO
MobToFxsAllowed:1, //Ðàçðåøåíèå äîñòóïà ñ Ìîá íà FXS
MobToConfAllowed:1, //Ðàçðåøåíèå äîñòóïà ñ Ìîá íà Conf
FxoToMobAllowed:1, //Ðàçðåøåíèå äîñòóïà ñ FXO íà Mob
FxsToMobAllowed:1, //Ðàçðåøåíèå äîñòóïà ñ FXS íà Mob
AllowedLineMaskRes:1,
DefaultCanal:2; //Ðåæèìû âõîäÿùèõ çâîíêîâ ïîäêëþ÷åíèå ëèíèè ïî óìîë÷àíèþ
};
};
unsigned char Tarif; //Êîä òàðèôà
unsigned long Acount; //Ñ÷åò
unsigned char Group; //Ìàñêà ïðèíàäëåæíîñòè ê ãðóïïàì
unsigned char GroupMsk; //Ìàñêà ðàçðåøåííûõ ãðóïï
unsigned int OutLim; //Ëèìèò âðåìåíè íà èñõîäÿùèé çâîíîê
unsigned int InLim; //Ëèìèò âðåìåíè íà âõîäÿùèé çâîíîê
unsigned char CRC;
}TAbInfo;
/*Ôëàãè*/


/*Ìàñêè äîñòóïíûõ êàíàëîâ*/
#define CALL_TO_FXO_ALLOWED 1 //Çâîíêè ÷åðåç FXO ðàçðåøåíû
#define CALL_TO_FXS_ALLOWED 2 //Çâîíêè ÷åðåç FXS ðàçðåøåíû
#define CALL_TO_CONF_ALLOWED 4 //Çâîíêè ÷åðåç Êîíôåðåíöèþ ðàçðåøåíû
#define CALL_FROM_FXO_ALLOWED 8 //ïðèåì ñâîíêîâ ñ FXS ðàçðåøåí
#define CALL_FROM_FXS_ALLOWED 16 //ïðèåì ñâîíêîâ ñ FXS ðàçðåøåí
#define CALL_FROM_CONF_ALLOWED 32 //ïðèåì ñâîíêîâ ñ Êîíôåðåíöèè ðàçðåøåí


/*Ðåæèìû âõîäÿùèõ çâîíêîâ ïîäêëþ÷åíèå ëèíèè ïî óìîë÷àíèþ*/
#define MOB_CALL_NOT_ALLOWED 0 //Çâîíêè ÷åðåç ìîá òåëåôîí çàïðåùåíû
#define MOB_CALL_TO_FXO 1 //Ïî óìîë÷àíèþ íà FXO
#define MOB_CALL_TO_FXS 2 //By default to FXS
#define MOB_CALL_TO_CONF 3 //By default to FXS

#define ALL_GROUP_ENABLE 1 //Ìàñêà âñå ãðóïïû ðàçðåøåíû


typedef struct
{
unsigned char Flag;

unsigned long IdCod;
char Num[MAX_NUM_LENGTH];
unsigned char type_call;
unsigned long DateTime;
unsigned int Time;
unsigned char reserved[4];
unsigned long Cost;
}TCallInfo;


typedef struct
{
unsigned char Flag;
unsigned int TimeTarif;
unsigned int ConnectTarif;
unsigned char CRC;
}TSubTarif;


typedef struct
{
unsigned char Flag;
unsigned int MorningTime;
unsigned int BuisnessTime;
unsigned int EveningTime;
unsigned int NightTime;
unsigned char CRC;
}TTarif;

typedef struct
{
unsigned flag;
unsigned long num;
unsigned long code;
unsigned long cost;
unsigned char CRC;
}TUpdate;

typedef struct
{
unsigned char flag;
char mask[MAX_NUM_LENGTH+1];
unsigned char CRC;
}TBlackList;

typedef struct
{
unsigned int AbBaseIndex;
TAbInfo buffer;
}TAbBaseBuffer;

typedef struct
{
unsigned int CallInfoBaseIndex;
TCallInfo buffer;
}TCallInfoBaseBuffer;

typedef struct
{
unsigned int SubTarifBaseIndex;
TSubTarif buffer;
}TSubTarifBaseBuffer;

typedef struct
{
unsigned char TarifIndex;
TTarif buffer;
}TTarifBaseBuffer;

typedef struct
{
unsigned char flag;
char prefiks[TRACE_PREFIKS_LENGTH+1];
}TTrace;

/*Áàçà òàðèôû*/
#define TTARIF_SIZE SizeOf(TTarif)
#define TARIF_DB_FIRST_PAGE 0
#define TARIF_DB_SIZE 10
#define TARIF_DB_LAST_PAGE (TARIF_DB_BASE_PAGE+((TARIF_DB_SIZE*TTARIF_SIZE)/PAGE_SIZE))
/*
//Ñóáòàðèôû
#define SUBTARIF_DB_FIRST_PAGE (TARIF_DB_END_PAGE+1)
#define SUBTARIF_DB_BASE_SIZE (TARIF_DB_SIZE*96)
#define SUBTARIF_DB_LAST_PAGE (SUBTARIF_DB_BASE_PAGE+(SUBTARIF_DB_BASE_SIZE*sizeof(TSubTarif)/PAGE_SIZE))
//Àáîíåíòû
#define AB_DB_FIRST_PAGE (SUBTARIF_DB_END_PAGE+1)
#define AB_DB_SIZE 300
#define AB_DB_LAST_PAGE (AB_DB_BASE_PAGE+(AB_DB_SIZE*sizeof(TAbInfo)/PAGE_SIZE))

//Ïîïîëíåíèÿ
#define UPDATE_DB_FIRST_PAGE (AB_DB_END_PAGE+1)
#define UPDATE_DB_SIZE 300
#define UPDATE_DB_LAST_PAGE (UPDATE_DB_BASE_PAGE+(UPDATE_DB_SIZE*sizeof(TUpdate)/PAGE_SIZE))
//×åðíûé ëèñò
#define BLACKLIST_DB_FIRST_PAGE (UPDATE_DB_END_PAGE+1)
#define BLACKLIST_DB_SIZE 100
#define BLACKLIST_DB_LAST_PAGE (LACKLIST_DB_FIRST_PAGE+(BLACKLIST_DB_SIZE*sizeof(TBackList)/PAGE_SIZE))
//Ìàðøðóòèçàöèÿ
#define TRACE_DB_FIRSG_PAGE (BLACKLIST_DB_LAST_PAGE+1)
#define TRACE_DB_SIZE 1000
#define TRASE_DB_LAST_PAGE (TRACE_DB_FIRSG_PAGE+(TRACE_DB_SIZE*sizeof(TTrace)/PAGE_SIZE))
*/
#if TARIF_DB_LAST_PAGE>12
#error Ovr memory!!
#endif

#endif

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru