summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-08-14 09:11:50 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-08-14 09:11:50 +0000
commit2fd3d8a00296f6e7af7d2cb30d38ef5ed8e34c9d (patch)
tree75adb0702169ce266616f73ed50cd3186f590bde
parentc990a6d6901cc88a727578ab95a85280ec9a710d (diff)
xpp: FXO: display signed voltage values (from xpp r6055)
This is only an issue with the displayed value. In case you wondered why you have battery voltage of more than 220V. Merged revisions 4484 via svnmerge from http://svn.digium.com/svn/zaptel/branches/1.2 git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@4485 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--kernel/xpp/card_fxo.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/xpp/card_fxo.c b/kernel/xpp/card_fxo.c
index 81906e2..68cf729 100644
--- a/kernel/xpp/card_fxo.c
+++ b/kernel/xpp/card_fxo.c
@@ -839,13 +839,14 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
struct FXO_priv_data *priv;
enum polarity_state pol;
int msec;
+ signed char volts = (signed char)data_low;
priv = xpd->priv;
BUG_ON(!priv);
- priv->battery_voltage[portno] = data_low;
+ priv->battery_voltage[portno] = volts;
if(xpd->ringing[portno])
goto ignore_reading; /* ring voltage create false alarms */
- if(abs((signed char)data_low) < BAT_THRESHOLD) {
+ if(abs(volts) < BAT_THRESHOLD) {
/*
* Check for battery voltage fluctuations
*/
@@ -855,7 +856,7 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
milliseconds = priv->nobattery_debounce[portno]++ *
poll_battery_interval;
if(milliseconds > BAT_DEBOUNCE) {
- LINE_DBG(SIGNAL, xpd, portno, "BATTERY OFF voltage=%d\n", data_low);
+ LINE_DBG(SIGNAL, xpd, portno, "BATTERY OFF voltage=%d\n", volts);
priv->battery[portno] = BATTERY_OFF;
if(SPAN_REGISTERED(xpd))
zap_report_battery(xpd, portno);
@@ -871,7 +872,7 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
} else {
priv->nobattery_debounce[portno] = 0;
if(priv->battery[portno] != BATTERY_ON) {
- LINE_DBG(SIGNAL, xpd, portno, "BATTERY ON voltage=%d\n", data_low);
+ LINE_DBG(SIGNAL, xpd, portno, "BATTERY ON voltage=%d\n", volts);
priv->battery[portno] = BATTERY_ON;
if(SPAN_REGISTERED(xpd))
zap_report_battery(xpd, portno);
@@ -893,9 +894,9 @@ static void update_battery_voltage(xpd_t *xpd, byte data_low, xportno_t portno)
/*
* Handle reverse polarity
*/
- if(data_low == 0)
+ if(volts == 0)
pol = POL_UNKNOWN;
- else if(IS_SET(data_low, 7))
+ else if(volts < 0)
pol = POL_NEGATIVE;
else
pol = POL_POSITIVE;