Mbed SDK for XRange SX1272 LoRa module

Dependents:   XRangePingPong XRange-LoRaWAN-lmic-app lora-transceiver

SX1272 LoRa RF module

https://www.netblocks.eu/xrange-sx1272-lora-datasheet/

Committer:
netblocks
Date:
Thu Jan 07 13:01:25 2016 +0000
Revision:
339:ac6f3fd999f3
Parent:
336:1e18a06a987b
HSE_VALUE set for XTAL 16Mhz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudmuck 336:1e18a06a987b 1 /* mbed Microcontroller Library
dudmuck 336:1e18a06a987b 2 * Copyright (c) 2006-2013 ARM Limited
dudmuck 336:1e18a06a987b 3 *
dudmuck 336:1e18a06a987b 4 * Licensed under the Apache License, Version 2.0 (the "License");
dudmuck 336:1e18a06a987b 5 * you may not use this file except in compliance with the License.
dudmuck 336:1e18a06a987b 6 * You may obtain a copy of the License at
dudmuck 336:1e18a06a987b 7 *
dudmuck 336:1e18a06a987b 8 * http://www.apache.org/licenses/LICENSE-2.0
dudmuck 336:1e18a06a987b 9 *
dudmuck 336:1e18a06a987b 10 * Unless required by applicable law or agreed to in writing, software
dudmuck 336:1e18a06a987b 11 * distributed under the License is distributed on an "AS IS" BASIS,
dudmuck 336:1e18a06a987b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dudmuck 336:1e18a06a987b 13 * See the License for the specific language governing permissions and
dudmuck 336:1e18a06a987b 14 * limitations under the License.
dudmuck 336:1e18a06a987b 15 */
dudmuck 336:1e18a06a987b 16 #include "Stream.h"
dudmuck 336:1e18a06a987b 17
dudmuck 336:1e18a06a987b 18 #include <cstdarg>
dudmuck 336:1e18a06a987b 19
dudmuck 336:1e18a06a987b 20 namespace mbed {
dudmuck 336:1e18a06a987b 21
dudmuck 336:1e18a06a987b 22 Stream::Stream(const char *name) : FileLike(name), _file(NULL) {
dudmuck 336:1e18a06a987b 23 /* open ourselves */
dudmuck 336:1e18a06a987b 24 char buf[12]; /* :0x12345678 + null byte */
dudmuck 336:1e18a06a987b 25 std::sprintf(buf, ":%p", this);
dudmuck 336:1e18a06a987b 26 _file = std::fopen(buf, "w+");
dudmuck 336:1e18a06a987b 27 mbed_set_unbuffered_stream(_file);
dudmuck 336:1e18a06a987b 28 }
dudmuck 336:1e18a06a987b 29
dudmuck 336:1e18a06a987b 30 Stream::~Stream() {
dudmuck 336:1e18a06a987b 31 fclose(_file);
dudmuck 336:1e18a06a987b 32 }
dudmuck 336:1e18a06a987b 33
dudmuck 336:1e18a06a987b 34 int Stream::putc(int c) {
dudmuck 336:1e18a06a987b 35 fflush(_file);
dudmuck 336:1e18a06a987b 36 return std::fputc(c, _file);
dudmuck 336:1e18a06a987b 37 }
dudmuck 336:1e18a06a987b 38 int Stream::puts(const char *s) {
dudmuck 336:1e18a06a987b 39 fflush(_file);
dudmuck 336:1e18a06a987b 40 return std::fputs(s, _file);
dudmuck 336:1e18a06a987b 41 }
dudmuck 336:1e18a06a987b 42 int Stream::getc() {
dudmuck 336:1e18a06a987b 43 fflush(_file);
dudmuck 336:1e18a06a987b 44 return mbed_getc(_file);
dudmuck 336:1e18a06a987b 45 }
dudmuck 336:1e18a06a987b 46 char* Stream::gets(char *s, int size) {
dudmuck 336:1e18a06a987b 47 fflush(_file);
dudmuck 336:1e18a06a987b 48 return mbed_gets(s,size,_file);
dudmuck 336:1e18a06a987b 49 }
dudmuck 336:1e18a06a987b 50
dudmuck 336:1e18a06a987b 51 int Stream::close() {
dudmuck 336:1e18a06a987b 52 return 0;
dudmuck 336:1e18a06a987b 53 }
dudmuck 336:1e18a06a987b 54
dudmuck 336:1e18a06a987b 55 ssize_t Stream::write(const void* buffer, size_t length) {
dudmuck 336:1e18a06a987b 56 const char* ptr = (const char*)buffer;
dudmuck 336:1e18a06a987b 57 const char* end = ptr + length;
dudmuck 336:1e18a06a987b 58 while (ptr != end) {
dudmuck 336:1e18a06a987b 59 if (_putc(*ptr++) == EOF) {
dudmuck 336:1e18a06a987b 60 break;
dudmuck 336:1e18a06a987b 61 }
dudmuck 336:1e18a06a987b 62 }
dudmuck 336:1e18a06a987b 63 return ptr - (const char*)buffer;
dudmuck 336:1e18a06a987b 64 }
dudmuck 336:1e18a06a987b 65
dudmuck 336:1e18a06a987b 66 ssize_t Stream::read(void* buffer, size_t length) {
dudmuck 336:1e18a06a987b 67 char* ptr = (char*)buffer;
dudmuck 336:1e18a06a987b 68 char* end = ptr + length;
dudmuck 336:1e18a06a987b 69 while (ptr != end) {
dudmuck 336:1e18a06a987b 70 int c = _getc();
dudmuck 336:1e18a06a987b 71 if (c==EOF) break;
dudmuck 336:1e18a06a987b 72 *ptr++ = c;
dudmuck 336:1e18a06a987b 73 }
dudmuck 336:1e18a06a987b 74 return ptr - (const char*)buffer;
dudmuck 336:1e18a06a987b 75 }
dudmuck 336:1e18a06a987b 76
dudmuck 336:1e18a06a987b 77 off_t Stream::lseek(off_t offset, int whence) {
dudmuck 336:1e18a06a987b 78 return 0;
dudmuck 336:1e18a06a987b 79 }
dudmuck 336:1e18a06a987b 80
dudmuck 336:1e18a06a987b 81 int Stream::isatty() {
dudmuck 336:1e18a06a987b 82 return 0;
dudmuck 336:1e18a06a987b 83 }
dudmuck 336:1e18a06a987b 84
dudmuck 336:1e18a06a987b 85 int Stream::fsync() {
dudmuck 336:1e18a06a987b 86 return 0;
dudmuck 336:1e18a06a987b 87 }
dudmuck 336:1e18a06a987b 88
dudmuck 336:1e18a06a987b 89 off_t Stream::flen() {
dudmuck 336:1e18a06a987b 90 return 0;
dudmuck 336:1e18a06a987b 91 }
dudmuck 336:1e18a06a987b 92
dudmuck 336:1e18a06a987b 93 int Stream::printf(const char* format, ...) {
dudmuck 336:1e18a06a987b 94 std::va_list arg;
dudmuck 336:1e18a06a987b 95 va_start(arg, format);
dudmuck 336:1e18a06a987b 96 fflush(_file);
dudmuck 336:1e18a06a987b 97 int r = vfprintf(_file, format, arg);
dudmuck 336:1e18a06a987b 98 va_end(arg);
dudmuck 336:1e18a06a987b 99 return r;
dudmuck 336:1e18a06a987b 100 }
dudmuck 336:1e18a06a987b 101
dudmuck 336:1e18a06a987b 102 int Stream::scanf(const char* format, ...) {
dudmuck 336:1e18a06a987b 103 std::va_list arg;
dudmuck 336:1e18a06a987b 104 va_start(arg, format);
dudmuck 336:1e18a06a987b 105 fflush(_file);
dudmuck 336:1e18a06a987b 106 int r = vfscanf(_file, format, arg);
dudmuck 336:1e18a06a987b 107 va_end(arg);
dudmuck 336:1e18a06a987b 108 return r;
dudmuck 336:1e18a06a987b 109 }
dudmuck 336:1e18a06a987b 110
dudmuck 336:1e18a06a987b 111 } // namespace mbed