C027Interface
Fork of C027Interface by
C027Interface.h
- Committer:
- geky
- Date:
- 2016-04-15
- Revision:
- 12:181a9415736b
- Child:
- 14:3d1845f5cd81
File content as of revision 12:181a9415736b:
/* C027 implementation of NetworkInterfaceAPI * Copyright (c) 2015 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 C027_INTERFACE_H #define C027_INTERFACE_H #include "CellularInterface.h" #include "MDM.h" /** C027Interface class * Implementation of the NetworkInterface for C027 */ class C027Interface : public CellularInterface { public: // Lifetime of C027Interface C027Interface(const char *simpin=0, bool debug=false); // Implementation of CellularInterface virtual int32_t connect(const char *apn=0, const char *username=0, const char *password=0); virtual int32_t disconnect(); // Implementation of NetworkInterface virtual const char *getIPAddress(); virtual const char *getMACAddress(); virtual SocketInterface *createSocket(ns_protocol_t proto); virtual void destroySocket(SocketInterface *socket); private: // Modem object bool _debug; MDMSerial *_mdm; char _ip_address[NS_IP_SIZE]; char _mac_address[NS_MAC_SIZE]; char _pin[sizeof "1234"]; // Implementation of the TCP SocketInterface for C027 class C027Socket : public SocketInterface { public: C027Socket(MDMSerial *mdm, int socket, MDMParser::IpProtocol proto) : _mdm(mdm), _socket(socket), _proto(proto) {} MDMSerial *_mdm; int _socket; MDMParser::IpProtocol _proto; MDMParser::IP _ip; int _port; // Implementation of SocketInterface virtual int32_t open(const char *ip, uint16_t port); virtual int32_t close(); virtual int32_t send(const void *data, uint32_t size); virtual int32_t recv(void *data, uint32_t size); }; }; #endif