DisplayAppEsp32 library for GR-LYCHEE
DisplayAppEsp32.h@0:97710102abcb, 2017-07-04 (annotated)
- Committer:
- YuuichiAkagawa
- Date:
- Tue Jul 04 10:11:43 2017 +0000
- Revision:
- 0:97710102abcb
First release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YuuichiAkagawa | 0:97710102abcb | 1 | /**************************************************************************//** |
YuuichiAkagawa | 0:97710102abcb | 2 | * @file DisplayAppEsp32.h |
YuuichiAkagawa | 0:97710102abcb | 3 | * @brief DisplayApp API |
YuuichiAkagawa | 0:97710102abcb | 4 | ******************************************************************************/ |
YuuichiAkagawa | 0:97710102abcb | 5 | |
YuuichiAkagawa | 0:97710102abcb | 6 | #ifndef DISPLAY_APP_ESP32_H |
YuuichiAkagawa | 0:97710102abcb | 7 | #define DISPLAY_APP_ESP32_H |
YuuichiAkagawa | 0:97710102abcb | 8 | |
YuuichiAkagawa | 0:97710102abcb | 9 | #include "mbed.h" |
YuuichiAkagawa | 0:97710102abcb | 10 | |
YuuichiAkagawa | 0:97710102abcb | 11 | /** A class to communicate a DisplayAppEsp32 |
YuuichiAkagawa | 0:97710102abcb | 12 | * |
YuuichiAkagawa | 0:97710102abcb | 13 | */ |
YuuichiAkagawa | 0:97710102abcb | 14 | class DisplayAppEsp32 { |
YuuichiAkagawa | 0:97710102abcb | 15 | public: |
YuuichiAkagawa | 0:97710102abcb | 16 | /** Constructor: Initializes DisplayAppEsp32. |
YuuichiAkagawa | 0:97710102abcb | 17 | * |
YuuichiAkagawa | 0:97710102abcb | 18 | * @param tsk_pri Priority of the thread function. (default: osPriorityNormal). |
YuuichiAkagawa | 0:97710102abcb | 19 | * @param init_pri Priority of before the USB is connected. (default: osPriorityLow). |
YuuichiAkagawa | 0:97710102abcb | 20 | * @param stack_size stack size (in bytes) requirements for the thread function. (default: DEFAULT_STACK_SIZE). |
YuuichiAkagawa | 0:97710102abcb | 21 | */ |
YuuichiAkagawa | 0:97710102abcb | 22 | DisplayAppEsp32(osPriority tsk_pri = osPriorityNormal, uint32_t stack_size = DEFAULT_STACK_SIZE); |
YuuichiAkagawa | 0:97710102abcb | 23 | |
YuuichiAkagawa | 0:97710102abcb | 24 | /** Send JPEG data |
YuuichiAkagawa | 0:97710102abcb | 25 | * |
YuuichiAkagawa | 0:97710102abcb | 26 | * @param buf data buffer address |
YuuichiAkagawa | 0:97710102abcb | 27 | * @param size data size |
YuuichiAkagawa | 0:97710102abcb | 28 | * @return send data size |
YuuichiAkagawa | 0:97710102abcb | 29 | */ |
YuuichiAkagawa | 0:97710102abcb | 30 | int SendJpeg(uint8_t * buf, uint32_t size); |
YuuichiAkagawa | 0:97710102abcb | 31 | |
YuuichiAkagawa | 0:97710102abcb | 32 | private: |
YuuichiAkagawa | 0:97710102abcb | 33 | const static size_t BufferSize = 15360; |
YuuichiAkagawa | 0:97710102abcb | 34 | |
YuuichiAkagawa | 0:97710102abcb | 35 | bool bufmgr[2]; |
YuuichiAkagawa | 0:97710102abcb | 36 | uint8_t bufside; |
YuuichiAkagawa | 0:97710102abcb | 37 | uint8_t sendbuf[2][BufferSize]; |
YuuichiAkagawa | 0:97710102abcb | 38 | |
YuuichiAkagawa | 0:97710102abcb | 39 | typedef struct { |
YuuichiAkagawa | 0:97710102abcb | 40 | size_t size; |
YuuichiAkagawa | 0:97710102abcb | 41 | uint8_t side; |
YuuichiAkagawa | 0:97710102abcb | 42 | } esp32Msg_t; |
YuuichiAkagawa | 0:97710102abcb | 43 | |
YuuichiAkagawa | 0:97710102abcb | 44 | RawSerial esp32; |
YuuichiAkagawa | 0:97710102abcb | 45 | DigitalOut *esp32_en; |
YuuichiAkagawa | 0:97710102abcb | 46 | DigitalOut *esp32_io0; |
YuuichiAkagawa | 0:97710102abcb | 47 | MemoryPool<esp32Msg_t, 2> esp32Pool; |
YuuichiAkagawa | 0:97710102abcb | 48 | Queue<esp32Msg_t, 2> esp32Q; |
YuuichiAkagawa | 0:97710102abcb | 49 | Thread esp32Thread; |
YuuichiAkagawa | 0:97710102abcb | 50 | |
YuuichiAkagawa | 0:97710102abcb | 51 | void display_app_process(); |
YuuichiAkagawa | 0:97710102abcb | 52 | void SendHeader(uint32_t size); |
YuuichiAkagawa | 0:97710102abcb | 53 | void SendData(uint8_t * buf, uint32_t size); |
YuuichiAkagawa | 0:97710102abcb | 54 | }; |
YuuichiAkagawa | 0:97710102abcb | 55 | #endif |