Integrating the ublox LISA C200 modem

Fork of SprintUSBModemHTTPClientTest by Donatien Garnier

Committer:
sam_grove
Date:
Thu Sep 26 00:44:20 2013 -0500
Revision:
5:3f93dd1d4cb3
Exported program and replaced contents of the repo with the source
to build and debug using keil mdk. Libs NOT upto date are lwip, lwip-sys
and socket. these have newer versions under mbed_official but were starting
from a know working point

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 5:3f93dd1d4cb3 1 /* mbed Microcontroller Library
sam_grove 5:3f93dd1d4cb3 2 * Copyright (c) 2006-2013 ARM Limited
sam_grove 5:3f93dd1d4cb3 3 *
sam_grove 5:3f93dd1d4cb3 4 * Licensed under the Apache License, Version 2.0 (the "License");
sam_grove 5:3f93dd1d4cb3 5 * you may not use this file except in compliance with the License.
sam_grove 5:3f93dd1d4cb3 6 * You may obtain a copy of the License at
sam_grove 5:3f93dd1d4cb3 7 *
sam_grove 5:3f93dd1d4cb3 8 * http://www.apache.org/licenses/LICENSE-2.0
sam_grove 5:3f93dd1d4cb3 9 *
sam_grove 5:3f93dd1d4cb3 10 * Unless required by applicable law or agreed to in writing, software
sam_grove 5:3f93dd1d4cb3 11 * distributed under the License is distributed on an "AS IS" BASIS,
sam_grove 5:3f93dd1d4cb3 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sam_grove 5:3f93dd1d4cb3 13 * See the License for the specific language governing permissions and
sam_grove 5:3f93dd1d4cb3 14 * limitations under the License.
sam_grove 5:3f93dd1d4cb3 15 */
sam_grove 5:3f93dd1d4cb3 16 #include "BusOut.h"
sam_grove 5:3f93dd1d4cb3 17
sam_grove 5:3f93dd1d4cb3 18 namespace mbed {
sam_grove 5:3f93dd1d4cb3 19
sam_grove 5:3f93dd1d4cb3 20 BusOut::BusOut(PinName p0, PinName p1, PinName p2, PinName p3, PinName p4, PinName p5, PinName p6, PinName p7, PinName p8, PinName p9, PinName p10, PinName p11, PinName p12, PinName p13, PinName p14, PinName p15) {
sam_grove 5:3f93dd1d4cb3 21 PinName pins[16] = {p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15};
sam_grove 5:3f93dd1d4cb3 22
sam_grove 5:3f93dd1d4cb3 23 for (int i=0; i<16; i++) {
sam_grove 5:3f93dd1d4cb3 24 _pin[i] = (pins[i] != NC) ? new DigitalOut(pins[i]) : 0;
sam_grove 5:3f93dd1d4cb3 25 }
sam_grove 5:3f93dd1d4cb3 26 }
sam_grove 5:3f93dd1d4cb3 27
sam_grove 5:3f93dd1d4cb3 28 BusOut::BusOut(PinName pins[16]) {
sam_grove 5:3f93dd1d4cb3 29 for (int i=0; i<16; i++) {
sam_grove 5:3f93dd1d4cb3 30 _pin[i] = (pins[i] != NC) ? new DigitalOut(pins[i]) : 0;
sam_grove 5:3f93dd1d4cb3 31 }
sam_grove 5:3f93dd1d4cb3 32 }
sam_grove 5:3f93dd1d4cb3 33
sam_grove 5:3f93dd1d4cb3 34 BusOut::~BusOut() {
sam_grove 5:3f93dd1d4cb3 35 for (int i=0; i<16; i++) {
sam_grove 5:3f93dd1d4cb3 36 if (_pin[i] != 0) {
sam_grove 5:3f93dd1d4cb3 37 delete _pin[i];
sam_grove 5:3f93dd1d4cb3 38 }
sam_grove 5:3f93dd1d4cb3 39 }
sam_grove 5:3f93dd1d4cb3 40 }
sam_grove 5:3f93dd1d4cb3 41
sam_grove 5:3f93dd1d4cb3 42 void BusOut::write(int value) {
sam_grove 5:3f93dd1d4cb3 43 for (int i=0; i<16; i++) {
sam_grove 5:3f93dd1d4cb3 44 if (_pin[i] != 0) {
sam_grove 5:3f93dd1d4cb3 45 _pin[i]->write((value >> i) & 1);
sam_grove 5:3f93dd1d4cb3 46 }
sam_grove 5:3f93dd1d4cb3 47 }
sam_grove 5:3f93dd1d4cb3 48 }
sam_grove 5:3f93dd1d4cb3 49
sam_grove 5:3f93dd1d4cb3 50 int BusOut::read() {
sam_grove 5:3f93dd1d4cb3 51 int v = 0;
sam_grove 5:3f93dd1d4cb3 52 for (int i=0; i<16; i++) {
sam_grove 5:3f93dd1d4cb3 53 if (_pin[i] != 0) {
sam_grove 5:3f93dd1d4cb3 54 v |= _pin[i]->read() << i;
sam_grove 5:3f93dd1d4cb3 55 }
sam_grove 5:3f93dd1d4cb3 56 }
sam_grove 5:3f93dd1d4cb3 57 return v;
sam_grove 5:3f93dd1d4cb3 58 }
sam_grove 5:3f93dd1d4cb3 59
sam_grove 5:3f93dd1d4cb3 60 #ifdef MBED_OPERATORS
sam_grove 5:3f93dd1d4cb3 61 BusOut& BusOut::operator= (int v) {
sam_grove 5:3f93dd1d4cb3 62 write(v);
sam_grove 5:3f93dd1d4cb3 63 return *this;
sam_grove 5:3f93dd1d4cb3 64 }
sam_grove 5:3f93dd1d4cb3 65
sam_grove 5:3f93dd1d4cb3 66 BusOut& BusOut::operator= (BusOut& rhs) {
sam_grove 5:3f93dd1d4cb3 67 write(rhs.read());
sam_grove 5:3f93dd1d4cb3 68 return *this;
sam_grove 5:3f93dd1d4cb3 69 }
sam_grove 5:3f93dd1d4cb3 70
sam_grove 5:3f93dd1d4cb3 71 BusOut::operator int() {
sam_grove 5:3f93dd1d4cb3 72 return read();
sam_grove 5:3f93dd1d4cb3 73 }
sam_grove 5:3f93dd1d4cb3 74 #endif
sam_grove 5:3f93dd1d4cb3 75
sam_grove 5:3f93dd1d4cb3 76 } // namespace mbed