API
For Arduino developers
NexTouch.h
Go to the documentation of this file.
1 
16 #ifndef __NEXTOUCH_H__
17 #define __NEXTOUCH_H__
18 #ifdef __cplusplus
19 #include <Arduino.h>
20 #include "NexSerialConfig.h"
21 
22 typedef uint8_t NexPid;
23 typedef uint8_t NexCid;
24 
25 typedef enum {
26  NEX_EVENT_POP = 0x00,
27  NEX_EVENT_PUSH = 0x01,
28  NEX_EVENT_NULL
29 } NexEventType;
30 
31 /*The first byte of Nextoin's return value*/
32 #define NEX_RET_CMD_FINISHED (0x01)
33 #define NEX_RET_EVENT_LAUNCHED (0x88)
34 #define NEX_RET_EVENT_UPGRADED (0x89)
35 #define NEX_RET_EVENT_TOUCH_HEAD (0x65)
36 #define NEX_RET_EVENT_POSITION_HEAD (0x67)
37 #define NEX_RET_EVENT_SLEEP_POSITION_HEAD (0x68)
38 #define NEX_RET_CURRENT_PAGE_ID_HEAD (0x66)
39 #define NEX_RET_STRING_HEAD (0x70)
40 #define NEX_RET_NUMBER_HEAD (0x71)
41 #define NEX_RET_INVALID_CMD (0x00)
42 #define NEX_RET_INVALID_COMPONENT_ID (0x02)
43 #define NEX_RET_INVALID_PAGE_ID (0x03)
44 #define NEX_RET_INVALID_PICTURE_ID (0x04)
45 #define NEX_RET_INVALID_FONT_ID (0x05)
46 #define NEX_RET_INVALID_BAUD (0x11)
47 #define NEX_RET_INVALID_VARIABLE (0x1A)
48 #define NEX_RET_INVALID_OPERATION (0x1B)
49 
50 
51 typedef void (*NexTouchEventCb)(void *ptr);
52 
57 class NexTouch
58 {
59 public: /* static methods */
60  static uint8_t mainEventLoop(NexTouch **list);
61  static void sendCommand(const char *cmd);
62  static bool recvRetCommandFinished(uint32_t timeout = 100);
63  static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout = 500);
64  static bool recvRetNumber(uint32_t *number, uint32_t timeout = 500);
65 
66 public: /* methods */
67  NexTouch(NexPid pid, NexCid cid, char *name,
68  NexTouchEventCb pop = NULL, void *pop_ptr = NULL,
69  NexTouchEventCb push = NULL, void *push_ptr = NULL);
70 
71  NexPid getPid(void);
72  NexCid getCid(void);
73  const char *getObjName(void);
74  void print(void);
75 
76 protected: /* static methods */
77  static bool setBrightness(uint32_t brightness);
78  static bool getBrightness(uint32_t *brightness);
79 
80 protected: /* methods */
81  void attachPush(NexTouchEventCb push, void *ptr = NULL);
82  void detachPush(void);
83  void attachPop(NexTouchEventCb pop, void *ptr = NULL);
84  void detachPop(void);
85 
86 private: /* static methods */
87  static void iterate(NexTouch **list, NexPid pid, NexCid cid, NexEventType event);
88 
89 private: /* methods */
90  void push(void);
91  void pop(void);
92 
93 private: /* static data */
94  static uint8_t __buffer[256];
95 
96 private: /* data */
97  NexPid pid; /* Page ID */
98  NexCid cid; /* Component ID */
99  char *name; /* An unique name */
100  NexTouchEventCb cbPush;
101  void *__cbpush_ptr;
102  NexTouchEventCb cbPop;
103  void *__cbpop_ptr;
104 };
105 
106 bool nexInit(void);
107 bool nexLoop(NexTouch **nex_listen_list);
108 bool sendCurrentPageId(uint8_t* pageId);
109 bool touchCalibration(void);
110 bool disableTouchFocus(void);
111 bool pauseSerialCommand(void);
112 bool recoverySerialCommand(void);
113 bool clearSerialSurplusCommand(void);
114 bool setCurrentBrightness(uint8_t dimValue);
115 bool setDefaultBrightness(uint8_t dimDefaultValue);
116 bool sleepMode(uint8_t mode);
117 bool setCurrentBaudrate(uint32_t baudrate);
118 bool setDefaultBaudrate(uint32_t baudrate);
119 
120 #endif /* #ifdef __cplusplus */
121 #endif /* #ifndef __NEXTOUCH_H__ */
bool setDefaultBaudrate(uint32_t baudrate)
Set default baudrate.
Definition: NexTouch.cpp:721
NexPid getPid(void)
Get page id.
Definition: NexTouch.cpp:87
bool sleepMode(uint8_t mode)
Set device in sleep mode.
Definition: NexTouch.cpp:652
NexTouch(NexPid pid, NexCid cid, char *name, NexTouchEventCb pop=NULL, void *pop_ptr=NULL, NexTouchEventCb push=NULL, void *push_ptr=NULL)
Constructor of Nextouch.
Definition: NexTouch.cpp:69
Serial configure.
bool setCurrentBaudrate(uint32_t baudrate)
Set current baudrate.
Definition: NexTouch.cpp:689
bool setDefaultBrightness(uint8_t dimDefaultValue)
Set default backlight brightness value.
Definition: NexTouch.cpp:618
bool nexInit(void)
Init Nextion's baudrate,page id.
Definition: NexTouch.cpp:404
static void sendCommand(const char *cmd)
Send command to Nextion.
Definition: NexTouch.cpp:256
const char * getObjName(void)
Get component name.
Definition: NexTouch.cpp:107
bool disableTouchFocus(void)
Disable all touch hot.
Definition: NexTouch.cpp:508
bool pauseSerialCommand(void)
Pause serial instruction execution.
Definition: NexTouch.cpp:532
void print(void)
Print current object address,page id,component id, component name,pop event function address...
Definition: NexTouch.cpp:117
static uint8_t mainEventLoop(NexTouch **list)
Watting for Nextion's touch event.
Definition: NexTouch.cpp:26
bool touchCalibration(void)
Touch screen calibration.
Definition: NexTouch.cpp:484
NexCid getCid(void)
Get component id.
Definition: NexTouch.cpp:97
bool setCurrentBrightness(uint8_t dimValue)
Set current backlight brightness value.
Definition: NexTouch.cpp:583
static bool recvRetNumber(uint32_t *number, uint32_t timeout=500)
Receive uint32_t data.
Definition: NexTouch.cpp:351
static uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout=500)
Receive string data.
Definition: NexTouch.cpp:279
bool recoverySerialCommand(void)
Recovery serial instruction execution.
Definition: NexTouch.cpp:557
bool sendCurrentPageId(uint8_t *pageId)
Return current page id.
Definition: NexTouch.cpp:434
static bool recvRetCommandFinished(uint32_t timeout=100)
Command is executed successfully.
Definition: NexTouch.cpp:219
bool nexLoop(NexTouch **nex_listen_list)
Call mainEventLoop,watting for Nextion's touch event.
Definition: NexTouch.cpp:420
Root Class of Nextion Components.
Definition: NexTouch.h:57