Test Buttons
This commit is contained in:
parent
2afa64b642
commit
8181727de0
@ -30,6 +30,7 @@ sudo ./configure && sudo make && sudo make check && sudo make install
|
|||||||
- python3
|
- python3
|
||||||
- python3-pip
|
- python3-pip
|
||||||
- gpiod
|
- gpiod
|
||||||
|
- i2c-tools
|
||||||
- libgpiod-dev
|
- libgpiod-dev
|
||||||
- libpng-dev
|
- libpng-dev
|
||||||
- libncurses-dev
|
- libncurses-dev
|
||||||
@ -39,6 +40,13 @@ sudo ./configure && sudo make && sudo make check && sudo make install
|
|||||||
|
|
||||||
Executable will be in the "c" directory
|
Executable will be in the "c" directory
|
||||||
If moving to an alternate directory, ensure the c/libs/libgo_p2fa.so is copied.<br><br>
|
If moving to an alternate directory, ensure the c/libs/libgo_p2fa.so is copied.<br><br>
|
||||||
|
To enable the i2c device, add the following to the bottom of /boot/firmware/config.txt<br>
|
||||||
|
```text
|
||||||
|
dtoverlay=i2c-rtc,ds3231
|
||||||
|
```
|
||||||
|
Reference [this walk through](https://pimylifeup.com/raspberry-pi-rtc/) for more info
|
||||||
|
|
||||||
|
### Configuration
|
||||||
To add a config, create a text file in the ~/.totp directory (if it doesn't exist then create it). The name of the file will be what is populated on the device.<br>
|
To add a config, create a text file in the ~/.totp directory (if it doesn't exist then create it). The name of the file will be what is populated on the device.<br>
|
||||||
Ex: "google.txt" will be displayed as "google"<br><br>
|
Ex: "google.txt" will be displayed as "google"<br><br>
|
||||||
File Format:<br>
|
File Format:<br>
|
||||||
|
@ -35,20 +35,11 @@
|
|||||||
#ifndef __DEBUG_H
|
#ifndef __DEBUG_H
|
||||||
#define __DEBUG_H
|
#define __DEBUG_H
|
||||||
|
|
||||||
#include <ncurses.h>
|
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
#define Debug(__info, ...) do { \
|
#define Debug(__info, ...) printf("Debug:" __info, ##__VA_ARGS__)
|
||||||
mvprintw(30, 0, "Debug:" __info, ##__VA_ARGS__); \
|
|
||||||
refresh(); \
|
|
||||||
} while (0)
|
|
||||||
#define DebugLine(y, x, __info, ...) do { \
|
|
||||||
mvprintw((y), (x), "Debug: " __info, ##__VA_ARGS__); \
|
|
||||||
refresh(); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define Debug(__info, ...)
|
#define Debug(__info, ...)
|
||||||
#define DebugLine(y, x, __info, ...)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
258
c/src/images.c
258
c/src/images.c
@ -1,258 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by steven on 11/19/2024.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "images.h"
|
|
||||||
|
|
||||||
const unsigned char gImage_2in13_2[4006] = { /*0X00,0X01,0X7A,0X00,0XFA,0X00,*/
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0E,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X03,0XF0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XF0,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X04,0X1E,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XF0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X38,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XE0,0X1F,0XCF,0XFF,0XF8,0X00,0X00,0X3C,0X30,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X0F,0X9F,0XFF,0XF8,0X00,0X00,0X1E,0X31,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X07,0X9F,0XFF,0XF8,0X00,0X00,0X1F,0X33,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0X87,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0X86,0X1F,0XFF,0XF8,0X00,0X00,0X07,0XFF,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X86,0X1F,0XFF,0XF8,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X84,0X3F,0XFF,0XF8,0X00,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X80,0X7F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X80,0XFF,0XFF,0XF8,0X00,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X80,0XFF,0XFF,0XF8,0X00,0X00,0X07,0XFF,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X81,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X83,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X83,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XCF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X87,0XFF,0XFF,0XF8,0X00,0X00,0X3E,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X87,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1C,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X0E,0X00,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XF0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFF,0XE0,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFF,0XE0,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFF,0XE0,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XFF,0XE0,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X7F,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X07,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3F,0XFF,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X70,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X70,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X83,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X70,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X70,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XE0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X38,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XF0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1C,0X3C,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X3F,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X1F,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X0C,0X0F,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X07,0X80,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X00,0XFF,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X03,0XFF,0XC0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0XE7,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X81,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X80,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X00,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X00,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X00,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X00,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XF8,0X00,0X07,0X00,0XE0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XAF,0X80,0X7F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0X00,0X3F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0E,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0E,0X1E,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0E,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X78,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X07,0XF0,0X60,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X84,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XF0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X7F,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XF0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X7F,0X1F,0XFF,0XF8,0X00,0X00,0X3E,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X38,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X38,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X30,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X30,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0X33,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X01,0XFE,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0C,0X3F,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X01,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3F,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X81,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XF8,0X00,0X00,0X1C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0X01,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XF8,0X00,0X1F,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0X01,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XF8,0X00,0X00,0X08,0X00,0X60,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XF8,0X00,0X00,0X1C,0X00,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,0XFF,0XF8,0X00,0X00,0X1E,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X81,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XE0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1E,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0X83,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC1,0X83,0X9F,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X03,0XFF,0X80,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0XFE,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X01,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X0F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X8F,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3F,0X80,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X87,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X83,0XC3,0XFF,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XE0,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1C,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X00,0XFF,0XFF,0XF8,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF8,0X00,0X00,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X1F,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X1F,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X1F,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X0E,0X1F,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X00,0X70,0X3F,0X80,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X01,0XFC,0X7F,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X03,0XFE,0X7F,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X07,0XFF,0XE0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X07,0X87,0XE0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0X1F,0XFF,0XF8,0X00,0X0F,0X03,0XC0,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF8,0X00,0X0F,0X03,0XC0,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF8,0X00,0X0F,0X03,0XC0,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFF,0XF8,0X00,0X07,0X03,0XC0,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X3F,0XFF,0XF8,0X00,0X07,0X80,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X80,0X00,0X7F,0XFF,0XF8,0X00,0X07,0X80,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XC0,0X01,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0X80,0X01,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0XC0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X0F,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0X00,0X00,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFC,0X00,0X1C,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XF8,0X00,0X7E,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XE0,0X01,0XFF,0X80,0X07,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XC0,0X07,0XFF,0XF8,0X07,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XC0,0X1F,0XFF,0XFC,0X07,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0X80,0X3F,0XE1,0XFC,0X07,0XF8,0X00,0X07,0XFF,0XFF,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0X00,0X3F,0XC0,0X7E,0X07,0XF8,0X00,0X03,0X80,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFE,0X00,0X3F,0XF0,0X7F,0X07,0XF8,0X00,0X03,0X80,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFE,0X00,0X1F,0XFC,0X00,0X07,0XF8,0X00,0X03,0X80,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFE,0X00,0X07,0XFF,0X00,0X07,0XF8,0X00,0X03,0X80,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFC,0X00,0X00,0XFF,0X80,0X07,0XF8,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFC,0X1F,0XE0,0X3F,0X80,0X07,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFC,0X0F,0XF0,0X3F,0X80,0X07,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X07,0XFC,0XEF,0X80,0X07,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X03,0XFF,0X98,0X00,0X07,0XF8,0X00,0X00,0X00,0X00,0XE0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X01,0XFF,0XF0,0X00,0X07,0XF8,0X00,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X9F,0XFC,0X00,0X07,0XF8,0X00,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X07,0XFF,0X00,0X07,0XF8,0X00,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0XFF,0X80,0X07,0XF8,0X00,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0XFF,0X80,0X07,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X07,0XFF,0X80,0X0F,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XFC,0X00,0X0F,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XF0,0X00,0X0F,0XF8,0X00,0X00,0X00,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XC0,0X00,0X0F,0XF8,0X00,0X00,0XFE,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XF8,0X00,0X1F,0XF8,0X00,0X03,0XFF,0X80,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X07,0XFE,0X00,0X1F,0XF8,0X00,0X03,0XFF,0XE0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0XFF,0X80,0X3F,0XF8,0X00,0X07,0XFF,0XF0,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X01,0XFF,0X80,0X3F,0XF8,0X00,0X07,0X81,0XF8,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X1F,0XFF,0X80,0X7F,0XF8,0X00,0X0F,0X00,0X7E,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XFF,0X00,0XFF,0XF8,0X00,0X0F,0X00,0X3F,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XF8,0X01,0XFF,0XF8,0X00,0X0F,0X00,0X1F,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3F,0XC0,0X01,0XFF,0XF8,0X00,0X07,0X00,0X0F,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X3E,0X00,0X07,0XFF,0XF8,0X00,0X07,0X00,0X07,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X30,0X00,0X0F,0XFF,0XF8,0X00,0X07,0X80,0X03,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0X00,0X3F,0XFF,0XF8,0X00,0X03,0XC0,0X01,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0X00,0XFF,0XFF,0XF8,0X00,0X03,0XC0,0X00,0XF0,0X00,0X00,0X00,
|
|
||||||
0XFF,0XF8,0X00,0X00,0X07,0XFF,0XFF,0XF8,0X00,0X01,0X80,0X00,0X70,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
|
|
||||||
};
|
|
@ -1,10 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by steven on 11/19/2024.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef IMAGES_H
|
|
||||||
#define IMAGES_H
|
|
||||||
|
|
||||||
extern const unsigned char gImage_2in13_2[];
|
|
||||||
|
|
||||||
#endif //IMAGES_H
|
|
187
c/src/p2fa.c
187
c/src/p2fa.c
@ -5,7 +5,8 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <ncurses.h>
|
#include <gpiod.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "../libs/go_p2fa.h"
|
#include "../libs/go_p2fa.h"
|
||||||
#include "../libs/e-Paper/EPD_2in13_V4.h"
|
#include "../libs/e-Paper/EPD_2in13_V4.h"
|
||||||
@ -13,39 +14,114 @@
|
|||||||
#include "../libs/GUI/GUI_BMPfile.h"
|
#include "../libs/GUI/GUI_BMPfile.h"
|
||||||
#include "../libs/Config/Debug.h"
|
#include "../libs/Config/Debug.h"
|
||||||
|
|
||||||
|
#define GPIO_CHIP "/dev/gpiochip0"
|
||||||
|
#define DEBOUNCE_TIME_MS 50
|
||||||
|
|
||||||
|
// GPIO Pins
|
||||||
|
#define BUTTON_UP 13
|
||||||
|
#define BUTTON_DOWN 19
|
||||||
|
#define BUTTON_LEFT 12
|
||||||
|
#define BUTTON_RIGHT 16
|
||||||
|
#define BUTTON_SELECT 27
|
||||||
|
#define BUTTON_ALT 22
|
||||||
|
#define BUTTON_BACK 6
|
||||||
|
#define BUTTON_POWER 20
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int gpio_pin;
|
||||||
|
int key_code;
|
||||||
|
} ButtonMap;
|
||||||
|
|
||||||
|
ButtonMap button_map[] = {
|
||||||
|
{BUTTON_UP, 'u'},
|
||||||
|
{BUTTON_DOWN, 'd'},
|
||||||
|
{BUTTON_LEFT, 'l'},
|
||||||
|
{BUTTON_RIGHT, 'r'},
|
||||||
|
{BUTTON_SELECT, 's'},
|
||||||
|
{BUTTON_ALT, 'a'},
|
||||||
|
{BUTTON_BACK, 'b'},
|
||||||
|
{BUTTON_POWER, 'p'},
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NUM_BUTTONS 8
|
||||||
|
|
||||||
|
struct gpiod_chip *chip;
|
||||||
|
struct gpiod_line_bulk lines;
|
||||||
|
struct gpiod_line *line_pointers[NUM_BUTTONS];
|
||||||
|
|
||||||
|
int last_button_state[NUM_BUTTONS] = {0};
|
||||||
|
struct timespec last_press_time[NUM_BUTTONS];
|
||||||
|
|
||||||
void closeP2FA() {
|
void closeP2FA() {
|
||||||
EPD_2in13_V4_Init();
|
EPD_2in13_V4_Init();
|
||||||
EPD_2in13_V4_Clear();
|
EPD_2in13_V4_Clear();
|
||||||
|
|
||||||
EPD_2in13_V4_Sleep();
|
EPD_2in13_V4_Sleep();
|
||||||
|
DEV_Delay_ms(2000); // Important, at least 2s
|
||||||
DEV_Delay_ms(2000);//important, at least 2s
|
|
||||||
|
|
||||||
DEV_Module_Exit();
|
DEV_Module_Exit();
|
||||||
|
|
||||||
|
for (int i = 0; i < NUM_BUTTONS; i++) {
|
||||||
|
gpiod_line_release(line_pointers[i]);
|
||||||
|
}
|
||||||
|
gpiod_chip_close(chip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Handler(int sigNum) {
|
void Handler(int sigNum) {
|
||||||
DebugLine(28, 0, "Caught signal %d\n", sigNum);
|
Debug("Caught signal %d\n", sigNum);
|
||||||
|
|
||||||
closeP2FA();
|
closeP2FA();
|
||||||
endwin();
|
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int computeWidth(char* text, sFONT *font) {
|
int computeWidth(char* text, sFONT *font) {
|
||||||
return (font->Width) * strlen(text);
|
return font->Width * strlen(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
int readButtons() {
|
||||||
|
for (int i = 0; i < NUM_BUTTONS; i++) {
|
||||||
|
int value = gpiod_line_get_value(line_pointers[i]);
|
||||||
|
if (value < 0) {
|
||||||
|
perror("Failed to read GPIO value");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debounce logic
|
||||||
|
struct timespec now;
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||||
|
long elapsed_ms = (now.tv_sec - last_press_time[i].tv_sec) * 1000 +
|
||||||
|
(now.tv_nsec - last_press_time[i].tv_nsec) / 1000000;
|
||||||
|
|
||||||
|
if (value == 1 && last_button_state[i] == 0 && elapsed_ms > DEBOUNCE_TIME_MS) {
|
||||||
|
last_button_state[i] = 1;
|
||||||
|
last_press_time[i] = now;
|
||||||
|
return button_map[i].key_code;
|
||||||
|
}
|
||||||
|
if (value == 0) {
|
||||||
|
last_button_state[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1; // No button press detected
|
||||||
|
}
|
||||||
|
|
||||||
|
int getBtn() {
|
||||||
|
while (1) {
|
||||||
|
int key = readButtons();
|
||||||
|
if (key != -1) {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
// Add a short delay to reduce CPU usage
|
||||||
|
DEV_Delay_ms(10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Put display to sleep after so many refreshes
|
//TODO Put display to sleep after so many refreshes
|
||||||
void code(UWORD *blackImage, char* confName) {
|
void code(UWORD *blackImage, char* confName) {
|
||||||
int ch;
|
//int ch;
|
||||||
while(1) {
|
while(1) {
|
||||||
ch = getch();
|
// ch = getch();
|
||||||
if (ch != ERR) {
|
// if (ch != ERR) {
|
||||||
if (ch == 'q') break;
|
// if (ch == 'q') break;
|
||||||
DebugLine(2, 0, "Key Pressed: %c\n", ch);
|
// Debug("Key Pressed: %c\n", ch);
|
||||||
}
|
// }
|
||||||
|
|
||||||
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE);
|
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE);
|
||||||
EPD_2in13_V4_Init();
|
EPD_2in13_V4_Init();
|
||||||
@ -77,10 +153,10 @@ void code(UWORD *blackImage, char* confName) {
|
|||||||
int progBarEndIndex;
|
int progBarEndIndex;
|
||||||
int lastI = 30 * 1000;
|
int lastI = 30 * 1000;
|
||||||
for (int i = getTimeRemainingMS(30);; i = getTimeRemainingMS(30)) {
|
for (int i = getTimeRemainingMS(30);; i = getTimeRemainingMS(30)) {
|
||||||
ch = getch();
|
//ch = getch();
|
||||||
if (ch != ERR) {
|
//if (ch != ERR) {
|
||||||
if (ch == 'q') return;
|
// if (ch == 'q') return;
|
||||||
}
|
//}
|
||||||
if (i > lastI) break;
|
if (i > lastI) break;
|
||||||
startTime = clock();
|
startTime = clock();
|
||||||
|
|
||||||
@ -112,7 +188,7 @@ void config(UWORD *blackImage, char* configName) {
|
|||||||
int length = configLinesReturn.r1;
|
int length = configLinesReturn.r1;
|
||||||
char** configLines = configLinesReturn.r0;
|
char** configLines = configLinesReturn.r0;
|
||||||
if (configLines == NULL || length == -1) {
|
if (configLines == NULL || length == -1) {
|
||||||
DebugLine(10, 0, "Config not found\n");
|
Debug("Config not found\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,10 +203,7 @@ void config(UWORD *blackImage, char* configName) {
|
|||||||
|
|
||||||
EPD_2in13_V4_Display(blackImage);
|
EPD_2in13_V4_Display(blackImage);
|
||||||
|
|
||||||
int ch = getch();
|
//int ch = getch();
|
||||||
if (ch == 'q') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawTotpHome(UWORD *blackImage, char** configNames, int *length) {
|
void drawTotpHome(UWORD *blackImage, char** configNames, int *length) {
|
||||||
@ -139,7 +212,7 @@ void drawTotpHome(UWORD *blackImage, char** configNames, int *length) {
|
|||||||
Paint_Clear(WHITE);
|
Paint_Clear(WHITE);
|
||||||
for (int j = 0; j < *length; j++) {
|
for (int j = 0; j < *length; j++) {
|
||||||
if (configNames[j] == NULL) {
|
if (configNames[j] == NULL) {
|
||||||
DebugLine(13, 0, "Null Config: %d\n", j);
|
Debug("Null Config: %d\n", j);
|
||||||
}
|
}
|
||||||
Paint_DrawString(5, 5 + j * 20, configNames[j], &Font12, WHITE, BLACK);
|
Paint_DrawString(5, 5 + j * 20, configNames[j], &Font12, WHITE, BLACK);
|
||||||
}
|
}
|
||||||
@ -154,7 +227,7 @@ void totpHome(UWORD *blackImage) {
|
|||||||
char** configNames = configNamesReturn.r0;
|
char** configNames = configNamesReturn.r0;
|
||||||
|
|
||||||
if (configNames == NULL || length == 0) {
|
if (configNames == NULL || length == 0) {
|
||||||
DebugLine(10, 0, "No configs found\n");
|
Debug("No configs found\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,20 +239,19 @@ void totpHome(UWORD *blackImage) {
|
|||||||
|
|
||||||
int ch;
|
int ch;
|
||||||
while (1) {
|
while (1) {
|
||||||
timeout(-1);
|
//timeout(-1);
|
||||||
ch = getch();
|
ch = 'q'; //getch();
|
||||||
if (ch != ERR) {
|
if (!ch) {
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
case KEY_UP:
|
// case KEY_UP:
|
||||||
if (i > 0) i--;
|
// if (i > 0) i--;
|
||||||
Paint_ClearWindows(115, 5 + (i + 1) * 20, 122, 17 + (i + 1) * 20, WHITE);
|
// Paint_ClearWindows(115, 5 + (i + 1) * 20, 122, 17 + (i + 1) * 20, WHITE);
|
||||||
break;
|
// break;
|
||||||
case KEY_DOWN:
|
// case KEY_DOWN:
|
||||||
if (i < length - 1) i++;
|
// if (i < length - 1) i++;
|
||||||
Paint_ClearWindows(115, 5 + (i - 1) * 20, 122, 17 + (i - 1) * 20, WHITE);
|
// Paint_ClearWindows(115, 5 + (i - 1) * 20, 122, 17 + (i - 1) * 20, WHITE);
|
||||||
break;
|
// break;
|
||||||
case '\n':
|
case '\n':
|
||||||
timeout(0);
|
|
||||||
code(blackImage, configNames[i]);
|
code(blackImage, configNames[i]);
|
||||||
drawTotpHome(blackImage, configNames, &length);
|
drawTotpHome(blackImage, configNames, &length);
|
||||||
break;
|
break;
|
||||||
@ -212,7 +284,7 @@ int drawLoop() {
|
|||||||
UBYTE *blackImage;
|
UBYTE *blackImage;
|
||||||
UWORD ImageSize = ((EPD_2in13_V4_WIDTH % 8 == 0) ? (EPD_2in13_V4_WIDTH / 8) : (EPD_2in13_V4_WIDTH / 8 + 1)) * EPD_2in13_V4_HEIGHT;
|
UWORD ImageSize = ((EPD_2in13_V4_WIDTH % 8 == 0) ? (EPD_2in13_V4_WIDTH / 8) : (EPD_2in13_V4_WIDTH / 8 + 1)) * EPD_2in13_V4_HEIGHT;
|
||||||
if ((blackImage = (UBYTE *) malloc(ImageSize)) == NULL) {
|
if ((blackImage = (UBYTE *) malloc(ImageSize)) == NULL) {
|
||||||
DebugLine(8, 0, "Failed to apply for black memory...\n");
|
Debug("Failed to apply for black memory...\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,17 +297,36 @@ int main() {
|
|||||||
signal(SIGINT, Handler);
|
signal(SIGINT, Handler);
|
||||||
signal(SIGTERM, Handler);
|
signal(SIGTERM, Handler);
|
||||||
|
|
||||||
initscr();
|
|
||||||
cbreak();
|
|
||||||
noecho();
|
|
||||||
nodelay(stdscr, TRUE);
|
|
||||||
keypad(stdscr, TRUE);
|
|
||||||
|
|
||||||
loadConfigs();
|
loadConfigs();
|
||||||
|
|
||||||
drawLoop();
|
// Begin Init GPIO
|
||||||
|
chip = gpiod_chip_open(GPIO_CHIP);
|
||||||
|
if (!chip) {
|
||||||
|
printf("Failed to open GPIO chip\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < NUM_BUTTONS; i++) {
|
||||||
|
line_pointers[i] = gpiod_chip_get_line(chip, button_map[i].gpio_pin);
|
||||||
|
if (!line_pointers[i]) {
|
||||||
|
printf("Failed to get GPIO line\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
if (gpiod_line_request_input(line_pointers[i], "gpio_button") < 0) {
|
||||||
|
printf("Failed to request input for GPIO line\n");
|
||||||
|
gpiod_chip_close(chip);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
gpiod_line_bulk_init(&lines, NUM_BUTTONS, line_pointers);
|
||||||
|
}
|
||||||
|
// End Init GPIO
|
||||||
|
|
||||||
|
printf("Monitoring buttons. Press Ctrl+C to exit.\n");
|
||||||
|
while (1) {
|
||||||
|
printf("Button: %c\n", (char)getBtn());
|
||||||
|
}
|
||||||
|
|
||||||
|
//drawLoop();
|
||||||
|
|
||||||
closeP2FA();
|
closeP2FA();
|
||||||
endwin();
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user