Mostly minor fixes up until version 0.8.10.
[irreco.git] / irtrans / irserver / src / common / remote.h
blobddbccbc9081820171b9e9a3b433ac6f21385b04a
1 /*
2 * Copyright (c) 2007, IRTrans GmbH
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of IRTrans GmbH nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
16 * THIS SOFTWARE IS PROVIDED BY IRTrans GmbH ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL IRTrans GmbH BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 #ifdef WIN32
31 typedef unsigned char uint8_t;
32 typedef unsigned int uint32_t;
33 typedef unsigned short uint16_t;
35 typedef char int8_t;
36 typedef short int16_t;
37 typedef int int32_t;
38 typedef unsigned int uint32_t;
39 #endif
41 #ifdef _HCS12
43 typedef INT8 int8_t;
44 typedef UINT8 uint8_t;
46 typedef UINT16 uint16_t;
47 typedef INT16 int16_t;
49 typedef UINT32 uint32_t;
51 #endif
53 typedef uint8_t byte;
54 typedef uint16_t word;
56 #ifdef _HCS12
57 #define CODE_LEN 174
59 #else
60 #ifndef AVR
61 #pragma pack(1)
62 #define CODE_LEN 176 // 2 Byte mehr für String-Ende 0
63 #else
64 #ifdef REMOTECONTROL
65 #define CODE_LEN 20
66 #else
67 #define CODE_LEN 174
68 #endif
69 #endif
70 #endif
73 #ifdef AMEX
74 #define VCC_THRESHOLD 180
75 #else
76 #define VCC_THRESHOLD 210
77 #endif
79 #define LAN_TIMEOUT_VAL 60
81 #define TIME_LEN 8
82 #define RAW_EXTRA TIME_LEN * 4 + 2
83 #define CODE_LENRAW (CODE_LEN + RAW_EXTRA - 2)
84 #define OLD_LENRAW (CODE_LEN + (6 * 4 + 2) - 2)
85 #define MAXLCDLEN 170
89 typedef struct {
90 byte len; // 0
91 byte checksumme; // 1
92 byte command; // 2
94 byte address; // 3
95 word target_mask; // 4
97 byte ir_length; // 6
98 byte transmit_freq; // 7
99 byte mode; // 8
101 int16_t pause_len[TIME_LEN]; // 9
102 int16_t pulse_len[TIME_LEN]; // 25
103 byte time_cnt; // 41
104 byte ir_repeat; // 42
105 byte repeat_pause; // 43
107 byte data[CODE_LEN]; // 44
108 } IRDATA;
111 #ifndef AVR
113 typedef struct {
114 word crc;
115 byte errcnt;
116 byte dummy;
117 byte cryptstart;
118 byte cryptend;
119 word magic;
120 word pagesize;
121 word pagecnt;
122 word data[65536];
123 } FLASH_IR_DATA;
126 #define IR_MAGIC 0x7a8e
128 #endif
130 #define FLASH_TYPE_LAN 0xff01
131 #define FLASH_TYPE_IRDB 0xff02
132 #define FLASH_TYPE_IRDBAUX 0xff03
134 #define SENDMASK_LEN 16
136 #define COMMAND_LAN 200
137 #define COMMAND_FLASH_START 201
138 #define COMMAND_FLASH_DATA 202
139 #define COMMAND_FLASH_END 203
140 #define COMMAND_FLASH_ACK 204
141 #define COMMAND_FLASH_CANCEL 205
142 #define COMMAND_FLASH_HTML 206
143 #define COMMAND_SEND_RS232 207
144 #define COMMAND_FLASH_ACK_1 208
145 #define COMMAND_FLASH_ACK_2 209
146 #define COMMAND_FLASH_CRC 210
147 #define COMMAND_FLASH_IR 211
149 #define COMMAND_LAN_SENDSTRING 's'
150 #define COMMAND_LAN_PING 'p'
151 #define COMMAND_LAN_SENDCCF 'c'
156 #define RESULT_IR_BROADCAST 230
157 #define RESULT_GETVERSION 231
158 #define RESULT_DEVSTATUS 232
159 #define RESULT_EEPROM 233
160 #define RESULT_RESET 234
161 #define RESULT_IRDBSTATUS 235
162 #define RESULT_REMOTELIST 236
163 #define RESULT_COMMANDLIST 237
164 #define RESULT_IR_RECEIVE 238
165 #define RESULT_UDP_FORMAT 239
166 #define RESULT_FLASH 240
167 #define RESULT_ALIVE 241
168 #define RESULT_LEARN 242
169 #define RESULT_READ_EEPROM 243
170 #define RESULT_WAKE_ON_LAN 244
171 #define RESULT_PING_OK 245
172 #define RESULT_IR_HOSTBROADCAST 246
173 #define RESULT_IR_BROADCAST_LED 247
174 #define RESULT_AUX_FORMAT 248
175 #define RESULT_ANALOG_INPUT 249
178 #define ADR_LANPARM 256
179 #define LEN_LANPARM (sizeof (LAN_PARAMETER)-3) // LEN = 21
180 #define ADR_SYSPARM (ADR_LANPARM+LEN_LANPARM)
181 #define LEN_SYSPARM (sizeof (SYS_PARAMETER)-4) // LEN = 191 -> capabilities not stored in EEPROM
182 #define ADR_WAKEMAC (ADR_LANPARM+LEN_LANPARM+164)
183 #define ADR_TIMER (ADR_SYSPARM+LEN_SYSPARM)
184 #define LEN_TIMER sizeof (TIMER_ENTRY_GET) // LEN = 117
186 typedef struct {
187 uint8_t mode;
188 uint8_t status;
189 uint8_t year;
190 uint8_t month;
191 uint8_t day;
192 uint8_t hour;
193 uint8_t min;
194 uint8_t weekday;
195 uint32_t next_time;
196 } TIMER_ENTRY;
198 typedef struct {
199 uint8_t len;
200 TIMER_ENTRY tim;
201 uint8_t remote[81];
202 uint8_t ircommand[21];
203 uint8_t ledselect;
204 uint16_t targetmask;
205 } TIMER_ENTRY_GET;
207 typedef struct {
208 uint8_t len;
209 uint8_t checksumme;
210 uint8_t command;
211 uint8_t mode;
212 TIMER_ENTRY tim;
213 uint8_t remote[81];
214 uint8_t ircommand[21];
215 uint8_t ledselect;
216 uint16_t targetmask;
217 } TIMER_ENTRY_STORE;
219 typedef struct {
220 uint8_t len;
221 uint8_t checksumme;
222 uint8_t command;
224 uint8_t cmd_str[80 + 20 + 10];
225 } IRCOMMAND_STRING;
228 typedef struct {
229 uint8_t len;
230 uint8_t checksumme;
231 uint8_t command;
233 uint8_t remote[81];
234 uint8_t ircommand[121];
235 uint16_t mask;
236 uint8_t ledselect;
237 } IRCOMMAND_BUF;
239 typedef struct {
240 uint8_t len;
241 uint8_t checksumme;
242 uint8_t command;
243 uint8_t dummy;
245 uint16_t start;
246 uint8_t remote[81];
247 } IRDBLIST_BUF;
250 typedef struct {
251 word adr;
252 word len;
253 word flash_adr;
254 word page;
255 word crc;
256 } FLASH_BLOCK;
258 typedef struct {
259 word crc;
260 word type;
261 FLASH_BLOCK dir[12];
262 } FLASH_TABLE;
264 #define FLASH_TABLE_LEN ((sizeof (FLASH_TABLE) + 1) / 2)
266 typedef struct {
267 uint8_t netcommand;
268 word adr;
269 word len;
270 uint8_t data[512];
271 } IRDATA_LAN_FLASH;
273 typedef struct {
274 uint8_t netcommand;
275 uint8_t mode;
276 uint16_t timeout;
277 uint32_t sendmask[SENDMASK_LEN];
278 IRDATA ir_data;
279 } IRDATA_LAN;
281 typedef struct {
282 uint8_t netcommand;
283 uint8_t mode;
284 uint16_t timeout;
285 uint32_t sendmask[SENDMASK_LEN];
286 IRDATA ir_data;
287 byte buffer[256];
288 } IRDATA_LAN_LARGE;
290 typedef struct {
291 uint8_t netcommand;
292 IRDATA ir_data;
293 } IRDATA_LAN_SHORT;
295 typedef struct {
296 byte len;
297 byte checksumme;
298 byte command;
299 word adr;
300 byte data[200];
301 } IRDATA_EEPROM;
303 typedef struct {
304 uint8_t netcommand;
305 uint8_t len;
306 uint8_t ir_version[8];
307 uint32_t ir_capabilities;
308 uint32_t ir_serno;
309 uint8_t lan_version[8];
310 uint8_t mac_adr[6];
311 } GETVERSION_LAN;
313 typedef struct {
314 uint32_t access_ip[8]; // 0 // Erlaubte Input IPs
315 uint32_t access_mask[8]; // 32 // Netmask dazu
316 uint32_t ir_relay_from[16]; // 64 // IR Relay von diesen Adressen erlaubt
317 uint32_t ir_relay_to[8]; // 128 // Output wird zusätzlich zum Broadcast an diese IPs gesendet
318 uint32_t udp_str_adr; // 160
319 uint8_t wakeonlan_mac[6]; // 164 // Zielhost für WakeOnLAN Pakete (PowerOn)
320 int8_t password[12]; // 170
321 uint8_t broadcast_relay; // 182
322 uint8_t udp_format_len; // 183
323 uint16_t udp_port; // 184
324 uint8_t tz; // 186
325 uint32_t ntp_ip; // 187
326 uint32_t ir_relay_led; // 191
327 uint32_t capabilities; // 195
328 } SYS_PARAMETER;
330 typedef struct {
331 uint8_t len;
332 SYS_PARAMETER sysparm;
333 } SYS_PARAMETER_GET;
335 typedef struct {
336 uint8_t len;
337 byte checksumme;
338 byte command;
339 byte mode;
340 SYS_PARAMETER sysparm;
341 } SYS_PARAMETER_STORE;
343 typedef struct {
344 uint8_t len;
345 byte checksumme;
346 byte command;
347 byte udplen;
348 byte str[100];
349 } UDP_FORMAT_STORE;
351 typedef struct {
352 uint8_t len;
353 uint8_t dhcp_flag;
354 uint8_t fallback_flag;
355 uint8_t mac_adr[6];
356 uint32_t ip_adr;
357 uint32_t ip_netmask;
358 uint32_t ip_gateway;
359 uint8_t eeprom_device_mode;
360 uint8_t eeprom_extended_mode;
361 uint8_t eeprom_extended_mode2;
362 } LAN_PARAMETER;
364 typedef struct {
365 uint8_t len;
366 byte checksumme;
367 byte command;
368 uint8_t dhcp_flag;
369 uint8_t fallback_flag;
370 uint8_t mac_adr[6];
371 uint32_t ip_adr;
372 uint32_t ip_netmask;
373 uint32_t ip_gateway;
374 } LAN_PARAMETER_STORE;
376 typedef struct {
377 byte len;
378 byte checksumme;
379 byte command;
381 byte address;
382 word target_mask;
384 byte ir_length;
385 byte transmit_freq;
386 byte mode;
388 word pause_len[6];
389 word pulse_len[6];
390 byte time_cnt;
391 byte ir_repeat;
392 byte repeat_pause;
394 byte data[CODE_LEN];
395 } IRDATA3;
397 typedef struct {
398 byte len;
399 byte checksumme;
400 byte command;
402 byte address;
403 word target_mask;
405 byte ir_length;
406 byte transmit_freq;
407 byte mode;
409 byte data[CODE_LENRAW];
410 } IRRAW;
412 typedef struct {
413 byte len;
414 byte checksumme;
415 byte command;
417 byte address;
418 word target_mask;
420 byte ir_length;
421 byte transmit_freq;
422 byte mode;
424 byte data[MAXLCDLEN];
425 } IRRAWLCD;
427 typedef struct {
428 uint8_t len;
429 uint8_t count_buffer;
430 int16_t offset;
431 int16_t count_total;
432 int8_t remotes[3][80];
433 } REMOTEBUFFER_INT;
435 typedef struct {
436 uint8_t len;
437 uint8_t count_buffer;
438 int16_t offset;
439 int16_t count_total;
440 int8_t commands[12][20];
441 } COMMANDBUFFER_INT;
443 typedef struct {
444 uint32_t target_mask;
445 uint32_t source_mask;
446 int8_t name[80];
447 } REMOTELINE;
449 typedef struct {
450 int16_t statuslen;
451 int16_t statustype;
452 int16_t offset;
453 int16_t count_buffer;
454 int16_t count_total;
455 int16_t count_remaining;
456 int8_t remotes[3][80];
457 } REMOTEBUFFER_TCP;
459 typedef struct {
460 int16_t statuslen;
461 int16_t statustype;
462 int16_t offset;
463 int16_t count_buffer;
464 int16_t count_total;
465 int16_t count_remaining;
466 REMOTELINE remotes[3];
467 } REMOTEBUFFER_SHORT;
470 typedef struct {
471 int16_t statuslen;
472 int16_t statustype;
473 int16_t offset;
474 int16_t count_buffer;
475 int16_t count_total;
476 int16_t count_remaining;
477 int8_t commands[12][20];
478 } COMMANDBUFFER_SHORT;
481 #define BROADCAST_UDP 1
482 #define BROADCAST_AUX 2
484 typedef struct {
485 uint8_t len;
486 uint8_t modeflags;
487 uint32_t ip;
488 uint16_t port;
489 uint8_t data[10];
490 } UDP_ASCII_RECEIVE;
492 typedef struct {
493 uint8_t len;
494 uint16_t action_adr;
495 uint16_t remote_adr;
496 uint32_t ip;
497 uint16_t port;
498 uint8_t modeflags;
499 uint8_t remote[80];
500 uint8_t command[20];
501 uint8_t ircommand[141];
502 } IRRECEIVE;
504 typedef struct {
505 int16_t statuslen;
506 int16_t statustype;
507 int16_t adress;
508 uint16_t command_num;
509 int8_t remote[80];
510 int8_t command[20];
511 int8_t data[141];
512 } NETWORKRECV_SHORT;
514 typedef struct {
515 uint8_t len;
516 uint8_t mode[8];
517 uint8_t value[8];
518 } ANALOG_INPUTS;
520 typedef struct {
521 uint8_t netcommand;
522 ANALOG_INPUTS ai;
523 } GET_ANALOG_INPUTS;
526 // Mode Flags
527 #define DEVMODE_PC 0
528 #define DEVMODE_SEND 1
529 #define DEVMODE_IR 2
530 #define DEVMODE_SBUS 4
531 #define DEVMODE_IGNORETOG 8
532 #define DEVMODE_SBUSCODE 16
533 #define DEVMODE_RAW 32
534 #define DEVMODE_RAWFAST 64
535 #define DEVMODE_REPEAT 128
537 // Extended Mode Flags
538 #define INTERNAL_LEDS 1
539 #define EXTERNAL_LEDS 2
540 #define STANDARD_RCV 4
541 #define BO_RCV 8
542 #define BO_MODE 16
543 #define SELF_REPEAT 32
544 #define INTERNAL_REPEAT 64
545 #define SBUS_UART 128 // Set: SBUS läuft über UART
547 // Extended Mode2 Flags
548 #define LRN_TIMEOUT_MASK 7 // Bit 0-2
549 #define SBUS_BAUD_MASK 24 // Bit 3-4
550 #define RS232_BAUD_MASK 96 // Bit 5-6
551 #define RS232_RTS_CTS 128 // Bit 7
554 #define LOCAL_MODE 16
555 #define RECEIVE_ALL 17
556 #define QUICK_MODE 32
557 #define RAW_MODE 64
558 #define REPEAT_MODE 128
559 #define IR_MODE 256
560 #define SBUS_MODE 512
561 #define INSTANT_MODE 1024
562 #define IDLE_WAIT 2048
564 #define LONG_LEARN_MODE 16
565 #define RECEIVER_SELECT_MASK 96
566 #define RECEIVER_SELECT_38 32
567 #define RECEIVER_SELECT_455 64
570 #define LONG_CODE_FLAG 128
571 #define LONG_CODE_LEN 8
572 #define USE_LONG_CODES 1
573 #define LONG_CODE_MODE_CAL 2
575 // Bereiche der Command Codes durch LEARN blockiert:
577 // 16 - 31
578 // 48 - 63
579 // 80 - 95
580 // 112 - 128
581 // 144 - 159
582 // 176 - 191
583 // 208 - 223
584 // 240 - 255
588 // Hier LEARN Command Codes
589 #define SBUS_LEARN 16
590 #define HOST_LEARNIR 18
591 #define SBUS_QUICKPARM 48
592 #define HOST_LEARNIRQUICK 50
593 #define SBUS_RAWMODE 80
594 #define HOST_LEARNIRRAW 82
595 #define SBUS_REPEATMODE 144
596 #define HOST_LEARNIRREPEAT 146
597 #define SBUS_RAWREPEATMODE 208
598 #define HOST_LEARNIRRAWREPEAT 210
601 // Hier Standard Command Codes
602 #define SBUS_REPEAT 1
603 #define HOST_VERSION 2
604 #define HOST_NETWORK_STATUS 3
605 #define SBUS_SEND 4
606 #define SBUS_RESEND 5
607 #define HOST_SEND 6
608 #define HOST_RESEND 7
610 #define LAN_REPEAT 32
611 #define PUT_SERIAL_DATA 33
612 #define READ_ANALOG_INPUTS 34
614 #define ASCII_SEND 100 // 'd'
616 #define SBUS_RESET 192
617 #define SBUS_PING 193
618 #define SBUS_PONG 194
619 #define SBUS_PARAMETER 196
620 #define HOST_SETMODE 197
621 #define SET_ID 199
622 #define SET_TRANSLATE_DATA 200
623 #define SBUS_TRANSLATE_DATA 201
624 #define READ_TRANSLATE_DATA 202
625 #define START_FLASH_MODE 203
626 #define TRANSFER_FLASH 204
627 #define SBUS_SET_MODE2 206
628 #define HOST_SET_MODE2 207
630 #define HOST_STORE_LANPARM 224
631 #define HOST_READ_LANPARM 225
632 #define HOST_STORE_FLASH 226
633 #define HOST_READ_FLASH 227
634 #define SEND_IRDB_STRING 228
635 #define SEND_IRDB_BLOCK 229
636 #define RESEND_IRDB_BLOCK 230
637 #define IRDB_REMLIST 231
638 #define IRDB_COMLIST 232
639 //#define HOST_STORE_UDPSTR 233
640 #define PING_IR_CONTROLLER 234
641 #define SET_POWER_LED 235
642 #define TEST_IRDB_BLOCK 236
643 #define GET_TIMER_PARAMETER 237
644 #define STORE_TIMER_PARAMETER 238
647 #define SEND SBUS_SEND
648 #define LEARN SBUS_LEARN
649 #define SETMODE SBUS_PARAMETER
651 #define ADRESS_MASK 15
652 #define ADRESS_LOCAL 16
653 #define ADRESS_ALL 32
654 #define ADRESS_LAN 64
657 #define START_BIT 1
658 #define REPEAT_START 2
659 #define START_MASK 3
660 #define RC5_DATA 4
661 #define RC6_DATA 8
662 #define IRDA_DATA 12
663 #define RAW_DATA 16
664 #define NO_TOGGLE 2
665 #define NO_TOGGLE_H 64
666 #define MACRO_DATA 32
669 #define LCD_BACKLIGHT 1
670 #define LCD_TEXT 2
673 #define LCD_INIT 4
674 #define LCD_SETTIME 8
675 #define LCD_DISPLAYTIME 16
676 #define LCD_DEFINECHAR 12
677 #define LCD_BRIGHTNESS 20
678 #define LCD_REFRESHDATE 24
680 #define LCD_DATA 32
682 #define TEMP_GET 1
683 #define TEMP_RESET 2
684 #define TEMP_DATA 64
685 #define NON_IRMODE 224
687 #define SWITCH_DATA 96
689 #define SHORT_PULSE 50
690 #define IR_CORRECT_455 1 // Entspricht 8 µs Korrektur
692 #ifdef B_O
693 #ifdef IR_CORRECT
694 #undef IR_CORRECT
695 #endif
696 #define IR_CORRECT IR_CORRECT_455
697 #else
698 #ifndef IR_CORRECT
699 #define IR_CORRECT 8 // Entspricht 64 µs Korrektur
700 #define IR_CORRECT_LOW 4 // Entspricht 24 µs Korrektur für kurze Pulse
701 #else
702 #define IR_CORRECT_LOW 0 // Entspricht 24 µs Korrektur für kurze Pulse
703 #endif
704 #endif
707 #define IR_TOLERANCE_BO 50 // Entspricht 280 µs Toleranz
708 #define IR_TOLERANCE 15 // Entspricht 120 µs Toleranz
709 #define RCX_TOLERANCE 19 // Entspricht 152 µs Toleranz
710 #define MAX_IR_REPEAT 5
711 #define RAW_TOLERANCE 20
713 #define EXT_LED_SELECT_1 4
714 #define EXT_LED_SELECT_2 8
715 #define EXT_LED_SELECT_3 12
716 #define EXT_LED_SELECT_4 16
717 #define EXT_LED_SELECT_5 20
718 #define EXT_LED_SELECT_6 24
719 #define EXT_LED_SELECT_7 28
720 #define EXT_LED_SELECT_8 32
722 #define EXT_LED_SELECT_MASK 60
726 #ifndef AVR
728 #define FN_IR 1
729 #define FN_SBUS 2
730 #define FN_SER 4
731 #define FN_USB 8
732 #define FN_POWERON 16
733 #define FN_B_O 32
734 #define FN_CALIBRATE 64
735 #define FN_SOFTID 128
736 #define FN_EEPROM 256
737 #define FN_TRANSL 512
738 #define FN_HWCARR 1024
739 #define FN_DUALRCV 2048
740 #define FN_SBUS_UART 4096
741 #define FN_FLASH128 8192
742 #define FN_DUALSND 16384
743 #define FN_DISP1 32768
744 #define FN_DISP2 0x10000
745 #define FN_DISP3 0x20000
746 #define FN_CLOCK 0x40000
747 #define FN_DEBOUNCE 0x80000
748 #define FN_BOOTLOADER 0x100000
749 #define FN_DUALPOWERON 0x200000
750 #define FN_USBWAKEUP 0x400000
751 #define FN_NOSCROLL 0x800000
752 #define FN_LAN 0x1000000
753 #define FN_IRDB 0x2000000
754 #define FN_LARGECPU 0x4000000
755 #define FN_MULTIRELAY4 0x8000000
756 #define FN_MULTISEND4 0x10000000
757 #define FN_MULTISEND8 0x20000000
758 #define FN_MULTISEND2 0x40000000
759 #define FN_HTML 0x80000000
762 #define FUNCTION_FLASH_MASK ~(FN_SBUS_UART | FN_CLOCK | FN_DEBOUNCE | FN_DUALPOWERON | FN_USBWAKEUP | FN_NOSCROLL | FN_TRANSL | FN_CALIBRATE)
764 #endif
766 #define START 1
767 #define REPEAT 2
770 typedef struct {
771 byte sbus_len;
772 byte sbus_checksumme;
773 byte sbus_command;
774 byte sbus_address;
775 byte mode;
776 word target_mask;
777 byte hotcode_len;
778 byte hotcode[CODE_LENRAW];
779 } MODE_BUFFER;
781 typedef struct {
782 byte sbus_len;
783 byte sbus_checksumme;
784 byte sbus_command;
785 byte sbus_address;
786 byte mode;
787 word target_mask;
788 byte hotcode_len;
789 byte extmode1;
790 byte extmode2;
791 char remote[81];
792 char command[21];
793 } MODE_BUFFER_LAN;
796 typedef struct {
797 byte sbus_len;
798 byte sbus_checksumme;
799 byte sbus_command;
800 byte sbus_address;
801 byte device_mode;
802 word send_mask;
803 byte version[10];
804 byte extended_mode;
805 uint32_t capabilities;
806 byte extended_mode2;
807 byte extended_mode3;
808 byte extended_mode4;
809 byte wake_mac[6];
810 char remote[81];
811 char command[21];
812 } STATUS_LINE_EX;
814 typedef struct {
815 byte sbus_len;
816 byte sbus_checksumme;
817 byte sbus_command;
818 byte sbus_address;
819 byte device_mode;
820 word send_mask;
821 byte version[10];
822 byte extended_mode;
823 uint32_t capabilities;
824 byte extended_mode2;
825 byte extended_mode3;
826 byte extended_mode4;
827 byte wake_mac[6];
828 } STATUS_LINE;
830 typedef struct {
831 byte sbus_len;
832 byte sbus_checksumme;
833 byte sbus_command;
834 byte sbus_address;
835 byte device_mode;
836 word send_mask;
837 byte version[10];
838 byte extended_mode;
839 uint32_t capabilities;
840 byte extended_mode2;
841 } STATUS_LINE_4;
843 typedef struct {
844 byte sbus_len;
845 byte sbus_checksumme;
846 byte sbus_command;
847 byte sbus_address;
848 byte device_mode;
849 word send_mask;
850 byte version[10];
851 byte extended_mode;
852 word capabilities;
853 } STATUS_LINE_3;
855 typedef struct {
856 byte sbus_len;
857 byte sbus_checksumme;
858 byte sbus_command;
859 byte sbus_address;
860 byte device_mode;
861 word send_mask;
862 byte version[10];
863 byte extended_mode;
864 } STATUS_LINE_2;
866 typedef struct {
867 byte sbus_len;
868 byte sbus_checksumme;
869 byte sbus_command;
870 byte sbus_address;
871 byte device_mode;
872 word send_mask;
873 byte version[10];
874 } STATUS_LINE_1;
876 typedef struct {
877 byte my_adress;
878 STATUS_LINE stat[16];
879 } STATUS_BUFFER;
881 typedef struct {
882 byte my_adress;
883 STATUS_LINE_1 stat[16];
884 } STATUS_BUFFER_1;
886 typedef struct {
887 byte my_adress;
888 STATUS_LINE_2 stat[16];
889 } STATUS_BUFFER_2;
891 typedef struct {
892 byte my_adress;
893 STATUS_LINE_3 stat[16];
894 } STATUS_BUFFER_3;
896 typedef struct {
897 byte my_adress;
898 STATUS_LINE_4 stat[16];
899 } STATUS_BUFFER_4;
901 typedef struct {
902 uint8_t netcommand;
903 STATUS_LINE_EX stat;
904 } STATUS_LINE_LAN;
906 #define LOGIN_NEEDED 128
907 #define DYNAMIC_LEN 64
908 #define EXTERNAL_FILE 32
909 #define RQ_DATA_CURRENT 16
910 #define MENU_NEEDED 8
912 #define CONTENT_MASK 7
914 #define CONTENT_HTML 1
915 #define CONTENT_PLAIN 2
916 #define CONTENT_GIF 3
917 #define CONTENT_JPEG 4
920 typedef struct {
921 char name[23];
922 byte filetype;
923 word adr;
924 word len;
925 uint32_t timestamp;
926 } HTTP_DIRENTRY;
928 typedef struct {
929 word count;
930 word magic;
931 HTTP_DIRENTRY dir[1];
932 } HTTP_DIRECTORY;
934 #define IRTRANS_PORT 21000