comparison src/aci2/aci/ati_bas.c @ 346:550cfa9e1ca7

aci2: AT+CBC reimplemented in terms of FCHG API
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 15 Dec 2017 22:45:37 +0000
parents d2cbdbffc528
children 92dbfa906f66
comparison
equal deleted inserted replaced
345:3a7810ca74e2 346:550cfa9e1ca7
58 #include "aci_prs.h" 58 #include "aci_prs.h"
59 59
60 #include "ati_int.h" 60 #include "ati_int.h"
61 61
62 #ifndef _SIMULATION_ 62 #ifndef _SIMULATION_
63 #include "ffs\ffs.h" 63 #include "ffs/ffs.h"
64 #endif 64 #endif
65 65
66 #ifdef FF_ATI_BAT 66 #ifdef FF_ATI_BAT
67 67
68 #include "typedefs.h" 68 #include "typedefs.h"
75 75
76 #include "cl_imei.h" 76 #include "cl_imei.h"
77 #include "cmh_ss.h" 77 #include "cmh_ss.h"
78 78
79 #include "fc-target.cfg" 79 #include "fc-target.cfg"
80 #include "rv/rv_defined_swe.h" // for RVM_FCHG_SWE
81 #include "fchg/fchg_api.h"
80 82
81 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); 83 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef);
82 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); 84 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device );
83 LOCAL T_ATI_RSLT tesaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); 85 LOCAL T_ATI_RSLT tesaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device );
84 LOCAL T_ATI_RSLT queaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); 86 LOCAL T_ATI_RSLT queaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device );
1743 #define ACI_BCS_NoBatt 2 1745 #define ACI_BCS_NoBatt 2
1744 #define ACI_BCS_PowerFault 3 1746 #define ACI_BCS_PowerFault 3
1745 1747
1746 GLOBAL T_ATI_RSLT atPlusCBC ( char *cl, UBYTE srcId ) 1748 GLOBAL T_ATI_RSLT atPlusCBC ( char *cl, UBYTE srcId )
1747 { 1749 {
1748 pwr_Status_Type powerStat; 1750 struct fchg_user_state fchg;
1749 UBYTE bcs; 1751 UBYTE bcs;
1750 1752
1751 TRACE_FUNCTION("atPlusCBC()"); 1753 TRACE_FUNCTION("atPlusCBC()");
1752 1754
1753 if ( pwr_GetStatus ( &powerStat ) NEQ DRV_OK ) 1755 #ifdef RVM_FCHG_SWE
1754 { 1756 if (fchg_get_current_state(&fchg) == RV_OK)
1755 cmdCmeError ( CME_ERR_Unknown ); 1757 {
1756 return ATI_FAIL; 1758 switch (fchg.chg_state)
1757 }
1758 else
1759 {
1760 switch ( powerStat.Status )
1761 { 1759 {
1762 case ( PWR_EXTPOWER_ON ): 1760 case FCHG_STATE_CI_CHARGING:
1763 bcs = ACI_BCS_NoBatt; 1761 case FCHG_STATE_CV_CHARGING:
1764 break;
1765
1766 case ( PWR_CHARGER_ON ):
1767 bcs = ACI_BCS_BattCnctd; 1762 bcs = ACI_BCS_BattCnctd;
1768 break; 1763 break;
1769 1764
1770 default: 1765 default:
1771 bcs = ACI_BCS_BattPower; 1766 bcs = ACI_BCS_BattPower;
1772 break;
1773 } 1767 }
1774 sprintf(g_sa, "+CBC: %d,%d", bcs, powerStat.ChargeLevel ); 1768 }
1775 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT); 1769 else
1776 return ATI_CMPL; 1770 {
1777 } 1771 bcs = ACI_BCS_PowerFault;
1772 fchg.batt_percent = 0;
1773 }
1774 #else
1775 bcs = ACI_BCS_NoBatt;
1776 fchg.batt_percent = 0;
1777 #endif
1778
1779 sprintf(g_sa, "+CBC: %d,%d", bcs, fchg.batt_percent );
1780 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
1781 return ATI_CMPL;
1778 } 1782 }
1779 1783
1780 /* 1784 /*
1781 +--------------------------------------------------------------------+ 1785 +--------------------------------------------------------------------+
1782 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD | 1786 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |