Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: roam_v2 finalV1 finalV1 finalv2 ... more
ARCH_GPRS_V2_HW.cpp
- Committer:
- labishrestha
- Date:
- 2014-12-02
- Revision:
- 0:d3d48514a2aa
File content as of revision 0:d3d48514a2aa:
/*
IOT_hw.cpp
2013 Copyright (c) Seeed Technology Inc. All right reserved.
Author:Loovee
2013-7-21
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "mbed.h"
#include "ARCH_GPRS_V2_HW.h"
#include "ARCH_GPRS_V2_HW_DFS.h"
DigitalOut sim900_pwr(PINPWR);
DigitalOut sim900_on(PINONOFF);
DigitalOut led1(PINLED1);
DigitalOut led2(PINLED2);
DigitalOut led3(PINLED3);
DigitalOut led4(PINLED4);
DigitalOut grove_pwr(GROVE_PWR);
DigitalIn charging(PIN_CHRGING);
DigitalIn chargdone(PIN_CHRGDONE);
Serial sim900uart(PINTX, PINRX, "SIM900");
AnalogIn vol_bat(PIN_READBAT);
void IOT_HW::SIM900_PWRON()
{
sim900_pwr = 0;
}
void IOT_HW::SIM900_PWROFF()
{
sim900_pwr = 1;
}
void IOT_HW::SIM900_ON()
{
sim900_on = 0;
wait(2);
sim900_on = 1;
}
int IOT_HW::init()
{
init_io();
SIM900_PWROFF();
wait(2); // wait 2s
SIM900_PWRON();
SIM900_PWRON();
SIM900_ON();
return 1;
}
void IOT_HW::init_io()
{
sim900_pwr = 1;
sim900_on = 1;
}
void IOT_HW::sendCommand(char * command)
{
sim900uart.printf(command);
}
void IOT_HW::hangup()
{
sim900uart.printf("ATH;");
}
//int IOT_HW::getSIM900_State()
//{
// sim900_state.input();
// sim900_state.mode(PullDown);
// if(sim900_state.read())
// {
// return 1;
// }
// return 0;
//}
void IOT_HW::SIM900StateLed(unsigned char state)
{
//sim900_state.output();
//sim900_state = 1-state;
}
void IOT_HW::userLed(unsigned char led, unsigned char state)
{
// if(state!=0 || state!=1)return;
if(1==led)led1 = state;
else if(2==led)led2 = state;
else if(3==led)led3 = state;
else if(4==led)led4 = state;
}
int IOT_HW::readChrgState()
{
if(!charging.read())return CHRGDONE;
if(!chargdone.read())return CHRGING;
return NOCHRG;
}
float IOT_HW::readBatVol()
{
unsigned int tmp = vol_bat.read_u16();
//return tmp;
float dr = tmp;
dr = dr/65536.0*3.3*2.0;
return dr;
// return ((float tmp)/65536.0*3.3*2.0);
}
void IOT_HW::grovePwrOn()
{
grove_pwr = 0;
}
void IOT_HW::grovePwrOff()
{
grove_pwr = 1;
}
IOT_HW iot_hw;
/*********************************************************************************************************
END FILE
*********************************************************************************************************/