First working GTK+ window with pretty fast update of the IR cam frames
This commit is contained in:
parent
39f9bf67a2
commit
cfcb290322
17 changed files with 896 additions and 53 deletions
3
77-flirone-lusb.rules
Normal file
3
77-flirone-lusb.rules
Normal file
|
@ -0,0 +1,3 @@
|
|||
|
||||
LABEL="flirone-libusb"
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="09cb", ATTRS{idProduct}=="1996", MODE="0666"
|
6
Makefile
6
Makefile
|
@ -1,8 +1,8 @@
|
|||
CC=gcc
|
||||
CFLAGS=-O2 -Wall `pkg-config --cflags gtk+-3.0`
|
||||
LIBS=`pkg-config --libs gtk+-3.0`
|
||||
CFLAGS=-O2 -Wall -D_REENTRANT `pkg-config --cflags gtk+-3.0` `pkg-config --cflags libusb-1.0`
|
||||
LIBS=`pkg-config --libs gtk+-3.0` `pkg-config --libs libusb-1.0` -lm
|
||||
|
||||
OBJ=flirgtk.o
|
||||
OBJ=flirgtk.o cam-thread.o
|
||||
PRG=flirgtk
|
||||
|
||||
all: $(PRG)
|
||||
|
|
28
NOTES.txt
Normal file
28
NOTES.txt
Normal file
|
@ -0,0 +1,28 @@
|
|||
int stride;
|
||||
unsigned char *data;
|
||||
cairo_surface_t *surface;
|
||||
|
||||
stride = cairo_format_stride_for_width (format, width);
|
||||
data = malloc (stride * height);
|
||||
surface = cairo_image_surface_create_for_data (data, format,
|
||||
width, height,
|
||||
stride);
|
||||
|
||||
cairo_surface_t *
|
||||
cairo_image_surface_create_for_data (unsigned char *data,
|
||||
cairo_format_t format,
|
||||
int width,
|
||||
int height,
|
||||
int stride);
|
||||
|
||||
CAIRO_FORMAT_RGB24
|
||||
each pixel is a 32-bit quantity, with the upper 8 bits unused. Red, Green, and Blue are stored in the remaining 24 bits in that order. (Since 1.0)
|
||||
|
||||
CAIRO_FORMAT_ARGB32
|
||||
each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue. The 32-bit quantities are stored native-endian. Pre-multiplied alpha is used. (That is, 50% transparent red is 0x80800000, not 0x80ff0000.) (Since 1.0)
|
||||
|
||||
|
||||
unsigned char * cairo_image_surface_get_data (cairo_surface_t *surface);
|
||||
get pointer to imag data for inspection _and_ manipulation
|
||||
|
||||
|
|
@ -3,3 +3,7 @@
|
|||
GTK+ application for FLIR ONE USB thermal camera based on flir-v4l:
|
||||
https://github.com/fnoop/flirone-v4l2
|
||||
|
||||
|
||||
|
||||
cp 77-flirone-lusb.rules /lib/udev/rules.d/
|
||||
udevadm control --reload-rules
|
||||
|
|
661
cam-thread.c
Normal file
661
cam-thread.c
Normal file
|
@ -0,0 +1,661 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
// from main thread
|
||||
void update_fb(void);
|
||||
extern unsigned char *fbdata;
|
||||
extern gboolean flir_run;
|
||||
extern unsigned char *color_palette;
|
||||
|
||||
|
||||
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <libusb.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "plank.h"
|
||||
|
||||
|
||||
// -----------------START-ORG-CODE------------------------------------------
|
||||
|
||||
|
||||
// #include "jpeglib.h"
|
||||
|
||||
|
||||
// -- define v4l2 ---------------
|
||||
// #include <linux/videodev2.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <assert.h>
|
||||
|
||||
#if 0
|
||||
#define VIDEO_DEVICE0 "/dev/video1" // gray scale thermal image
|
||||
#define FRAME_WIDTH0 160
|
||||
#define FRAME_HEIGHT0 120
|
||||
|
||||
#define VIDEO_DEVICE1 "/dev/video2" // color visible image
|
||||
#define FRAME_WIDTH1 640
|
||||
#define FRAME_HEIGHT1 480
|
||||
|
||||
#define VIDEO_DEVICE2 "/dev/video3" // colorized thermal image
|
||||
#define FRAME_WIDTH2 160
|
||||
#define FRAME_HEIGHT2 128
|
||||
|
||||
#define FRAME_FORMAT0 V4L2_PIX_FMT_GREY
|
||||
#define FRAME_FORMAT1 V4L2_PIX_FMT_MJPEG
|
||||
#define FRAME_FORMAT2 V4L2_PIX_FMT_RGB24
|
||||
|
||||
struct v4l2_capability vid_caps0;
|
||||
struct v4l2_capability vid_caps1;
|
||||
struct v4l2_capability vid_caps2;
|
||||
|
||||
struct v4l2_format vid_format0;
|
||||
struct v4l2_format vid_format1;
|
||||
struct v4l2_format vid_format2;
|
||||
|
||||
size_t framesize0;
|
||||
size_t linewidth0;
|
||||
|
||||
size_t framesize1;
|
||||
size_t linewidth1;
|
||||
|
||||
size_t framesize2;
|
||||
size_t linewidth2;
|
||||
|
||||
|
||||
const char *video_device0=VIDEO_DEVICE0;
|
||||
const char *video_device1=VIDEO_DEVICE1;
|
||||
const char *video_device2=VIDEO_DEVICE2;
|
||||
|
||||
int fdwr0 = 0;
|
||||
int fdwr1 = 0;
|
||||
int fdwr2 = 0;
|
||||
|
||||
// -- end define v4l2 ---------------
|
||||
#endif
|
||||
|
||||
#define VENDOR_ID 0x09cb
|
||||
#define PRODUCT_ID 0x1996
|
||||
|
||||
static struct libusb_device_handle *devh = NULL;
|
||||
int filecount=0;
|
||||
struct timeval t1, t2;
|
||||
long long fps_t;
|
||||
|
||||
int FFC = 0; // detect FFC
|
||||
|
||||
// -- buffer for EP 0x85 chunks ---------------
|
||||
#define BUF85SIZE 1048576 // size got from android app
|
||||
int buf85pointer = 0;
|
||||
unsigned char buf85[BUF85SIZE];
|
||||
|
||||
|
||||
|
||||
double
|
||||
raw2temperature(unsigned short RAW)
|
||||
{
|
||||
// mystery correction factor
|
||||
RAW *=4;
|
||||
// calc amount of radiance of reflected objects ( Emissivity < 1 )
|
||||
double RAWrefl=PlanckR1/(PlanckR2*(exp(PlanckB/(TempReflected+273.15))-PlanckF))-PlanckO;
|
||||
// get displayed object temp max/min
|
||||
double RAWobj=(RAW-(1-Emissivity)*RAWrefl)/Emissivity;
|
||||
// calc object temperature
|
||||
|
||||
return PlanckB/log(PlanckR1/(PlanckR2*(RAWobj+PlanckO))+PlanckF)-273.15;
|
||||
}
|
||||
|
||||
|
||||
void vframe(char ep[],char EP_error[], int r, int actual_length, unsigned char buf[], unsigned char *colormap)
|
||||
{
|
||||
// error handler
|
||||
time_t now1;
|
||||
now1 = time(NULL);
|
||||
if (r < 0) {
|
||||
if (strcmp (EP_error, libusb_error_name(r))!=0) {
|
||||
strcpy(EP_error, libusb_error_name(r));
|
||||
fprintf(stderr, "\n: %s >>>>>>>>>>>>>>>>>bulk transfer (in) %s:%i %s\n", ctime(&now1), ep , r, libusb_error_name(r));
|
||||
sleep(1);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// reset buffer if the new chunk begins with magic bytes or the buffer size limit is exceeded
|
||||
unsigned char magicbyte[4]={0xEF,0xBE,0x00,0x00};
|
||||
|
||||
if ((strncmp ((char *)buf, (char *)magicbyte,4)==0 ) || ((buf85pointer + actual_length) >= BUF85SIZE)) {
|
||||
//printf(">>>>>>>>>>>begin of new frame<<<<<<<<<<<<<\n");
|
||||
buf85pointer=0;
|
||||
}
|
||||
|
||||
// printf("actual_length %d !!!!!\n", actual_length);
|
||||
|
||||
memmove(buf85+buf85pointer, buf, actual_length);
|
||||
buf85pointer=buf85pointer+actual_length;
|
||||
|
||||
if ((strncmp ((char *)buf85, (char *)magicbyte,4)!=0 )) {
|
||||
//reset buff pointer
|
||||
buf85pointer=0;
|
||||
printf("Reset buffer because of bad Magic Byte!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
// a quick and dirty job for gcc
|
||||
uint32_t FrameSize = buf85[ 8] + (buf85[ 9] << 8) + (buf85[10] << 16) + (buf85[11] << 24);
|
||||
uint32_t ThermalSize = buf85[12] + (buf85[13] << 8) + (buf85[14] << 16) + (buf85[15] << 24);
|
||||
uint32_t JpgSize = buf85[16] + (buf85[17] << 8) + (buf85[18] << 16) + (buf85[19] << 24);
|
||||
// uint32_t StatusSize = buf85[20] + (buf85[21] << 8) + (buf85[22] << 16) + (buf85[23] << 24);
|
||||
|
||||
//printf("FrameSize= %d (+28=%d), ThermalSize %d, JPG %d, StatusSize %d, Pointer %d\n",FrameSize,FrameSize+28, ThermalSize, JpgSize,StatusSize,buf85pointer);
|
||||
|
||||
if ( (FrameSize+28) > (buf85pointer) ) {
|
||||
// wait for next chunk
|
||||
return;
|
||||
}
|
||||
|
||||
int v;
|
||||
// get a full frame, first print the status
|
||||
t1=t2;
|
||||
gettimeofday(&t2, NULL);
|
||||
// fps as moving average over last 20 frames
|
||||
// fps_t = (19*fps_t+10000000/(((t2.tv_sec * 1000000) + t2.tv_usec) - ((t1.tv_sec * 1000000) + t1.tv_usec)))/20;
|
||||
|
||||
filecount++;
|
||||
// printf("#%08i %lld/10 fps:",filecount,fps_t);
|
||||
// for (i = 0; i < StatusSize; i++) {
|
||||
// v=28+ThermalSize+JpgSize+i;
|
||||
// if(buf85[v]>31) {printf("%c", buf85[v]);}
|
||||
// }
|
||||
// printf("\n");
|
||||
|
||||
buf85pointer=0;
|
||||
|
||||
unsigned short pix[160*120]; // original Flir 16 Bit RAW
|
||||
int x, y;
|
||||
unsigned char *fb_proc,*fb_proc2;
|
||||
|
||||
fb_proc = malloc(160 * 128); // 8 Bit gray buffer really needs only 160 x 120
|
||||
memset(fb_proc, 128, 160*128); // sizeof(fb_proc) doesn't work, value depends from LUT
|
||||
|
||||
fb_proc2 = malloc(160 * 128 * 3); // 8x8x8 Bit RGB buffer
|
||||
|
||||
int min = 0x10000, max = 0;
|
||||
float rms = 0;
|
||||
|
||||
// Make a unsigned short array from what comes from the thermal frame
|
||||
// find the max, min and RMS (not used yet) values of the array
|
||||
int maxx, maxy;
|
||||
for (y = 0; y < 120; ++y) {
|
||||
for (x = 0; x < 160; ++x) {
|
||||
if (x<80)
|
||||
v = buf85[2*(y * 164 + x) +32]+256*buf85[2*(y * 164 + x) +33];
|
||||
else
|
||||
v = buf85[2*(y * 164 + x) +32+4]+256*buf85[2*(y * 164 + x) +33+4];
|
||||
pix[y * 160 + x] = v; // unsigned char!!
|
||||
|
||||
if (v < min)
|
||||
min = v;
|
||||
if (v > max) {
|
||||
max = v; maxx = x; maxy = y;
|
||||
}
|
||||
rms += v * v;
|
||||
}
|
||||
}
|
||||
|
||||
// RMS used later
|
||||
// rms /= 160 * 120;
|
||||
// rms = sqrtf(rms);
|
||||
|
||||
// scale the data in the array
|
||||
int delta = max - min;
|
||||
if (!delta)
|
||||
delta = 1; // if max = min we have divide by zero
|
||||
int scale = 0x10000 / delta;
|
||||
|
||||
for (y = 0; y < 120; ++y) { //120
|
||||
for (x = 0; x < 160; ++x) { //160
|
||||
int v = (pix[y * 160 + x] - min) * scale >> 8;
|
||||
|
||||
// fb_proc is the gray scale frame buffer
|
||||
fb_proc[y * 160 + x] = v; // unsigned char!!
|
||||
}
|
||||
}
|
||||
|
||||
char st1[100];
|
||||
char st2[100];
|
||||
struct tm *loctime;
|
||||
// Convert it to local time and Print it out in a nice format.
|
||||
loctime = localtime (&now1);
|
||||
strftime (st1, 60, "%H:%M:%S", loctime);
|
||||
|
||||
// calc medium of 2x2 center pixels
|
||||
int med = (pix[59 * 160 + 79]+pix[59 * 160 + 80]+pix[60 * 160 + 79]+pix[60 * 160 + 80])/4;
|
||||
sprintf(st2," %.1f/%.1f/%.1f'C", raw2temperature(min),raw2temperature(med),raw2temperature(max));
|
||||
strcat(st1, st2);
|
||||
|
||||
#define MAXC 26 // max chars in line 160/6=26,6
|
||||
strncpy(st2, st1, MAXC);
|
||||
// write zero to string !!
|
||||
st2[MAXC-1] = '\0';
|
||||
fprintf(stderr,"%s\r",st2);
|
||||
// font_write(fb_proc, 1, 120, st2);
|
||||
|
||||
// show crosshairs, remove if required
|
||||
// font_write(fb_proc, 80-2, 60-3, "+");
|
||||
|
||||
maxx -= 4;
|
||||
maxy -= 4;
|
||||
|
||||
if (maxx < 0)
|
||||
maxx = 0;
|
||||
if (maxy < 0)
|
||||
maxy = 0;
|
||||
if (maxx > 150)
|
||||
maxx = 150;
|
||||
if (maxy > 110)
|
||||
maxy = 110;
|
||||
|
||||
// font_write(fb_proc, 160-6, maxy, "<");
|
||||
// font_write(fb_proc, maxx, 120-8, "|");
|
||||
|
||||
for (y = 0; y < 120; ++y) {
|
||||
for (x = 0; x < 160; ++x) {
|
||||
unsigned int *p1, *pc;
|
||||
// fb_proc is the gray scale frame buffer
|
||||
v=fb_proc[y * 160 + x] ; // unsigned char!!
|
||||
#if 0
|
||||
// fb_proc2 is an 24bit RGB buffer
|
||||
fb_proc2[3*y * 160 + x*3] = colormap[3 * v]; // unsigned char!!
|
||||
fb_proc2[(3*y * 160 + x*3)+1] = colormap[3 * v + 1]; // unsigned char!!
|
||||
fb_proc2[(3*y * 160 + x*3)+2] = colormap[3 * v + 2]; // unsigned char!!
|
||||
#else
|
||||
//fbdata[4*y * 640 + x*4] = colormap[3 * v + 2]; // B
|
||||
//fbdata[(4*y * 640 + x*4)+1] = colormap[3 * v + 1]; // G
|
||||
//fbdata[(4*y * 640 + x*4)+2] = colormap[3 * v]; // R
|
||||
//fbdata[(4*y * 640 + x*4)+3] = 0x00; // empty
|
||||
|
||||
// assemble one 32 bit pixel
|
||||
fbdata[16*y * 640 + x*16] = color_palette[3 * v + 2]; // B
|
||||
fbdata[(16*y * 640 + x*16)+1] = color_palette[3 * v + 1]; // G
|
||||
fbdata[(16*y * 640 + x*16)+2] = color_palette[3 * v]; // R
|
||||
fbdata[(16*y * 640 + x*16)+3] = 0x00; // empty
|
||||
|
||||
// copy whole 32bit words hor/vert
|
||||
p1 = (unsigned int *)&fbdata[16*y * 640 + x*16];
|
||||
// quadruple horizontally
|
||||
pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+4];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+8];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(16*y * 640 + x*16)+12];
|
||||
*pc = *p1;
|
||||
|
||||
// quadruple vertically+1
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+4];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+8];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+1) * 640 + x*16)+12];
|
||||
*pc = *p1;
|
||||
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+4];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+8];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+2) * 640 + x*16)+12];
|
||||
*pc = *p1;
|
||||
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+4];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+8];
|
||||
*pc = *p1;
|
||||
pc = (unsigned int *)&fbdata[(4*((y*4)+3) * 640 + x*16)+12];
|
||||
*pc = *p1;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
// write video to v4l2loopback(s)
|
||||
// write(fdwr0, fb_proc, framesize0); // gray scale Thermal Image
|
||||
//write(fdwr1, &buf85[28+ThermalSize], JpgSize); // jpg Visual Image
|
||||
|
||||
if (strncmp ((char *)&buf85[28+ThermalSize+JpgSize+17],"FFC",3)==0) {
|
||||
FFC=1; // drop all FFC frames
|
||||
} else {
|
||||
if (FFC==1) {
|
||||
FFC=0; // drop first frame after FFC
|
||||
} else {
|
||||
// write(fdwr2, fb_proc2, framesize2); // colorized RGB Thermal Image
|
||||
}
|
||||
}
|
||||
|
||||
// free memory
|
||||
free(fb_proc); // thermal RAW
|
||||
free(fb_proc2); // visible jpg
|
||||
|
||||
update_fb();
|
||||
}
|
||||
|
||||
static int
|
||||
find_lvr_flirusb(void)
|
||||
{
|
||||
devh = libusb_open_device_with_vid_pid(NULL, VENDOR_ID, PRODUCT_ID);
|
||||
|
||||
return devh ? 0 : -EIO;
|
||||
}
|
||||
|
||||
void
|
||||
print_bulk_result(char ep[],char EP_error[], int r, int actual_length, unsigned char buf[])
|
||||
{
|
||||
time_t now1;
|
||||
int i;
|
||||
|
||||
now1 = time(NULL);
|
||||
if (r < 0) {
|
||||
if (strcmp (EP_error, libusb_error_name(r))!=0) {
|
||||
strcpy(EP_error, libusb_error_name(r));
|
||||
fprintf(stderr, "\n: %s >>>>>>>>>>>>>>>>>bulk transfer (in) %s:%i %s\n", ctime(&now1), ep , r, libusb_error_name(r));
|
||||
sleep(1);
|
||||
}
|
||||
//return 1;
|
||||
} else {
|
||||
printf("\n: %s bulk read EP %s, actual length %d\nHEX:\n",ctime(&now1), ep ,actual_length);
|
||||
// write frame to file
|
||||
/*
|
||||
char filename[100];
|
||||
sprintf(filename, "EP%s#%05i.bin",ep,filecount);
|
||||
filecount++;
|
||||
FILE *file = fopen(filename, "wb");
|
||||
fwrite(buf, 1, actual_length, file);
|
||||
fclose(file);
|
||||
*/
|
||||
// hex print of first byte
|
||||
for (i = 0; i < (((200)<(actual_length))?(200):(actual_length)); i++) {
|
||||
printf(" %02x", buf[i]);
|
||||
}
|
||||
|
||||
printf("\nSTRING:\n");
|
||||
for (i = 0; i < (((200)<(actual_length))?(200):(actual_length)); i++) {
|
||||
if (buf[i]>31) {
|
||||
printf("%c", buf[i]);
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
EPloop(unsigned char *colormap)
|
||||
{
|
||||
int r = 1;
|
||||
|
||||
r = libusb_init(NULL);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "failed to initialise libusb\n");
|
||||
return(1);
|
||||
}
|
||||
|
||||
r = find_lvr_flirusb();
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Could not find/open device\n");
|
||||
goto out;
|
||||
}
|
||||
printf("Successfully found the Flir One G2 device\n");
|
||||
|
||||
r = libusb_set_configuration(devh, 3);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "libusb_set_configuration error %d\n", r);
|
||||
goto out;
|
||||
}
|
||||
printf("Successfully set usb configuration 3\n");
|
||||
|
||||
|
||||
// Claiming of interfaces is a purely logical operation;
|
||||
// it does not cause any requests to be sent over the bus.
|
||||
r = libusb_claim_interface(devh, 0);
|
||||
if (r <0) {
|
||||
fprintf(stderr, "libusb_claim_interface 0 error %d\n", r);
|
||||
goto out;
|
||||
}
|
||||
r = libusb_claim_interface(devh, 1);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "libusb_claim_interface 1 error %d\n", r);
|
||||
goto out;
|
||||
}
|
||||
r = libusb_claim_interface(devh, 2);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "libusb_claim_interface 2 error %d\n", r);
|
||||
goto out;
|
||||
}
|
||||
printf("Successfully claimed interface 0,1,2\n");
|
||||
|
||||
|
||||
unsigned char buf[1048576];
|
||||
int actual_length;
|
||||
|
||||
time_t now;
|
||||
// save last error status to avoid clutter the log
|
||||
//char EP81_error[50]="", EP83_error[50]="",
|
||||
char EP85_error[50]="";
|
||||
unsigned char data[2]={0,0}; // only a bad dummy
|
||||
|
||||
// don't forget: $ sudo modprobe v4l2loopback video_nr=0,1
|
||||
// startv4l2();
|
||||
|
||||
int state = 1;
|
||||
// int ct=0;
|
||||
|
||||
while (flir_run) {
|
||||
switch(state) {
|
||||
case 1:
|
||||
/* Flir config
|
||||
01 0b 01 00 01 00 00 00 c4 d5
|
||||
0 bmRequestType = 01
|
||||
1 bRequest = 0b
|
||||
2 wValue 0001 type (H) index (L) stop=0/start=1 (Alternate Setting)
|
||||
4 wIndex 01 interface 1/2
|
||||
5 wLength 00
|
||||
6 Data 00 00
|
||||
|
||||
libusb_control_transfer (*dev_handle, bmRequestType, bRequest, wValue, wIndex, *data, wLength, timeout)
|
||||
*/
|
||||
printf("stop interface 2 FRAME\n");
|
||||
r = libusb_control_transfer(devh,1,0x0b,0,2,data,0,100);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Control Out error %d\n", r);
|
||||
return r;
|
||||
}
|
||||
|
||||
printf("stop interface 1 FILEIO\n");
|
||||
r = libusb_control_transfer(devh,1,0x0b,0,1,data,0,100);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Control Out error %d\n", r);
|
||||
return r;
|
||||
}
|
||||
|
||||
printf("\nstart interface 1 FILEIO\n");
|
||||
r = libusb_control_transfer(devh,1,0x0b,1,1,data,0,100);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Control Out error %d\n", r);
|
||||
return r;
|
||||
}
|
||||
now = time(0); // Get the system time
|
||||
printf("\n:xx %s",ctime(&now));
|
||||
state = 3; // jump over wait stait 2. Not really using any data from CameraFiles.zip
|
||||
break;
|
||||
case 2:
|
||||
printf("\nask for CameraFiles.zip on EP 0x83:\n");
|
||||
now = time(0); // Get the system time
|
||||
printf("\n: %s",ctime(&now));
|
||||
|
||||
int transferred = 0;
|
||||
char my_string[128];
|
||||
|
||||
//--------- write string: {"type":"openFile","data":{"mode":"r","path":"CameraFiles.zip"}}
|
||||
int length = 16;
|
||||
unsigned char my_string2[16]={0xcc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0xF8,0xB3,0xF7,0x00};
|
||||
printf("\nEP 0x02 to be sent Hexcode: %i Bytes[",length);
|
||||
int i;
|
||||
for (i = 0; i < length; i++) {
|
||||
printf(" %02x", my_string2[i]);
|
||||
}
|
||||
printf(" ]\n");
|
||||
|
||||
r = libusb_bulk_transfer(devh, 2, my_string2, length, &transferred, 0);
|
||||
if (r == 0 && transferred == length) {
|
||||
printf("\nWrite successful!");
|
||||
} else
|
||||
printf("\nError in write! res = %d and transferred = %d\n", r, transferred);
|
||||
|
||||
strcpy( my_string,"{\"type\":\"openFile\",\"data\":{\"mode\":\"r\",\"path\":\"CameraFiles.zip\"}}");
|
||||
|
||||
length = strlen(my_string)+1;
|
||||
printf("\nEP 0x02 to be sent: %s", my_string);
|
||||
|
||||
// avoid error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive]
|
||||
unsigned char *my_string1 = (unsigned char*)my_string;
|
||||
//my_string1 = (unsigned char*)my_string;
|
||||
|
||||
r = libusb_bulk_transfer(devh, 2, my_string1, length, &transferred, 0);
|
||||
if (r == 0 && transferred == length) {
|
||||
printf("\nWrite successful!");
|
||||
printf("\nSent %d bytes with string: %s\n", transferred, my_string);
|
||||
} else
|
||||
printf("\nError in write! res = %d and transferred = %d\n", r, transferred);
|
||||
|
||||
//--------- write string: {"type":"readFile","data":{"streamIdentifier":10}}
|
||||
length = 16;
|
||||
unsigned char my_string3[16]={0xcc,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0xef,0xdb,0xc1,0xc1};
|
||||
printf("\nEP 0x02 to be sent Hexcode: %i Bytes[",length);
|
||||
for (i = 0; i < length; i++) {
|
||||
printf(" %02x", my_string3[i]);
|
||||
}
|
||||
printf(" ]\n");
|
||||
|
||||
r = libusb_bulk_transfer(devh, 2, my_string3, length, &transferred, 0);
|
||||
if(r == 0 && transferred == length) {
|
||||
printf("\nWrite successful!");
|
||||
} else
|
||||
printf("\nError in write! res = %d and transferred = %d\n", r, transferred);
|
||||
|
||||
//strcpy( my_string, "{\"type\":\"setOption\",\"data\":{\"option\":\"autoFFC\",\"value\":true}}");
|
||||
strcpy( my_string,"{\"type\":\"readFile\",\"data\":{\"streamIdentifier\":10}}");
|
||||
length = strlen(my_string)+1;
|
||||
printf("\nEP 0x02 to be sent %i Bytes: %s", length, my_string);
|
||||
|
||||
// avoid error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive]
|
||||
my_string1 = (unsigned char*)my_string;
|
||||
|
||||
r = libusb_bulk_transfer(devh, 2, my_string1, length, &transferred, 0);
|
||||
if (r == 0 && transferred == length) {
|
||||
printf("\nWrite successful!");
|
||||
printf("\nSent %d bytes with string: %s\n", transferred, my_string);
|
||||
} else
|
||||
printf("\nError in write! res = %d and transferred = %d\n", r, transferred);
|
||||
|
||||
// go to next state
|
||||
now = time(0); // Get the system time
|
||||
printf("\n: %s",ctime(&now));
|
||||
//sleep(1);
|
||||
state = 3;
|
||||
break;
|
||||
case 3:
|
||||
printf("\nAsk for video stream, start EP 0x85:\n");
|
||||
|
||||
r = libusb_control_transfer(devh,1,0x0b,1,2,data, 2,200);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "Control Out error %d\n", r);
|
||||
return r;
|
||||
};
|
||||
state = 4;
|
||||
break;
|
||||
case 4:
|
||||
// endless loop
|
||||
// poll Frame Endpoints 0x85
|
||||
// don't change timeout=100ms !!
|
||||
r = libusb_bulk_transfer(devh, 0x85, buf, sizeof(buf), &actual_length, 100);
|
||||
if (actual_length > 0)
|
||||
vframe("0x85",EP85_error, r, actual_length, buf, colormap);
|
||||
break;
|
||||
}
|
||||
|
||||
// poll Endpoints 0x81, 0x83
|
||||
r = libusb_bulk_transfer(devh, 0x81, buf, sizeof(buf), &actual_length, 10);
|
||||
/*
|
||||
if (actual_length > 0 && actual_length <= 101) {
|
||||
char k[5];
|
||||
if (strncmp (&buf[32],"VoltageUpdate",13)==0) {
|
||||
printf("xx %d\n",actual_length);
|
||||
char *token, *string, *tofree, *string2;
|
||||
// char l;
|
||||
strcpy(string,buf);
|
||||
// string = buf;
|
||||
// assert(string != NULL);
|
||||
printf("yy\n");
|
||||
|
||||
for (i = 32; i < (((200)<(actual_length))?(200):(actual_length)); i++) {
|
||||
if (string[i]>31) {
|
||||
printf("%c", string[i]);
|
||||
// printf("%d ", i);
|
||||
// string2[i-32] = string[i];
|
||||
}
|
||||
}
|
||||
|
||||
while ((token = strsep(&string, ":")) != NULL) {
|
||||
printf("zz\n");
|
||||
printf("%s\n", token);
|
||||
}
|
||||
// free(tofree);
|
||||
// for (i = 32; i < (((200)<(actual_length))?(200):(actual_length)); i++) {
|
||||
// if(buf[i]>31) {printf("%c", buf[i]);}
|
||||
// }
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
r = libusb_bulk_transfer(devh, 0x83, buf, sizeof(buf), &actual_length, 10);
|
||||
if (strcmp(libusb_error_name(r), "LIBUSB_ERROR_NO_DEVICE")==0) {
|
||||
fprintf(stderr, "EP 0x83 LIBUSB_ERROR_NO_DEVICE -> reset USB\n");
|
||||
goto out;
|
||||
}
|
||||
// print_bulk_result("0x83",EP83_error, r, actual_length, buf);
|
||||
}
|
||||
|
||||
// never reached ;-)
|
||||
libusb_release_interface(devh, 0);
|
||||
|
||||
out:
|
||||
//close the device
|
||||
if (devh != NULL) {
|
||||
libusb_reset_device(devh);
|
||||
libusb_close(devh);
|
||||
libusb_exit(NULL);
|
||||
}
|
||||
|
||||
return r >= 0 ? r : -r;
|
||||
}
|
||||
|
||||
|
||||
// -----------------END-ORG-CODE--------------------------------------------
|
||||
|
||||
|
||||
gpointer cam_thread_main(gpointer user_data)
|
||||
{
|
||||
EPloop(NULL);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
226
flirgtk.c
226
flirgtk.c
|
@ -3,9 +3,30 @@
|
|||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "palettes/15.h"
|
||||
#include "palettes/17.h"
|
||||
#include "palettes/7.h"
|
||||
#include "palettes/85.h"
|
||||
#include "palettes/92.h"
|
||||
#include "palettes/Grayscale.h"
|
||||
#include "palettes/Grey.h"
|
||||
#include "palettes/Iron2.h"
|
||||
#include "palettes/Iron_Black.h"
|
||||
#include "palettes/Rainbow.h"
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
static GtkWidget *image_darea = NULL;
|
||||
static cairo_surface_t *surface = NULL;
|
||||
|
||||
// internal frame buffer with 640x480 pixels of 4 byte each,
|
||||
// first byte unused, R, G, B 0x00RRGGBB
|
||||
unsigned char fbuffer[640*480*4];
|
||||
unsigned char *fbdata;
|
||||
unsigned char *color_palette;
|
||||
gboolean flir_run = FALSE;
|
||||
|
||||
gpointer cam_thread_main(gpointer user_data);
|
||||
|
||||
|
||||
static gboolean
|
||||
configure_event (GtkWidget *widget,
|
||||
|
@ -13,87 +34,192 @@ configure_event (GtkWidget *widget,
|
|||
gpointer data)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
cairo_t *cr;
|
||||
int stride;
|
||||
|
||||
if (surface)
|
||||
cairo_surface_destroy (surface);
|
||||
if (surface)
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
|
||||
CAIRO_CONTENT_COLOR,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
// cr = cairo_create (surface);
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
stride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, 640);
|
||||
// g_printerr("stride %d\n", stride);
|
||||
surface = cairo_image_surface_create_for_data (fbuffer,
|
||||
CAIRO_FORMAT_RGB24,
|
||||
640,
|
||||
480,
|
||||
stride);
|
||||
fbdata = cairo_image_surface_get_data(surface);
|
||||
|
||||
g_printerr("configure event %d x %d\n", allocation.width, allocation.height);
|
||||
g_printerr("configure event %d x %d\n", allocation.width, allocation.height);
|
||||
|
||||
/* We've handled the configure event, no need for further processing. */
|
||||
return TRUE;
|
||||
/* We've handled the configure event, no need for further processing. */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
int stride;
|
||||
unsigned char *data;
|
||||
cairo_surface_t *surface;
|
||||
|
||||
stride = cairo_format_stride_for_width (format, width);
|
||||
data = malloc (stride * height);
|
||||
surface = cairo_image_surface_create_for_data (data, format,
|
||||
width, height,
|
||||
stride);
|
||||
#endif
|
||||
|
||||
static gboolean
|
||||
draw_event (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
g_printerr("draw event\n");
|
||||
// g_printerr("draw event\n");
|
||||
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
update_fb(void)
|
||||
{
|
||||
#if 0
|
||||
unsigned int x,y;
|
||||
unsigned int *pdata;
|
||||
static unsigned char cnt=0;
|
||||
|
||||
cnt+=0x0f;
|
||||
// g_printerr("cnt=%d\n", cnt);
|
||||
for (y=0; y<480; y++) {
|
||||
for (x=0; x<640; x++) {
|
||||
pdata = (unsigned int *)&fbdata[(y*640*4)+(x*4)];
|
||||
*pdata = (cnt << 16) | (x << 9) | y;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
gtk_widget_queue_draw(image_darea);
|
||||
}
|
||||
|
||||
void
|
||||
start_clicked(GtkWidget *button, gpointer user_data)
|
||||
{
|
||||
flir_run = TRUE;
|
||||
g_thread_new ("CAM thread", cam_thread_main, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
stop_clicked(GtkWidget *button, gpointer user_data)
|
||||
{
|
||||
flir_run = FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
close_window (void)
|
||||
{
|
||||
window = NULL;
|
||||
// clean up and quit
|
||||
window = NULL;
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
gboolean
|
||||
handle_timeout (gpointer user_data)
|
||||
{
|
||||
update_fb();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
palette_changed (GtkComboBox *widget, gpointer user_data)
|
||||
{
|
||||
int act;
|
||||
|
||||
act = gtk_combo_box_get_active(widget);
|
||||
if (act < 0) {
|
||||
g_printerr("oops, palette selection = %d\n", act);
|
||||
} else {
|
||||
if (act == 0) color_palette = palette_7;
|
||||
if (act == 1) color_palette = palette_15;
|
||||
if (act == 2) color_palette = palette_17;
|
||||
if (act == 3) color_palette = palette_85;
|
||||
if (act == 4) color_palette = palette_92;
|
||||
if (act == 5) color_palette = palette_Grayscale;
|
||||
if (act == 6) color_palette = palette_Grey;
|
||||
if (act == 7) color_palette = palette_Iron2;
|
||||
if (act == 8) color_palette = palette_Iron_Black;
|
||||
if (act == 9) color_palette = palette_Rainbow;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
GtkWidget *
|
||||
do_drawingarea ()
|
||||
create_main_window ()
|
||||
{
|
||||
GtkWidget *da;
|
||||
GtkWidget *box;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *w;
|
||||
// GtkWidget *da;
|
||||
|
||||
if (!window) {
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "FLIR One");
|
||||
if (!window) {
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "FLIR One");
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (close_window), NULL);
|
||||
da = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 160, 120);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (close_window), NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
|
||||
gtk_container_add (GTK_CONTAINER (window), box);
|
||||
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_event), NULL);
|
||||
g_signal_connect (da,"configure-event",
|
||||
G_CALLBACK (configure_event), NULL);
|
||||
gtk_widget_show_all(window);
|
||||
}
|
||||
return window;
|
||||
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
|
||||
gtk_container_add (GTK_CONTAINER (box), hbox);
|
||||
|
||||
w = gtk_button_new_with_label("Start");
|
||||
gtk_container_add (GTK_CONTAINER (hbox), w);
|
||||
|
||||
g_signal_connect (w, "clicked",
|
||||
G_CALLBACK (start_clicked), NULL);
|
||||
|
||||
w = gtk_button_new_with_label("Stop");
|
||||
gtk_container_add (GTK_CONTAINER (hbox), w);
|
||||
|
||||
g_signal_connect (w, "clicked",
|
||||
G_CALLBACK (stop_clicked), NULL);
|
||||
|
||||
// drop down for color palettes
|
||||
w = gtk_combo_box_text_new();
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "7");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "15");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "17");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "85");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "92");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Grayscale");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Grey");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Iron 2");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Iron Black");
|
||||
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT(w), NULL, "Rainbow");
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX(w), 9);
|
||||
gtk_container_add (GTK_CONTAINER (hbox), w);
|
||||
color_palette = palette_Rainbow;
|
||||
g_signal_connect (w, "changed",
|
||||
G_CALLBACK (palette_changed), NULL);
|
||||
|
||||
image_darea = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (image_darea, 640, 480);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (box), image_darea);
|
||||
|
||||
g_signal_connect (image_darea, "draw",
|
||||
G_CALLBACK (draw_event), NULL);
|
||||
g_signal_connect (image_darea,"configure-event",
|
||||
G_CALLBACK (configure_event), NULL);
|
||||
|
||||
// g_timeout_add_seconds(1, handle_timeout, NULL);
|
||||
|
||||
gtk_widget_show_all(window);
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
gtk_init(&argc, &argv);
|
||||
do_drawingarea();
|
||||
gtk_main();
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
create_main_window();
|
||||
|
||||
gtk_main();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
1
palettes/15.h
Normal file
1
palettes/15.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_15[]={0x03,0x01,0x05,0x03,0x01,0x05,0x05,0x01,0x09,0x08,0x01,0x0d,0x0a,0x01,0x10,0x0c,0x01,0x14,0x0e,0x01,0x18,0x10,0x01,0x1c,0x13,0x01,0x20,0x15,0x01,0x24,0x17,0x01,0x27,0x19,0x01,0x2b,0x1b,0x01,0x2f,0x1e,0x01,0x33,0x20,0x01,0x37,0x22,0x01,0x3b,0x24,0x01,0x3e,0x26,0x01,0x41,0x28,0x01,0x45,0x2b,0x01,0x49,0x2d,0x01,0x4d,0x2f,0x01,0x51,0x31,0x01,0x54,0x33,0x01,0x58,0x36,0x01,0x5c,0x38,0x01,0x60,0x3a,0x01,0x64,0x3c,0x01,0x68,0x3e,0x01,0x6b,0x40,0x01,0x6f,0x42,0x01,0x73,0x44,0x01,0x77,0x42,0x01,0x7b,0x40,0x01,0x80,0x3f,0x01,0x84,0x3d,0x01,0x88,0x3a,0x01,0x8c,0x38,0x01,0x91,0x36,0x01,0x95,0x34,0x01,0x99,0x32,0x01,0x9d,0x30,0x01,0xa2,0x2e,0x01,0xa6,0x2c,0x01,0xaa,0x29,0x01,0xae,0x27,0x01,0xb3,0x25,0x01,0xb7,0x23,0x01,0xbb,0x21,0x01,0xbf,0x1f,0x01,0xc3,0x1d,0x01,0xc7,0x1b,0x01,0xcb,0x18,0x01,0xcf,0x16,0x01,0xd4,0x14,0x01,0xd8,0x12,0x01,0xdc,0x10,0x01,0xe0,0x0e,0x01,0xe5,0x0c,0x01,0xe9,0x0a,0x01,0xed,0x07,0x01,0xf1,0x05,0x01,0xf6,0x03,0x01,0xfa,0x01,0x01,0xfe,0x01,0x06,0xf8,0x01,0x0a,0xf3,0x01,0x0f,0xed,0x01,0x13,0xe7,0x01,0x18,0xe2,0x01,0x1c,0xdc,0x01,0x21,0xd6,0x01,0x25,0xd1,0x01,0x2a,0xcb,0x01,0x2e,0xc5,0x01,0x33,0xc0,0x01,0x37,0xbb,0x01,0x3c,0xb5,0x01,0x40,0xb0,0x01,0x44,0xaa,0x01,0x49,0xa4,0x01,0x4d,0x9f,0x01,0x52,0x99,0x01,0x56,0x93,0x01,0x5b,0x8e,0x01,0x5f,0x88,0x01,0x64,0x82,0x01,0x68,0x7d,0x01,0x6d,0x77,0x01,0x71,0x71,0x01,0x76,0x6c,0x01,0x7a,0x66,0x01,0x7f,0x60,0x01,0x83,0x5b,0x01,0x88,0x55,0x01,0x8d,0x4f,0x01,0x91,0x4a,0x01,0x96,0x44,0x01,0x9a,0x3f,0x01,0x9f,0x3a,0x01,0xa3,0x34,0x01,0xa8,0x2e,0x01,0xac,0x29,0x01,0xb1,0x23,0x01,0xb5,0x1d,0x01,0xba,0x18,0x01,0xbe,0x12,0x01,0xc2,0x0c,0x01,0xc6,0x07,0x01,0xcb,0x01,0x0a,0xcd,0x01,0x13,0xcf,0x01,0x1b,0xd0,0x01,0x24,0xd2,0x01,0x2d,0xd4,0x01,0x36,0xd6,0x01,0x3f,0xd7,0x01,0x46,0xd9,0x01,0x4f,0xdb,0x01,0x58,0xdd,0x01,0x61,0xde,0x01,0x6a,0xe0,0x01,0x72,0xe2,0x01,0x7b,0xe4,0x01,0x84,0xe5,0x01,0x8d,0xe7,0x01,0x95,0xe9,0x01,0x9e,0xeb,0x01,0xa7,0xec,0x01,0xb0,0xee,0x01,0xb9,0xf0,0x01,0xc0,0xf2,0x01,0xc9,0xf3,0x01,0xd2,0xf5,0x01,0xdb,0xf7,0x01,0xe4,0xf9,0x01,0xec,0xfa,0x01,0xf5,0xfc,0x01,0xfe,0xfe,0x01,0xfe,0xfc,0x01,0xfe,0xfa,0x01,0xfe,0xf8,0x01,0xfe,0xf5,0x01,0xfe,0xf3,0x01,0xfe,0xf1,0x01,0xfe,0xef,0x01,0xfe,0xed,0x01,0xfe,0xeb,0x01,0xfe,0xe8,0x01,0xfe,0xe6,0x01,0xfe,0xe4,0x01,0xfe,0xe2,0x01,0xfe,0xe0,0x01,0xfe,0xde,0x01,0xfe,0xdb,0x01,0xfe,0xd9,0x01,0xfe,0xd7,0x01,0xfe,0xd5,0x01,0xfe,0xd3,0x01,0xfe,0xd1,0x01,0xfe,0xce,0x01,0xfe,0xcc,0x01,0xfe,0xca,0x01,0xfe,0xc8,0x01,0xfe,0xc6,0x01,0xfe,0xc4,0x01,0xfe,0xc1,0x01,0xfe,0xbf,0x01,0xfe,0xbe,0x01,0xfe,0xbc,0x01,0xfe,0xba,0x01,0xfe,0xb8,0x01,0xfe,0xb6,0x01,0xfe,0xb3,0x01,0xfe,0xb1,0x01,0xfe,0xaf,0x01,0xfe,0xad,0x01,0xfe,0xab,0x01,0xfe,0xa9,0x01,0xfe,0xa6,0x01,0xfe,0xa4,0x01,0xfe,0xa2,0x01,0xfe,0xa0,0x01,0xfe,0x9e,0x01,0xfe,0x9c,0x01,0xfe,0x99,0x01,0xfe,0x97,0x01,0xfe,0x95,0x01,0xfe,0x93,0x01,0xfe,0x91,0x01,0xfe,0x8f,0x01,0xfe,0x8c,0x01,0xfe,0x8a,0x01,0xfe,0x88,0x01,0xfe,0x86,0x01,0xfe,0x84,0x01,0xfe,0x82,0x01,0xfe,0x7f,0x01,0xfe,0x7d,0x01,0xfe,0x7b,0x01,0xfe,0x79,0x01,0xfe,0x77,0x01,0xfe,0x75,0x01,0xfe,0x73,0x01,0xfe,0x70,0x01,0xfe,0x6e,0x01,0xfe,0x6c,0x01,0xfe,0x6a,0x01,0xfe,0x68,0x01,0xfe,0x66,0x01,0xfe,0x63,0x01,0xfe,0x61,0x01,0xfe,0x5f,0x01,0xfe,0x5d,0x01,0xfe,0x5b,0x01,0xfe,0x59,0x01,0xfe,0x56,0x01,0xfe,0x54,0x01,0xfe,0x52,0x01,0xfe,0x50,0x01,0xfe,0x4e,0x01,0xfe,0x4c,0x01,0xfe,0x49,0x01,0xfe,0x47,0x01,0xfe,0x45,0x01,0xfe,0x43,0x01,0xfe,0x41,0x01,0xfe,0x40,0x01,0xfe,0x3e,0x01,0xfe,0x3b,0x01,0xfe,0x39,0x01,0xfe,0x37,0x01,0xfe,0x35,0x01,0xfe,0x33,0x01,0xfe,0x31,0x01,0xfe,0x2e,0x01,0xfe,0x2c,0x01,0xfe,0x2a,0x01,0xfe,0x28,0x01,0xfe,0x26,0x01,0xfe,0x24,0x01,0xfe,0x21,0x01,0xfe,0x1f,0x01,0xfe,0x1d,0x01,0xfe,0x1b,0x01,0xfe,0x19,0x01,0xfe,0x17,0x01,0xfe,0x14,0x01,0xfe,0x12,0x01,0xfe,0x10,0x01,0xfe,0x0e,0x01,0xfe,0x0c,0x01,0xfe,0x0a,0x01,0xfe,0x07,0x01,0xfe,0x05,0x01,0xfe,0x03,0x01,0xfe,0x03,0x01};
|
1
palettes/17.h
Normal file
1
palettes/17.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_17[]={0x01,0x03,0x19,0x01,0x03,0x19,0x01,0x01,0x48,0x01,0x01,0x4b,0x01,0x01,0x4e,0x01,0x01,0x52,0x01,0x01,0x55,0x01,0x01,0x58,0x01,0x01,0x5c,0x01,0x01,0x5f,0x01,0x01,0x62,0x01,0x01,0x66,0x01,0x01,0x6c,0x01,0x01,0x73,0x01,0x01,0x7a,0x01,0x01,0x82,0x01,0x01,0x90,0x01,0x01,0x97,0x01,0x01,0x9e,0x01,0x01,0xa6,0x01,0x01,0xb4,0x01,0x01,0xbb,0x01,0x01,0xc1,0x01,0x01,0xc9,0x01,0x01,0xd7,0x01,0x01,0xde,0x01,0x01,0xe5,0x01,0x01,0xed,0x01,0x01,0xfb,0x06,0x01,0xf9,0x0b,0x01,0xf7,0x10,0x01,0xf5,0x19,0x01,0xef,0x1e,0x01,0xea,0x23,0x01,0xe5,0x29,0x01,0xe0,0x2e,0x01,0xdb,0x34,0x01,0xd5,0x39,0x01,0xd0,0x3f,0x01,0xcb,0x48,0x01,0xbf,0x4d,0x01,0xbc,0x52,0x01,0xb7,0x57,0x01,0xb3,0x60,0x01,0xa8,0x65,0x01,0xa4,0x6a,0x01,0x9f,0x6f,0x01,0x9b,0x78,0x01,0x90,0x7d,0x01,0x8c,0x82,0x01,0x87,0x87,0x01,0x83,0x90,0x01,0x78,0x95,0x01,0x74,0x9a,0x01,0x6f,0x9f,0x01,0x6b,0xa8,0x01,0x60,0xb1,0x01,0x5c,0xbb,0x01,0x57,0xc4,0x01,0x53,0xd7,0x01,0x48,0xd7,0x01,0x44,0xd7,0x01,0x40,0xd7,0x01,0x3c,0xd7,0x01,0x31,0xdc,0x01,0x2d,0xe1,0x01,0x28,0xe6,0x01,0x24,0xef,0x01,0x19,0xf1,0x01,0x15,0xf4,0x01,0x10,0xf6,0x01,0x0c,0xfb,0x01,0x01,0xfb,0x01,0x01,0xfb,0x01,0x01,0xfb,0x02,0x01,0xfb,0x02,0x01,0xfb,0x03,0x01,0xfa,0x05,0x01,0xfa,0x07,0x01,0xf7,0x0a,0x01,0xf7,0x0b,0x01,0xf7,0x0d,0x01,0xf7,0x0e,0x01,0xf7,0x11,0x01,0xf7,0x13,0x01,0xf6,0x15,0x01,0xf6,0x17,0x01,0xf3,0x1a,0x01,0xf3,0x1c,0x01,0xf2,0x1e,0x01,0xf2,0x20,0x01,0xef,0x23,0x01,0xef,0x25,0x01,0xee,0x27,0x01,0xee,0x29,0x01,0xeb,0x2c,0x01,0xeb,0x2d,0x01,0xeb,0x2f,0x01,0xeb,0x30,0x01,0xeb,0x33,0x01,0xeb,0x35,0x01,0xea,0x37,0x01,0xea,0x39,0x01,0xe7,0x3c,0x01,0xe7,0x3d,0x01,0xe6,0x3f,0x01,0xe6,0x40,0x01,0xe3,0x43,0x01,0xe3,0x44,0x01,0xe3,0x46,0x01,0xe3,0x47,0x01,0xe3,0x4a,0x01,0xe3,0x4c,0x01,0xe2,0x4e,0x01,0xe2,0x50,0x01,0xdf,0x53,0x01,0xdf,0x55,0x01,0xde,0x57,0x01,0xde,0x59,0x01,0xdb,0x5c,0x01,0xdb,0x5e,0x01,0xda,0x60,0x01,0xda,0x62,0x01,0xd7,0x65,0x01,0xd7,0x66,0x01,0xd7,0x68,0x01,0xd7,0x69,0x01,0xd7,0x6c,0x01,0xd7,0x6d,0x01,0xd6,0x6f,0x01,0xd6,0x71,0x01,0xd3,0x74,0x01,0xd3,0x76,0x01,0xd2,0x78,0x01,0xd2,0x7a,0x01,0xcf,0x7d,0x01,0xcf,0x7f,0x01,0xce,0x81,0x01,0xce,0x83,0x01,0xcb,0x86,0x01,0xcb,0x87,0x01,0xcb,0x89,0x01,0xcb,0x8a,0x01,0xcb,0x8d,0x01,0xcb,0x8f,0x01,0xca,0x91,0x01,0xca,0x93,0x01,0xc7,0x96,0x01,0xc7,0x98,0x01,0xc6,0x9a,0x01,0xc6,0x9c,0x01,0xc3,0x9f,0x01,0xc3,0xa0,0x01,0xc3,0xa1,0x01,0xc3,0xa3,0x01,0xc3,0xa5,0x01,0xc3,0xa7,0x01,0xc2,0xa9,0x01,0xc2,0xab,0x01,0xbf,0xae,0x01,0xbf,0xb0,0x01,0xbf,0xb2,0x01,0xbf,0xb4,0x01,0xbc,0xb7,0x01,0xbc,0xb9,0x01,0xbb,0xbb,0x01,0xbb,0xbd,0x01,0xb8,0xbf,0x01,0xb8,0xc0,0x01,0xb8,0xc2,0x01,0xb8,0xc3,0x01,0xb8,0xc6,0x01,0xb8,0xc8,0x01,0xb7,0xca,0x01,0xb7,0xcc,0x01,0xb4,0xcf,0x01,0xb4,0xd0,0x01,0xb3,0xd2,0x01,0xb3,0xd4,0x01,0xb0,0xd7,0x01,0xb0,0xd7,0x01,0xb0,0xd7,0x01,0xb0,0xd7,0x01,0xb0,0xd7,0x01,0xb0,0xda,0x01,0xaf,0xdd,0x01,0xaf,0xe1,0x01,0xac,0xe7,0x01,0xac,0xe9,0x01,0xab,0xeb,0x01,0xab,0xed,0x01,0xa8,0xf0,0x01,0xa8,0xf2,0x01,0xa7,0xf4,0x01,0xa7,0xf6,0x01,0xa4,0xf9,0x01,0xa4,0xfa,0x01,0xa4,0xfb,0x01,0xa4,0xfc,0x01,0xa4,0xfe,0x01,0xa4,0xfe,0x01,0xa3,0xfe,0x01,0xa3,0xfe,0x01,0xa0,0xfe,0x01,0xa0,0xfe,0x01,0x9f,0xfe,0x01,0x9f,0xfe,0x01,0x9c,0xfe,0x01,0x9c,0xfe,0x01,0x9b,0xfe,0x01,0x9b,0xfe,0x01,0x98,0xfe,0x01,0x98,0xfe,0x01,0x98,0xfe,0x01,0x98,0xfe,0x01,0x98,0xfe,0x01,0x98,0xfe,0x01,0x97,0xfe,0x01,0x97,0xfe,0x01,0x94,0xfe,0x01,0x96,0xfe,0x07,0x99,0xfe,0x0e,0x9b,0xfe,0x14,0xa0,0xfe,0x21,0xa2,0xfe,0x27,0xa5,0xfe,0x2e,0xa7,0xfe,0x34,0xac,0xfe,0x40,0xaf,0xfe,0x46,0xb2,0xfe,0x4d,0xb6,0xfe,0x53,0xbc,0xfe,0x60,0xbe,0xfe,0x66,0xc0,0xfe,0x6d,0xc2,0xfe,0x73,0xc7,0xfe,0x80,0xc9,0xfe,0x85,0xcc,0xfe,0x8b,0xce,0xfe,0x91,0xd3,0xfe,0x9c,0xd5,0xfe,0xa2,0xd8,0xfe,0xa9,0xda,0xfe,0xaf,0xdf,0xfe,0xbc,0xe2,0xfe,0xc1,0xe5,0xfe,0xc8,0xe9,0xfe,0xce,0xef,0xfe,0xdb,0xf1,0xfe,0xe1,0xf4,0xfe,0xe8,0xf6,0xfe,0xee,0xfb,0xfe,0xfb,0xfc,0xfe,0xfc,0xfd,0xfe,0xfd,0xfd,0xfe,0xfd};
|
1
palettes/7.h
Normal file
1
palettes/7.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_7[]={0xfe,0x01,0x01,0xfe,0x01,0x01,0x01,0xfe,0x01,0x01,0x01,0xfe,0xfe,0xfe,0x01,0x01,0xfe,0xfe,0xfe,0x01,0xfe,0xf7,0xf7,0xf7,0xf6,0xf6,0xf6,0xf5,0xf5,0xf5,0xf4,0xf4,0xf4,0xf3,0xf3,0xf3,0xf2,0xf2,0xf2,0xf1,0xf1,0xf1,0xf0,0xf0,0xf0,0xef,0xef,0xef,0xee,0xee,0xee,0xed,0xed,0xed,0xec,0xec,0xec,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,0xe7,0xe7,0xe7,0xe6,0xe6,0xe6,0xe5,0xe5,0xe5,0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe0,0xe0,0xe0,0xdf,0xdf,0xdf,0xde,0xde,0xde,0xdd,0xdd,0xdd,0xdc,0xdc,0xdc,0xdb,0xdb,0xdb,0xda,0xda,0xda,0xd9,0xd9,0xd9,0xd8,0xd8,0xd8,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd5,0xd5,0xd5,0xd4,0xd4,0xd4,0xd3,0xd3,0xd3,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1,0xd0,0xd0,0xd0,0xcf,0xcf,0xcf,0xce,0xce,0xce,0xcd,0xcd,0xcd,0xcc,0xcc,0xcc,0xcb,0xcb,0xcb,0xca,0xca,0xca,0xc9,0xc9,0xc9,0xc8,0xc8,0xc8,0xc7,0xc7,0xc7,0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4,0xc4,0xc3,0xc3,0xc3,0xc2,0xc2,0xc2,0xc1,0xc1,0xc1,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbc,0xbc,0xbc,0xbb,0xbb,0xbb,0xba,0xba,0xba,0xb9,0xb9,0xb9,0xb8,0xb8,0xb8,0xb7,0xb7,0xb7,0xb6,0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4,0xb3,0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xab,0xab,0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa8,0xa8,0xa8,0xa7,0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5,0xa5,0xa4,0xa4,0xa4,0xa3,0xa3,0xa3,0xa2,0xa2,0xa2,0xa1,0xa1,0xa1,0xa0,0xa0,0xa0,0x9f,0x9f,0x9f,0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99,0x99,0x98,0x98,0x98,0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x68,0x68,0x68,0x67,0x67,0x67,0x66,0x66,0x66,0x65,0x65,0x65,0x64,0x64,0x64,0x63,0x63,0x63,0x62,0x62,0x62,0x61,0x61,0x61,0x60,0x60,0x60,0x5f,0x5f,0x5f,0x5e,0x5e,0x5e,0x5d,0x5d,0x5d,0x5c,0x5c,0x5c,0x5b,0x5b,0x5b,0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x58,0x58,0x57,0x57,0x57,0x56,0x56,0x56,0x55,0x55,0x55,0x54,0x54,0x54,0x53,0x53,0x53,0x52,0x52,0x52,0x51,0x51,0x51,0x50,0x50,0x50,0x4f,0x4f,0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,0x4c,0x4c,0x4c,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x46,0x46,0x46,0x45,0x45,0x45,0x44,0x44,0x44,0x43,0x43,0x43,0x42,0x42,0x42,0x41,0x41,0x41,0x40,0x40,0x40,0x40,0x40,0x40,0x3f,0x3f,0x3f,0x3e,0x3e,0x3e,0x3d,0x3d,0x3d,0x3c,0x3c,0x3c,0x3b,0x3b,0x3b,0x3a,0x3a,0x3a,0x39,0x39,0x39,0x38,0x38,0x38,0x37,0x37,0x37,0x36,0x36,0x36,0x35,0x35,0x35,0x34,0x34,0x34,0x33,0x33,0x33,0x32,0x32,0x32,0x31,0x31,0x31,0x30,0x30,0x30,0x2f,0x2f,0x2f,0x2e,0x2e,0x2e,0x2d,0x2d,0x2d,0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,0x2a,0x2a,0x2a,0x29,0x29,0x29,0x28,0x28,0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x25,0x25,0x25,0x24,0x24,0x24,0x23,0x23,0x23,0x22,0x22,0x22,0x21,0x21,0x21,0x20,0x20,0x20,0x1f,0x1f,0x1f,0x1e,0x1e,0x1e,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x18,0x18,0x18,0x17,0x17,0x17,0x16,0x16,0x16,0x15,0x15,0x15,0x14,0x14,0x14,0x13,0x13,0x13,0x12,0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x02};
|
1
palettes/85.h
Normal file
1
palettes/85.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_85[]={0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xf7,0xff,0xff,0xf3,0xff,0xff,0xef,0xff,0xff,0xec,0xff,0xff,0xe8,0xff,0xff,0xe4,0xff,0xff,0xe0,0xff,0xff,0xd9,0xff,0xff,0xd1,0xff,0xff,0xca,0xff,0xff,0xc2,0xff,0xff,0xba,0xff,0xff,0xb3,0xff,0xff,0xab,0xff,0xff,0xa3,0xff,0xff,0x9c,0xff,0xff,0x94,0xff,0xff,0x8d,0xff,0xff,0x85,0xff,0xff,0x7e,0xff,0xff,0x76,0xff,0xff,0x6f,0xff,0xff,0x67,0xff,0xff,0x60,0xff,0xfe,0x58,0xff,0xfd,0x50,0xff,0xfc,0x49,0xff,0xfb,0x41,0xff,0xfa,0x39,0xff,0xfa,0x32,0xff,0xf9,0x2a,0xff,0xf8,0x23,0xff,0xf6,0x1e,0xff,0xf4,0x1a,0xff,0xf3,0x16,0xff,0xf1,0x12,0xff,0xef,0x0d,0xff,0xee,0x09,0xff,0xec,0x05,0xff,0xea,0x01,0xff,0xe8,0x00,0xff,0xe7,0x00,0xff,0xe5,0x00,0xff,0xe3,0x00,0xff,0xe1,0x00,0xff,0xdf,0x00,0xff,0xdd,0x00,0xff,0xdc,0x00,0xff,0xda,0x00,0xff,0xd8,0x00,0xff,0xd6,0x00,0xff,0xd5,0x00,0xff,0xd3,0x00,0xff,0xd1,0x00,0xff,0xd0,0x00,0xff,0xce,0x00,0xff,0xcc,0x00,0xff,0xca,0x00,0xff,0xc9,0x00,0xff,0xc7,0x00,0xff,0xc5,0x00,0xff,0xc3,0x00,0xff,0xc1,0x00,0xff,0xbf,0x00,0xff,0xbe,0x00,0xff,0xbc,0x00,0xff,0xba,0x00,0xff,0xb8,0x00,0xff,0xb6,0x00,0xff,0xb5,0x00,0xff,0xb3,0x00,0xff,0xb1,0x00,0xff,0xaf,0x00,0xff,0xad,0x00,0xff,0xac,0x00,0xff,0xaa,0x00,0xff,0xa8,0x00,0xff,0xa7,0x00,0xff,0xa5,0x00,0xff,0xa3,0x00,0xff,0xa1,0x00,0xff,0xa0,0x00,0xff,0x9e,0x00,0xff,0x9c,0x00,0xff,0x9b,0x00,0xff,0x99,0x00,0xff,0x97,0x00,0xff,0x96,0x00,0xff,0x94,0x00,0xff,0x92,0x00,0xff,0x90,0x00,0xff,0x8f,0x00,0xff,0x8d,0x00,0xff,0x8b,0x00,0xff,0x8a,0x00,0xff,0x88,0x00,0xff,0x86,0x00,0xff,0x84,0x00,0xff,0x82,0x00,0xff,0x81,0x00,0xff,0x7f,0x00,0xff,0x7d,0x00,0xff,0x7b,0x00,0xff,0x79,0x00,0xff,0x77,0x00,0xff,0x75,0x00,0xff,0x73,0x00,0xfe,0x71,0x00,0xfe,0x6f,0x00,0xfe,0x6d,0x00,0xfd,0x6b,0x00,0xfd,0x69,0x00,0xfc,0x67,0x00,0xfc,0x65,0x00,0xfb,0x63,0x00,0xf9,0x60,0x00,0xf8,0x5d,0x00,0xf6,0x5b,0x00,0xf5,0x58,0x00,0xf3,0x55,0x00,0xf2,0x53,0x00,0xf1,0x50,0x00,0xef,0x4d,0x00,0xee,0x4b,0x01,0xed,0x48,0x02,0xeb,0x45,0x02,0xea,0x43,0x03,0xe8,0x40,0x03,0xe7,0x3d,0x04,0xe6,0x3b,0x05,0xe4,0x38,0x06,0xe3,0x35,0x0a,0xe2,0x33,0x0e,0xe0,0x30,0x11,0xdf,0x2d,0x15,0xdd,0x2b,0x19,0xdc,0x28,0x1c,0xda,0x25,0x20,0xd9,0x23,0x24,0xd8,0x20,0x27,0xd6,0x1d,0x2b,0xd5,0x1b,0x2e,0xd4,0x18,0x32,0xd3,0x16,0x35,0xd2,0x13,0x39,0xd0,0x11,0x3c,0xcf,0x0e,0x40,0xce,0x0c,0x43,0xcc,0x0b,0x47,0xcb,0x09,0x4a,0xc9,0x07,0x4e,0xc8,0x06,0x51,0xc6,0x04,0x55,0xc5,0x02,0x58,0xc3,0x00,0x5c,0xc2,0x00,0x60,0xc1,0x00,0x63,0xbf,0x00,0x67,0xbe,0x00,0x6a,0xbd,0x00,0x6e,0xbb,0x00,0x71,0xba,0x00,0x75,0xb9,0x00,0x78,0xb7,0x00,0x7c,0xb6,0x00,0x7f,0xb5,0x00,0x83,0xb3,0x00,0x86,0xb2,0x00,0x8a,0xb1,0x00,0x8d,0xaf,0x00,0x91,0xae,0x00,0x94,0xad,0x00,0x98,0xab,0x00,0x9c,0xaa,0x00,0x9f,0xa9,0x00,0xa3,0xa7,0x00,0xa7,0xa6,0x00,0xaa,0xa5,0x00,0xae,0xa3,0x00,0xb1,0xa2,0x00,0xb5,0xa0,0x00,0xb9,0x9e,0x00,0xbc,0x9c,0x00,0xc0,0x9a,0x00,0xc3,0x98,0x00,0xc7,0x96,0x00,0xca,0x94,0x00,0xce,0x92,0x00,0xd1,0x90,0x00,0xd4,0x8d,0x00,0xd6,0x8a,0x00,0xd8,0x87,0x00,0xda,0x84,0x00,0xdc,0x81,0x00,0xde,0x7e,0x00,0xe0,0x7b,0x00,0xe2,0x78,0x00,0xe3,0x75,0x00,0xe2,0x72,0x00,0xe1,0x70,0x00,0xe0,0x6d,0x00,0xdf,0x6a,0x00,0xde,0x67,0x00,0xdd,0x64,0x00,0xdd,0x61,0x00,0xdb,0x5e,0x00,0xd7,0x5b,0x00,0xd4,0x58,0x00,0xd1,0x55,0x00,0xcd,0x52,0x00,0xca,0x4f,0x00,0xc6,0x4c,0x00,0xc3,0x49,0x00,0xc0,0x46,0x00,0xbc,0x43,0x00,0xb9,0x40,0x00,0xb6,0x3d,0x00,0xb2,0x3a,0x00,0xaf,0x37,0x00,0xac,0x34,0x00,0xa9,0x31,0x00,0xa5,0x2e,0x00,0xa1,0x2b,0x00,0x9d,0x29,0x00,0x99,0x26,0x00,0x94,0x23,0x00,0x90,0x20,0x00,0x8c,0x1d,0x00,0x88,0x1a,0x00,0x83,0x17,0x00,0x7f,0x14,0x00,0x7b,0x11,0x00,0x77,0x0e,0x00,0x73,0x0b,0x00,0x6f,0x08,0x00,0x6b,0x06,0x00,0x66,0x03,0x00,0x62,0x01,0x00,0x5e,0x01,0x00,0x5a,0x01,0x00,0x56,0x01,0x00,0x51,0x00,0x00,0x4d,0x00,0x00,0x49,0x00,0x00,0x45,0x00,0x00,0x40,0x00,0x00,0x3b,0x00,0x00,0x34,0x00,0x00,0x2c,0x00,0x00,0x25,0x00,0x00,0x1e,0x00,0x00,0x16,0x00,0x00,0x0f,0x00,0x00,0x07,0x00,0x00,0x00};
|
1
palettes/92.h
Normal file
1
palettes/92.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_92[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x03,0x01,0x01,0x04,0x01,0x01,0x05,0x01,0x01,0x06,0x01,0x01,0x07,0x01,0x01,0x09,0x01,0x01,0x0b,0x01,0x01,0x0d,0x01,0x01,0x0f,0x01,0x01,0x11,0x01,0x01,0x13,0x02,0x01,0x16,0x02,0x01,0x18,0x02,0x01,0x1b,0x02,0x01,0x1e,0x02,0x01,0x21,0x02,0x01,0x24,0x02,0x01,0x28,0x02,0x01,0x2b,0x03,0x01,0x2f,0x03,0x01,0x33,0x03,0x01,0x37,0x03,0x02,0x3b,0x04,0x02,0x40,0x04,0x02,0x43,0x04,0x02,0x48,0x05,0x02,0x4d,0x05,0x02,0x59,0x05,0x02,0x5f,0x06,0x02,0x65,0x06,0x02,0x6b,0x07,0x02,0x71,0x07,0x02,0x76,0x08,0x03,0x7c,0x08,0x03,0x81,0x09,0x03,0x86,0x09,0x03,0x8b,0x0a,0x03,0x8f,0x0b,0x03,0x94,0x0b,0x03,0x98,0x0c,0x04,0x9c,0x0d,0x04,0x9f,0x0e,0x04,0xa3,0x0f,0x04,0xa6,0x0f,0x01,0xa9,0x10,0x01,0xac,0x11,0x01,0xaf,0x12,0x01,0xb1,0x13,0x01,0xb4,0x14,0x01,0xb6,0x15,0x01,0xb8,0x17,0x01,0xba,0x18,0x01,0xbb,0x19,0x01,0xbc,0x1a,0x01,0xbd,0x1c,0x01,0xbe,0x1d,0x02,0xbf,0x1e,0x03,0xbf,0x20,0x04,0xbf,0x21,0x01,0xbf,0x23,0x01,0xbf,0x24,0x01,0xbf,0x26,0x01,0xbe,0x28,0x01,0xbd,0x29,0x01,0xbc,0x2b,0x02,0xbb,0x2d,0x02,0xb9,0x2f,0x02,0xb8,0x31,0x02,0xb6,0x33,0x03,0xb4,0x35,0x03,0xb1,0x37,0x03,0xaf,0x39,0x04,0xac,0x3b,0x04,0xa9,0x3e,0x05,0xa5,0x40,0x05,0xa2,0x41,0x06,0x9e,0x44,0x07,0x9a,0x46,0x07,0x96,0x49,0x08,0x91,0x4c,0x09,0x8d,0x4e,0x09,0x88,0x51,0x0a,0x82,0x54,0x0b,0x7d,0x57,0x0c,0x77,0x5a,0x0d,0x72,0x5d,0x0e,0x6c,0x60,0x0f,0x55,0x63,0x10,0x4e,0x66,0x11,0x48,0x69,0x12,0x42,0x6d,0x13,0x3e,0x70,0x14,0x39,0x74,0x15,0x34,0x77,0x16,0x2f,0x7b,0x17,0x2b,0x7f,0x19,0x27,0x83,0x1a,0x23,0x86,0x1b,0x1f,0x8a,0x1d,0x1c,0x8e,0x1e,0x19,0x92,0x20,0x16,0x97,0x21,0x14,0x9b,0x22,0x11,0x9b,0x24,0x0f,0xa0,0x26,0x0d,0xa4,0x27,0x0c,0xa8,0x29,0x0a,0xac,0x2b,0x09,0xb0,0x2c,0x07,0xb4,0x2e,0x06,0xb8,0x30,0x05,0xbb,0x32,0x04,0xbf,0x33,0x04,0xc1,0x35,0x03,0xc4,0x37,0x03,0xc7,0x39,0x02,0xca,0x3b,0x02,0xcd,0x3d,0x02,0xd0,0x3f,0x01,0xd3,0x40,0x01,0xd5,0x42,0x01,0xd8,0x45,0x01,0xda,0x47,0x01,0xdc,0x49,0x01,0xde,0x4b,0x01,0xe0,0x4e,0x01,0xe2,0x50,0x01,0xe4,0x52,0x01,0xe6,0x55,0x01,0xe8,0x57,0x01,0xe9,0x5a,0x01,0xeb,0x5c,0x01,0xec,0x5f,0x01,0xee,0x61,0x01,0xef,0x64,0x01,0xf0,0x67,0x01,0xf2,0x69,0x02,0xf3,0x6c,0x02,0xf4,0x6f,0x02,0xf5,0x71,0x02,0xf6,0x74,0x02,0xf6,0x77,0x02,0xf7,0x7a,0x03,0xf8,0x7d,0x03,0xf9,0x80,0x03,0xf9,0x83,0x04,0xfa,0x81,0x04,0xfa,0x85,0x04,0xfb,0x89,0x05,0xfb,0x8d,0x05,0xfc,0x91,0x05,0xfc,0x95,0x06,0xfc,0x99,0x06,0xfd,0x9c,0x07,0xfe,0xa0,0x08,0xfe,0xa4,0x08,0xfe,0xa7,0x09,0xfe,0xaa,0x0a,0xfe,0xae,0x0a,0xfe,0xb1,0x0b,0xfe,0xb4,0x0c,0xfe,0xb7,0x0d,0xfe,0xba,0x0e,0xfe,0xbd,0x0f,0xfe,0xbf,0x10,0xfe,0xc2,0x11,0xfe,0xc5,0x12,0xfe,0xc8,0x13,0xfe,0xcb,0x14,0xfe,0xcd,0x15,0xfe,0xd0,0x16,0xfe,0xd2,0x18,0xfe,0xd5,0x19,0xfe,0xd7,0x1b,0xfe,0xd9,0x1c,0xfe,0xdb,0x1e,0xfe,0xdd,0x1f,0xfe,0xe0,0x21,0xfe,0xe2,0x23,0xfe,0xe3,0x25,0xfe,0xe5,0x26,0xfe,0xe7,0x28,0xfe,0xe9,0x2a,0xfe,0xeb,0x2d,0xfe,0xec,0x2f,0xfe,0xee,0x31,0xfe,0xef,0x33,0xfe,0xf0,0x35,0xfe,0xf2,0x38,0xfe,0xf3,0x3a,0xfe,0xf4,0x3d,0xfe,0xf5,0x40,0xfe,0xf6,0x41,0xfe,0xf7,0x44,0xfe,0xf8,0x47,0xfe,0xf9,0x4a,0xfe,0xfa,0x4d,0xfe,0xfb,0x50,0xfe,0xfb,0x53,0xfe,0xfc,0x57,0xfe,0xfc,0x5a,0xfe,0xfd,0x5d,0xfe,0xfd,0x61,0xfe,0xfd,0x65,0xfe,0xfe,0x68,0xfe,0xfe,0x6c,0xfe,0xfe,0x70,0xfe,0xfe,0x74,0xfe,0xfe,0x78,0xfe,0xfe,0x7c,0xfe,0xfe,0x81,0xfe,0xfe,0x85,0xfe,0xfe,0x8a,0xfe,0xfe,0x8e,0xfe,0xfe,0x93,0xfe,0xfe,0x98,0xfe,0xfe,0x9d,0xfe,0xfe,0xa2,0xfe,0xfe,0xa5,0xfe,0xfe,0xab,0xfe,0xfe,0xb0,0xfe,0xfe,0xb6,0xfe,0xfe,0xbb,0xfe,0xfe,0xbf,0xfe,0xfe,0xc3,0xfe,0xfe,0xc8,0xfe,0xfe,0xcc,0xfe,0xfe,0xd1,0xfe,0xfe,0xd5,0xfe,0xfe,0xd9,0xfe,0xfe,0xdc,0xfe,0xfe,0xe0,0xfe,0xfe,0xe3,0xfe,0xfe,0xe6,0xfe,0xfe,0xe9,0xfe,0xfe,0xec,0xfe,0xfe,0xee,0xfe,0xfe,0xf1,0xfe,0xfe,0xf3,0xfe,0xfe,0xf5,0xfe,0xfe,0xf6,0xfe,0xfe,0xf8,0xfe,0xfe,0xf9,0xfe,0xfe,0xfb,0xfe,0xfe,0xfc,0xfe,0xfe,0xfd,0xfe,0xfe,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe};
|
1
palettes/Grayscale.h
Normal file
1
palettes/Grayscale.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_Grayscale[]={0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x02,0x02,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x11,0x11,0x11,0x12,0x12,0x12,0x13,0x13,0x13,0x14,0x14,0x14,0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x17,0x17,0x18,0x18,0x18,0x19,0x19,0x19,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x20,0x20,0x20,0x21,0x21,0x21,0x22,0x22,0x22,0x23,0x23,0x23,0x24,0x24,0x24,0x25,0x25,0x25,0x26,0x26,0x26,0x27,0x27,0x27,0x28,0x28,0x28,0x29,0x29,0x29,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2c,0x2c,0x2c,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e,0x2f,0x2f,0x2f,0x30,0x30,0x30,0x31,0x31,0x31,0x32,0x32,0x32,0x33,0x33,0x33,0x34,0x34,0x34,0x35,0x35,0x35,0x36,0x36,0x36,0x37,0x37,0x37,0x38,0x38,0x38,0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3b,0x3b,0x3b,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e,0x3e,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40,0x41,0x41,0x41,0x42,0x42,0x42,0x43,0x43,0x43,0x44,0x44,0x44,0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e,0x4f,0x4f,0x4f,0x50,0x50,0x50,0x51,0x51,0x51,0x52,0x52,0x52,0x53,0x53,0x53,0x54,0x54,0x54,0x55,0x55,0x55,0x56,0x56,0x56,0x57,0x57,0x57,0x58,0x58,0x58,0x59,0x59,0x59,0x5a,0x5a,0x5a,0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,0x5d,0x5d,0x5d,0x5e,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60,0x60,0x61,0x61,0x61,0x62,0x62,0x62,0x63,0x63,0x63,0x64,0x64,0x64,0x65,0x65,0x65,0x66,0x66,0x66,0x67,0x67,0x67,0x68,0x68,0x68,0x69,0x69,0x69,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x90,0x90,0x90,0x91,0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x99,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,0x9e,0x9e,0x9f,0x9f,0x9f,0xa0,0xa0,0xa0,0xa1,0xa1,0xa1,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4,0xa4,0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa7,0xa7,0xa7,0xa8,0xa8,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa,0xaa,0xab,0xab,0xab,0xac,0xac,0xac,0xad,0xad,0xad,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xb0,0xb0,0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb3,0xb3,0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb6,0xb6,0xb6,0xb7,0xb7,0xb7,0xb8,0xb8,0xb8,0xb9,0xb9,0xb9,0xba,0xba,0xba,0xbb,0xbb,0xbb,0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbe,0xbe,0xbe,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc1,0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc3,0xc4,0xc4,0xc4,0xc5,0xc5,0xc5,0xc6,0xc6,0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc8,0xc9,0xc9,0xc9,0xca,0xca,0xca,0xcb,0xcb,0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce,0xce,0xce,0xcf,0xcf,0xcf,0xd0,0xd0,0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd5,0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7,0xd8,0xd8,0xd8,0xd9,0xd9,0xd9,0xda,0xda,0xda,0xdb,0xdb,0xdb,0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xde,0xde,0xde,0xdf,0xdf,0xdf,0xe0,0xe0,0xe0,0xe1,0xe1,0xe1,0xe2,0xe2,0xe2,0xe3,0xe3,0xe3,0xe4,0xe4,0xe4,0xe5,0xe5,0xe5,0xe6,0xe6,0xe6,0xe7,0xe7,0xe7,0xe8,0xe8,0xe8,0xe9,0xe9,0xe9,0xea,0xea,0xea,0xeb,0xeb,0xeb,0xec,0xec,0xec,0xed,0xed,0xed,0xee,0xee,0xee,0xef,0xef,0xef,0xf0,0xf0,0xf0,0xf1,0xf1,0xf1,0xf2,0xf2,0xf2,0xf3,0xf3,0xf3,0xf4,0xf4,0xf4,0xf5,0xf5,0xf5,0xf6,0xf6,0xf6,0xf7,0xf7,0xf7,0xf8,0xf8,0xf8,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff};
|
1
palettes/Grey.h
Normal file
1
palettes/Grey.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_Grey[]={0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x02,0x02,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x11,0x11,0x11,0x12,0x12,0x12,0x13,0x13,0x13,0x14,0x14,0x14,0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x17,0x17,0x18,0x18,0x18,0x19,0x19,0x19,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x20,0x20,0x20,0x21,0x21,0x21,0x22,0x22,0x22,0x23,0x23,0x23,0x24,0x24,0x24,0x25,0x25,0x25,0x26,0x26,0x26,0x27,0x27,0x27,0x28,0x28,0x28,0x29,0x29,0x29,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2c,0x2c,0x2c,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e,0x2f,0x2f,0x2f,0x30,0x30,0x30,0x31,0x31,0x31,0x32,0x32,0x32,0x33,0x33,0x33,0x34,0x34,0x34,0x35,0x35,0x35,0x36,0x36,0x36,0x37,0x37,0x37,0x38,0x38,0x38,0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3b,0x3b,0x3b,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e,0x3e,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40,0x41,0x41,0x41,0x42,0x42,0x42,0x43,0x43,0x43,0x44,0x44,0x44,0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e,0x4f,0x4f,0x4f,0x50,0x50,0x50,0x51,0x51,0x51,0x52,0x52,0x52,0x53,0x53,0x53,0x54,0x54,0x54,0x55,0x55,0x55,0x56,0x56,0x56,0x57,0x57,0x57,0x58,0x58,0x58,0x59,0x59,0x59,0x5a,0x5a,0x5a,0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,0x5d,0x5d,0x5d,0x5e,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60,0x60,0x61,0x61,0x61,0x62,0x62,0x62,0x63,0x63,0x63,0x64,0x64,0x64,0x65,0x65,0x65,0x66,0x66,0x66,0x67,0x67,0x67,0x68,0x68,0x68,0x69,0x69,0x69,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x90,0x90,0x90,0x91,0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x99,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,0x9e,0x9e,0x9f,0x9f,0x9f,0xa0,0xa0,0xa0,0xa1,0xa1,0xa1,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4,0xa4,0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa7,0xa7,0xa7,0xa8,0xa8,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa,0xaa,0xab,0xab,0xab,0xac,0xac,0xac,0xad,0xad,0xad,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xb0,0xb0,0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb3,0xb3,0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb6,0xb6,0xb6,0xb7,0xb7,0xb7,0xb8,0xb8,0xb8,0xb9,0xb9,0xb9,0xba,0xba,0xba,0xbb,0xbb,0xbb,0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbe,0xbe,0xbe,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc1,0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc3,0xc4,0xc4,0xc4,0xc5,0xc5,0xc5,0xc6,0xc6,0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc8,0xc9,0xc9,0xc9,0xca,0xca,0xca,0xcb,0xcb,0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce,0xce,0xce,0xcf,0xcf,0xcf,0xd0,0xd0,0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd5,0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7,0xd8,0xd8,0xd8,0xd9,0xd9,0xd9,0xda,0xda,0xda,0xdb,0xdb,0xdb,0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xde,0xde,0xde,0xdf,0xdf,0xdf,0xe0,0xe0,0xe0,0xe1,0xe1,0xe1,0xe2,0xe2,0xe2,0xe3,0xe3,0xe3,0xe4,0xe4,0xe4,0xe5,0xe5,0xe5,0xe6,0xe6,0xe6,0xe7,0xe7,0xe7,0xe8,0xe8,0xe8,0xe9,0xe9,0xe9,0xea,0xea,0xea,0xeb,0xeb,0xeb,0xec,0xec,0xec,0xed,0xed,0xed,0xee,0xee,0xee,0xef,0xef,0xef,0xf0,0xf0,0xf0,0xf1,0xf1,0xf1,0xf2,0xf2,0xf2,0xf3,0xf3,0xf3,0xf4,0xf4,0xf4,0xf5,0xf5,0xf5,0xf6,0xf6,0xf6,0xf7,0xf7,0xf7,0xf8,0xf8,0xf8,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff};
|
1
palettes/Iron2.h
Normal file
1
palettes/Iron2.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_Iron2[]={0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x18,0x00,0x00,0x26,0x00,0x00,0x2e,0x00,0x00,0x34,0x00,0x00,0x3b,0x00,0x00,0x42,0x00,0x00,0x49,0x00,0x00,0x50,0x01,0x00,0x55,0x02,0x00,0x59,0x03,0x00,0x5d,0x04,0x00,0x61,0x05,0x00,0x65,0x06,0x00,0x68,0x08,0x00,0x6c,0x0a,0x00,0x70,0x0b,0x00,0x74,0x0d,0x00,0x76,0x0f,0x00,0x77,0x11,0x00,0x79,0x14,0x00,0x7b,0x18,0x00,0x7e,0x1b,0x00,0x80,0x1e,0x00,0x82,0x21,0x00,0x85,0x24,0x00,0x87,0x28,0x00,0x88,0x2b,0x00,0x8a,0x2f,0x00,0x8b,0x32,0x00,0x8d,0x35,0x00,0x8e,0x38,0x00,0x90,0x3b,0x00,0x91,0x3e,0x00,0x92,0x40,0x00,0x94,0x42,0x00,0x95,0x45,0x00,0x96,0x48,0x00,0x96,0x4b,0x00,0x96,0x4e,0x00,0x97,0x51,0x00,0x97,0x53,0x00,0x98,0x57,0x00,0x98,0x5a,0x00,0x99,0x5d,0x00,0x9a,0x60,0x00,0x9b,0x63,0x00,0x9b,0x66,0x00,0x9b,0x69,0x00,0x9b,0x6c,0x00,0x9c,0x6f,0x00,0x9c,0x71,0x00,0x9d,0x73,0x00,0x9d,0x77,0x00,0x9d,0x7a,0x00,0x9d,0x7d,0x00,0x9d,0x80,0x00,0x9d,0x82,0x00,0x9d,0x85,0x00,0x9d,0x88,0x00,0x9d,0x8a,0x00,0x9d,0x8d,0x00,0x9d,0x90,0x00,0x9c,0x93,0x00,0x9c,0x96,0x00,0x9b,0x99,0x00,0x9b,0x9b,0x00,0x9b,0x9d,0x00,0x9b,0xa0,0x00,0x9b,0xa2,0x00,0x9b,0xa4,0x00,0x9b,0xa7,0x00,0x9a,0xa9,0x00,0x9a,0xab,0x00,0x99,0xac,0x00,0x99,0xae,0x01,0x98,0xb0,0x01,0x98,0xb1,0x01,0x97,0xb3,0x01,0x97,0xb5,0x02,0x96,0xb7,0x02,0x95,0xb8,0x03,0x95,0xb9,0x04,0x95,0xbb,0x05,0x94,0xbc,0x05,0x93,0xbe,0x05,0x92,0xbf,0x06,0x92,0xc0,0x07,0x91,0xc1,0x08,0x90,0xc2,0x09,0x8f,0xc3,0x0b,0x8e,0xc4,0x0c,0x8d,0xc5,0x0d,0x8c,0xc7,0x0e,0x8a,0xc8,0x10,0x88,0xc9,0x12,0x86,0xca,0x13,0x85,0xcb,0x14,0x83,0xcd,0x16,0x81,0xce,0x17,0x7f,0xcf,0x19,0x7c,0xd0,0x1a,0x79,0xd1,0x1b,0x77,0xd2,0x1d,0x74,0xd3,0x1f,0x72,0xd4,0x21,0x70,0xd5,0x22,0x6c,0xd6,0x24,0x68,0xd7,0x26,0x65,0xd8,0x28,0x62,0xd9,0x2a,0x5f,0xda,0x2d,0x5c,0xdb,0x2f,0x57,0xdc,0x30,0x52,0xdd,0x31,0x4d,0xde,0x33,0x47,0xdf,0x35,0x41,0xe0,0x37,0x3c,0xe0,0x38,0x36,0xe1,0x3a,0x31,0xe2,0x3c,0x2b,0xe3,0x3e,0x25,0xe4,0x3f,0x20,0xe4,0x41,0x1c,0xe5,0x43,0x1a,0xe6,0x45,0x18,0xe6,0x47,0x15,0xe7,0x49,0x13,0xe8,0x4b,0x11,0xe8,0x4c,0x0f,0xe9,0x4d,0x0d,0xea,0x4e,0x0c,0xeb,0x50,0x0b,0xeb,0x52,0x0a,0xeb,0x54,0x09,0xec,0x56,0x08,0xec,0x58,0x08,0xed,0x5a,0x07,0xed,0x5b,0x06,0xee,0x5c,0x05,0xee,0x5e,0x05,0xef,0x5f,0x04,0xef,0x61,0x04,0xf0,0x63,0x03,0xf0,0x65,0x03,0xf1,0x66,0x03,0xf1,0x67,0x03,0xf1,0x69,0x02,0xf1,0x6a,0x02,0xf1,0x6c,0x01,0xf2,0x6d,0x01,0xf2,0x6f,0x01,0xf3,0x71,0x01,0xf3,0x72,0x01,0xf4,0x74,0x00,0xf4,0x75,0x00,0xf4,0x77,0x00,0xf4,0x79,0x00,0xf5,0x7c,0x00,0xf5,0x7e,0x00,0xf6,0x80,0x00,0xf6,0x82,0x00,0xf7,0x83,0x00,0xf7,0x85,0x00,0xf8,0x87,0x00,0xf8,0x88,0x00,0xf8,0x89,0x00,0xf8,0x8b,0x00,0xf8,0x8c,0x00,0xf9,0x8e,0x00,0xf9,0x8f,0x00,0xf9,0x90,0x00,0xf9,0x92,0x00,0xfa,0x94,0x00,0xfa,0x96,0x00,0xfb,0x98,0x00,0xfb,0x9b,0x00,0xfc,0x9d,0x00,0xfc,0x9f,0x00,0xfd,0xa1,0x00,0xfd,0xa3,0x00,0xfd,0xa6,0x00,0xfd,0xa8,0x00,0xfd,0xaa,0x00,0xfd,0xac,0x00,0xfd,0xae,0x00,0xfe,0xaf,0x00,0xfe,0xb1,0x00,0xfe,0xb2,0x00,0xfe,0xb4,0x00,0xfe,0xb7,0x00,0xfe,0xb9,0x00,0xfe,0xba,0x00,0xfe,0xbc,0x00,0xfe,0xbd,0x00,0xfe,0xbf,0x00,0xfe,0xc1,0x00,0xfe,0xc3,0x00,0xfe,0xc5,0x00,0xfe,0xc7,0x00,0xfe,0xc8,0x00,0xfe,0xca,0x01,0xfe,0xcb,0x01,0xfe,0xcc,0x02,0xfe,0xce,0x03,0xfe,0xcf,0x04,0xfe,0xd1,0x06,0xfe,0xd3,0x08,0xfe,0xd5,0x0a,0xfe,0xd7,0x0b,0xfe,0xd8,0x0c,0xff,0xda,0x0e,0xff,0xdb,0x10,0xff,0xdc,0x13,0xff,0xdd,0x17,0xff,0xde,0x1b,0xff,0xe0,0x1f,0xff,0xe1,0x23,0xff,0xe3,0x26,0xff,0xe4,0x2a,0xff,0xe5,0x30,0xff,0xe6,0x35,0xff,0xe7,0x3c,0xff,0xe9,0x41,0xff,0xea,0x47,0xff,0xeb,0x4d,0xff,0xed,0x53,0xff,0xee,0x59,0xff,0xef,0x60,0xff,0xef,0x66,0xff,0xf0,0x6d,0xff,0xf1,0x73,0xff,0xf1,0x7c,0xff,0xf2,0x84,0xff,0xf3,0x8b,0xff,0xf4,0x92,0xff,0xf4,0x99,0xff,0xf5,0xa0,0xff,0xf5,0xa8,0xff,0xf6,0xaf,0xff,0xf7,0xb5,0xff,0xf8,0xbb,0xff,0xf8,0xc1,0xff,0xf9,0xc6,0xff,0xf9,0xcc,0xff,0xfa,0xd2,0xff,0xfb,0xd8,0xff,0xfc,0xde,0xff,0xfd,0xe3,0xff,0xfd,0xe8,0xff,0xfe,0xed,0xff,0xfe,0xf3,0xff,0xff,0xf7,0xff,0xff,0xf9};
|
1
palettes/Iron_Black.h
Normal file
1
palettes/Iron_Black.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_Iron_Black[]={0xff,0xff,0xff,0xfd,0xfd,0xfd,0xfb,0xfb,0xfb,0xf9,0xf9,0xf9,0xf7,0xf7,0xf7,0xf5,0xf5,0xf5,0xf3,0xf3,0xf3,0xf1,0xf1,0xf1,0xef,0xef,0xef,0xed,0xed,0xed,0xeb,0xeb,0xeb,0xe9,0xe9,0xe9,0xe7,0xe7,0xe7,0xe5,0xe5,0xe5,0xe3,0xe3,0xe3,0xe1,0xe1,0xe1,0xdf,0xdf,0xdf,0xdd,0xdd,0xdd,0xdb,0xdb,0xdb,0xd9,0xd9,0xd9,0xd7,0xd7,0xd7,0xd5,0xd5,0xd5,0xd3,0xd3,0xd3,0xd1,0xd1,0xd1,0xcf,0xcf,0xcf,0xcd,0xcd,0xcd,0xcb,0xcb,0xcb,0xc9,0xc9,0xc9,0xc7,0xc7,0xc7,0xc5,0xc5,0xc5,0xc3,0xc3,0xc3,0xc1,0xc1,0xc1,0xbf,0xbf,0xbf,0xbd,0xbd,0xbd,0xbb,0xbb,0xbb,0xb9,0xb9,0xb9,0xb7,0xb7,0xb7,0xb5,0xb5,0xb5,0xb3,0xb3,0xb3,0xb1,0xb1,0xb1,0xaf,0xaf,0xaf,0xad,0xad,0xad,0xab,0xab,0xab,0xa9,0xa9,0xa9,0xa7,0xa7,0xa7,0xa5,0xa5,0xa5,0xa3,0xa3,0xa3,0xa1,0xa1,0xa1,0x9f,0x9f,0x9f,0x9d,0x9d,0x9d,0x9b,0x9b,0x9b,0x99,0x99,0x99,0x97,0x97,0x97,0x95,0x95,0x95,0x93,0x93,0x93,0x91,0x91,0x91,0x8f,0x8f,0x8f,0x8d,0x8d,0x8d,0x8b,0x8b,0x8b,0x89,0x89,0x89,0x87,0x87,0x87,0x85,0x85,0x85,0x83,0x83,0x83,0x81,0x81,0x81,0x7e,0x7e,0x7e,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x76,0x76,0x76,0x74,0x74,0x74,0x72,0x72,0x72,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6c,0x6c,0x6c,0x6a,0x6a,0x6a,0x68,0x68,0x68,0x66,0x66,0x66,0x64,0x64,0x64,0x62,0x62,0x62,0x60,0x60,0x60,0x5e,0x5e,0x5e,0x5c,0x5c,0x5c,0x5a,0x5a,0x5a,0x58,0x58,0x58,0x56,0x56,0x56,0x54,0x54,0x54,0x52,0x52,0x52,0x50,0x50,0x50,0x4e,0x4e,0x4e,0x4c,0x4c,0x4c,0x4a,0x4a,0x4a,0x48,0x48,0x48,0x46,0x46,0x46,0x44,0x44,0x44,0x42,0x42,0x42,0x40,0x40,0x40,0x3e,0x3e,0x3e,0x3c,0x3c,0x3c,0x3a,0x3a,0x3a,0x38,0x38,0x38,0x36,0x36,0x36,0x34,0x34,0x34,0x32,0x32,0x32,0x30,0x30,0x30,0x2e,0x2e,0x2e,0x2c,0x2c,0x2c,0x2a,0x2a,0x2a,0x28,0x28,0x28,0x26,0x26,0x26,0x24,0x24,0x24,0x22,0x22,0x22,0x20,0x20,0x20,0x1e,0x1e,0x1e,0x1c,0x1c,0x1c,0x1a,0x1a,0x1a,0x18,0x18,0x18,0x16,0x16,0x16,0x14,0x14,0x14,0x12,0x12,0x12,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x06,0x06,0x06,0x04,0x04,0x04,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x09,0x02,0x00,0x10,0x04,0x00,0x18,0x06,0x00,0x1f,0x08,0x00,0x26,0x0a,0x00,0x2d,0x0c,0x00,0x35,0x0e,0x00,0x3c,0x11,0x00,0x43,0x13,0x00,0x4a,0x15,0x00,0x52,0x17,0x00,0x59,0x19,0x00,0x60,0x1b,0x00,0x67,0x1d,0x00,0x6f,0x1f,0x00,0x76,0x24,0x00,0x78,0x29,0x00,0x79,0x2e,0x00,0x7a,0x33,0x00,0x7b,0x38,0x00,0x7c,0x3d,0x00,0x7d,0x42,0x00,0x7e,0x47,0x00,0x7f,0x4c,0x01,0x80,0x51,0x01,0x81,0x56,0x01,0x82,0x5b,0x01,0x83,0x60,0x01,0x84,0x65,0x01,0x85,0x6a,0x01,0x86,0x6f,0x01,0x87,0x74,0x01,0x88,0x79,0x01,0x88,0x7d,0x02,0x89,0x82,0x02,0x89,0x87,0x03,0x89,0x8b,0x03,0x8a,0x90,0x03,0x8a,0x95,0x04,0x8a,0x99,0x04,0x8b,0x9e,0x05,0x8b,0xa3,0x05,0x8b,0xa7,0x05,0x8c,0xac,0x06,0x8c,0xb1,0x06,0x8c,0xb5,0x07,0x8d,0xba,0x07,0x8d,0xbd,0x0a,0x89,0xbf,0x0d,0x84,0xc2,0x10,0x7f,0xc4,0x13,0x79,0xc6,0x16,0x74,0xc8,0x19,0x6f,0xcb,0x1c,0x6a,0xcd,0x1f,0x65,0xcf,0x22,0x5f,0xd1,0x25,0x5a,0xd4,0x28,0x55,0xd6,0x2b,0x50,0xd8,0x2e,0x4b,0xda,0x31,0x45,0xdd,0x34,0x40,0xdf,0x37,0x3b,0xe0,0x39,0x31,0xe1,0x3c,0x2f,0xe2,0x40,0x2c,0xe3,0x43,0x2a,0xe4,0x47,0x27,0xe5,0x4a,0x25,0xe6,0x4e,0x22,0xe7,0x51,0x20,0xe7,0x55,0x1d,0xe8,0x58,0x1b,0xe9,0x5c,0x18,0xea,0x5f,0x16,0xeb,0x63,0x13,0xec,0x66,0x11,0xed,0x6a,0x0e,0xee,0x6d,0x0c,0xef,0x70,0x0c,0xf0,0x74,0x0c,0xf0,0x77,0x0c,0xf1,0x7b,0x0c,0xf1,0x7f,0x0c,0xf2,0x82,0x0c,0xf2,0x86,0x0c,0xf3,0x8a,0x0c,0xf3,0x8d,0x0d,0xf4,0x91,0x0d,0xf4,0x95,0x0d,0xf5,0x98,0x0d,0xf5,0x9c,0x0d,0xf6,0xa0,0x0d,0xf6,0xa3,0x0d,0xf7,0xa7,0x0d,0xf7,0xab,0x0d,0xf8,0xaf,0x0e,0xf8,0xb2,0x0f,0xf9,0xb6,0x10,0xf9,0xb9,0x12,0xfa,0xbd,0x13,0xfa,0xc0,0x14,0xfb,0xc4,0x15,0xfb,0xc7,0x16,0xfc,0xcb,0x17,0xfc,0xce,0x18,0xfd,0xd2,0x19,0xfd,0xd5,0x1b,0xfe,0xd9,0x1c,0xfe,0xdc,0x1d,0xff,0xe0,0x1e,0xff,0xe3,0x27,0xff,0xe5,0x35,0xff,0xe7,0x43,0xff,0xe9,0x51,0xff,0xea,0x5f,0xff,0xec,0x6d,0xff,0xee,0x7b,0xff,0xf0,0x89,0xff,0xf2,0x97,0xff,0xf4,0xa5,0xff,0xf6,0xb3,0xff,0xf8,0xc1,0xff,0xf9,0xcf,0xff,0xfb,0xdd,0xff,0xfd,0xeb,0xff,0xff,0xf5};
|
1
palettes/Rainbow.h
Normal file
1
palettes/Rainbow.h
Normal file
|
@ -0,0 +1 @@
|
|||
static unsigned char palette_Rainbow[]={0x01,0x03,0x4a,0x00,0x03,0x4a,0x00,0x03,0x4b,0x00,0x03,0x4b,0x00,0x03,0x4c,0x00,0x03,0x4c,0x00,0x03,0x4d,0x00,0x03,0x4f,0x00,0x03,0x52,0x00,0x05,0x55,0x00,0x07,0x58,0x00,0x0a,0x5b,0x00,0x0e,0x5e,0x00,0x13,0x62,0x00,0x16,0x64,0x00,0x19,0x67,0x00,0x1c,0x6a,0x00,0x20,0x6d,0x00,0x23,0x70,0x00,0x26,0x74,0x00,0x28,0x77,0x00,0x2a,0x7b,0x00,0x2d,0x80,0x00,0x31,0x85,0x00,0x32,0x86,0x00,0x33,0x88,0x00,0x34,0x89,0x00,0x35,0x8b,0x00,0x36,0x8e,0x00,0x37,0x90,0x00,0x38,0x91,0x00,0x3a,0x95,0x00,0x3d,0x9a,0x00,0x3f,0x9c,0x00,0x41,0x9f,0x00,0x42,0xa1,0x00,0x44,0xa4,0x00,0x45,0xa7,0x00,0x47,0xaa,0x00,0x49,0xae,0x00,0x4b,0xb3,0x00,0x4c,0xb5,0x00,0x4e,0xb8,0x00,0x4f,0xbb,0x00,0x50,0xbc,0x00,0x51,0xbe,0x00,0x54,0xc2,0x00,0x57,0xc6,0x00,0x58,0xc8,0x00,0x5a,0xcb,0x00,0x5c,0xcd,0x00,0x5e,0xcf,0x00,0x5e,0xd0,0x00,0x5f,0xd1,0x00,0x60,0xd2,0x00,0x61,0xd3,0x00,0x63,0xd6,0x00,0x66,0xd9,0x00,0x67,0xda,0x00,0x68,0xdb,0x00,0x69,0xdc,0x00,0x6b,0xdd,0x00,0x6d,0xdf,0x00,0x6f,0xdf,0x00,0x71,0xdf,0x00,0x73,0xde,0x00,0x75,0xdd,0x00,0x76,0xdc,0x01,0x78,0xdb,0x01,0x7a,0xd9,0x02,0x7c,0xd8,0x02,0x7e,0xd6,0x03,0x81,0xd4,0x03,0x83,0xcf,0x04,0x84,0xcd,0x04,0x85,0xca,0x04,0x86,0xc5,0x05,0x88,0xc0,0x06,0x8a,0xb9,0x07,0x8d,0xb2,0x08,0x8e,0xac,0x0a,0x90,0xa6,0x0a,0x90,0xa2,0x0b,0x91,0x9e,0x0c,0x92,0x99,0x0d,0x93,0x95,0x0f,0x95,0x8c,0x11,0x97,0x84,0x16,0x99,0x78,0x19,0x9a,0x73,0x1c,0x9c,0x6d,0x22,0x9e,0x65,0x28,0xa0,0x5e,0x2d,0xa2,0x56,0x33,0xa4,0x4f,0x3b,0xa7,0x45,0x43,0xab,0x3c,0x48,0xad,0x36,0x4e,0xaf,0x30,0x53,0xb1,0x2b,0x59,0xb3,0x27,0x5d,0xb5,0x23,0x62,0xb7,0x1f,0x69,0xb9,0x1a,0x6d,0xbb,0x17,0x71,0xbc,0x15,0x76,0xbd,0x13,0x7b,0xbf,0x11,0x80,0xc1,0x0e,0x86,0xc3,0x0c,0x8a,0xc4,0x0a,0x8e,0xc5,0x08,0x92,0xc6,0x06,0x97,0xc8,0x05,0x9b,0xc9,0x04,0xa0,0xcb,0x03,0xa4,0xcc,0x02,0xa9,0xcd,0x02,0xad,0xce,0x01,0xaf,0xcf,0x01,0xb2,0xcf,0x01,0xb8,0xd0,0x00,0xbe,0xd2,0x00,0xc1,0xd3,0x00,0xc4,0xd4,0x00,0xc7,0xd4,0x00,0xca,0xd5,0x01,0xcf,0xd6,0x02,0xd4,0xd7,0x03,0xd7,0xd6,0x03,0xda,0xd6,0x03,0xdc,0xd5,0x03,0xde,0xd5,0x04,0xe0,0xd4,0x04,0xe1,0xd4,0x05,0xe2,0xd4,0x05,0xe5,0xd3,0x05,0xe8,0xd3,0x06,0xe8,0xd3,0x06,0xe9,0xd3,0x06,0xea,0xd2,0x06,0xeb,0xd2,0x07,0xec,0xd1,0x07,0xed,0xd0,0x08,0xef,0xce,0x08,0xf1,0xcc,0x09,0xf2,0xcb,0x09,0xf4,0xca,0x0a,0xf4,0xc9,0x0a,0xf5,0xc8,0x0a,0xf5,0xc7,0x0b,0xf6,0xc6,0x0b,0xf7,0xc5,0x0c,0xf8,0xc2,0x0d,0xf9,0xbf,0x0e,0xfa,0xbd,0x0e,0xfb,0xbb,0x0f,0xfb,0xb9,0x10,0xfc,0xb7,0x11,0xfc,0xb2,0x12,0xfd,0xae,0x13,0xfd,0xab,0x13,0xfe,0xa8,0x14,0xfe,0xa5,0x15,0xfe,0xa4,0x15,0xff,0xa3,0x16,0xff,0xa1,0x16,0xff,0x9f,0x17,0xff,0x9d,0x17,0xff,0x9b,0x18,0xff,0x95,0x19,0xff,0x8f,0x1b,0xff,0x8b,0x1c,0xff,0x87,0x1e,0xff,0x83,0x1f,0xff,0x7f,0x20,0xff,0x76,0x22,0xff,0x6e,0x24,0xff,0x68,0x25,0xff,0x65,0x26,0xff,0x63,0x27,0xff,0x5d,0x28,0xff,0x58,0x2a,0xfe,0x52,0x2b,0xfe,0x4d,0x2d,0xfe,0x45,0x2f,0xfe,0x3e,0x31,0xfd,0x39,0x32,0xfd,0x35,0x34,0xfc,0x31,0x35,0xfc,0x2d,0x37,0xfb,0x27,0x39,0xfb,0x21,0x3b,0xfb,0x20,0x3c,0xfb,0x1f,0x3c,0xfb,0x1e,0x3d,0xfb,0x1d,0x3d,0xfb,0x1c,0x3e,0xfa,0x1b,0x3f,0xfa,0x1b,0x41,0xf9,0x1a,0x42,0xf9,0x1a,0x44,0xf8,0x19,0x46,0xf8,0x18,0x49,0xf7,0x18,0x4b,0xf7,0x19,0x4d,0xf7,0x19,0x4f,0xf7,0x1a,0x51,0xf7,0x20,0x53,0xf7,0x23,0x55,0xf7,0x26,0x56,0xf7,0x2a,0x58,0xf7,0x2e,0x5a,0xf7,0x32,0x5c,0xf8,0x37,0x5e,0xf8,0x3b,0x60,0xf8,0x40,0x62,0xf8,0x48,0x65,0xf9,0x51,0x68,0xf9,0x57,0x6a,0xfa,0x5d,0x6c,0xfa,0x5f,0x6d,0xfa,0x62,0x6e,0xfa,0x64,0x6f,0xfb,0x65,0x70,0xfb,0x66,0x71,0xfb,0x6d,0x75,0xfc,0x74,0x79,0xfc,0x79,0x7b,0xfd,0x7e,0x7e,0xfd,0x82,0x80,0xfe,0x87,0x83,0xfe,0x8b,0x85,0xfe,0x90,0x88,0xfe,0x97,0x8c,0xff,0x9e,0x90,0xff,0xa3,0x92,0xff,0xa8,0x95,0xff,0xad,0x98,0xff,0xb0,0x99,0xff,0xb2,0x9b,0xff,0xb8,0xa0,0xff,0xbf,0xa5,0xff,0xc3,0xa8,0xff,0xc7,0xac,0xff,0xcb,0xaf,0xff,0xcf,0xb3,0xff,0xd3,0xb6,0xff,0xd8,0xb9,0xff,0xda,0xbe,0xff,0xdc,0xc4,0xff,0xde,0xc8,0xff,0xe1,0xca,0xff,0xe3,0xcc,0xff,0xe6,0xce,0xff,0xe9,0xd0};
|
11
plank.h
Normal file
11
plank.h
Normal file
|
@ -0,0 +1,11 @@
|
|||
// -- define Flir calibration values ---------------
|
||||
// exiftool -plan* FLIROne-2015-11-30-17-26-48+0100.jpg
|
||||
|
||||
#define PlanckR1 16528.178
|
||||
#define PlanckB 1427.5
|
||||
#define PlanckF 1.0
|
||||
#define PlanckO -1307.0
|
||||
#define PlanckR2 0.012258549
|
||||
|
||||
#define TempReflected 20.0 // Reflected Apparent Temperature [°C]
|
||||
#define Emissivity 0.95 // Emissivity of object
|
Loading…
Reference in a new issue