Commit 31093b73b1f56db3382d3a58fdd6e8c0e49781e6
1 parent
9c066355
Home screen finally displayed
Showing
6 changed files
with
85 additions
and
7 deletions
Show diff stats
.gitignore
img/home.bmp
No preview for this file type
img/home.xcf
No preview for this file type
@@ -12,9 +12,9 @@ int main(void) | @@ -12,9 +12,9 @@ int main(void) | ||
12 | { | 12 | { |
13 | int ret; | 13 | int ret; |
14 | pthread_t tUI; | 14 | pthread_t tUI; |
15 | - pthread_t tNFC; | 15 | + //pthread_t tNFC; |
16 | pthread_t tBUS; | 16 | pthread_t tBUS; |
17 | - pthread_t tHVC; | 17 | + //pthread_t tHVC; |
18 | initUILog(); | 18 | initUILog(); |
19 | if(!initLog()) | 19 | if(!initLog()) |
20 | { | 20 | { |
@@ -25,25 +25,25 @@ int main(void) | @@ -25,25 +25,25 @@ int main(void) | ||
25 | printx(DEBUG, MAIN, "Creating processes\n"); | 25 | printx(DEBUG, MAIN, "Creating processes\n"); |
26 | ret = pthread_create(&tUI, NULL, drawUI, NULL); | 26 | ret = pthread_create(&tUI, NULL, drawUI, NULL); |
27 | printx(DEBUG, MAIN, "UI Started ID %08x ret %d\n", tUI, ret); | 27 | printx(DEBUG, MAIN, "UI Started ID %08x ret %d\n", tUI, ret); |
28 | - printx(INFO, MAIN, "Initializing NFC\n"); | 28 | + printx(INFO, MAIN, "Initializing NFC\n");/* |
29 | if(!initNFC()) | 29 | if(!initNFC()) |
30 | { | 30 | { |
31 | printx(ERROR, MAIN, "Unable to start the NFC interface\n"); | 31 | printx(ERROR, MAIN, "Unable to start the NFC interface\n"); |
32 | return 2; | 32 | return 2; |
33 | } | 33 | } |
34 | - pthread_create(&tNFC, NULL, processNFC, NULL); | 34 | + pthread_create(&tNFC, NULL, processNFC, NULL);*/ |
35 | if(!initBus()) | 35 | if(!initBus()) |
36 | { | 36 | { |
37 | printx(ERROR, MAIN, "Unable to start the BUS interface\n"); | 37 | printx(ERROR, MAIN, "Unable to start the BUS interface\n"); |
38 | return 3; | 38 | return 3; |
39 | } | 39 | } |
40 | - pthread_create(&tBUS, NULL, processBus, NULL); | 40 | + pthread_create(&tBUS, NULL, processBus, NULL);/* |
41 | if(!initHVC()) | 41 | if(!initHVC()) |
42 | { | 42 | { |
43 | printx(ERROR, MAIN, "Unable to start the HVC interface\n"); | 43 | printx(ERROR, MAIN, "Unable to start the HVC interface\n"); |
44 | return 4; | 44 | return 4; |
45 | } | 45 | } |
46 | - pthread_create(&tHVC, NULL, processHVC, NULL); | 46 | + pthread_create(&tHVC, NULL, processHVC, NULL);*/ |
47 | //initProcessHeat(); | 47 | //initProcessHeat(); |
48 | 48 | ||
49 | pthread_join(tUI, NULL); | 49 | pthread_join(tUI, NULL); |
@@ -8,8 +8,79 @@ | @@ -8,8 +8,79 @@ | ||
8 | #define PRODUCT_ID 0xa001 | 8 | #define PRODUCT_ID 0xa001 |
9 | #define ENDPOINT_OUT 0x01 | 9 | #define ENDPOINT_OUT 0x01 |
10 | #define MAX_SIZE_OUT 64 | 10 | #define MAX_SIZE_OUT 64 |
11 | +#define HEIGHT 240 | ||
12 | +#define WIDTH 320 | ||
11 | 13 | ||
12 | -libusb_device_handle* screenHandle; | 14 | +libusb_device_handle* screenHandle; |
15 | +unsigned char data[MAX_SIZE_OUT]; | ||
16 | +unsigned short dataPointer = 0; | ||
17 | + | ||
18 | +void fillDataWithHeader(void) | ||
19 | +{ | ||
20 | + data[dataPointer] = 0x82; // HEADER | ||
21 | + dataPointer++; | ||
22 | + data[dataPointer] = 0x00; // XPOS | ||
23 | + dataPointer++; | ||
24 | + data[dataPointer] = 0x00; // XPOS | ||
25 | + dataPointer++; | ||
26 | + data[dataPointer] = 0x00; // YPOS | ||
27 | + dataPointer++; | ||
28 | + data[dataPointer] = 0x00; // YPOS | ||
29 | + dataPointer++; | ||
30 | + data[dataPointer] = 0x40; // Width 0x40 | ||
31 | + dataPointer++; | ||
32 | + data[dataPointer] = 0x01; // Width 0x01 | ||
33 | + dataPointer++; | ||
34 | + data[dataPointer] = 0xF0; // Height | ||
35 | + dataPointer++; | ||
36 | + data[dataPointer] = 0x00; // Height | ||
37 | + dataPointer++; | ||
38 | + data[dataPointer] = 0x00; // Copy | ||
39 | + dataPointer++; | ||
40 | +} | ||
41 | + | ||
42 | +void fillDataWithSubHeader(void) | ||
43 | +{ | ||
44 | + data[dataPointer] = 0x02; // HEADER | ||
45 | + dataPointer++; | ||
46 | +} | ||
47 | + | ||
48 | +void sendUSBData(int i) | ||
49 | +{ | ||
50 | + printf("Sending data %d\n", i); | ||
51 | + int transfered; | ||
52 | + libusb_bulk_transfer(screenHandle, ENDPOINT_OUT, data, dataPointer, &transfered, 0); | ||
53 | + dataPointer = 0; | ||
54 | + fillDataWithSubHeader(); | ||
55 | +} | ||
56 | + | ||
57 | +void displayPicture(char* filename) | ||
58 | +{ | ||
59 | + FILE* file = NULL; | ||
60 | + file = fopen(filename, "r"); | ||
61 | + | ||
62 | + if(file == NULL) | ||
63 | + { | ||
64 | + printf("Unable to open the picture\n"); | ||
65 | + return; | ||
66 | + } | ||
67 | + else | ||
68 | + printf("Picture successfully opened\n"); | ||
69 | + | ||
70 | + fillDataWithHeader(); | ||
71 | + for(int i=0; i<HEIGHT*WIDTH*2; i++) | ||
72 | + { | ||
73 | + if(feof(file)) | ||
74 | + { | ||
75 | + printf("File corrupted\n"); | ||
76 | + return; | ||
77 | + } | ||
78 | + data[dataPointer] = getc(file); | ||
79 | + dataPointer++; | ||
80 | + if(dataPointer == MAX_SIZE_OUT) | ||
81 | + sendUSBData(i); | ||
82 | + } | ||
83 | +} | ||
13 | 84 | ||
14 | bool initUSB(void) | 85 | bool initUSB(void) |
15 | { | 86 | { |
@@ -95,6 +166,8 @@ bool initUSB(void) | @@ -95,6 +166,8 @@ bool initUSB(void) | ||
95 | 166 | ||
96 | libusb_free_config_descriptor(dConfig); | 167 | libusb_free_config_descriptor(dConfig); |
97 | 168 | ||
169 | + displayPicture("home.rgb"); | ||
170 | + | ||
98 | return true; | 171 | return true; |
99 | } | 172 | } |
100 | 173 |