Interplan IM920 library, 920MHz module

Dependents:   IM920_sample IM920_SDlog IM920_sample IM920_sample3 ... more

IM920 ライブラリ

データモード、低速、長距離 の設定で通信するライブラリです。

920MHz無線モジュール

http://www.interplan.co.jp/images/contents/solution/im920.png IM920 (インタープラン製)

  • mbedとモジュールとは、シリアル(TX,RX)、BUSY、RESET端子を接続します。
  • モジュールはあらかじめ、コマンドでノード番号などを設定しておきます。

NECの920MHz近距離無線モジュールもおすすめ

Committer:
idealtechlab
Date:
Fri Apr 24 03:59:13 2015 +0000
Revision:
5:2fd9b1725283
Parent:
4:ba939555ed35
fix buffer over run

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:d3ab05ed8142 1 #include "IM920.h"
okini3939 0:d3ab05ed8142 2
idealtechlab 4:ba939555ed35 3 int IM920::setNode (int node) {
idealtechlab 4:ba939555ed35 4 _state.node = node;
idealtechlab 4:ba939555ed35 5 return cmdSTNN(_state.node);
idealtechlab 4:ba939555ed35 6 }
idealtechlab 4:ba939555ed35 7
idealtechlab 4:ba939555ed35 8 int IM920::getNode () {
idealtechlab 4:ba939555ed35 9 cmdRDNN();
idealtechlab 4:ba939555ed35 10 return _state.node;
idealtechlab 4:ba939555ed35 11 }
idealtechlab 4:ba939555ed35 12
okini3939 0:d3ab05ed8142 13 int IM920::setCh (int ch) {
idealtechlab 4:ba939555ed35 14 if (ch < 1 || ch > 15) return -1;
okini3939 0:d3ab05ed8142 15 return cmdSTCH(ch);
okini3939 0:d3ab05ed8142 16 }
okini3939 0:d3ab05ed8142 17
idealtechlab 4:ba939555ed35 18 int IM920::setPower (int pwr) {
idealtechlab 4:ba939555ed35 19 if (pwr < 1 || pwr > 3) return -1;
idealtechlab 4:ba939555ed35 20 return cmdSTPO(pwr);
idealtechlab 4:ba939555ed35 21 }
idealtechlab 4:ba939555ed35 22
idealtechlab 4:ba939555ed35 23 int IM920::setSpeed (int spd) {
idealtechlab 4:ba939555ed35 24 if (spd < 1 || spd > 2) return -1;
idealtechlab 4:ba939555ed35 25 return cmdSTRT(spd);
idealtechlab 4:ba939555ed35 26 }
idealtechlab 4:ba939555ed35 27
okini3939 0:d3ab05ed8142 28 int IM920::getRssi () {
okini3939 0:d3ab05ed8142 29 cmdRDRS();
okini3939 0:d3ab05ed8142 30 return _state.rssi;
okini3939 0:d3ab05ed8142 31 }
okini3939 0:d3ab05ed8142 32
okini3939 0:d3ab05ed8142 33 int IM920::sleep () {
okini3939 0:d3ab05ed8142 34 if (_state.status != STAT_NONE) return -1;
okini3939 0:d3ab05ed8142 35
okini3939 0:d3ab05ed8142 36 _state.status = STAT_SLEEP;
okini3939 0:d3ab05ed8142 37 return cmdDSRX();
okini3939 0:d3ab05ed8142 38 }
okini3939 0:d3ab05ed8142 39
okini3939 0:d3ab05ed8142 40 int IM920::wakeup () {
okini3939 0:d3ab05ed8142 41 if (_state.status != STAT_SLEEP) return -1;
okini3939 0:d3ab05ed8142 42
okini3939 0:d3ab05ed8142 43 putUart('\r');
okini3939 0:d3ab05ed8142 44 putUart('\n');
okini3939 0:d3ab05ed8142 45 return cmdENRX();
okini3939 0:d3ab05ed8142 46 }
okini3939 0:d3ab05ed8142 47
idealtechlab 4:ba939555ed35 48 int IM920::test () {
idealtechlab 4:ba939555ed35 49 return cmdEGRX();
idealtechlab 4:ba939555ed35 50 }
idealtechlab 4:ba939555ed35 51
okini3939 0:d3ab05ed8142 52
okini3939 0:d3ab05ed8142 53 int IM920::x2i (char c) {
okini3939 0:d3ab05ed8142 54 if (c >= '0' && c <= '9') {
okini3939 0:d3ab05ed8142 55 return c - '0';
okini3939 0:d3ab05ed8142 56 } else
okini3939 0:d3ab05ed8142 57 if (c >= 'A' && c <= 'F') {
okini3939 0:d3ab05ed8142 58 return c - 'A' + 10;
okini3939 0:d3ab05ed8142 59 } else
okini3939 0:d3ab05ed8142 60 if (c >= 'a' && c <= 'f') {
okini3939 0:d3ab05ed8142 61 return c - 'a' + 10;
okini3939 0:d3ab05ed8142 62 }
okini3939 0:d3ab05ed8142 63 return 0;
okini3939 0:d3ab05ed8142 64 }
okini3939 0:d3ab05ed8142 65
okini3939 0:d3ab05ed8142 66 char IM920::i2x (int i) {
okini3939 0:d3ab05ed8142 67 if (i >= 0 && i <= 9) {
okini3939 0:d3ab05ed8142 68 return i + '0';
okini3939 0:d3ab05ed8142 69 } else
okini3939 0:d3ab05ed8142 70 if (i >= 10 && i <= 15) {
okini3939 0:d3ab05ed8142 71 return i - 10 + 'A';
okini3939 0:d3ab05ed8142 72 }
okini3939 0:d3ab05ed8142 73 return 0;
okini3939 0:d3ab05ed8142 74 }