📄 dc550_phonesm_infonumbers.c
字号:
/*****************************************************************************/
/* CONFIDENTIAL */
/* Sigpro Copyright 2003, All rights reserved */
/*****************************************************************************/
/* CLIENT: Telematrix */
/* PROJECT: DC550 Digital Centrex Phone */
/* FILE: dc550_phonesm_infonumbers.c */
/*****************************************************************************/
/* */
/*****************************************************************************/
#define __DC550_PHONESM_INFONUMBERS_EXTERN__
#include "dc550_phonesm_infolanguage.h"
#include "dc550_i2cdriver.h"
/******************************************************************************
* GLOBAL VARIABLES
*****************************************************************************/
char phonesm_infonumbers_memorynumbers[10][PHONENUMBER_ARRAY_SIZE];
char phonesm_infonumbers_storenumber[PHONENUMBER_ARRAY_SIZE];
char phonesm_infonumbers_predialnumber[PHONENUMBER_ARRAY_SIZE];
char phonesm_infonumbers_predialnumbersize;
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_init(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_init(void) {
// Declare function variables
int i;
if(eeprom_GetVersion() == EEPROM_VERSION_CURRENT) {
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_00,
phonesm_infonumbers_memorynumbers[0],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_01,
phonesm_infonumbers_memorynumbers[1],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_02,
phonesm_infonumbers_memorynumbers[2],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_03,
phonesm_infonumbers_memorynumbers[3],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_04,
phonesm_infonumbers_memorynumbers[4],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_05,
phonesm_infonumbers_memorynumbers[5],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_06,
phonesm_infonumbers_memorynumbers[6],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_07,
phonesm_infonumbers_memorynumbers[7],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_08,
phonesm_infonumbers_memorynumbers[8],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_MEMORYNUM_09,
phonesm_infonumbers_memorynumbers[9],
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadArray(EEPROM_ADDRESS_STORENUM,
phonesm_infonumbers_storenumber, PHONENUMBER_ARRAY_SIZE);
}
else {
phonesm_infonumbers_memorynumbers[0][0] = 0;
phonesm_infonumbers_memorynumbers[1][0] = 0;
phonesm_infonumbers_memorynumbers[2][0] = 0;
phonesm_infonumbers_memorynumbers[3][0] = 0;
phonesm_infonumbers_memorynumbers[4][0] = 0;
phonesm_infonumbers_memorynumbers[5][0] = 0;
phonesm_infonumbers_memorynumbers[6][0] = 0;
phonesm_infonumbers_memorynumbers[7][0] = 0;
phonesm_infonumbers_memorynumbers[8][0] = 0;
phonesm_infonumbers_memorynumbers[9][0] = 0;
phonesm_infonumbers_storenumber[0] = 0;
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_00,
phonesm_infonumbers_memorynumbers[0],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_01,
phonesm_infonumbers_memorynumbers[1],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_02,
phonesm_infonumbers_memorynumbers[2],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_03,
phonesm_infonumbers_memorynumbers[3],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_04,
phonesm_infonumbers_memorynumbers[4],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_05,
phonesm_infonumbers_memorynumbers[5],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_06,
phonesm_infonumbers_memorynumbers[6],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_07,
phonesm_infonumbers_memorynumbers[7],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_08,
phonesm_infonumbers_memorynumbers[8],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_MEMORYNUM_09,
phonesm_infonumbers_memorynumbers[9],
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_STORENUM,
phonesm_infonumbers_storenumber, PHONENUMBER_ARRAY_SIZE);
}
phonesm_infonumbers_predialnumbersize = 0;
}
/******************************************************************************
* FUNCTION:
* void phonesm_infonumbers_getmemorynumber(int index, char* numberbuffer)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_getmemorynumber(int index, char* numberbuffer) {
// Declare function variables
int i;
char* currentnumber = phonesm_infonumbers_memorynumbers[index];
// Copy memory dial number into numberbuffer
for(i = 0; currentnumber[i] != 0; i++)
numberbuffer[i] = currentnumber[i];
// Null terminate numberbuffer
numberbuffer[i] = 0;
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_setmemorynumber(int index, char* number)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_setmemorynumber(int index, char* number) {
// Declare function variables
int i;
char* currentnumber = phonesm_infonumbers_memorynumbers[index];
// Copy number paramater to memory dial number location
for(i = 0; (number[i]!=0) && (i<PHONENUMBER_MAX_LENGTH); i++)
currentnumber[i] = number[i];
// Null terminate the memory dial number location
currentnumber[i] = 0;
// Write the memory dial number to EEPROM
switch(index) {
case 0:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_00,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 1:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_01,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 2:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_02,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 3:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_03,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 4:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_04,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 5:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_05,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 6:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_06,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 7:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_07,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 8:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_08,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
case 9:
eeprom_SetNumber(EEPROM_ADDRESS_MEMORYNUM_09,
currentnumber, PHONENUMBER_ARRAY_SIZE);
break;
}
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_getstorenumber(char* numberbuffer)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_getstorenumber(char* numberbuffer) {
// Declare function variables
int i;
// Copy stored number into numberbuffer
for(i = 0; phonesm_infonumbers_storenumber[i] != 0; i++)
numberbuffer[i] = phonesm_infonumbers_storenumber[i];
// Null terminate numberbuffer
numberbuffer[i] = 0;
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_setstorenumber(char* number)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_setstorenumber(char* number) {
// Declare function variables
int i;
// Copy number parameter to stored number location
for(i = 0; (number[i]!=0) && (i<PHONENUMBER_MAX_LENGTH); i++)
phonesm_infonumbers_storenumber[i] = number[i];
// Null terminate the stored number location
phonesm_infonumbers_storenumber[i] = 0;
// Write the Store Number to EEPROM
eeprom_SetNumber(EEPROM_ADDRESS_STORENUM,
phonesm_infonumbers_storenumber, PHONENUMBER_ARRAY_SIZE);
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_getpredialnumber(char* numberbuffer)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_getpredialnumber(char* numberbuffer) {
// Declare function variables
int i;
// Copy predial number into numberbuffer
for(i = 0; i < phonesm_infonumbers_predialnumbersize; i++)
numberbuffer[i] = phonesm_infonumbers_predialnumber[i];
// Null terminate numberbuffer
numberbuffer[i] = 0;
}
/******************************************************************************
* FUNCTION: int phonesm_infonumbers_getpredialnumberofdigits(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
int phonesm_infonumbers_getpredialnumberofdigits(void) {
return phonesm_infonumbers_predialnumbersize;
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_setpredialnumber(char* number)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_setpredialnumber(char* number) {
// Declare function variables
int i;
// Copy number into predial number location
for(i = 0; (number[i]!=0) && (i<PHONENUMBER_MAX_LENGTH); i++)
phonesm_infonumbers_predialnumber[i] = number[i];
// Null terminate phone
phonesm_infonumbers_predialnumbersize = i;
phonesm_infonumbers_predialnumber[i] = 0;
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_setpredialnextdigit(char digit)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_setpredialnextdigit(char digit) {
// Check for overflow
if(phonesm_infonumbers_predialnumbersize < PHONENUMBER_MAX_LENGTH) {
// Copy the digit
phonesm_infonumbers_predialnumber[phonesm_infonumbers_predialnumbersize] =
digit;
// Increment the predial number size
phonesm_infonumbers_predialnumbersize++;
// Null terminate the predial number
phonesm_infonumbers_predialnumber[phonesm_infonumbers_predialnumbersize] =
0;
}
}
/******************************************************************************
* FUNCTION: void phonesm_infonumbers_clearpredialnumber(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infonumbers_clearpredialnumber(void) {
phonesm_infonumbers_predialnumbersize = 0;
phonesm_infonumbers_predialnumber[0] = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -