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.
Fork of C027Interface by
C027Interface.h@12:181a9415736b, 2016-04-15 (annotated)
- Committer:
- geky
- Date:
- Fri Apr 15 16:06:47 2016 +0000
- Revision:
- 12:181a9415736b
- Child:
- 14:3d1845f5cd81
Created C027Interface
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| geky | 12:181a9415736b | 1 | /* C027 implementation of NetworkInterfaceAPI |
| geky | 12:181a9415736b | 2 | * Copyright (c) 2015 ARM Limited |
| geky | 12:181a9415736b | 3 | * |
| geky | 12:181a9415736b | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| geky | 12:181a9415736b | 5 | * you may not use this file except in compliance with the License. |
| geky | 12:181a9415736b | 6 | * You may obtain a copy of the License at |
| geky | 12:181a9415736b | 7 | * |
| geky | 12:181a9415736b | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| geky | 12:181a9415736b | 9 | * |
| geky | 12:181a9415736b | 10 | * Unless required by applicable law or agreed to in writing, software |
| geky | 12:181a9415736b | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| geky | 12:181a9415736b | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| geky | 12:181a9415736b | 13 | * See the License for the specific language governing permissions and |
| geky | 12:181a9415736b | 14 | * limitations under the License. |
| geky | 12:181a9415736b | 15 | */ |
| geky | 12:181a9415736b | 16 | |
| geky | 12:181a9415736b | 17 | #ifndef C027_INTERFACE_H |
| geky | 12:181a9415736b | 18 | #define C027_INTERFACE_H |
| geky | 12:181a9415736b | 19 | |
| geky | 12:181a9415736b | 20 | #include "CellularInterface.h" |
| geky | 12:181a9415736b | 21 | #include "MDM.h" |
| geky | 12:181a9415736b | 22 | |
| geky | 12:181a9415736b | 23 | |
| geky | 12:181a9415736b | 24 | /** C027Interface class |
| geky | 12:181a9415736b | 25 | * Implementation of the NetworkInterface for C027 |
| geky | 12:181a9415736b | 26 | */ |
| geky | 12:181a9415736b | 27 | class C027Interface : public CellularInterface |
| geky | 12:181a9415736b | 28 | { |
| geky | 12:181a9415736b | 29 | public: |
| geky | 12:181a9415736b | 30 | // Lifetime of C027Interface |
| geky | 12:181a9415736b | 31 | C027Interface(const char *simpin=0, bool debug=false); |
| geky | 12:181a9415736b | 32 | |
| geky | 12:181a9415736b | 33 | // Implementation of CellularInterface |
| geky | 12:181a9415736b | 34 | virtual int32_t connect(const char *apn=0, const char *username=0, const char *password=0); |
| geky | 12:181a9415736b | 35 | virtual int32_t disconnect(); |
| geky | 12:181a9415736b | 36 | |
| geky | 12:181a9415736b | 37 | // Implementation of NetworkInterface |
| geky | 12:181a9415736b | 38 | virtual const char *getIPAddress(); |
| geky | 12:181a9415736b | 39 | virtual const char *getMACAddress(); |
| geky | 12:181a9415736b | 40 | |
| geky | 12:181a9415736b | 41 | virtual SocketInterface *createSocket(ns_protocol_t proto); |
| geky | 12:181a9415736b | 42 | virtual void destroySocket(SocketInterface *socket); |
| geky | 12:181a9415736b | 43 | |
| geky | 12:181a9415736b | 44 | private: |
| geky | 12:181a9415736b | 45 | // Modem object |
| geky | 12:181a9415736b | 46 | bool _debug; |
| geky | 12:181a9415736b | 47 | MDMSerial *_mdm; |
| geky | 12:181a9415736b | 48 | char _ip_address[NS_IP_SIZE]; |
| geky | 12:181a9415736b | 49 | char _mac_address[NS_MAC_SIZE]; |
| geky | 12:181a9415736b | 50 | char _pin[sizeof "1234"]; |
| geky | 12:181a9415736b | 51 | |
| geky | 12:181a9415736b | 52 | // Implementation of the TCP SocketInterface for C027 |
| geky | 12:181a9415736b | 53 | class C027Socket : public SocketInterface |
| geky | 12:181a9415736b | 54 | { |
| geky | 12:181a9415736b | 55 | public: |
| geky | 12:181a9415736b | 56 | |
| geky | 12:181a9415736b | 57 | C027Socket(MDMSerial *mdm, int socket, MDMParser::IpProtocol proto) |
| geky | 12:181a9415736b | 58 | : _mdm(mdm), _socket(socket), _proto(proto) {} |
| geky | 12:181a9415736b | 59 | MDMSerial *_mdm; |
| geky | 12:181a9415736b | 60 | int _socket; |
| geky | 12:181a9415736b | 61 | MDMParser::IpProtocol _proto; |
| geky | 12:181a9415736b | 62 | MDMParser::IP _ip; |
| geky | 12:181a9415736b | 63 | int _port; |
| geky | 12:181a9415736b | 64 | |
| geky | 12:181a9415736b | 65 | // Implementation of SocketInterface |
| geky | 12:181a9415736b | 66 | virtual int32_t open(const char *ip, uint16_t port); |
| geky | 12:181a9415736b | 67 | virtual int32_t close(); |
| geky | 12:181a9415736b | 68 | |
| geky | 12:181a9415736b | 69 | virtual int32_t send(const void *data, uint32_t size); |
| geky | 12:181a9415736b | 70 | virtual int32_t recv(void *data, uint32_t size); |
| geky | 12:181a9415736b | 71 | }; |
| geky | 12:181a9415736b | 72 | }; |
| geky | 12:181a9415736b | 73 | |
| geky | 12:181a9415736b | 74 | |
| geky | 12:181a9415736b | 75 | #endif |
