📄 dc550_phonesm_infoonetouch.c
字号:
/*****************************************************************************/
/* CONFIDENTIAL */
/* Sigpro Copyright 2003, All rights reserved */
/*****************************************************************************/
/* CLIENT: Telematrix */
/* PROJECT: DC550 Digital Centrex Phone */
/* FILE: dc550_phonesm_infoonetouch.c */
/*****************************************************************************/
/* */
/*****************************************************************************/
#define __DC550_PHONESM_INFOONETOUCH_EXTERN__
#include "dc550_phonesm_infoonetouch.h"
#include "dc550_i2cdriver.h"
/******************************************************************************
* GLOBAL VARIABLES
*****************************************************************************/
BOOL phonesm_infoonetouch_enabled;
char phonesm_infoonetouch_pin[PHONENUMBER_ARRAY_SIZE];
DC550TimeUnit phonesm_infoonetouch_waitseconds_bcd;
DC550LEDState phonesm_infoonetouch_ledstate;
/******************************************************************************
* FUNCTION: void phonesm_infoonetouch_init(void)
******************************************************************************
* DESCRIPTION:
* This function is called to initialize the settings variables.
*****************************************************************************/
void phonesm_infoonetouch_init(void) {
// Declare function variables
int i;
char tempWaitSeconds;
if(eeprom_GetVersion() == EEPROM_VERSION_CURRENT) {
eeprom_ReadByte(EEPROM_ADDRESS_ONETOUCH, &phonesm_infoonetouch_enabled);
eeprom_ReadArray(EEPROM_ADDRESS_PIN, phonesm_infoonetouch_pin,
PHONENUMBER_ARRAY_SIZE);
eeprom_ReadByte(EEPROM_ADDRESS_WAITSECONDS, &tempWaitSeconds);
phonesm_infoonetouch_waitseconds_bcd = tempWaitSeconds;
}
else {
phonesm_infoonetouch_enabled = FALSE;
phonesm_infoonetouch_pin[0] = 0;
phonesm_infoonetouch_waitseconds_bcd = 0;
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteByte(EEPROM_ADDRESS_ONETOUCH, phonesm_infoonetouch_enabled);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteArray(EEPROM_ADDRESS_PIN, phonesm_infoonetouch_pin,
PHONENUMBER_ARRAY_SIZE);
for(i = 0; i < 4000; i++); // Wait 4ms (a write takes over 3ms)
eeprom_WriteByte(EEPROM_ADDRESS_WAITSECONDS,
(char)(phonesm_infoonetouch_waitseconds_bcd & 0xFF));
}
phonesm_infoonetouch_ledstate = LED_STATE_OFF;
}
/******************************************************************************
* FUNCTION: BOOL phonesm_infoonetouch_getenabled(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
BOOL phonesm_infoonetouch_getenabled(void) {
return phonesm_infoonetouch_enabled;
}
/******************************************************************************
* FUNCTION: void phonesm_infoonetouch_setenabled(BOOL enabled)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infoonetouch_setenabled(BOOL enabled) {
phonesm_infoonetouch_enabled = enabled;
eeprom_SetSetting(EEPROM_ADDRESS_ONETOUCH, enabled);
}
/******************************************************************************
* FUNCTION: void phonesm_infoonetouch_getpin(char* pinbuffer)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infoonetouch_getpin(char* pinbuffer) {
// Declare local variables
int i;
// Copy phonesm_infoonetouch_pin into pinbuffer
for(i = 0; phonesm_infoonetouch_pin[i] != 0; i++)
pinbuffer[i] = phonesm_infoonetouch_pin[i];
// Null terminate pinbuffer
pinbuffer[i] = 0;
}
/******************************************************************************
* FUNCTION: void phonesm_infoonetouch_setpin(char* pin)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infoonetouch_setpin(char* pin) {
// Declare local variables
int i;
// Copy pin parameter to phonesm_infoonetouch_pin location
for(i = 0; (pin[i]!=0) && (i<PHONENUMBER_MAX_LENGTH); i++)
phonesm_infoonetouch_pin[i] = pin[i];
// Null Terminate PIN Number String
phonesm_infoonetouch_pin[i] = 0;
// Write PIN Number String to EEPROM
eeprom_SetNumber(EEPROM_ADDRESS_PIN, phonesm_infoonetouch_pin,
PHONENUMBER_ARRAY_SIZE);
}
/******************************************************************************
* FUNCTION: DC550TimeUnit phonesm_infoonetouch_getwaitseconds_bcd(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
DC550TimeUnit phonesm_infoonetouch_getwaitseconds_bcd(void) {
return phonesm_infoonetouch_waitseconds_bcd;
}
/******************************************************************************
* FUNCTION: DC550TimeUnit phonesm_infoonetouch_getwaitseconds_int(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
DC550TimeUnit phonesm_infoonetouch_getwaitseconds_int(void) {
return ( (10 * (phonesm_infoonetouch_waitseconds_bcd >> 4)) +
(phonesm_infoonetouch_waitseconds_bcd & 0x0f) );
}
/******************************************************************************
* FUNCTION: void
* phonesm_infoonetouch_setwaitseconds_bcd(DC550TimeUnit seconds)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infoonetouch_setwaitseconds_bcd(DC550TimeUnit seconds) {
phonesm_infoonetouch_waitseconds_bcd = seconds;
eeprom_SetSetting(EEPROM_ADDRESS_WAITSECONDS, (char)(seconds & 0xFF));
}
/******************************************************************************
* FUNCTION: DC550LEDState phonesm_infoonetouch_getledstate(void)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
DC550LEDState phonesm_infoonetouch_getledstate(void) {
return phonesm_infoonetouch_ledstate;
}
/******************************************************************************
* FUNCTION: void phonesm_infoonetouch_setledstate(DC550LEDState state)
******************************************************************************
* DESCRIPTION:
*
*****************************************************************************/
void phonesm_infoonetouch_setledstate(DC550LEDState state) {
phonesm_infoonetouch_ledstate = state;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -