DisplayAppEsp32 library for GR-LYCHEE

Committer:
YuuichiAkagawa
Date:
Tue Jul 04 10:11:43 2017 +0000
Revision:
0:97710102abcb
First release

Who changed what in which revision?

UserRevisionLine numberNew 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