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
NJE10XCtrl.h@0:3aa62049d1de, 2010-11-14 (annotated)
- Committer:
- rinosh2
- Date:
- Sun Nov 14 15:56:52 2010 +0000
- Revision:
- 0:3aa62049d1de
- Child:
- 1:fb1109a73ce9
Who changed what in which revision?
User | Revision | Line number | New 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 | }; |