mbed-os/features/netsocket/cellular/generic_modem_driver/OnboardCellularInterface.h

74 lines
2.6 KiB
C++

/* Copyright (c) 2017 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ONBOARD_CELLULAR_INTERFACE_
#define ONBOARD_CELLULAR_INTERFACE_
#if MODEM_ON_BOARD && MODEM_ON_BOARD_UART && NSAPI_PPP_AVAILABLE
#include "UARTCellularInterface.h"
/** OnboardCellularInterface class
*
* This interface serves as the controller/driver for an
* onboard modem implementing onboard_modem_api.h.
*
* Depending on the type of on-board modem, OnboardCellularInterface
* could be derived from different implementation classes.
* Portable applications should only rely on it being a CellularBase.
*/
class OnboardCellularInterface : public UARTCellularInterface {
public:
OnboardCellularInterface(bool debug = false);
virtual ~OnboardCellularInterface();
protected:
/** Sets the modem up for powering on
*
* modem_init() is equivalent to plugging in the device, e.g., attaching power and serial port.
* Uses onboard_modem_api.h where the implementation of onboard_modem_api is provided by the target.
*/
virtual void modem_init();
/** Sets the modem in unplugged state
*
* modem_deinit() will be equivalent to pulling the plug off of the device, i.e., detaching power
* and serial port. This puts the modem in lowest power state.
* Uses onboard_modem_api.h where the implementation of onboard_modem_api is provided by the target.
*/
virtual void modem_deinit();
/** Powers up the modem
*
* modem_power_up() is equivalent to pressing the soft power button.
* The driver may repeat this if the modem is not responsive to AT commands.
* Uses onboard_modem_api.h where the implementation of onboard_modem_api is provided by the target.
*/
virtual void modem_power_up();
/** Powers down the modem
*
* modem_power_down() is equivalent to turning off the modem by button press.
* Uses onboard_modem_api.h where the implementation of onboard_modem_api is provided by the target.
*/
virtual void modem_power_down();
};
#endif //MODEM_ON_BOARD && MODEM_ON_BOARD_UART && NSAPI_PPP_AVAILABLE
#endif //ONBOARD_CELLULAR_INTERFACE_