This library is for the control of NJE-105/106. (which is the digital signage device made by Nagano Japan Radio Co., Ltd.)

Dependents:   NJE10XCtrlSample TrainInfoSample

Committer:
rinosh2
Date:
Sun Nov 14 15:56:52 2010 +0000
Revision:
0:3aa62049d1de
Child:
1:fb1109a73ce9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rinosh2 0:3aa62049d1de 1 #include "mbed.h"
rinosh2 0:3aa62049d1de 2
rinosh2 0:3aa62049d1de 3 ////////////////////////////////////////////////////////////////////////////////
rinosh2 0:3aa62049d1de 4 // NJE10XCtrl Lib
rinosh2 0:3aa62049d1de 5
rinosh2 0:3aa62049d1de 6 class NJE10XCtrl {
rinosh2 0:3aa62049d1de 7 // defines /////////////////////////////////////////////////////////////////
rinosh2 0:3aa62049d1de 8 public:
rinosh2 0:3aa62049d1de 9 // Attributes
rinosh2 0:3aa62049d1de 10 typedef enum {
rinosh2 0:3aa62049d1de 11 ATTR_GREEN,
rinosh2 0:3aa62049d1de 12 ATTR_RED,
rinosh2 0:3aa62049d1de 13 ATTR_YELLOW,
rinosh2 0:3aa62049d1de 14 } Attr1;
rinosh2 0:3aa62049d1de 15
rinosh2 0:3aa62049d1de 16 typedef enum {
rinosh2 0:3aa62049d1de 17 ATTR_SCROLL,
rinosh2 0:3aa62049d1de 18 ATTR_SCROLL_R,
rinosh2 0:3aa62049d1de 19 ATTR_STOP,
rinosh2 0:3aa62049d1de 20 ATTR_FIX,
rinosh2 0:3aa62049d1de 21 } Attr2;
rinosh2 0:3aa62049d1de 22
rinosh2 0:3aa62049d1de 23 typedef enum {
rinosh2 0:3aa62049d1de 24 ATTR_NORMAL,
rinosh2 0:3aa62049d1de 25 ATTR_BLINK,
rinosh2 0:3aa62049d1de 26 ATTR_REVERSE,
rinosh2 0:3aa62049d1de 27 ATTR_BLINK_REVERSE,
rinosh2 0:3aa62049d1de 28 } Attr3;
rinosh2 0:3aa62049d1de 29
rinosh2 0:3aa62049d1de 30 // NJE command parameter
rinosh2 0:3aa62049d1de 31 typedef enum {
rinosh2 0:3aa62049d1de 32 OP_NORMAL,
rinosh2 0:3aa62049d1de 33 OP_AUTO,
rinosh2 0:3aa62049d1de 34 OP_POWERSAVE,
rinosh2 0:3aa62049d1de 35 } OpMode;
rinosh2 0:3aa62049d1de 36
rinosh2 0:3aa62049d1de 37 typedef enum {
rinosh2 0:3aa62049d1de 38 FREEMODE_ON,
rinosh2 0:3aa62049d1de 39 FREEMODE_OFF,
rinosh2 0:3aa62049d1de 40 } FreeMode;
rinosh2 0:3aa62049d1de 41
rinosh2 0:3aa62049d1de 42 typedef enum {
rinosh2 0:3aa62049d1de 43 SCROLL_SLOW,
rinosh2 0:3aa62049d1de 44 SCROLL_MIDDLE,
rinosh2 0:3aa62049d1de 45 SCROLL_FAST,
rinosh2 0:3aa62049d1de 46 } ScrollSpeed;
rinosh2 0:3aa62049d1de 47
rinosh2 0:3aa62049d1de 48 typedef enum {
rinosh2 0:3aa62049d1de 49 BLINK_OFF,
rinosh2 0:3aa62049d1de 50 BLINK_SLOW,
rinosh2 0:3aa62049d1de 51 BLINK_MIDDLE,
rinosh2 0:3aa62049d1de 52 BLINK_FAST,
rinosh2 0:3aa62049d1de 53 } BlinkSpeed;
rinosh2 0:3aa62049d1de 54
rinosh2 0:3aa62049d1de 55 // error code
rinosh2 0:3aa62049d1de 56 typedef enum {
rinosh2 0:3aa62049d1de 57 S_OK,
rinosh2 0:3aa62049d1de 58 S_WRITE_FAILED,
rinosh2 0:3aa62049d1de 59 S_BUFFER_OVERFLOW,
rinosh2 0:3aa62049d1de 60 S_INVALID_ID,
rinosh2 0:3aa62049d1de 61 S_INVALID_PARAM,
rinosh2 0:3aa62049d1de 62
rinosh2 0:3aa62049d1de 63 S_NOT_SUPPORT, // not yet...
rinosh2 0:3aa62049d1de 64 } Status;
rinosh2 0:3aa62049d1de 65
rinosh2 0:3aa62049d1de 66 private:
rinosh2 0:3aa62049d1de 67 static const int MAX_DATA_BUF = 128;
rinosh2 0:3aa62049d1de 68
rinosh2 0:3aa62049d1de 69 Serial m_port;
rinosh2 0:3aa62049d1de 70 char m_buf[MAX_DATA_BUF + 1];
rinosh2 0:3aa62049d1de 71 int m_size;
rinosh2 0:3aa62049d1de 72
rinosh2 0:3aa62049d1de 73
rinosh2 0:3aa62049d1de 74 // internal funcs
rinosh2 0:3aa62049d1de 75 Status sendCmd(const char* str);
rinosh2 0:3aa62049d1de 76 Status sendCmd(const char* str, int len);
rinosh2 0:3aa62049d1de 77
rinosh2 0:3aa62049d1de 78 public:
rinosh2 0:3aa62049d1de 79 NJE10XCtrl(PinName tx_pin = p9, PinName rx_pin = p10);
rinosh2 0:3aa62049d1de 80 ~NJE10XCtrl();
rinosh2 0:3aa62049d1de 81
rinosh2 0:3aa62049d1de 82 // Append Str/Attr to the internal buffer //////////////////////////////////
rinosh2 0:3aa62049d1de 83 Status add(char ch); // append char to the internal buffer
rinosh2 0:3aa62049d1de 84 Status add(const char* str); // append string to the internal buffer
rinosh2 0:3aa62049d1de 85 Status addAttr(Attr1 a1 = ATTR_GREEN, Attr2 a2 = ATTR_SCROLL, Attr3 a3 = ATTR_NORMAL);
rinosh2 0:3aa62049d1de 86 Status clear(); // clear internal buffer
rinosh2 0:3aa62049d1de 87 int size() const { return m_size; }
rinosh2 0:3aa62049d1de 88 int left() const { return MAX_DATA_BUF - m_size; }
rinosh2 0:3aa62049d1de 89
rinosh2 0:3aa62049d1de 90 // Set/Del Normal message (01-99) //////////////////////////////////////////
rinosh2 0:3aa62049d1de 91 Status setMessage(int id, const char* msg = 0, // use internal buffer if msg is NULL
rinosh2 0:3aa62049d1de 92 Attr1 a1 = ATTR_GREEN, Attr2 a2 = ATTR_SCROLL, Attr3 a3 = ATTR_NORMAL);
rinosh2 0:3aa62049d1de 93 Status delMessage(int id); // del message (1 to 99)
rinosh2 0:3aa62049d1de 94 Status setTitle(const char* msg = 0); // use internal buffer if msg is NULL
rinosh2 0:3aa62049d1de 95 Status delTitle(); // del message title
rinosh2 0:3aa62049d1de 96
rinosh2 0:3aa62049d1de 97 // Add/Clear free message (Max 20) /////////////////////////////////////////
rinosh2 0:3aa62049d1de 98 Status addFreeMessage(const char* msg = 0); // use internal buffer if msg is NULL
rinosh2 0:3aa62049d1de 99 Status clearFreeMessage(); // clear all free message
rinosh2 0:3aa62049d1de 100 Status addFreeCredit(const char* msg = 0); // use internal buffer if msg is NULL
rinosh2 0:3aa62049d1de 101 Status clearFreeCredit(); // clear all free credit
rinosh2 0:3aa62049d1de 102
rinosh2 0:3aa62049d1de 103 // NJE control commands ////////////////////////////////////////////////////
rinosh2 0:3aa62049d1de 104 Status reset();
rinosh2 0:3aa62049d1de 105
rinosh2 0:3aa62049d1de 106 // NJE show status /////////////////////////////////////////////////////////
rinosh2 0:3aa62049d1de 107 Status showTime();
rinosh2 0:3aa62049d1de 108 Status showContactCredit();
rinosh2 0:3aa62049d1de 109 Status showNewsCredit();
rinosh2 0:3aa62049d1de 110 Status showFreeCredit();
rinosh2 0:3aa62049d1de 111
rinosh2 0:3aa62049d1de 112 // NJES commands ///////////////////////////////////////////////////////////
rinosh2 0:3aa62049d1de 113 Status setOpMode(OpMode mode = OP_NORMAL);
rinosh2 0:3aa62049d1de 114 Status setFreeMode(FreeMode mode = FREEMODE_ON);
rinosh2 0:3aa62049d1de 115 Status setScrollSpeed(ScrollSpeed speed = SCROLL_MIDDLE);
rinosh2 0:3aa62049d1de 116 Status setBlinkSpeed(BlinkSpeed speed = BLINK_FAST);
rinosh2 0:3aa62049d1de 117 Status setStopTime(int sec = 5);
rinosh2 0:3aa62049d1de 118 };