mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 19:59:50 +03:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ff77818e30 | |||
| 86c0515c46 | |||
| 293429d3a3 | |||
| 01ba615db8 | |||
| 1bfd2d98ef | |||
| c8c7356fae | |||
| 5b5e6e3d6a | |||
| 4fff338482 | |||
| 242db1552e | |||
| 0770e32b31 | |||
| 535e1be274 | |||
| 3c9e30b28a | |||
| 1133883b25 | |||
| e7dfee51b1 | |||
| 9eb22f4ea9 | |||
| 09831781aa | |||
| 340d54be09 | |||
| bcae3c9d50 | |||
| 1654f05bbe | |||
| 99466f6e9f | |||
| 05ea031977 | |||
| 5ec57f0414 | |||
| 7ab78ab2ae | |||
| 4d909dd449 | |||
|
|
b3db766b1a | ||
| 080cdd4e22 | |||
| 91d5acf619 | |||
| 454b88fbbf | |||
| 6e283e32db | |||
| 18fbc783b5 | |||
|
|
5235bb67c1 | ||
| 9683e51c18 | |||
| fd65c1a3a1 | |||
| 90298cd5a3 | |||
| 5719ba209a | |||
| 2e21362fd8 | |||
| fe054c3c4e | |||
| e3d84a1a02 | |||
| ca457a2a05 | |||
| 6d4f76c642 | |||
| 7251e229b6 | |||
|
|
e9355ef142 | ||
|
|
7836876fcd | ||
|
|
8e7bbee96a | ||
|
|
456f6b8ad4 | ||
| c4af5e92f9 | |||
|
|
896a22862f | ||
|
|
83e8639034 | ||
|
|
256ab175ce | ||
| 199a80cbb9 | |||
|
|
9204bd0898 | ||
|
|
df4bf02e8d | ||
|
|
45d925ba88 | ||
| 0a3bbcd7f9 | |||
|
|
1e58ad90eb | ||
| a0ad782257 | |||
| 65556ed39d | |||
| 7bf685a0d4 | |||
|
|
f6a57348eb | ||
|
|
e93e52702e | ||
|
|
6cd4f1d82a | ||
|
|
3907158437 |
23
README.md
23
README.md
@@ -1,5 +1,15 @@
|
|||||||
# LightHub
|
# LightHub
|
||||||
is Flexible, Arduino-Mega/Arduino DUE/ESP8266/ESP32 open-software and open-hardware SmartHome controller. [RU](https://geektimes.ru/post/295109/) [HOME-site RU](http://lazyhome.ru)
|
is Flexible, Arduino-Mega/Arduino DUE/ESP8266/ESP32 open-software and open-hardware SmartHome controller.
|
||||||
|
Useful links:
|
||||||
|
|
||||||
|
* [Article/RU](https://geektimes.ru/post/295109/)
|
||||||
|
|
||||||
|
* [HOME-site/RU](http://lazyhome.ru)
|
||||||
|
|
||||||
|
* [WIKI/RU](https://www.lazyhome.ru/dokuwiki/doku.php?id=start)
|
||||||
|
|
||||||
|
* [Doxigen autodocumentation for developers](https://anklimov.github.io/lighthub/docs/html/index.html) (litle bit outdated)
|
||||||
|
|
||||||
It may operate both:
|
It may operate both:
|
||||||
* On [especially designed hardware board](http://www.lazyhome.ru/index.php/featurerequest) with 16 optocoupled digital inputs, 16 ESD protected digital/analog Inputs/outputs, 8 open-collector outputs (up to 0.5A/50V), DMX IN/OUT, MODBUS RTU and hardware 1-wire support circuit.
|
* On [especially designed hardware board](http://www.lazyhome.ru/index.php/featurerequest) with 16 optocoupled digital inputs, 16 ESD protected digital/analog Inputs/outputs, 8 open-collector outputs (up to 0.5A/50V), DMX IN/OUT, MODBUS RTU and hardware 1-wire support circuit.
|
||||||
* On plain Arduino MEGA 2560, Arduino DUE, ESP8266, ESP32 and even on [Controllino](http://controllino.biz/)
|
* On plain Arduino MEGA 2560, Arduino DUE, ESP8266, ESP32 and even on [Controllino](http://controllino.biz/)
|
||||||
@@ -12,7 +22,7 @@ Lighthub allows connecting together:
|
|||||||
* Temperature/Humidity/CO2 sensors: DHT22, CS811, HDC1080 and any type of Modbus connected devices
|
* Temperature/Humidity/CO2 sensors: DHT22, CS811, HDC1080 and any type of Modbus connected devices
|
||||||
* Standard nonexpensive Relay board with TTL inputs, [like this](http://ali.pub/2zlosh) to control AC powered lamps, floor heaters, boilers etc
|
* Standard nonexpensive Relay board with TTL inputs, [like this](http://ali.pub/2zlosh) to control AC powered lamps, floor heaters, boilers etc
|
||||||
* [Standard nonexpensive LED dimmers](http://ali.pub/2zlokp) and [AC DMX-512 dimmers](http://ali.pub/2zlont)
|
* [Standard nonexpensive LED dimmers](http://ali.pub/2zlokp) and [AC DMX-512 dimmers](http://ali.pub/2zlont)
|
||||||
* Modbus RTU devices (Currently, possible to control two types of Modbus devices: AC Dimmer and Ventilation set (Based on [Vacon 10 controller](http://files.danfoss.com/download/Drives/Vacon-10-Quick-Guide-DPD00714F1-UK.pdf)) and configure polling of virtually any Modbus device.
|
* Modbus RTU devices (Currently, possible to control any type of Modbus devices - e.c dimmers, sensors, wall climate panels, HVAC e.t.c
|
||||||
* Simple DMX wall sensor panel [like this](http://ali.pub/2zlohe)
|
* Simple DMX wall sensor panel [like this](http://ali.pub/2zlohe)
|
||||||
|
|
||||||
[List of non-expensive compatible components from AliExpress here](http://ppv.alipromo.com/custom/promo.php?hash=pjagwaovaero6vkeabjpkpvy4gznbgkc&landing_id=39661)
|
[List of non-expensive compatible components from AliExpress here](http://ppv.alipromo.com/custom/promo.php?hash=pjagwaovaero6vkeabjpkpvy4gznbgkc&landing_id=39661)
|
||||||
@@ -36,6 +46,7 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
|
|||||||
* [Russian-language Wiki](https://www.lazyhome.ru/dokuwiki/doku.php)
|
* [Russian-language Wiki](https://www.lazyhome.ru/dokuwiki/doku.php)
|
||||||
* [Compiling and flashing](https://github.com/anklimov/lighthub/wiki/Compiling-and-flashing)
|
* [Compiling and flashing](https://github.com/anklimov/lighthub/wiki/Compiling-and-flashing)
|
||||||
* [Configuring](https://github.com/anklimov/lighthub/wiki/Configuring)
|
* [Configuring](https://github.com/anklimov/lighthub/wiki/Configuring)
|
||||||
|
* [Browser Plugin for searching and configure controllers](https://github.com/anklimov/zeroconf-lighthub)
|
||||||
* [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands)
|
* [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands)
|
||||||
* [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration)
|
* [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration)
|
||||||
* [Doxygen developers documentation](https://anklimov.github.io/lighthub/docs/html/index.html)
|
* [Doxygen developers documentation](https://anklimov.github.io/lighthub/docs/html/index.html)
|
||||||
@@ -43,14 +54,16 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
|
|||||||
|
|
||||||
# Platforms specific details:
|
# Platforms specific details:
|
||||||
|
|
||||||
**AVR** version (Arduino Mega) is basic, long time in production and have all functions
|
**AVR** version (Arduino Mega) is basic, long time in production and have most functions
|
||||||
* DMX-out is software (DMXSimple) on pin3, can be re-defined to PIN 18 (USART1 TX)
|
* DMX-out is software (DMXSimple) on pin3, can be re-defined to PIN 18 (USART1 TX)
|
||||||
* DMX-in - hardware
|
* DMX-in - hardware
|
||||||
* WIZNET 5100 and 5500 Ethernets are supported
|
* WIZNET 5100 and 5500 Ethernets are supported
|
||||||
* Modbus on USART2
|
* Modbus on USART2
|
||||||
|
* Very limited in terms of RAM available
|
||||||
|
* OptiBoot bootloader recommended
|
||||||
|
|
||||||
**SAM3X8E** (Arduino DUE): (Tested. In production. Recomended hardware at current moment)
|
**SAM3X8E** (Arduino DUE): (Tested. In production. Recomended hardware at current moment)
|
||||||
* default PWM out frequency
|
* Reachest funcionality from all possible options
|
||||||
* both, DMX-in and DMX-out are hardware USART based. Use USART1 (pins 18 and 19) for DMX-out and DMX-in
|
* both, DMX-in and DMX-out are hardware USART based. Use USART1 (pins 18 and 19) for DMX-out and DMX-in
|
||||||
* WIZNET 5100 and 5500 Ethernets are supported
|
* WIZNET 5100 and 5500 Ethernets are supported
|
||||||
* Modbus on USART2
|
* Modbus on USART2
|
||||||
@@ -58,7 +71,7 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
|
|||||||
**ESP8266, ESP32**: (Tested)
|
**ESP8266, ESP32**: (Tested)
|
||||||
* DMX-OUT on USART1 TX
|
* DMX-OUT on USART1 TX
|
||||||
* DMX-IN - disabled - not possible to deploy in ESP8266
|
* DMX-IN - disabled - not possible to deploy in ESP8266
|
||||||
* Modbus - disabled on ESP8266, Might be configured in future on USART0 instead CLI/DEBUG, on ESP32 binded with UART2
|
* Modbus - disabled on ESP8266, Might be configured on USART0 instead CLI/DEBUG, on ESP32 binded with UART2
|
||||||
* Uses Wifi interface instead wired connection
|
* Uses Wifi interface instead wired connection
|
||||||
|
|
||||||
**NRF52840** : Still early development stage
|
**NRF52840** : Still early development stage
|
||||||
|
|||||||
@@ -16,3 +16,4 @@
|
|||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-DOTA_PORT=80
|
-DOTA_PORT=80
|
||||||
|
-DMERCURY_ENABLE
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#
|
||||||
-DWIFI_ENABLE
|
-DWIFI_ENABLE
|
||||||
-DDMX_DISABLE
|
-DDMX_DISABLE
|
||||||
# - exeption in DMX.update/begin
|
# - exeption in DMX.update/begin
|
||||||
@@ -5,14 +6,14 @@
|
|||||||
#-DAC_DISABLE
|
#-DAC_DISABLE
|
||||||
-DMODBUS_DISABLE
|
-DMODBUS_DISABLE
|
||||||
#-DMBUS_DISABLE
|
#-DMBUS_DISABLE
|
||||||
-DCOUNTER_DISABLE
|
#-DCOUNTER_DISABLE
|
||||||
-DSYSLOG_ENABLE
|
-DSYSLOG_ENABLE
|
||||||
# - udp errors
|
# - udp errors
|
||||||
-DOTA
|
-DOTA
|
||||||
-DARDUINO_OTA_MDNS_DISABLE
|
-DARDUINO_OTA_MDNS_DISABLE
|
||||||
-DMDNS_ENABLE
|
-DMDNS_ENABLE
|
||||||
#- ArduinoMDNS didnt working
|
#- ArduinoMDNS didnt working
|
||||||
|
-D CANDRV
|
||||||
-DMCP23017
|
-DMCP23017
|
||||||
-DMODBUS_TX_PIN=13
|
-DMODBUS_TX_PIN=13
|
||||||
#-DARTNET_ENABLE - udp rx errors ((
|
#-DARTNET_ENABLE - udp rx errors ((
|
||||||
@@ -57,3 +58,4 @@
|
|||||||
-DMQTT_SOCKET_TIMEOUT=20
|
-DMQTT_SOCKET_TIMEOUT=20
|
||||||
-D CORS=\"*\"
|
-D CORS=\"*\"
|
||||||
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
||||||
|
#-DMERCURY_ENABLE
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
-DARTNET_ENABLE
|
-DARTNET_ENABLE
|
||||||
-DUSE_1W_PIN=16
|
-DUSE_1W_PIN=16
|
||||||
-DW5500_CS_PIN=15
|
-DW5500_CS_PIN=15
|
||||||
#-DPID_DISABLE
|
|
||||||
-DARDUINO_OTA_MDNS_DISABLE
|
-DARDUINO_OTA_MDNS_DISABLE
|
||||||
-DMDNS_ENABLE
|
-DMDNS_ENABLE
|
||||||
-DWM_MDNS
|
-DWM_MDNS
|
||||||
@@ -23,3 +22,28 @@
|
|||||||
|
|
||||||
#oct22 - violation in Publish/OnMQTTConnect while publish homie info
|
#oct22 - violation in Publish/OnMQTTConnect while publish homie info
|
||||||
-DNO_HOMIE
|
-DNO_HOMIE
|
||||||
|
|
||||||
|
#options to fit firmware to Sonoff-S26 (uncomment it)
|
||||||
|
|
||||||
|
##Disabling debug log and move I2C to 1-3 pins
|
||||||
|
#-DnoSerial
|
||||||
|
#-D TWI_SCL=1
|
||||||
|
#-D TWI_SDA=3
|
||||||
|
##Slimming firmware to fit 50% of 1m flash
|
||||||
|
-DDMX_DISABLE
|
||||||
|
-UARTNET_ENABLE
|
||||||
|
-DMODBUS_DISABLE
|
||||||
|
-DMBUS_DISABLE
|
||||||
|
-DOWIRE_DISABLE
|
||||||
|
-DCOUNTER_DISABLE
|
||||||
|
-DAC_DISABLE
|
||||||
|
-DMOTOR_DISABLE
|
||||||
|
-DMULTIVENT_DISABLE
|
||||||
|
-DHSV_DISABLE
|
||||||
|
-UMCP23017
|
||||||
|
-D BEARSSL_SSL_BASIC
|
||||||
|
-D SPILED_DISABLE
|
||||||
|
-D PWM_DISABLE
|
||||||
|
|
||||||
|
# WAK for HDC1080 (pin D3 on wemos is IO0)
|
||||||
|
-D WAK_PIN=D3
|
||||||
@@ -38,5 +38,6 @@
|
|||||||
-DOTA_PORT=80
|
-DOTA_PORT=80
|
||||||
-D CORS=\"*\"
|
-D CORS=\"*\"
|
||||||
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
||||||
#-D MERCURY_ENABLE
|
-D MERCURY_ENABLE
|
||||||
#-D IPMODBUS
|
#-D IPMODBUS
|
||||||
|
-D CONFIG_CLEAN_PIN=2
|
||||||
@@ -6,6 +6,12 @@
|
|||||||
-DARDUINO_OTA_MDNS_DISABLE
|
-DARDUINO_OTA_MDNS_DISABLE
|
||||||
-DMDNS_ENABLE
|
-DMDNS_ENABLE
|
||||||
|
|
||||||
|
-DNO_HOMIE
|
||||||
|
-DCSSHDC_DISABLE
|
||||||
|
-DSPILED_DISABLE
|
||||||
|
-DAC_DISABLE
|
||||||
|
|
||||||
|
|
||||||
-DRESTART_LAN_ON_MQTT_ERRORS
|
-DRESTART_LAN_ON_MQTT_ERRORS
|
||||||
-D CORS=\"*\"
|
-D CORS=\"*\"
|
||||||
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
-DPID_DISABLE
|
-DPID_DISABLE
|
||||||
-DOTA
|
-DOTA
|
||||||
-DMOTOR_DISABLE
|
-DMOTOR_DISABLE
|
||||||
|
-DMULTIVENT_DISABLE
|
||||||
#-DWiz5100
|
#-DWiz5100
|
||||||
-DARDUINO_OTA_MDNS_DISABLE
|
-DARDUINO_OTA_MDNS_DISABLE
|
||||||
-DMDNS_ENABLE
|
-DMDNS_ENABLE
|
||||||
@@ -26,3 +27,4 @@
|
|||||||
# Example of UARTBRIDGE configuration
|
# Example of UARTBRIDGE configuration
|
||||||
#-DUARTBRIDGE_ENABLE
|
#-DUARTBRIDGE_ENABLE
|
||||||
-DOTA_PORT=80
|
-DOTA_PORT=80
|
||||||
|
#-DMERCURY_ENABLE
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
-DMBUS_DISABLE
|
-DMBUS_DISABLE
|
||||||
#-DOWIRE_DISABLE
|
#-DOWIRE_DISABLE
|
||||||
-DDHT_DISABLE
|
-DDHT_DISABLE
|
||||||
-DCOUNTER_DISABLE
|
#-DCOUNTER_DISABLE
|
||||||
-DNO_HOMIE
|
-DNO_HOMIE
|
||||||
-DCSSHDC_DISABLE
|
-DCSSHDC_DISABLE
|
||||||
-DSPILED_DISABLE
|
-DSPILED_DISABLE
|
||||||
-DAC_DISABLE
|
-DAC_DISABLE
|
||||||
-DSYSLOG_ENABLE
|
-DSYSLOG_ENABLE
|
||||||
-DPID_DISABLE
|
-DPID_DISABLE
|
||||||
-DWiz5100
|
#-DWiz5100
|
||||||
-DMOTOR_DISABLE
|
-DMOTOR_DISABLE
|
||||||
-DOTA
|
-DOTA
|
||||||
-DARDUINO_OTA_MDNS_DISABLE
|
-DARDUINO_OTA_MDNS_DISABLE
|
||||||
@@ -27,4 +27,4 @@
|
|||||||
-DPID_DISABLE
|
-DPID_DISABLE
|
||||||
-DPWM_DISABLE
|
-DPWM_DISABLE
|
||||||
-DSPILED_DISABLE
|
-DSPILED_DISABLE
|
||||||
-DOW_DEVICES_LIMIT=17
|
#-DOW_DEVICES_LIMIT=17
|
||||||
@@ -16,3 +16,4 @@
|
|||||||
|
|
||||||
-D CORS=\"*\"
|
-D CORS=\"*\"
|
||||||
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
-D REDIRECTION_URL=\"http://lazyhome.ru/pwa\"
|
||||||
|
#-DMERCURY_ENABLE
|
||||||
@@ -37,3 +37,4 @@
|
|||||||
#HAL_ETH_MODULE_DISABLED
|
#HAL_ETH_MODULE_DISABLED
|
||||||
#HAL_SD_MODULE_DISABLED
|
#HAL_SD_MODULE_DISABLED
|
||||||
#HAL_DAC_MODULE_DISABLED
|
#HAL_DAC_MODULE_DISABLED
|
||||||
|
#-DMERCURY_ENABLE
|
||||||
48
build-flags/build_flags_stm32-noip
Normal file
48
build-flags/build_flags_stm32-noip
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
-DNOIP
|
||||||
|
-DDMX_DISABLE
|
||||||
|
-DMODBUS_DISABLE
|
||||||
|
-DMBUS_DISABLE
|
||||||
|
-DOWIRE_DISABLE
|
||||||
|
-DDHT_DISABLE
|
||||||
|
-DCOUNTER_DISABLE
|
||||||
|
-DNO_HOMIE
|
||||||
|
-DCSSHDC_DISABLE
|
||||||
|
-DSPILED_DISABLE
|
||||||
|
-DAC_DISABLE
|
||||||
|
-DPID_DISABLE
|
||||||
|
-DMULTIVENT_DISABLE
|
||||||
|
-DMOTOR_DISABLE
|
||||||
|
|
||||||
|
-D CANDRV
|
||||||
|
-D THERMOSTAT_CHECK_PERIOD=5000
|
||||||
|
-D ULTRASONIC
|
||||||
|
|
||||||
|
|
||||||
|
-DENABLE_HWSERIAL1
|
||||||
|
-DdebugSerialPort=Serial1
|
||||||
|
|
||||||
|
#-DFLASH_BASE_ADDRESS
|
||||||
|
#-DFLASH_DATA_SECTOR
|
||||||
|
#-DFLASH_PAGE_NUMBER
|
||||||
|
|
||||||
|
# -D PIO_FRAMEWORK_ARDUINO_ENABLE_MASS_STORAGE
|
||||||
|
# -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_AND_MSC
|
||||||
|
|
||||||
|
#-DdebugSerialPort=SerialUSB
|
||||||
|
#-DSerialPortType=USBSerial
|
||||||
|
#-DSERIAL_BAUD=0
|
||||||
|
|
||||||
|
#-DPIO_FRAMEWORK_ARDUINO_ENABLE_CDC
|
||||||
|
#-DUSBCON
|
||||||
|
#-DUSBD_VID=0x0483
|
||||||
|
#-DUSBD_PID=0x5740
|
||||||
|
#-DUSB_MANUFACTURER="Unknown"
|
||||||
|
#-DUSB_PRODUCT="\"BLUEPILL_F103C8\""
|
||||||
|
#-DHAL_PCD_MODULE_ENABLED
|
||||||
|
#-D USBD_USE_CDC
|
||||||
|
|
||||||
|
-D HAL_CAN_MODULE_ENABLED
|
||||||
|
#HAL_ETH_MODULE_DISABLED
|
||||||
|
#HAL_SD_MODULE_DISABLED
|
||||||
|
#HAL_DAC_MODULE_DISABLED
|
||||||
|
#-DMERCURY_ENABLE
|
||||||
513
compiled/DUE_16u2_reflash/16u2-italiano.hex
Normal file
513
compiled/DUE_16u2_reflash/16u2-italiano.hex
Normal file
@@ -0,0 +1,513 @@
|
|||||||
|
:20000000A7C00000C0C00000BEC00000BCC00000BAC00000B8C00000B6C00000B4C0000023
|
||||||
|
:20002000B2C00000B0C00000AEC00000B8C400007CC40000A8C00000A6C00000A4C0000082
|
||||||
|
:20004000A2C00000A0C000009EC000009CC000009AC0000098C0000096C0000021C100003A
|
||||||
|
:2000600092C0000090C000008EC000008CC000008AC0000088C0000086C0000084C0000028
|
||||||
|
:2000800082C0000080C000007EC000007CC000007AC0000078C000001201100102000008C4
|
||||||
|
:2000A00041233D0001000102DC0109023E00020100C0320904000001020201000524000143
|
||||||
|
:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC
|
||||||
|
:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA
|
||||||
|
:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D
|
||||||
|
:200120002E03410072006400750069006E006F0020004400750065002000500072006F002D
|
||||||
|
:2001400067002E00200050006F0072007400000011241FBECFEFD2E0DEBFCDBF11E0A0E029
|
||||||
|
:20016000B1E0E2ECF0E102C005900D92A831B107D9F712E0A8E1B1E001C01D92A833B107E9
|
||||||
|
:20018000E1F722D19CC73CCF9C01DC01AE57BF4FED91FC91119741911196FC93EE93805885
|
||||||
|
:2001A0009F4FE817F90711F42D933C939FB7F894F901EC57FF4F8081815080839FBF842F6B
|
||||||
|
:2001C0000895882311F03F9A01C03F9847980895882311F046980895469A0895DF92EF9253
|
||||||
|
:2001E000FF920F931F93FC018489813019F0823019F404C010E303C010E001C010E283896E
|
||||||
|
:20020000823009F418608589873031F0883031F0863029F4126003C0146001C016601092A3
|
||||||
|
:20022000C9001092C8001092CA000785F088E188D288202F3F2D4E2D5D2D10921E01203B7C
|
||||||
|
:2002400084E0380780E0480780E0580719F481E080931E01CA01B90122E030E040E050E006
|
||||||
|
:2002600013D720583B47414E5F4FCA01B901202F3F2D4E2D5D2DE6D6215030403093CD00EB
|
||||||
|
:200280002093CC001093CA0082E08093C80088E98093C9001F910F91FF90EF90DF9008957E
|
||||||
|
:2002A0001F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38430F1F4E091ED
|
||||||
|
:2002C000A201F091A3019083E091A201F091A301CF0101969093A3018093A201825A914079
|
||||||
|
:2002E00021F482E291E0928381839FB7F8948091A6018F5F8093A6019FBFFF91EF919F911B
|
||||||
|
:200300008F912F910F900FBE0F901F901895FC0140911A0140931B0180911C0180931D015F
|
||||||
|
:200320008585282F30E02170307020931A01858590E096958795817080931C0180911E013B
|
||||||
|
:20034000882339F088E790E090931901809318010895442341F4222331F082E390E09093EA
|
||||||
|
:20036000190180931801089580E091E001C680E091E0B4C51F9384B7877F84BF18E10FB6C4
|
||||||
|
:20038000F89410936000109260000FBE80E019DF469A3E9A87E690E09093CD008093CC0043
|
||||||
|
:2003A00086E08093CA001092C8001093C900539A5A9A8AB180638AB98BB180638BB9AAD203
|
||||||
|
:2003C00084E085BD1F9108950F931F93CF93DF93D1DF2FB7F89487EA91E09093280280939E
|
||||||
|
:2003E000270290932A02809329022FBF2FB7F89482E291E09093A3018093A2019093A501CC
|
||||||
|
:200400008093A4012FBF7894C7EAD1E003E08FB7F89490912B028FBF903809F180E091E0E4
|
||||||
|
:20042000D3D497FD1CC0E0912702F09128028083E0912702F0912802CF0101969093280264
|
||||||
|
:20044000809327028752924011F4D283C1839FB7F89480912B028F5F80932B029FBF8FB725
|
||||||
|
:20046000F8941091A6018FBFA89903C0113608F456C0A89A8091A601882361F05D9800937F
|
||||||
|
:200480001F0108C082E291E07FDE682F80E091E001D511501123B1F780911F01882351F0AA
|
||||||
|
:2004A00080911F01815080931F0180911F01882309F45D9A80912001882351F080912001E7
|
||||||
|
:2004C00081508093200180912001882309F45C9A809118019091190118161906E4F4CC975A
|
||||||
|
:2004E000CD9710F481E001C080E072DE80911801909119010197C29710F481E001C080E0E6
|
||||||
|
:2005000060DE80911801909119010197909319018093180104C080E05BDE80E052DE8FB704
|
||||||
|
:20052000F89490912B028FBF992369F087EA91E02BDE982F8091C80085FFFCCF9093CE00B3
|
||||||
|
:200540005C980093200180E091E095D42AD45FCFDA01923049F0933061F09130F9F4E8E924
|
||||||
|
:20056000F0E022E130E01EC0EAEAF0E02EE330E019C0813049F0813018F0823079F408C092
|
||||||
|
:20058000E8EEF0E0849107C0ECEEF0E0849103C0E0E2F1E08491282F30E004C0E0E0F0E0F4
|
||||||
|
:2005A00020E030E0ED93FC93C901089528E030E040E003C04F5F220F331F28173907D0F347
|
||||||
|
:2005C000842F8295807F08958093E9008091EB0081608093EB001092ED006093EC0040939D
|
||||||
|
:2005E000ED008091EE00881F8827881F08951092F40090E09093E9001092F0001092E80047
|
||||||
|
:200600001092ED008091EB008E7F8093EB009F5F953081F708958091300288238CF403C03B
|
||||||
|
:200620008EB38823B1F08091E80082FFF9CF8091E8008B778093E80008958EB3882349F033
|
||||||
|
:200640008091E80080FFF9CF8091E8008E778093E800089594E68091EC0080FF05C08091F8
|
||||||
|
:20066000E80080FF05C023C08091E80082FD1FC08EB3882311F482E008958EB3853011F429
|
||||||
|
:2006800083E008958091EB0085FF02C081E008958091E10082FFDFCF8091E1008B7F8093EA
|
||||||
|
:2006A000E100992311F484E008959150D4CF80E008959C014091360250913702461757079B
|
||||||
|
:2006C00018F4F90120E038C06115710511F0AB01F8CF8091E8008E778093E80040E050E073
|
||||||
|
:2006E000F0CF8091E80083FF02C081E008958091E80082FD2DC08EB3882381F18EB3853047
|
||||||
|
:2007000079F18091E80080FF17C09091F20006C081918093F100415050409F5F4115510566
|
||||||
|
:2007200011F09830A8F320E0983009F421E08091E8008E778093E8004115510591F622231E
|
||||||
|
:2007400081F606C08EB3882349F08EB3853041F08091E80082FFF6CF80E0089582E00895D5
|
||||||
|
:2007600083E008959C0140913602509137024617570710F490E03BC06115710511F0AB01F6
|
||||||
|
:20078000F9CF8091E8008E778093E80040E050E0F1CF8091E80083FF02C081E0089580913C
|
||||||
|
:2007A000E80082FD30C08EB3882399F18EB3853091F18091E80080FF1AC08091F20009C0D6
|
||||||
|
:2007C000F9012F5F3F4FE491E093F100415050408F5F4115510511F0883090F390E088300B
|
||||||
|
:2007E00009F491E08091E8008E778093E8004115510579F6992369F606C08EB3882349F071
|
||||||
|
:200800008EB3853041F08091E80082FFF6CF80E0089582E0089583E008959C0161157105ED
|
||||||
|
:2008200029F48091E8008B778093E800F90120C08091E80083FF02C081E008958EB38823A4
|
||||||
|
:2008400039F18EB3853031F18091E80082FFF0CF06C08091F10081936150704021F08091BE
|
||||||
|
:20086000F2008823B1F78091E8008B778093E80061157105E9F606C08EB3882349F08EB346
|
||||||
|
:20088000853041F08091E80080FFF6CF80E0089582E0089583E0089542D044D01EBA109299
|
||||||
|
:2008A0002E0210922D0210922C0284E089BD89B5826089BD09B400FEFDCF8091D800982F20
|
||||||
|
:2008C0009F779093D80080688093D800809163008E7F809363008091D8008F7D8093D8005D
|
||||||
|
:2008E0008091E0008E7F8093E0008091E1008E7F8093E1008091E20081608093E20080913A
|
||||||
|
:20090000E100877F8093E1008091E20088608093E2000895C1DF81E080932F02089510920B
|
||||||
|
:20092000E20008951092E10008951F920F920FB60F9211241F932F933F934F935F936F930F
|
||||||
|
:200940007F938F939F93AF93BF93EF93FF93E9EEF0E0108117701082E0EFF0E08081877F92
|
||||||
|
:2009600080837894C3D0F894A9EEB0E01C92E0EFF0E08081886080831C93FF91EF91BF91DA
|
||||||
|
:20098000AF919F918F917F916F915F914F913F912F911F910F900FBE0F901F9018951F928F
|
||||||
|
:2009A0000F920FB60F9211242F933F934F935F936F937F938F939F93AF93BF93EF93FF9383
|
||||||
|
:2009C0008091E10080FF1BC08091E20080FF17C08091E1008E7F8093E1008091E2008E7F8F
|
||||||
|
:2009E0008093E2008091E20080618093E2008091D80080628093D80019BC1EBAD1D1809123
|
||||||
|
:200A0000E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B400FEFDCF809186
|
||||||
|
:200A2000D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093E2008091E2000C
|
||||||
|
:200A400081608093E20080912E02882311F481E001C084E08EBBA4D18091E10083FF27C030
|
||||||
|
:200A60008091E20083FF23C08091E100877F8093E10082E08EBB10922E028091E1008E7FB6
|
||||||
|
:200A80008093E1008091E2008E7F8093E2008091E20080618093E200AADD80E060E042E05B
|
||||||
|
:200AA00093DD8091F00088608093F00079D18091E10082FF0AC08091E20082FF06C0809108
|
||||||
|
:200AC000E1008B7F8093E1006BD1FF91EF91BF91AF919F918F917F916F915F914F913F915B
|
||||||
|
:200AE0002F910F900FBE0F901F9018951F93DF93CF93CDB7DEB7AC970FB6F894DEBF0FBE32
|
||||||
|
:200B0000CDBFE0E3F2E08091F100819322E0E833F207C9F78091300230913102353009F42F
|
||||||
|
:200B200087C0363040F43130C9F1313070F0333009F01DC133C0383009F4EFC0393009F451
|
||||||
|
:200B4000FEC0363009F013C192C0803821F0823809F00DC108C090912C0280912D02882306
|
||||||
|
:200B600099F0926011C08091340287708093E9008091EB0090E025E0969587952A95E1F7A0
|
||||||
|
:200B8000982F91701092E9008091E800877F8093E8009093F1001092F100CAC0882319F023
|
||||||
|
:200BA000823009F0E4C090E08F719070009721F0029709F0DDC00CC080913202813009F0E4
|
||||||
|
:200BC000D7C010922D02333069F580932D022AC080913202882331F520913402277009F42F
|
||||||
|
:200BE000C7C02093E9008091EB0080FFC1C0333021F48091EB00806213C08091EB008061D0
|
||||||
|
:200C00008093EB0081E090E002C0880F991F2A95E2F78093EA001092EA008091EB008860EF
|
||||||
|
:200C20008093EB001092E9008091E800877F83C0882309F09CC0109132028091E800877F15
|
||||||
|
:200C40008093E800E8DC04C08EB3882309F490C08091E80080FFF8CF812F8F7711F492E06C
|
||||||
|
:200C600001C093E09EBB80688093E30081C08058823008F07CC0809132029091330223E06C
|
||||||
|
:200C80008C3D920799F55FB7F894DE0115964EE020E030E061E2E42FF0E060935700849175
|
||||||
|
:200CA00020FF03C082958F704F5F982F9F70892F805D8A3308F0895F8C9311961C9211976A
|
||||||
|
:200CC0002F5F3F4F12962431310529F75FBF8AE28B8383E08C838091E800877F8093E800A1
|
||||||
|
:200CE000CE0103966AE270E0E4DC11C060913402AE014F5F5F4F2CDCBC010097C9F1809106
|
||||||
|
:200D0000E800877F8093E80089819A812BDD8091E8008B778093E8002BC0803841F58091DD
|
||||||
|
:200D2000E800877F8093E80080912E028093F1008091E8008E778093E8006DDC19C08823BF
|
||||||
|
:200D4000B1F490913202923098F48091E800877F8093E80090932E025EDC80912E028823D8
|
||||||
|
:200D600011F483E001C084E08EBB01DB01C0FCDA8091E80083FF0AC08091EB0080628093F4
|
||||||
|
:200D8000EB008091E800877F8093E800AC960FB6F894DEBF0FBECDBFCF91DF911F910895C8
|
||||||
|
:200DA00008951F938EB3882361F01091E9001092E9008091E80083FF01C098DE17701093B6
|
||||||
|
:200DC000E9001F9108950895FC018EB3843021F587859089A189B2890097A105B105E1F0EA
|
||||||
|
:200DE00085818093E9008091E80082FF15C08091F200882319F42FEF3FEF04C08091F100D5
|
||||||
|
:200E0000282F30E08091F200882341F48091E8008B778093E80002C02FEF3FEFC90108951D
|
||||||
|
:200E2000FC018EB3843011F587859089A189B2890097A105B105D1F081818093E90080916D
|
||||||
|
:200E4000F2008823A9F09091E8008091E8008E778093E80095FD0CC0FDDB982F882349F475
|
||||||
|
:200E60008091E8008E778093E80003C092E001C090E0892F0895FC018EB3843051F487857B
|
||||||
|
:200E80009089A189B2890097A105B10511F0CF01C7CF08951F93FC01162F8EB38430D9F427
|
||||||
|
:200EA00087859089A189B2890097A105B10599F081818093E9008091E80085FD08C08091DA
|
||||||
|
:200EC000E8008E778093E800C5DB882329F41093F10080E001C082E01F9108950F931F930A
|
||||||
|
:200EE000CF93DF93EC010D96FC0189E0DF011D928A95E9F72A813B8109818C81882311F4EC
|
||||||
|
:200F000010E001C014E0C90151DB182B1260802F61E8412F59DB882329F12E813F810D8123
|
||||||
|
:200F20008885882311F410E001C014E0C9013EDB182B1260802F60E8412F46DB882391F003
|
||||||
|
:200F40002A853B8509858C85882311F410E001C014E0C9012BDB182B1260802F61EC412F3D
|
||||||
|
:200F600033DB01C080E0DF91CF911F910F910895CF93DF93EC018091E80083FF60C0888120
|
||||||
|
:200F800090E020913402309135022817390709F056C080913102813261F0823220F48032B2
|
||||||
|
:200FA00009F04DC019C0823269F1833209F047C038C080913002813A09F041C08091E800A6
|
||||||
|
:200FC000877F8093E800CE010F9667E070E071DB8091E8008B7713C080913002813279F587
|
||||||
|
:200FE0008091E800877F8093E800CE010F9667E070E013DCCE01F2D88091E8008E77809353
|
||||||
|
:20100000E8001DC0809130028132C9F48091E800877F8093E800809132028D87CE0177D9E6
|
||||||
|
:201020000DC080913002813251F48091E800877F8093E800CE0160913202C5DEECDADF91E1
|
||||||
|
:20104000CF910895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307E407F5073A
|
||||||
|
:2010600020F0A21BB30BE40BF50B661F771F881F991F1A9469F760957095809590959B019E
|
||||||
|
:20108000AC01BD01CF01089597FB092E05260ED057FD04D0D7DF0AD0001C38F450954095EC
|
||||||
|
:2010A000309521953F4F4F4F5F4F0895F6F790958095709561957F4F8F4F9F4F0895F89459
|
||||||
|
:2010C000FFCF000340000004400000020800000000000000000000001400FFFFFFFFFFFFA3
|
||||||
|
:2010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
:20110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
|
||||||
|
:20112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
|
||||||
|
:20114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
|
||||||
|
:20116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
|
||||||
|
:20118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
|
||||||
|
:2011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
|
||||||
|
:2011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
|
||||||
|
:2011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
|
||||||
|
:20120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
|
||||||
|
:20122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
|
||||||
|
:20124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
|
||||||
|
:20126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
|
||||||
|
:20128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
|
||||||
|
:2012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
|
||||||
|
:2012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
|
||||||
|
:2012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
|
||||||
|
:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
|
||||||
|
:20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
|
||||||
|
:20134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
|
||||||
|
:20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
|
||||||
|
:20138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
|
||||||
|
:2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
|
||||||
|
:2013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
|
||||||
|
:2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
|
||||||
|
:20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
|
||||||
|
:20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
|
||||||
|
:20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
|
||||||
|
:20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
|
||||||
|
:20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
|
||||||
|
:2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
|
||||||
|
:2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
|
||||||
|
:2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
|
||||||
|
:20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
|
||||||
|
:20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
|
||||||
|
:20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
|
||||||
|
:20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
|
||||||
|
:20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
|
||||||
|
:2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
|
||||||
|
:2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
|
||||||
|
:2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
|
||||||
|
:20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
|
||||||
|
:20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
|
||||||
|
:20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
|
||||||
|
:20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
|
||||||
|
:20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
|
||||||
|
:2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
|
||||||
|
:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
|
||||||
|
:2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
|
||||||
|
:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
|
||||||
|
:20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
|
||||||
|
:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
|
||||||
|
:20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
|
||||||
|
:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
|
||||||
|
:2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
|
||||||
|
:2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
|
||||||
|
:2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
|
||||||
|
:20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
|
||||||
|
:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
|
||||||
|
:20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
|
||||||
|
:20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
|
||||||
|
:20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
|
||||||
|
:2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
|
||||||
|
:2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
|
||||||
|
:2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
|
||||||
|
:20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
|
||||||
|
:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
|
||||||
|
:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
|
||||||
|
:20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87
|
||||||
|
:20198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67
|
||||||
|
:2019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47
|
||||||
|
:2019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27
|
||||||
|
:2019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
|
||||||
|
:201A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
|
||||||
|
:201A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
|
||||||
|
:201A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
|
||||||
|
:201A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
|
||||||
|
:201A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
|
||||||
|
:201AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
|
||||||
|
:201AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
|
||||||
|
:201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
|
||||||
|
:201B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
|
||||||
|
:201B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
|
||||||
|
:201B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
|
||||||
|
:201B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
|
||||||
|
:201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
|
||||||
|
:201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
|
||||||
|
:201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
|
||||||
|
:201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05
|
||||||
|
:201C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
|
||||||
|
:201C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
|
||||||
|
:201C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
|
||||||
|
:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
|
||||||
|
:201C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
|
||||||
|
:201CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
|
||||||
|
:201CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
|
||||||
|
:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
|
||||||
|
:201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3
|
||||||
|
:201D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3
|
||||||
|
:201D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3
|
||||||
|
:201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83
|
||||||
|
:201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63
|
||||||
|
:201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
|
||||||
|
:201DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
|
||||||
|
:201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
|
||||||
|
:201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
|
||||||
|
:201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
|
||||||
|
:201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
|
||||||
|
:201E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
|
||||||
|
:201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
|
||||||
|
:201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42
|
||||||
|
:201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
|
||||||
|
:201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
|
||||||
|
:201F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
|
||||||
|
:201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
|
||||||
|
:201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
|
||||||
|
:201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
|
||||||
|
:201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
|
||||||
|
:201FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
|
||||||
|
:201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
|
||||||
|
:201FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
|
||||||
|
:20200000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
|
||||||
|
:20202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
|
||||||
|
:20204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
|
||||||
|
:20206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
|
||||||
|
:20208000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
|
||||||
|
:2020A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||||
|
:2020C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
|
||||||
|
:2020E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
|
||||||
|
:20210000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
|
||||||
|
:20212000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
|
||||||
|
:20214000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
|
||||||
|
:20216000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
|
||||||
|
:20218000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
|
||||||
|
:2021A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
|
||||||
|
:2021C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
|
||||||
|
:2021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
:20220000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
|
||||||
|
:20222000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
|
||||||
|
:20224000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
|
||||||
|
:20226000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
|
||||||
|
:20228000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
|
||||||
|
:2022A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
|
||||||
|
:2022C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
|
||||||
|
:2022E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
|
||||||
|
:20230000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
|
||||||
|
:20232000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
|
||||||
|
:20234000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
|
||||||
|
:20236000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
|
||||||
|
:20238000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
|
||||||
|
:2023A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
|
||||||
|
:2023C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
|
||||||
|
:2023E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
|
||||||
|
:20240000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
|
||||||
|
:20242000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
|
||||||
|
:20244000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
|
||||||
|
:20246000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
|
||||||
|
:20248000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
|
||||||
|
:2024A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
|
||||||
|
:2024C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
|
||||||
|
:2024E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||||
|
:20250000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB
|
||||||
|
:20252000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
|
||||||
|
:20254000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
|
||||||
|
:20256000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
|
||||||
|
:20258000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B
|
||||||
|
:2025A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
|
||||||
|
:2025C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
|
||||||
|
:2025E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
|
||||||
|
:20260000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA
|
||||||
|
:20262000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
|
||||||
|
:20264000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A
|
||||||
|
:20266000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
|
||||||
|
:20268000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A
|
||||||
|
:2026A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
|
||||||
|
:2026C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A
|
||||||
|
:2026E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
|
||||||
|
:20270000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
|
||||||
|
:20272000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
|
||||||
|
:20274000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
|
||||||
|
:20276000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
|
||||||
|
:20278000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
|
||||||
|
:2027A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
|
||||||
|
:2027C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
|
||||||
|
:2027E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
|
||||||
|
:20280000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8
|
||||||
|
:20282000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8
|
||||||
|
:20284000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98
|
||||||
|
:20286000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78
|
||||||
|
:20288000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58
|
||||||
|
:2028A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
|
||||||
|
:2028C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
|
||||||
|
:2028E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8
|
||||||
|
:20290000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
|
||||||
|
:20292000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
|
||||||
|
:20294000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97
|
||||||
|
:20296000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77
|
||||||
|
:20298000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57
|
||||||
|
:2029A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37
|
||||||
|
:2029C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17
|
||||||
|
:2029E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
|
||||||
|
:202A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
|
||||||
|
:202A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
|
||||||
|
:202A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
|
||||||
|
:202A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76
|
||||||
|
:202A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56
|
||||||
|
:202AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36
|
||||||
|
:202AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
|
||||||
|
:202AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
|
||||||
|
:202B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
|
||||||
|
:202B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
|
||||||
|
:202B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
|
||||||
|
:202B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
|
||||||
|
:202B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
|
||||||
|
:202BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
|
||||||
|
:202BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
|
||||||
|
:202BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
|
||||||
|
:202C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
|
||||||
|
:202C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
|
||||||
|
:202C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
|
||||||
|
:202C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
|
||||||
|
:202C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
|
||||||
|
:202CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
|
||||||
|
:202CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
|
||||||
|
:202CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
|
||||||
|
:202D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
|
||||||
|
:202D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
|
||||||
|
:202D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
|
||||||
|
:202D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
|
||||||
|
:202D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
|
||||||
|
:202DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
|
||||||
|
:202DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
|
||||||
|
:202DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
|
||||||
|
:202E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
|
||||||
|
:202E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
|
||||||
|
:202E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
|
||||||
|
:202E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
|
||||||
|
:202E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
|
||||||
|
:202EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
|
||||||
|
:202EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
|
||||||
|
:202EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
|
||||||
|
:202F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
|
||||||
|
:202F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
|
||||||
|
:202F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
|
||||||
|
:202F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
|
||||||
|
:202F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
|
||||||
|
:202FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
|
||||||
|
:202FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
|
||||||
|
:202FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
|
||||||
|
:20300000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
|
||||||
|
:20302000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
|
||||||
|
:20304000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
|
||||||
|
:20306000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
|
||||||
|
:20308000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
|
||||||
|
:2030A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
|
||||||
|
:2030C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
|
||||||
|
:2030E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
|
||||||
|
:20310000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
|
||||||
|
:20312000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
|
||||||
|
:20314000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
|
||||||
|
:20316000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
|
||||||
|
:20318000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
|
||||||
|
:2031A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
|
||||||
|
:2031C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
|
||||||
|
:2031E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
|
||||||
|
:20320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
|
||||||
|
:20322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
|
||||||
|
:20324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
|
||||||
|
:20326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
|
||||||
|
:20328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
|
||||||
|
:2032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
|
||||||
|
:2032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
|
||||||
|
:2032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
|
||||||
|
:20330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
|
||||||
|
:20332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
|
||||||
|
:20334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
|
||||||
|
:20336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
|
||||||
|
:20338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
|
||||||
|
:2033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
|
||||||
|
:2033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
|
||||||
|
:2033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
|
||||||
|
:20340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
|
||||||
|
:20342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
|
||||||
|
:20344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
|
||||||
|
:20346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
|
||||||
|
:20348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
|
||||||
|
:2034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
|
||||||
|
:2034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
|
||||||
|
:2034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
|
||||||
|
:20350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
|
||||||
|
:20352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
|
||||||
|
:20354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
|
||||||
|
:20356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
|
||||||
|
:20358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
|
||||||
|
:2035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
|
||||||
|
:2035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
|
||||||
|
:2035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
|
||||||
|
:20360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
|
||||||
|
:20362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
|
||||||
|
:20364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
|
||||||
|
:20366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
|
||||||
|
:20368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
|
||||||
|
:2036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
|
||||||
|
:2036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
|
||||||
|
:2036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
|
||||||
|
:20370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
|
||||||
|
:20372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
|
||||||
|
:20374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
|
||||||
|
:20376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
|
||||||
|
:20378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
|
||||||
|
:2037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
|
||||||
|
:2037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
|
||||||
|
:2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
|
||||||
|
:20380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
|
||||||
|
:20382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
|
||||||
|
:20384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
|
||||||
|
:20386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
|
||||||
|
:20388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
|
||||||
|
:2038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
|
||||||
|
:2038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
|
||||||
|
:2038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
|
||||||
|
:20390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
|
||||||
|
:20392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
|
||||||
|
:20394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87
|
||||||
|
:20396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67
|
||||||
|
:20398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47
|
||||||
|
:2039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27
|
||||||
|
:2039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
|
||||||
|
:2039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
|
||||||
|
:203A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
|
||||||
|
:203A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
|
||||||
|
:203A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
|
||||||
|
:203A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
|
||||||
|
:203A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
|
||||||
|
:203AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
|
||||||
|
:203AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
|
||||||
|
:203AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
|
||||||
|
:203B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
|
||||||
|
:203B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
|
||||||
|
:203B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
|
||||||
|
:203B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
|
||||||
|
:203B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
|
||||||
|
:203BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
|
||||||
|
:203BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05
|
||||||
|
:203BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
|
||||||
|
:203C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
|
||||||
|
:203C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
|
||||||
|
:203C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
|
||||||
|
:203C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
|
||||||
|
:203C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
|
||||||
|
:203CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
|
||||||
|
:203CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
|
||||||
|
:203CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
|
||||||
|
:203D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3
|
||||||
|
:203D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3
|
||||||
|
:203D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83
|
||||||
|
:203D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63
|
||||||
|
:203D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
|
||||||
|
:203DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
|
||||||
|
:203DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
|
||||||
|
:203DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3
|
||||||
|
:203E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
|
||||||
|
:203E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
|
||||||
|
:203E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
|
||||||
|
:203E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
|
||||||
|
:203E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42
|
||||||
|
:203EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
|
||||||
|
:203EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
|
||||||
|
:203EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
|
||||||
|
:203F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
|
||||||
|
:203F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
|
||||||
|
:203F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
|
||||||
|
:203F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
|
||||||
|
:203F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
|
||||||
|
:203FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
|
||||||
|
:203FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
|
||||||
|
:203FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
|
||||||
|
:00000001FF
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
:20000000A7C00000C0C00000BEC00000BCC00000BAC00000B8C00000B6C00000B4C0000023
|
|
||||||
:20002000B2C00000B0C00000AEC00000C1C4000085C40000A8C00000A6C00000A4C0000070
|
|
||||||
:20004000A2C00000A0C000009EC000009CC000009AC0000098C0000096C0000021C100003A
|
|
||||||
:2000600092C0000090C000008EC000008CC000008AC0000088C0000086C0000084C0000028
|
|
||||||
:2000800082C0000080C000007EC000007CC000007AC0000078C000001201100102000008C4
|
|
||||||
:2000A00041233D0001000102DC0109023E00020100C0320904000001020201000524000143
|
|
||||||
:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC
|
|
||||||
:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA
|
|
||||||
:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D
|
|
||||||
:200120002E03410072006400750069006E006F0020004400750065002000500072006F002D
|
|
||||||
:2001400067002E00200050006F0072007400000011241FBECFEFD2E0DEBFCDBF11E0A0E029
|
|
||||||
:20016000B1E0E4EDF0E102C005900D92A831B107D9F712E0A8E1B1E001C01D92A833B107E6
|
|
||||||
:20018000E1F72BD1A5C73CCF9C01DC01AE57BF4FED91FC91119741911196FC93EE93805873
|
|
||||||
:2001A0009F4FE817F90711F42D933C939FB7F894F901EC57FF4F8081815080839FBF842F6B
|
|
||||||
:2001C0000895882311F03F9A01C03F9847980895882311F046980895469A0895DF92EF9253
|
|
||||||
:2001E000FF920F931F93FC018489813019F0823019F404C010E303C010E001C010E283896E
|
|
||||||
:20020000823009F418608589873031F0883031F0863029F4126003C0146001C016601092A3
|
|
||||||
:20022000C9001092C8001092CA000785F088E188D288202F3F2D4E2D5D2D10921E01203B7C
|
|
||||||
:2002400084E0380780E0480780E0580719F481E080931E01CA01B90122E030E040E050E006
|
|
||||||
:200260001CD720583B47414E5F4FCA01B901202F3F2D4E2D5D2DEFD6215030403093CD00D9
|
|
||||||
:200280002093CC001093CA0082E08093C80088E98093C9001F910F91FF90EF90DF9008957E
|
|
||||||
:2002A0001F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38430F1F4E091ED
|
|
||||||
:2002C000A201F091A3019083E091A201F091A301CF0101969093A3018093A201825A914079
|
|
||||||
:2002E00021F482E291E0928381839FB7F8948091A6018F5F8093A6019FBFFF91EF919F911B
|
|
||||||
:200300008F912F910F900FBE0F901F901895FC0140911A0140931B0180911C0180931D015F
|
|
||||||
:200320008585282F30E02170307020931A01858590E096958795817080931C0180911E013B
|
|
||||||
:20034000882339F088E790E090931901809318010895442341F4222331F082E390E09093EA
|
|
||||||
:20036000190180931801089580E091E00AC680E091E0BDC584B7877F84BF88E10FB6F89468
|
|
||||||
:2003800080936000109260000FBE81E01ADF16BC83E085BD86B58831E8F315BC16BC80E078
|
|
||||||
:2003A00010DF469A3E9A87E690E09093CD008093CC0086E08093CA001092C80088E18093C1
|
|
||||||
:2003C000C900539A5A9A8AB180638AB98BB180638BB9A9D284E085BD08950F931F93CF933B
|
|
||||||
:2003E000DF93C8DF2FB7F89487EA91E0909328028093270290932A02809329022FBF2FB7A6
|
|
||||||
:20040000F89482E291E09093A3018093A2019093A5018093A4012FBF7894C7EAD1E003E03E
|
|
||||||
:200420008FB7F89490912B028FBF903809F180E091E0D3D497FD1CC0E0912702F09128025F
|
|
||||||
:200440008083E0912702F0912802CF01019690932802809327028752924011F4D283C1831B
|
|
||||||
:200460009FB7F89480912B028F5F80932B029FBF8FB7F8941091A6018FBFA89903C011361D
|
|
||||||
:2004800008F456C0A89A8091A601882361F05D9800931F0108C082E291E076DE682F80E0C4
|
|
||||||
:2004A00091E001D511501123B1F780911F01882351F080911F01815080931F0180911F0135
|
|
||||||
:2004C000882309F45D9A80912001882351F08091200181508093200180912001882309F44E
|
|
||||||
:2004E0005C9A809118019091190118161906E4F4CC97CD9710F481E001C080E069DE8091D7
|
|
||||||
:200500001801909119010197C29710F481E001C080E057DE809118019091190101979093BB
|
|
||||||
:2005200019018093180104C080E052DE80E049DE8FB7F89490912B028FBF992369F087EAA6
|
|
||||||
:2005400091E022DE982F8091C80085FFFCCF9093CE005C980093200180E091E095D42AD46A
|
|
||||||
:200560005FCFDA01923049F0933061F09130F9F4E8E9F0E022E130E01EC0EAEAF0E02EE36E
|
|
||||||
:2005800030E019C0813049F0813018F0823079F408C0E8EEF0E0849107C0ECEEF0E08491A7
|
|
||||||
:2005A00003C0E0E2F1E08491282F30E004C0E0E0F0E020E030E0ED93FC93C901089528E087
|
|
||||||
:2005C00030E040E003C04F5F220F331F28173907D0F3842F8295807F08958093E900809142
|
|
||||||
:2005E000EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881F08956A
|
|
||||||
:200600001092F40090E09093E9001092F0001092E8001092ED008091EB008E7F8093EB0016
|
|
||||||
:200620009F5F953081F708958091300288238CF403C08EB38823B1F08091E80082FFF9CFE2
|
|
||||||
:200640008091E8008B778093E80008958EB3882349F08091E80080FFF9CF8091E8008E77A4
|
|
||||||
:200660008093E800089594E68091EC0080FF05C08091E80080FF05C023C08091E80082FD8F
|
|
||||||
:200680001FC08EB3882311F482E008958EB3853011F483E008958091EB0085FF02C081E0ED
|
|
||||||
:2006A00008958091E10082FFDFCF8091E1008B7F8093E100992311F484E008959150D4CF46
|
|
||||||
:2006C00080E008959C0140913602509137024617570718F4F90120E038C06115710511F0B7
|
|
||||||
:2006E000AB01F8CF8091E8008E778093E80040E050E0F0CF8091E80083FF02C081E0089544
|
|
||||||
:200700008091E80082FD2DC08EB3882381F18EB3853079F18091E80080FF17C09091F20054
|
|
||||||
:2007200006C081918093F100415050409F5F4115510511F09830A8F320E0983009F421E0E8
|
|
||||||
:200740008091E8008E778093E8004115510591F6222381F606C08EB3882349F08EB38530D0
|
|
||||||
:2007600041F08091E80082FFF6CF80E0089582E0089583E008959C0140913602509137024D
|
|
||||||
:200780004617570710F490E03BC06115710511F0AB01F9CF8091E8008E778093E80040E0B5
|
|
||||||
:2007A00050E0F1CF8091E80083FF02C081E008958091E80082FD30C08EB3882399F18EB3EF
|
|
||||||
:2007C000853091F18091E80080FF1AC08091F20009C0F9012F5F3F4FE491E093F100415044
|
|
||||||
:2007E00050408F5F4115510511F0883090F390E0883009F491E08091E8008E778093E80004
|
|
||||||
:200800004115510579F6992369F606C08EB3882349F08EB3853041F08091E80082FFF6CF51
|
|
||||||
:2008200080E0089582E0089583E008959C016115710529F48091E8008B778093E800F90126
|
|
||||||
:2008400020C08091E80083FF02C081E008958EB3882339F18EB3853031F18091E80082FFD5
|
|
||||||
:20086000F0CF06C08091F10081936150704021F08091F2008823B1F78091E8008B77809307
|
|
||||||
:20088000E80061157105E9F606C08EB3882349F08EB3853041F08091E80080FFF6CF80E0F6
|
|
||||||
:2008A000089582E0089583E0089542D044D01EBA10922E0210922D0210922C0284E089BD81
|
|
||||||
:2008C00089B5826089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809186
|
|
||||||
:2008E00063008E7F809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1004F
|
|
||||||
:200900008E7F8093E1008091E20081608093E2008091E100877F8093E1008091E200886046
|
|
||||||
:200920008093E2000895C1DF81E080932F0208951092E20008951092E10008951F920F92B0
|
|
||||||
:200940000FB60F9211241F932F933F934F935F936F937F938F939F93AF93BF93EF93FF93D2
|
|
||||||
:20096000E9EEF0E0108117701082E0EFF0E08081877F80837894C3D0F894A9EEB0E01C927D
|
|
||||||
:20098000E0EFF0E08081886080831C93FF91EF91BF91AF919F918F917F916F915F914F914D
|
|
||||||
:2009A0003F912F911F910F900FBE0F901F9018951F920F920FB60F9211242F933F934F932D
|
|
||||||
:2009C0005F936F937F938F939F93AF93BF93EF93FF938091E10080FF1BC08091E20080FF57
|
|
||||||
:2009E00017C08091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E2006F
|
|
||||||
:200A00008091D80080628093D80019BC1EBAD1D18091E10084FF29C08091E20084FF25C018
|
|
||||||
:200A200084E089BD89B5826089BD09B400FEFDCF8091D8008F7D8093D8008091E1008F7E40
|
|
||||||
:200A40008093E1008091E2008F7E8093E2008091E20081608093E20080912E02882311F4F3
|
|
||||||
:200A600081E001C084E08EBBA4D18091E10083FF27C08091E20083FF23C08091E100877F87
|
|
||||||
:200A80008093E10082E08EBB10922E028091E1008E7F8093E1008091E2008E7F8093E200FD
|
|
||||||
:200AA0008091E20080618093E200AADD80E060E042E093DD8091F00088608093F00079D17E
|
|
||||||
:200AC0008091E10082FF0AC08091E20082FF06C08091E1008B7F8093E1006BD1FF91EF9163
|
|
||||||
:200AE000BF91AF919F918F917F916F915F914F913F912F910F900FBE0F901F9018951F938D
|
|
||||||
:200B0000DF93CF93CDB7DEB7AC970FB6F894DEBF0FBECDBFE0E3F2E08091F100819322E0B1
|
|
||||||
:200B2000E833F207C9F78091300230913102353009F487C0363040F43130C9F1313070F08B
|
|
||||||
:200B4000333009F01DC133C0383009F4EFC0393009F4FEC0363009F013C192C0803821F0E2
|
|
||||||
:200B6000823809F00DC108C090912C0280912D02882399F0926011C0809134028770809355
|
|
||||||
:200B8000E9008091EB0090E025E0969587952A95E1F7982F91701092E9008091E800877FCB
|
|
||||||
:200BA0008093E8009093F1001092F100CAC0882319F0823009F0E4C090E08F7190700097FF
|
|
||||||
:200BC00021F0029709F0DDC00CC080913202813009F0D7C010922D02333069F580932D02AF
|
|
||||||
:200BE0002AC080913202882331F520913402277009F4C7C02093E9008091EB0080FFC1C05B
|
|
||||||
:200C0000333021F48091EB00806213C08091EB0080618093EB0081E090E002C0880F991FEE
|
|
||||||
:200C20002A95E2F78093EA001092EA008091EB0088608093EB001092E9008091E800877F27
|
|
||||||
:200C400083C0882309F09CC0109132028091E800877F8093E800E8DC04C08EB3882309F411
|
|
||||||
:200C600090C08091E80080FFF8CF812F8F7711F492E001C093E09EBB80688093E30081C00C
|
|
||||||
:200C80008058823008F07CC0809132029091330223E08C3D920799F55FB7F894DE011596DC
|
|
||||||
:200CA0004EE020E030E061E2E42FF0E060935700849120FF03C082958F704F5F982F9F70F5
|
|
||||||
:200CC000892F805D8A3308F0895F8C9311961C9211972F5F3F4F12962431310529F75FBF39
|
|
||||||
:200CE0008AE28B8383E08C838091E800877F8093E800CE0103966AE270E0E4DC11C0609188
|
|
||||||
:200D00003402AE014F5F5F4F2CDCBC010097C9F18091E800877F8093E80089819A812BDD55
|
|
||||||
:200D20008091E8008B778093E8002BC0803841F58091E800877F8093E80080912E02809396
|
|
||||||
:200D4000F1008091E8008E778093E8006DDC19C08823B1F490913202923098F48091E8009B
|
|
||||||
:200D6000877F8093E80090932E025EDC80912E02882311F483E001C084E08EBBF8DA01C090
|
|
||||||
:200D8000F3DA8091E80083FF0AC08091EB0080628093EB008091E800877F8093E800AC9629
|
|
||||||
:200DA0000FB6F894DEBF0FBECDBFCF91DF911F91089508951F938EB3882361F01091E900B9
|
|
||||||
:200DC0001092E9008091E80083FF01C098DE17701093E9001F9108950895FC018EB38430E7
|
|
||||||
:200DE00021F587859089A189B2890097A105B105E1F085818093E9008091E80082FF15C03E
|
|
||||||
:200E00008091F200882319F42FEF3FEF04C08091F100282F30E08091F200882341F48091AA
|
|
||||||
:200E2000E8008B778093E80002C02FEF3FEFC9010895FC018EB3843011F587859089A18911
|
|
||||||
:200E4000B2890097A105B105D1F081818093E9008091F2008823A9F09091E8008091E8005C
|
|
||||||
:200E60008E778093E80095FD0CC0FDDB982F882349F48091E8008E778093E80003C092E05F
|
|
||||||
:200E800001C090E0892F0895FC018EB3843051F487859089A189B2890097A105B10511F017
|
|
||||||
:200EA000CF01C7CF08951F93FC01162F8EB38430D9F487859089A189B2890097A105B105FC
|
|
||||||
:200EC00099F081818093E9008091E80085FD08C08091E8008E778093E800C5DB882329F4E7
|
|
||||||
:200EE0001093F10080E001C082E01F9108950F931F93CF93DF93EC010D96FC0189E0DF0190
|
|
||||||
:200F00001D928A95E9F72A813B8109818C81882311F410E001C014E0C90151DB182B126025
|
|
||||||
:200F2000802F61E8412F59DB882329F12E813F810D818885882311F410E001C014E0C90127
|
|
||||||
:200F40003EDB182B1260802F60E8412F46DB882391F02A853B8509858C85882311F410E061
|
|
||||||
:200F600001C014E0C9012BDB182B1260802F61EC412F33DB01C080E0DF91CF911F910F917C
|
|
||||||
:200F80000895CF93DF93EC018091E80083FF60C0888190E020913402309135022817390781
|
|
||||||
:200FA00009F056C080913102813261F0823220F4803209F04DC019C0823269F1833209F0C5
|
|
||||||
:200FC00047C038C080913002813A09F041C08091E800877F8093E800CE010F9667E070E015
|
|
||||||
:200FE00071DB8091E8008B7713C080913002813279F58091E800877F8093E800CE010F9605
|
|
||||||
:2010000067E070E013DCCE01E9D88091E8008E778093E8001DC0809130028132C9F4809120
|
|
||||||
:20102000E800877F8093E800809132028D87CE016ED90DC080913002813251F48091E80057
|
|
||||||
:20104000877F8093E800CE0160913202C5DEECDADF91CF910895A1E21A2EAA1BBB1BFD0161
|
|
||||||
:201060000DC0AA1FBB1FEE1FFF1FA217B307E407F50720F0A21BB30BE40BF50B661F771FE6
|
|
||||||
:20108000881F991F1A9469F760957095809590959B01AC01BD01CF01089597FB092E052647
|
|
||||||
:2010A0000ED057FD04D0D7DF0AD0001C38F450954095309521953F4F4F4F5F4F0895F6F7B9
|
|
||||||
:2010C00090958095709561957F4F8F4F9F4F0895F894FFCF000340000004400000020800B9
|
|
||||||
:0C10E000000000000000000000001400F0
|
|
||||||
:00000001FF
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
:20000000A7C00000C0C00000BEC00000BCC00000BAC00000B8C00000B6C00000B4C0000023
|
|
||||||
:20002000B2C00000B0C00000AEC00000C1C4000085C40000A8C00000A6C00000A4C0000070
|
|
||||||
:20004000A2C00000A0C000009EC000009CC000009AC0000098C0000096C0000021C100003A
|
|
||||||
:2000600092C0000090C000008EC000008CC000008AC0000088C0000086C0000084C0000028
|
|
||||||
:2000800082C0000080C000007EC000007CC000007AC0000078C000001201100102000008C4
|
|
||||||
:2000A00041233D0001000102DC0109023E00020100C0320904000001020201000524000143
|
|
||||||
:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC
|
|
||||||
:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA
|
|
||||||
:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D
|
|
||||||
:200120002E03410072006400750069006E006F0020004400750065002000500072006F002D
|
|
||||||
:2001400067002E00200050006F0072007400000011241FBECFEFD2E0DEBFCDBF11E0A0E029
|
|
||||||
:20016000B1E0E4EDF0E102C005900D92A831B107D9F712E0A8E1B1E001C01D92A833B107E6
|
|
||||||
:20018000E1F72BD1A5C73CCF9C01DC01AE57BF4FED91FC91119741911196FC93EE93805873
|
|
||||||
:2001A0009F4FE817F90711F42D933C939FB7F894F901EC57FF4F8081815080839FBF842F6B
|
|
||||||
:2001C0000895882311F03F9A01C03F9847980895882311F046980895469A0895DF92EF9253
|
|
||||||
:2001E000FF920F931F93FC018489813019F0823019F404C010E303C010E001C010E283896E
|
|
||||||
:20020000823009F418608589873031F0883031F0863029F4126003C0146001C016601092A3
|
|
||||||
:20022000C9001092C8001092CA000785F088E188D288202F3F2D4E2D5D2D10921E01203B7C
|
|
||||||
:2002400084E0380780E0480780E0580719F481E080931E01CA01B90122E030E040E050E006
|
|
||||||
:200260001CD720583B47414E5F4FCA01B901202F3F2D4E2D5D2DEFD6215030403093CD00D9
|
|
||||||
:200280002093CC001093CA0082E08093C80088E98093C9001F910F91FF90EF90DF9008957E
|
|
||||||
:2002A0001F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38430F1F4E091ED
|
|
||||||
:2002C000A201F091A3019083E091A201F091A301CF0101969093A3018093A201825A914079
|
|
||||||
:2002E00021F482E291E0928381839FB7F8948091A6018F5F8093A6019FBFFF91EF919F911B
|
|
||||||
:200300008F912F910F900FBE0F901F901895FC0140911A0140931B0180911C0180931D015F
|
|
||||||
:200320008585282F30E02170307020931A01858590E096958795817080931C0180911E013B
|
|
||||||
:20034000882339F088E790E090931901809318010895442341F4222331F082E390E09093EA
|
|
||||||
:20036000190180931801089580E091E00AC680E091E0BDC584B7877F84BF88E10FB6F89468
|
|
||||||
:2003800080936000109260000FBE81E01ADF16BC83E085BD86B58831E8F315BC16BC80E078
|
|
||||||
:2003A00010DF469A3E9A87E690E09093CD008093CC0086E08093CA001092C80088E18093C1
|
|
||||||
:2003C000C900539A5A9A8AB180638AB98BB180638BB9A9D284E085BD08950F931F93CF933B
|
|
||||||
:2003E000DF93C8DF2FB7F89487EA91E0909328028093270290932A02809329022FBF2FB7A6
|
|
||||||
:20040000F89482E291E09093A3018093A2019093A5018093A4012FBF7894C7EAD1E003E03E
|
|
||||||
:200420008FB7F89490912B028FBF903809F180E091E0D3D497FD1CC0E0912702F09128025F
|
|
||||||
:200440008083E0912702F0912802CF01019690932802809327028752924011F4D283C1831B
|
|
||||||
:200460009FB7F89480912B028F5F80932B029FBF8FB7F8941091A6018FBFA89903C011361D
|
|
||||||
:2004800008F456C0A89A8091A601882361F05D9800931F0108C082E291E076DE682F80E0C4
|
|
||||||
:2004A00091E001D511501123B1F780911F01882351F080911F01815080931F0180911F0135
|
|
||||||
:2004C000882309F45D9A80912001882351F08091200181508093200180912001882309F44E
|
|
||||||
:2004E0005C9A809118019091190118161906E4F4CC97CD9710F481E001C080E069DE8091D7
|
|
||||||
:200500001801909119010197C29710F481E001C080E057DE809118019091190101979093BB
|
|
||||||
:2005200019018093180104C080E052DE80E049DE8FB7F89490912B028FBF992369F087EAA6
|
|
||||||
:2005400091E022DE982F8091C80085FFFCCF9093CE005C980093200180E091E095D42AD46A
|
|
||||||
:200560005FCFDA01923049F0933061F09130F9F4E8E9F0E022E130E01EC0EAEAF0E02EE36E
|
|
||||||
:2005800030E019C0813049F0813018F0823079F408C0E8EEF0E0849107C0ECEEF0E08491A7
|
|
||||||
:2005A00003C0E0E2F1E08491282F30E004C0E0E0F0E020E030E0ED93FC93C901089528E087
|
|
||||||
:2005C00030E040E003C04F5F220F331F28173907D0F3842F8295807F08958093E900809142
|
|
||||||
:2005E000EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881F08956A
|
|
||||||
:200600001092F40090E09093E9001092F0001092E8001092ED008091EB008E7F8093EB0016
|
|
||||||
:200620009F5F953081F708958091300288238CF403C08EB38823B1F08091E80082FFF9CFE2
|
|
||||||
:200640008091E8008B778093E80008958EB3882349F08091E80080FFF9CF8091E8008E77A4
|
|
||||||
:200660008093E800089594E68091EC0080FF05C08091E80080FF05C023C08091E80082FD8F
|
|
||||||
:200680001FC08EB3882311F482E008958EB3853011F483E008958091EB0085FF02C081E0ED
|
|
||||||
:2006A00008958091E10082FFDFCF8091E1008B7F8093E100992311F484E008959150D4CF46
|
|
||||||
:2006C00080E008959C0140913602509137024617570718F4F90120E038C06115710511F0B7
|
|
||||||
:2006E000AB01F8CF8091E8008E778093E80040E050E0F0CF8091E80083FF02C081E0089544
|
|
||||||
:200700008091E80082FD2DC08EB3882381F18EB3853079F18091E80080FF17C09091F20054
|
|
||||||
:2007200006C081918093F100415050409F5F4115510511F09830A8F320E0983009F421E0E8
|
|
||||||
:200740008091E8008E778093E8004115510591F6222381F606C08EB3882349F08EB38530D0
|
|
||||||
:2007600041F08091E80082FFF6CF80E0089582E0089583E008959C0140913602509137024D
|
|
||||||
:200780004617570710F490E03BC06115710511F0AB01F9CF8091E8008E778093E80040E0B5
|
|
||||||
:2007A00050E0F1CF8091E80083FF02C081E008958091E80082FD30C08EB3882399F18EB3EF
|
|
||||||
:2007C000853091F18091E80080FF1AC08091F20009C0F9012F5F3F4FE491E093F100415044
|
|
||||||
:2007E00050408F5F4115510511F0883090F390E0883009F491E08091E8008E778093E80004
|
|
||||||
:200800004115510579F6992369F606C08EB3882349F08EB3853041F08091E80082FFF6CF51
|
|
||||||
:2008200080E0089582E0089583E008959C016115710529F48091E8008B778093E800F90126
|
|
||||||
:2008400020C08091E80083FF02C081E008958EB3882339F18EB3853031F18091E80082FFD5
|
|
||||||
:20086000F0CF06C08091F10081936150704021F08091F2008823B1F78091E8008B77809307
|
|
||||||
:20088000E80061157105E9F606C08EB3882349F08EB3853041F08091E80080FFF6CF80E0F6
|
|
||||||
:2008A000089582E0089583E0089542D044D01EBA10922E0210922D0210922C0284E089BD81
|
|
||||||
:2008C00089B5826089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809186
|
|
||||||
:2008E00063008E7F809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1004F
|
|
||||||
:200900008E7F8093E1008091E20081608093E2008091E100877F8093E1008091E200886046
|
|
||||||
:200920008093E2000895C1DF81E080932F0208951092E20008951092E10008951F920F92B0
|
|
||||||
:200940000FB60F9211241F932F933F934F935F936F937F938F939F93AF93BF93EF93FF93D2
|
|
||||||
:20096000E9EEF0E0108117701082E0EFF0E08081877F80837894C3D0F894A9EEB0E01C927D
|
|
||||||
:20098000E0EFF0E08081886080831C93FF91EF91BF91AF919F918F917F916F915F914F914D
|
|
||||||
:2009A0003F912F911F910F900FBE0F901F9018951F920F920FB60F9211242F933F934F932D
|
|
||||||
:2009C0005F936F937F938F939F93AF93BF93EF93FF938091E10080FF1BC08091E20080FF57
|
|
||||||
:2009E00017C08091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E2006F
|
|
||||||
:200A00008091D80080628093D80019BC1EBAD1D18091E10084FF29C08091E20084FF25C018
|
|
||||||
:200A200084E089BD89B5826089BD09B400FEFDCF8091D8008F7D8093D8008091E1008F7E40
|
|
||||||
:200A40008093E1008091E2008F7E8093E2008091E20081608093E20080912E02882311F4F3
|
|
||||||
:200A600081E001C084E08EBBA4D18091E10083FF27C08091E20083FF23C08091E100877F87
|
|
||||||
:200A80008093E10082E08EBB10922E028091E1008E7F8093E1008091E2008E7F8093E200FD
|
|
||||||
:200AA0008091E20080618093E200AADD80E060E042E093DD8091F00088608093F00079D17E
|
|
||||||
:200AC0008091E10082FF0AC08091E20082FF06C08091E1008B7F8093E1006BD1FF91EF9163
|
|
||||||
:200AE000BF91AF919F918F917F916F915F914F913F912F910F900FBE0F901F9018951F938D
|
|
||||||
:200B0000DF93CF93CDB7DEB7AC970FB6F894DEBF0FBECDBFE0E3F2E08091F100819322E0B1
|
|
||||||
:200B2000E833F207C9F78091300230913102353009F487C0363040F43130C9F1313070F08B
|
|
||||||
:200B4000333009F01DC133C0383009F4EFC0393009F4FEC0363009F013C192C0803821F0E2
|
|
||||||
:200B6000823809F00DC108C090912C0280912D02882399F0926011C0809134028770809355
|
|
||||||
:200B8000E9008091EB0090E025E0969587952A95E1F7982F91701092E9008091E800877FCB
|
|
||||||
:200BA0008093E8009093F1001092F100CAC0882319F0823009F0E4C090E08F7190700097FF
|
|
||||||
:200BC00021F0029709F0DDC00CC080913202813009F0D7C010922D02333069F580932D02AF
|
|
||||||
:200BE0002AC080913202882331F520913402277009F4C7C02093E9008091EB0080FFC1C05B
|
|
||||||
:200C0000333021F48091EB00806213C08091EB0080618093EB0081E090E002C0880F991FEE
|
|
||||||
:200C20002A95E2F78093EA001092EA008091EB0088608093EB001092E9008091E800877F27
|
|
||||||
:200C400083C0882309F09CC0109132028091E800877F8093E800E8DC04C08EB3882309F411
|
|
||||||
:200C600090C08091E80080FFF8CF812F8F7711F492E001C093E09EBB80688093E30081C00C
|
|
||||||
:200C80008058823008F07CC0809132029091330223E08C3D920799F55FB7F894DE011596DC
|
|
||||||
:200CA0004EE020E030E061E2E42FF0E060935700849120FF03C082958F704F5F982F9F70F5
|
|
||||||
:200CC000892F805D8A3308F0895F8C9311961C9211972F5F3F4F12962431310529F75FBF39
|
|
||||||
:200CE0008AE28B8383E08C838091E800877F8093E800CE0103966AE270E0E4DC11C0609188
|
|
||||||
:200D00003402AE014F5F5F4F2CDCBC010097C9F18091E800877F8093E80089819A812BDD55
|
|
||||||
:200D20008091E8008B778093E8002BC0803841F58091E800877F8093E80080912E02809396
|
|
||||||
:200D4000F1008091E8008E778093E8006DDC19C08823B1F490913202923098F48091E8009B
|
|
||||||
:200D6000877F8093E80090932E025EDC80912E02882311F483E001C084E08EBBF8DA01C090
|
|
||||||
:200D8000F3DA8091E80083FF0AC08091EB0080628093EB008091E800877F8093E800AC9629
|
|
||||||
:200DA0000FB6F894DEBF0FBECDBFCF91DF911F91089508951F938EB3882361F01091E900B9
|
|
||||||
:200DC0001092E9008091E80083FF01C098DE17701093E9001F9108950895FC018EB38430E7
|
|
||||||
:200DE00021F587859089A189B2890097A105B105E1F085818093E9008091E80082FF15C03E
|
|
||||||
:200E00008091F200882319F42FEF3FEF04C08091F100282F30E08091F200882341F48091AA
|
|
||||||
:200E2000E8008B778093E80002C02FEF3FEFC9010895FC018EB3843011F587859089A18911
|
|
||||||
:200E4000B2890097A105B105D1F081818093E9008091F2008823A9F09091E8008091E8005C
|
|
||||||
:200E60008E778093E80095FD0CC0FDDB982F882349F48091E8008E778093E80003C092E05F
|
|
||||||
:200E800001C090E0892F0895FC018EB3843051F487859089A189B2890097A105B10511F017
|
|
||||||
:200EA000CF01C7CF08951F93FC01162F8EB38430D9F487859089A189B2890097A105B105FC
|
|
||||||
:200EC00099F081818093E9008091E80085FD08C08091E8008E778093E800C5DB882329F4E7
|
|
||||||
:200EE0001093F10080E001C082E01F9108950F931F93CF93DF93EC010D96FC0189E0DF0190
|
|
||||||
:200F00001D928A95E9F72A813B8109818C81882311F410E001C014E0C90151DB182B126025
|
|
||||||
:200F2000802F61E8412F59DB882329F12E813F810D818885882311F410E001C014E0C90127
|
|
||||||
:200F40003EDB182B1260802F60E8412F46DB882391F02A853B8509858C85882311F410E061
|
|
||||||
:200F600001C014E0C9012BDB182B1260802F61EC412F33DB01C080E0DF91CF911F910F917C
|
|
||||||
:200F80000895CF93DF93EC018091E80083FF60C0888190E020913402309135022817390781
|
|
||||||
:200FA00009F056C080913102813261F0823220F4803209F04DC019C0823269F1833209F0C5
|
|
||||||
:200FC00047C038C080913002813A09F041C08091E800877F8093E800CE010F9667E070E015
|
|
||||||
:200FE00071DB8091E8008B7713C080913002813279F58091E800877F8093E800CE010F9605
|
|
||||||
:2010000067E070E013DCCE01E9D88091E8008E778093E8001DC0809130028132C9F4809120
|
|
||||||
:20102000E800877F8093E800809132028D87CE016ED90DC080913002813251F48091E80057
|
|
||||||
:20104000877F8093E800CE0160913202C5DEECDADF91CF910895A1E21A2EAA1BBB1BFD0161
|
|
||||||
:201060000DC0AA1FBB1FEE1FFF1FA217B307E407F50720F0A21BB30BE40BF50B661F771FE6
|
|
||||||
:20108000881F991F1A9469F760957095809590959B01AC01BD01CF01089597FB092E052647
|
|
||||||
:2010A0000ED057FD04D0D7DF0AD0001C38F450954095309521953F4F4F4F5F4F0895F6F7B9
|
|
||||||
:2010C00090958095709561957F4F8F4F9F4F0895F894FFCF000340000004400000020800B9
|
|
||||||
:0C10E000000000000000000000001400F0
|
|
||||||
:00000001FF
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
:20000000A7C00000C0C00000BEC00000BCC00000BAC00000B8C00000B6C00000B4C0000023
|
|
||||||
:20002000B2C00000B0C00000AEC00000CBC400008FC40000A8C00000A6C00000A4C000005C
|
|
||||||
:20004000A2C00000A0C000009EC000009CC000009AC0000098C0000096C0000021C100003A
|
|
||||||
:2000600092C0000090C000008EC000008CC000008AC0000088C0000086C0000084C0000028
|
|
||||||
:2000800082C0000080C000007EC000007CC000007AC0000078C000001201100102000008C4
|
|
||||||
:2000A00041233D0001000102DC0109023E00020100C0320904000001020201000524000143
|
|
||||||
:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC
|
|
||||||
:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA
|
|
||||||
:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D
|
|
||||||
:200120002E03410072006400750069006E006F0020004400750065002000500072006F002D
|
|
||||||
:2001400067002E00200050006F0072007400000011241FBECFEFD2E0DEBFCDBF11E0A0E029
|
|
||||||
:20016000B1E0E8EEF0E102C005900D92A831B107D9F712E0A8E1B1E001C01D92A833B107E1
|
|
||||||
:20018000E1F722D1AFC73CCF9C01DC01AE57BF4FED91FC91119741911196FC93EE93805872
|
|
||||||
:2001A0009F4FE817F90711F42D933C939FB7F894F901EC57FF4F8081815080839FBF842F6B
|
|
||||||
:2001C0000895882311F03F9A01C03F9847980895882311F046980895469A0895DF92EF9253
|
|
||||||
:2001E000FF920F931F93FC018489813019F0823019F404C010E303C010E001C010E283896E
|
|
||||||
:20020000823009F418608589873031F0883031F0863029F4126003C0146001C016601092A3
|
|
||||||
:20022000C9001092C8001092CA000785F088E188D288202F3F2D4E2D5D2D10921E01203B7C
|
|
||||||
:2002400084E0380780E0480780E0580719F481E080931E01CA01B90122E030E040E050E006
|
|
||||||
:2002600026D720583B47414E5F4FCA01B901202F3F2D4E2D5D2DF9D6215030403093CD00C5
|
|
||||||
:200280002093CC001093CA0082E08093C80088E98093C9001F910F91FF90EF90DF9008957E
|
|
||||||
:2002A0001F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38430F1F4E091ED
|
|
||||||
:2002C000A201F091A3019083E091A201F091A301CF0101969093A3018093A201825A914079
|
|
||||||
:2002E00021F482E291E0928381839FB7F8948091A6018F5F8093A6019FBFFF91EF919F911B
|
|
||||||
:200300008F912F910F900FBE0F901F901895FC0140911A0140931B0180911C0180931D015F
|
|
||||||
:200320008585282F30E02170307020931A01858590E096958795817080931C0180911E013B
|
|
||||||
:20034000882339F08FE590E090931901809318010895442341F4222331F08EE190E09093DB
|
|
||||||
:20036000190180931801089580E091E014C680E091E0C7C51F9384B7877F84BF18E10FB69E
|
|
||||||
:20038000F89410936000109260000FBE80E019DF469A3E9A87E690E09093CD008093CC0043
|
|
||||||
:2003A00086E08093CA001092C8001093C900539A5A9A8AB180638AB98BB180638BB9BDD2F0
|
|
||||||
:2003C00084E085BD1F9108950F931F93CF93DF93D1DF2FB7F89487EA91E09093280280939E
|
|
||||||
:2003E000270290932A02809329022FBF2FB7F89482E291E09093A3018093A2019093A501CC
|
|
||||||
:200400008093A4012FBF7894C7EAD1E003E08FB7F89490912B028FBF903809F180E091E0E4
|
|
||||||
:20042000E6D497FD1CC0E0912702F09128028083E0912702F0912802CF0101969093280251
|
|
||||||
:20044000809327028752924011F4D283C1839FB7F89480912B028F5F80932B029FBF8FB725
|
|
||||||
:20046000F8941091A6018FBFA89903C0113608F469C0A89A8091A601882361F05D9800936C
|
|
||||||
:200480001F0108C082E291E07FDE682F80E091E014D511501123B1F780911F01882351F097
|
|
||||||
:2004A00080911F01815080931F0180911F01882309F45D9A80912001882351F080912001E7
|
|
||||||
:2004C00081508093200180912001882309F45C9A8091180190911901181619067CF58F3560
|
|
||||||
:2004E000910521F481E074DE80E06BDE8091180190911901839721F480E06ADE80E061DE1A
|
|
||||||
:200500008091180190911901499721F480E060DE81E057DE8091180190911901019721F43B
|
|
||||||
:2005200080E056DE80E04DDE80911801909119010197909319018093180104C080E048DEEC
|
|
||||||
:2005400080E03FDE8FB7F89490912B028FBF992369F087EA91E018DE982F8091C80085FF9F
|
|
||||||
:20056000FCCF9093CE005C980093200180E091E095D42AD44CCFDA01923049F0933061F0DA
|
|
||||||
:200580009130F9F4E8E9F0E022E130E01EC0EAEAF0E02EE330E019C0813049F0813018F0DA
|
|
||||||
:2005A000823079F408C0E8EEF0E0849107C0ECEEF0E0849103C0E0E2F1E08491282F30E041
|
|
||||||
:2005C00004C0E0E0F0E020E030E0ED93FC93C901089528E030E040E003C04F5F220F331F15
|
|
||||||
:2005E00028173907D0F3842F8295807F08958093E9008091EB0081608093EB001092ED00ED
|
|
||||||
:200600006093EC004093ED008091EE00881F8827881F08951092F40090E09093E9001092EE
|
|
||||||
:20062000F0001092E8001092ED008091EB008E7F8093EB009F5F953081F70895809130028F
|
|
||||||
:2006400088238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B778093E80008954A
|
|
||||||
:200660008EB3882349F08091E80080FFF9CF8091E8008E778093E800089594E68091EC0008
|
|
||||||
:2006800080FF05C08091E80080FF05C023C08091E80082FD1FC08EB3882311F482E00895AF
|
|
||||||
:2006A0008EB3853011F483E008958091EB0085FF02C081E008958091E10082FFDFCF8091CD
|
|
||||||
:2006C000E1008B7F8093E100992311F484E008959150D4CF80E008959C0140913602509171
|
|
||||||
:2006E00037024617570718F4F90120E038C06115710511F0AB01F8CF8091E8008E77809397
|
|
||||||
:20070000E80040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC08EB3882356
|
|
||||||
:2007200081F18EB3853079F18091E80080FF17C09091F20006C081918093F1004150504088
|
|
||||||
:200740009F5F4115510511F09830A8F320E0983009F421E08091E8008E778093E800411576
|
|
||||||
:20076000510591F6222381F606C08EB3882349F08EB3853041F08091E80082FFF6CF80E02F
|
|
||||||
:20078000089582E0089583E008959C0140913602509137024617570710F490E03BC061155D
|
|
||||||
:2007A000710511F0AB01F9CF8091E8008E778093E80040E050E0F1CF8091E80083FF02C008
|
|
||||||
:2007C00081E008958091E80082FD30C08EB3882399F18EB3853091F18091E80080FF1AC073
|
|
||||||
:2007E0008091F20009C0F9012F5F3F4FE491E093F100415050408F5F4115510511F08830CA
|
|
||||||
:2008000090F390E0883009F491E08091E8008E778093E8004115510579F6992369F606C0CA
|
|
||||||
:200820008EB3882349F08EB3853041F08091E80082FFF6CF80E0089582E0089583E0089531
|
|
||||||
:200840009C016115710529F48091E8008B778093E800F90120C08091E80083FF02C081E084
|
|
||||||
:2008600008958EB3882339F18EB3853031F18091E80082FFF0CF06C08091F10081936150E7
|
|
||||||
:20088000704021F08091F2008823B1F78091E8008B778093E80061157105E9F606C08EB379
|
|
||||||
:2008A000882349F08EB3853041F08091E80080FFF6CF80E0089582E0089583E0089542D0E2
|
|
||||||
:2008C00044D01EBA10922E0210922D0210922C0284E089BD89B5826089BD09B400FEFDCF22
|
|
||||||
:2008E0008091D800982F9F779093D80080688093D800809163008E7F809363008091D80084
|
|
||||||
:200900008F7D8093D8008091E0008E7F8093E0008091E1008E7F8093E1008091E200816028
|
|
||||||
:200920008093E2008091E100877F8093E1008091E20088608093E2000895C1DF81E0809355
|
|
||||||
:200940002F0208951092E20008951092E10008951F920F920FB60F9211241F932F933F9355
|
|
||||||
:200960004F935F936F937F938F939F93AF93BF93EF93FF93E9EEF0E0108117701082E0EF73
|
|
||||||
:20098000F0E08081877F80837894C3D0F894A9EEB0E01C92E0EFF0E08081886080831C9343
|
|
||||||
:2009A000FF91EF91BF91AF919F918F917F916F915F914F913F912F911F910F900FBE0F901C
|
|
||||||
:2009C0001F9018951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF93BC
|
|
||||||
:2009E000BF93EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E10009
|
|
||||||
:200A00008091E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC8D
|
|
||||||
:200A20001EBAD1D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B4B6
|
|
||||||
:200A400000FEFDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093E6
|
|
||||||
:200A6000E2008091E20081608093E20080912E02882311F481E001C084E08EBBA4D1809185
|
|
||||||
:200A8000E10083FF27C08091E20083FF23C08091E100877F8093E10082E08EBB10922E024B
|
|
||||||
:200AA0008091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200AADDFE
|
|
||||||
:200AC00080E060E042E093DD8091F00088608093F00079D18091E10082FF0AC08091E2007E
|
|
||||||
:200AE00082FF06C08091E1008B7F8093E1006BD1FF91EF91BF91AF919F918F917F916F9183
|
|
||||||
:200B00005F914F913F912F910F900FBE0F901F9018951F93DF93CF93CDB7DEB7AC970FB667
|
|
||||||
:200B2000F894DEBF0FBECDBFE0E3F2E08091F100819322E0E833F207C9F7809130023091AE
|
|
||||||
:200B40003102353009F487C0363040F43130C9F1313070F0333009F01DC133C0383009F4B1
|
|
||||||
:200B6000EFC0393009F4FEC0363009F013C192C0803821F0823809F00DC108C090912C02BC
|
|
||||||
:200B800080912D02882399F0926011C08091340287708093E9008091EB0090E025E0969548
|
|
||||||
:200BA00087952A95E1F7982F91701092E9008091E800877F8093E8009093F1001092F1008E
|
|
||||||
:200BC000CAC0882319F0823009F0E4C090E08F719070009721F0029709F0DDC00CC0809164
|
|
||||||
:200BE0003202813009F0D7C010922D02333069F580932D022AC080913202882331F52091FB
|
|
||||||
:200C00003402277009F4C7C02093E9008091EB0080FFC1C0333021F48091EB00806213C0C2
|
|
||||||
:200C20008091EB0080618093EB0081E090E002C0880F991F2A95E2F78093EA001092EA00D6
|
|
||||||
:200C40008091EB0088608093EB001092E9008091E800877F83C0882309F09CC01091320210
|
|
||||||
:200C60008091E800877F8093E800E8DC04C08EB3882309F490C08091E80080FFF8CF812FCA
|
|
||||||
:200C80008F7711F492E001C093E09EBB80688093E30081C08058823008F07CC08091320228
|
|
||||||
:200CA0009091330223E08C3D920799F55FB7F894DE0115964EE020E030E061E2E42FF0E05B
|
|
||||||
:200CC00060935700849120FF03C082958F704F5F982F9F70892F805D8A3308F0895F8C93E8
|
|
||||||
:200CE00011961C9211972F5F3F4F12962431310529F75FBF8AE28B8383E08C838091E80085
|
|
||||||
:200D0000877F8093E800CE0103966AE270E0E4DC11C060913402AE014F5F5F4F2CDCBC0146
|
|
||||||
:200D20000097C9F18091E800877F8093E80089819A812BDD8091E8008B778093E8002BC05A
|
|
||||||
:200D4000803841F58091E800877F8093E80080912E028093F1008091E8008E778093E8006D
|
|
||||||
:200D60006DDC19C08823B1F490913202923098F48091E800877F8093E80090932E025EDCD7
|
|
||||||
:200D800080912E02882311F483E001C084E08EBBEEDA01C0E9DA8091E80083FF0AC08091EF
|
|
||||||
:200DA000EB0080628093EB008091E800877F8093E800AC960FB6F894DEBF0FBECDBFCF9185
|
|
||||||
:200DC000DF911F91089508951F938EB3882361F01091E9001092E9008091E80083FF01C079
|
|
||||||
:200DE00098DE17701093E9001F9108950895FC018EB3843021F587859089A189B289009757
|
|
||||||
:200E0000A105B105E1F085818093E9008091E80082FF15C08091F200882319F42FEF3FEF4D
|
|
||||||
:200E200004C08091F100282F30E08091F200882341F48091E8008B778093E80002C02FEFCC
|
|
||||||
:200E40003FEFC9010895FC018EB3843011F587859089A189B2890097A105B105D1F08181C5
|
|
||||||
:200E60008093E9008091F2008823A9F09091E8008091E8008E778093E80095FD0CC0FDDBF7
|
|
||||||
:200E8000982F882349F48091E8008E778093E80003C092E001C090E0892F0895FC018EB3B1
|
|
||||||
:200EA000843051F487859089A189B2890097A105B10511F0CF01C7CF08951F93FC01162FC4
|
|
||||||
:200EC0008EB38430D9F487859089A189B2890097A105B10599F081818093E9008091E80053
|
|
||||||
:200EE00085FD08C08091E8008E778093E800C5DB882329F41093F10080E001C082E01F9180
|
|
||||||
:200F000008950F931F93CF93DF93EC010D96FC0189E0DF011D928A95E9F72A813B81098197
|
|
||||||
:200F20008C81882311F410E001C014E0C90151DB182B1260802F61E8412F59DB882329F143
|
|
||||||
:200F40002E813F810D818885882311F410E001C014E0C9013EDB182B1260802F60E8412F33
|
|
||||||
:200F600046DB882391F02A853B8509858C85882311F410E001C014E0C9012BDB182B12603C
|
|
||||||
:200F8000802F61EC412F33DB01C080E0DF91CF911F910F910895CF93DF93EC018091E8003F
|
|
||||||
:200FA00083FF60C0888190E020913402309135022817390709F056C080913102813261F061
|
|
||||||
:200FC000823220F4803209F04DC019C0823269F1833209F047C038C080913002813A09F006
|
|
||||||
:200FE00041C08091E800877F8093E800CE010F9667E070E071DB8091E8008B7713C08091C0
|
|
||||||
:201000003002813279F58091E800877F8093E800CE010F9667E070E013DCCE01DFD88091F2
|
|
||||||
:20102000E8008E778093E8001DC0809130028132C9F48091E800877F8093E80080913202F9
|
|
||||||
:201040008D87CE0164D90DC080913002813251F48091E800877F8093E800CE01609132027A
|
|
||||||
:20106000C5DEECDADF91CF910895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217E2
|
|
||||||
:20108000B307E407F50720F0A21BB30BE40BF50B661F771F881F991F1A9469F760957095B3
|
|
||||||
:2010A000809590959B01AC01BD01CF01089597FB092E05260ED057FD04D0D7DF0AD0001CDC
|
|
||||||
:2010C00038F450954095309521953F4F4F4F5F4F0895F6F790958095709561957F4F8F4F6A
|
|
||||||
:2010E0009F4F0895F894FFCF00034000000440000002080000000000000000000000140066
|
|
||||||
:00000001FF
|
|
||||||
@@ -1,273 +0,0 @@
|
|||||||
:10000000A7C00000C0C00000BEC00000BCC000000F
|
|
||||||
:10001000BAC00000B8C00000B6C00000B4C0000004
|
|
||||||
:10002000B2C00000B0C00000AEC00000C1C40000FB
|
|
||||||
:1000300085C40000A8C00000A6C00000A4C0000045
|
|
||||||
:10004000A2C00000A0C000009EC000009CC0000034
|
|
||||||
:100050009AC0000098C0000096C0000021C10000B6
|
|
||||||
:1000600092C0000090C000008EC000008CC0000054
|
|
||||||
:100070008AC0000088C0000086C0000084C0000064
|
|
||||||
:1000800082C0000080C000007EC000007CC0000074
|
|
||||||
:100090007AC0000078C000001201100102000008C0
|
|
||||||
:1000A00041233D0001000102DC0109023E00020182
|
|
||||||
:1000B00000C0320904000001020201000524000111
|
|
||||||
:1000C0001004240206052406000107058203080027
|
|
||||||
:1000D000FF09040100020A000000070504024000B5
|
|
||||||
:1000E00001070583024000010403090432034100B3
|
|
||||||
:1000F00072006400750069006E006F002000280027
|
|
||||||
:100100007700770077002E006100720064007500B0
|
|
||||||
:1001100069006E006F002E0063006300290000007C
|
|
||||||
:100120002E03410072006400750069006E006F00CC
|
|
||||||
:1001300020004400750065002000500072006F0030
|
|
||||||
:1001400067002E00200050006F0072007400000055
|
|
||||||
:1001500011241FBECFEFD2E0DEBFCDBF11E0A0E083
|
|
||||||
:10016000B1E0E4EDF0E102C005900D92A831B107D5
|
|
||||||
:10017000D9F712E0A8E1B1E001C01D92A833B107A0
|
|
||||||
:10018000E1F72BD1A5C73CCF9C01DC01AE57BF4F97
|
|
||||||
:10019000ED91FC91119741911196FC93EE9380584B
|
|
||||||
:1001A0009F4FE817F90711F42D933C939FB7F894EC
|
|
||||||
:1001B000F901EC57FF4F8081815080839FBF842FCE
|
|
||||||
:1001C0000895882311F03F9A01C03F9847980895F9
|
|
||||||
:1001D000882311F046980895469A0895DF92EF9289
|
|
||||||
:1001E000FF920F931F93FC018489813019F08230B4
|
|
||||||
:1001F00019F404C010E303C010E001C010E28389C9
|
|
||||||
:10020000823009F418608589873031F0883031F008
|
|
||||||
:10021000863029F4126003C0146001C01660109289
|
|
||||||
:10022000C9001092C8001092CA000785F088E188C2
|
|
||||||
:10023000D288202F3F2D4E2D5D2D10921E01203B88
|
|
||||||
:1002400084E0380780E0480780E0580719F481E02F
|
|
||||||
:1002500080931E01CA01B90122E030E040E050E085
|
|
||||||
:100260001CD720583B47414E5F4FCA01B901202F90
|
|
||||||
:100270003F2D4E2D5D2DEFD6215030403093CD00D7
|
|
||||||
:100280002093CC001093CA0082E08093C80088E9D4
|
|
||||||
:100290008093C9001F910F91FF90EF90DF90089518
|
|
||||||
:1002A0001F920F920FB60F9211242F938F939F934B
|
|
||||||
:1002B000EF93FF939091CE008EB38430F1F4E091F0
|
|
||||||
:1002C000A201F091A3019083E091A201F091A3011A
|
|
||||||
:1002D000CF0101969093A3018093A201825A91408D
|
|
||||||
:1002E00021F482E291E0928381839FB7F894809118
|
|
||||||
:1002F000A6018F5F8093A6019FBFFF91EF919F9111
|
|
||||||
:100300008F912F910F900FBE0F901F901895FC01A9
|
|
||||||
:1003100040911A0140931B0180911C0180931D01A3
|
|
||||||
:100320008585282F30E02170307020931A01858553
|
|
||||||
:1003300090E096958795817080931C0180911E01B5
|
|
||||||
:10034000882339F088E790E0909319018093180191
|
|
||||||
:100350000895442341F4222331F082E390E0909306
|
|
||||||
:10036000190180931801089580E091E00AC680E0A9
|
|
||||||
:1003700091E0BDC584B7877F84BF88E10FB6F8944C
|
|
||||||
:1003800080936000109260000FBE81E01ADF16BCFF
|
|
||||||
:1003900083E085BD86B58831E8F315BC16BC80E0E6
|
|
||||||
:1003A00010DF469A3E9A87E690E09093CD008093C6
|
|
||||||
:1003B000CC0086E08093CA001092C80088E1809348
|
|
||||||
:1003C000C900539A5A9A8AB180638AB98BB1806303
|
|
||||||
:1003D0008BB9A9D284E085BD08950F931F93CF9365
|
|
||||||
:1003E000DF93C8DF2FB7F89487EA91E09093280253
|
|
||||||
:1003F0008093270290932A02809329022FBF2FB760
|
|
||||||
:10040000F89482E291E09093A3018093A2019093EB
|
|
||||||
:10041000A5018093A4012FBF7894C7EAD1E003E03F
|
|
||||||
:100420008FB7F89490912B028FBF903809F180E03C
|
|
||||||
:1004300091E0D3D497FD1CC0E0912702F0912802EF
|
|
||||||
:100440008083E0912702F0912802CF0101969093DA
|
|
||||||
:100450002802809327028752924011F4D283C183ED
|
|
||||||
:100460009FB7F89480912B028F5F80932B029FBFE0
|
|
||||||
:100470008FB7F8941091A6018FBFA89903C01136C9
|
|
||||||
:1004800008F456C0A89A8091A601882361F05D986F
|
|
||||||
:1004900000931F0108C082E291E076DE682F80E0C1
|
|
||||||
:1004A00091E001D511501123B1F780911F018823EC
|
|
||||||
:1004B00051F080911F01815080931F0180911F0195
|
|
||||||
:1004C000882309F45D9A80912001882351F080915E
|
|
||||||
:1004D000200181508093200180912001882309F41C
|
|
||||||
:1004E0005C9A809118019091190118161906E4F48C
|
|
||||||
:1004F000CC97CD9710F481E001C080E069DE809157
|
|
||||||
:100500001801909119010197C29710F481E001C080
|
|
||||||
:1005100080E057DE80911801909119010197909326
|
|
||||||
:1005200019018093180104C080E052DE80E049DEAA
|
|
||||||
:100530008FB7F89490912B028FBF992369F087EAC7
|
|
||||||
:1005400091E022DE982F8091C80085FFFCCF909328
|
|
||||||
:10055000CE005C980093200180E091E095D42AD4ED
|
|
||||||
:100560005FCFDA01923049F0933061F09130F9F4C5
|
|
||||||
:10057000E8E9F0E022E130E01EC0EAEAF0E02EE334
|
|
||||||
:1005800030E019C0813049F0813018F0823079F4C0
|
|
||||||
:1005900008C0E8EEF0E0849107C0ECEEF0E0849152
|
|
||||||
:1005A00003C0E0E2F1E08491282F30E004C0E0E0F5
|
|
||||||
:1005B000F0E020E030E0ED93FC93C901089528E0DD
|
|
||||||
:1005C00030E040E003C04F5F220F331F2817390788
|
|
||||||
:1005D000D0F3842F8295807F08958093E9008091E5
|
|
||||||
:1005E000EB0081608093EB001092ED006093EC00D3
|
|
||||||
:1005F0004093ED008091EE00881F8827881F0895A2
|
|
||||||
:100600001092F40090E09093E9001092F0001092A4
|
|
||||||
:10061000E8001092ED008091EB008E7F8093EB005C
|
|
||||||
:100620009F5F953081F708958091300288238CF484
|
|
||||||
:1006300003C08EB38823B1F08091E80082FFF9CF28
|
|
||||||
:100640008091E8008B778093E80008958EB388232B
|
|
||||||
:1006500049F08091E80080FFF9CF8091E8008E7723
|
|
||||||
:100660008093E800089594E68091EC0080FF05C037
|
|
||||||
:100670008091E80080FF05C023C08091E80082FDE2
|
|
||||||
:100680001FC08EB3882311F482E008958EB38530A5
|
|
||||||
:1006900011F483E008958091EB0085FF02C081E0B2
|
|
||||||
:1006A00008958091E10082FFDFCF8091E1008B7F90
|
|
||||||
:1006B0008093E100992311F484E008959150D4CF00
|
|
||||||
:1006C00080E008959C014091360250913702461710
|
|
||||||
:1006D000570718F4F90120E038C06115710511F0D1
|
|
||||||
:1006E000AB01F8CF8091E8008E778093E80040E07E
|
|
||||||
:1006F00050E0F0CF8091E80083FF02C081E00895D0
|
|
||||||
:100700008091E80082FD2DC08EB3882381F18EB3E5
|
|
||||||
:10071000853079F18091E80080FF17C09091F20058
|
|
||||||
:1007200006C081918093F100415050409F5F411578
|
|
||||||
:10073000510511F09830A8F320E0983009F421E039
|
|
||||||
:100740008091E8008E778093E8004115510591F67D
|
|
||||||
:10075000222381F606C08EB3882349F08EB38530FC
|
|
||||||
:1007600041F08091E80082FFF6CF80E0089582E0BA
|
|
||||||
:10077000089583E008959C0140913602509137021C
|
|
||||||
:100780004617570710F490E03BC06115710511F052
|
|
||||||
:10079000AB01F9CF8091E8008E778093E80040E0CC
|
|
||||||
:1007A00050E0F1CF8091E80083FF02C081E008951E
|
|
||||||
:1007B0008091E80082FD30C08EB3882399F18EB31A
|
|
||||||
:1007C000853091F18091E80080FF1AC08091F2009D
|
|
||||||
:1007D00009C0F9012F5F3F4FE491E093F1004150D0
|
|
||||||
:1007E00050408F5F4115510511F0883090F390E033
|
|
||||||
:1007F000883009F491E08091E8008E778093E800DA
|
|
||||||
:100800004115510579F6992369F606C08EB3882300
|
|
||||||
:1008100049F08EB3853041F08091E80082FFF6CF39
|
|
||||||
:1008200080E0089582E0089583E008959C016115B9
|
|
||||||
:10083000710529F48091E8008B778093E800F90135
|
|
||||||
:1008400020C08091E80083FF02C081E008958EB34C
|
|
||||||
:10085000882339F18EB3853031F18091E80082FF31
|
|
||||||
:10086000F0CF06C08091F10081936150704021F07B
|
|
||||||
:100870008091F2008823B1F78091E8008B77809314
|
|
||||||
:10088000E80061157105E9F606C08EB3882349F0CA
|
|
||||||
:100890008EB3853041F08091E80080FFF6CF80E094
|
|
||||||
:1008A000089582E0089583E0089542D044D01EBAAE
|
|
||||||
:1008B00010922E0210922D0210922C0284E089BD1B
|
|
||||||
:1008C00089B5826089BD09B400FEFDCF8091D80052
|
|
||||||
:1008D000982F9F779093D80080688093D80080915C
|
|
||||||
:1008E00063008E7F809363008091D8008F7D80931A
|
|
||||||
:1008F000D8008091E0008E7F8093E0008091E1003D
|
|
||||||
:100900008E7F8093E1008091E20081608093E2001D
|
|
||||||
:100910008091E100877F8093E1008091E200886010
|
|
||||||
:100920008093E2000895C1DF81E080932F02089553
|
|
||||||
:100930001092E20008951092E10008951F920F9224
|
|
||||||
:100940000FB60F9211241F932F933F934F935F93F2
|
|
||||||
:100950006F937F938F939F93AF93BF93EF93FF9387
|
|
||||||
:10096000E9EEF0E0108117701082E0EFF0E0808196
|
|
||||||
:10097000877F80837894C3D0F894A9EEB0E01C926E
|
|
||||||
:10098000E0EFF0E08081886080831C93FF91EF911D
|
|
||||||
:10099000BF91AF919F918F917F916F915F914F9197
|
|
||||||
:1009A0003F912F911F910F900FBE0F901F901895A0
|
|
||||||
:1009B0001F920F920FB60F9211242F933F934F93D4
|
|
||||||
:1009C0005F936F937F938F939F93AF93BF93EF93B7
|
|
||||||
:1009D000FF938091E10080FF1BC08091E20080FFC7
|
|
||||||
:1009E00017C08091E1008E7F8093E1008091E2004A
|
|
||||||
:1009F0008E7F8093E2008091E20080618093E2002C
|
|
||||||
:100A00008091D80080628093D80019BC1EBAD1D1E1
|
|
||||||
:100A10008091E10084FF29C08091E20084FF25C01D
|
|
||||||
:100A200084E089BD89B5826089BD09B400FEFDCF2F
|
|
||||||
:100A30008091D8008F7D8093D8008091E1008F7ED7
|
|
||||||
:100A40008093E1008091E2008F7E8093E2008091AC
|
|
||||||
:100A5000E20081608093E20080912E02882311F4ED
|
|
||||||
:100A600081E001C084E08EBBA4D18091E10083FFCE
|
|
||||||
:100A700027C08091E20083FF23C08091E100877F3F
|
|
||||||
:100A80008093E10082E08EBB10922E028091E10003
|
|
||||||
:100A90008E7F8093E1008091E2008E7F8093E20060
|
|
||||||
:100AA0008091E20080618093E200AADD80E060E056
|
|
||||||
:100AB00042E093DD8091F00088608093F00079D16E
|
|
||||||
:100AC0008091E10082FF0AC08091E20082FF06C0AF
|
|
||||||
:100AD0008091E1008B7F8093E1006BD1FF91EF91DA
|
|
||||||
:100AE000BF91AF919F918F917F916F915F914F9146
|
|
||||||
:100AF0003F912F910F900FBE0F901F9018951F934D
|
|
||||||
:100B0000DF93CF93CDB7DEB7AC970FB6F894DEBFC7
|
|
||||||
:100B10000FBECDBFE0E3F2E08091F100819322E0CF
|
|
||||||
:100B2000E833F207C9F78091300230913102353055
|
|
||||||
:100B300009F487C0363040F43130C9F1313070F0FB
|
|
||||||
:100B4000333009F01DC133C0383009F4EFC03930FB
|
|
||||||
:100B500009F4FEC0363009F013C192C0803821F08C
|
|
||||||
:100B6000823809F00DC108C090912C0280912D02AD
|
|
||||||
:100B7000882399F0926011C080913402877080932D
|
|
||||||
:100B8000E9008091EB0090E025E0969587952A9505
|
|
||||||
:100B9000E1F7982F91701092E9008091E800877F2B
|
|
||||||
:100BA0008093E8009093F1001092F100CAC088236E
|
|
||||||
:100BB00019F0823009F0E4C090E08F7190700097D6
|
|
||||||
:100BC00021F0029709F0DDC00CC080913202813023
|
|
||||||
:100BD00009F0D7C010922D02333069F580932D02B1
|
|
||||||
:100BE0002AC080913202882331F520913402277087
|
|
||||||
:100BF00009F4C7C02093E9008091EB0080FFC1C0D9
|
|
||||||
:100C0000333021F48091EB00806213C08091EB00BF
|
|
||||||
:100C100080618093EB0081E090E002C0880F991F13
|
|
||||||
:100C20002A95E2F78093EA001092EA008091EB00A7
|
|
||||||
:100C300088608093EB001092E9008091E800877F44
|
|
||||||
:100C400083C0882309F09CC0109132028091E80093
|
|
||||||
:100C5000877F8093E800E8DC04C08EB3882309F422
|
|
||||||
:100C600090C08091E80080FFF8CF812F8F7711F43A
|
|
||||||
:100C700092E001C093E09EBB80688093E30081C056
|
|
||||||
:100C80008058823008F07CC080913202909133020B
|
|
||||||
:100C900023E08C3D920799F55FB7F894DE01159635
|
|
||||||
:100CA0004EE020E030E061E2E42FF0E06093570096
|
|
||||||
:100CB000849120FF03C082958F704F5F982F9F70A3
|
|
||||||
:100CC000892F805D8A3308F0895F8C9311961C927E
|
|
||||||
:100CD00011972F5F3F4F12962431310529F75FBFDF
|
|
||||||
:100CE0008AE28B8383E08C838091E800877F809306
|
|
||||||
:100CF000E800CE0103966AE270E0E4DC11C0609186
|
|
||||||
:100D00003402AE014F5F5F4F2CDCBC010097C9F18C
|
|
||||||
:100D10008091E800877F8093E80089819A812BDDAC
|
|
||||||
:100D20008091E8008B778093E8002BC0803841F5F4
|
|
||||||
:100D30008091E800877F8093E80080912E02809365
|
|
||||||
:100D4000F1008091E8008E778093E8006DDC19C097
|
|
||||||
:100D50008823B1F490913202923098F48091E800A7
|
|
||||||
:100D6000877F8093E80090932E025EDC80912E02B4
|
|
||||||
:100D7000882311F483E001C084E08EBBF8DA01C05F
|
|
||||||
:100D8000F3DA8091E80083FF0AC08091EB00806273
|
|
||||||
:100D90008093EB008091E800877F8093E800AC9619
|
|
||||||
:100DA0000FB6F894DEBF0FBECDBFCF91DF911F917C
|
|
||||||
:100DB000089508951F938EB3882361F01091E90080
|
|
||||||
:100DC0001092E9008091E80083FF01C098DE17705F
|
|
||||||
:100DD0001093E9001F9108950895FC018EB38430AB
|
|
||||||
:100DE00021F587859089A189B2890097A105B10570
|
|
||||||
:100DF000E1F085818093E9008091E80082FF15C0D1
|
|
||||||
:100E00008091F200882319F42FEF3FEF04C0809106
|
|
||||||
:100E1000F100282F30E08091F200882341F4809186
|
|
||||||
:100E2000E8008B778093E80002C02FEF3FEFC90105
|
|
||||||
:100E30000895FC018EB3843011F587859089A189CE
|
|
||||||
:100E4000B2890097A105B105D1F081818093E900B5
|
|
||||||
:100E50008091F2008823A9F09091E8008091E80049
|
|
||||||
:100E60008E778093E80095FD0CC0FDDB982F8823DA
|
|
||||||
:100E700049F48091E8008E778093E80003C092E007
|
|
||||||
:100E800001C090E0892F0895FC018EB3843051F4A5
|
|
||||||
:100E900087859089A189B2890097A105B10511F0D4
|
|
||||||
:100EA000CF01C7CF08951F93FC01162F8EB3843056
|
|
||||||
:100EB000D9F487859089A189B2890097A105B105E8
|
|
||||||
:100EC00099F081818093E9008091E80085FD08C058
|
|
||||||
:100ED0008091E8008E778093E800C5DB882329F4B1
|
|
||||||
:100EE0001093F10080E001C082E01F9108950F93FC
|
|
||||||
:100EF0001F93CF93DF93EC010D96FC0189E0DF0196
|
|
||||||
:100F00001D928A95E9F72A813B8109818C8188238A
|
|
||||||
:100F100011F410E001C014E0C90151DB182B12607C
|
|
||||||
:100F2000802F61E8412F59DB882329F12E813F81F1
|
|
||||||
:100F30000D818885882311F410E001C014E0C901F7
|
|
||||||
:100F40003EDB182B1260802F60E8412F46DB8823A0
|
|
||||||
:100F500091F02A853B8509858C85882311F410E062
|
|
||||||
:100F600001C014E0C9012BDB182B1260802F61EC4B
|
|
||||||
:100F7000412F33DB01C080E0DF91CF911F910F91B2
|
|
||||||
:100F80000895CF93DF93EC018091E80083FF60C068
|
|
||||||
:100F9000888190E02091340230913502281739077A
|
|
||||||
:100FA00009F056C080913102813261F0823220F422
|
|
||||||
:100FB000803209F04DC019C0823269F1833209F0E4
|
|
||||||
:100FC00047C038C080913002813A09F041C0809119
|
|
||||||
:100FD000E800877F8093E800CE010F9667E070E01D
|
|
||||||
:100FE00071DB8091E8008B7713C0809130028132F1
|
|
||||||
:100FF00079F58091E800877F8093E800CE010F9615
|
|
||||||
:1010000067E070E013DCCE01E9D88091E8008E77CC
|
|
||||||
:101010008093E8001DC0809130028132C9F4809134
|
|
||||||
:10102000E800877F8093E800809132028D87CE01AF
|
|
||||||
:101030006ED90DC080913002813251F48091E80068
|
|
||||||
:10104000877F8093E800CE0160913202C5DEECDA42
|
|
||||||
:10105000DF91CF910895A1E21A2EAA1BBB1BFD01BF
|
|
||||||
:101060000DC0AA1FBB1FEE1FFF1FA217B307E40787
|
|
||||||
:10107000F50720F0A21BB30BE40BF50B661F771FDF
|
|
||||||
:10108000881F991F1A9469F76095709580959095BF
|
|
||||||
:101090009B01AC01BD01CF01089597FB092E0526E8
|
|
||||||
:1010A0000ED057FD04D0D7DF0AD0001C38F450957D
|
|
||||||
:1010B0004095309521953F4F4F4F5F4F0895F6F77C
|
|
||||||
:1010C00090958095709561957F4F8F4F9F4F0895B4
|
|
||||||
:0410D000F894FFCFC2
|
|
||||||
:1010D400000340000004400000020800000000007B
|
|
||||||
:0810E4000000000000001400F0
|
|
||||||
:00000001FF
|
|
||||||
277
compiled/DUE_16u2_reflash/Arduino-usbserial.hex
Executable file
277
compiled/DUE_16u2_reflash/Arduino-usbserial.hex
Executable file
@@ -0,0 +1,277 @@
|
|||||||
|
:100000009FC00000B8C00000B6C00000B4C000002F
|
||||||
|
:10001000B2C00000B0C00000AEC00000ACC0000024
|
||||||
|
:10002000AAC00000A8C00000A6C00000B5C3000020
|
||||||
|
:100030005AC40000A0C000009EC000009CC0000088
|
||||||
|
:100040009AC0000098C0000096C0000094C0000054
|
||||||
|
:1000500092C0000090C000008EC0000007C20000E7
|
||||||
|
:100060008AC0000088C0000086C0000084C0000074
|
||||||
|
:1000700082C00000D704F904EB05F904EB053E0546
|
||||||
|
:100080005B05EB05AE05C0052E0341007200640060
|
||||||
|
:10009000750069006E006F00200044007500650067
|
||||||
|
:1000A0002000500072006F0067002E0020005000FA
|
||||||
|
:1000B0006F0072007400000032034100720064009F
|
||||||
|
:1000C000750069006E006F0020002800770077003F
|
||||||
|
:1000D00077002E00610072006400750069006E00F8
|
||||||
|
:1000E0006F002E0063006300290000000403090470
|
||||||
|
:1000F00009023E00020100C03209040000010202B0
|
||||||
|
:100100000100052400011004240206052406000154
|
||||||
|
:10011000070582030800FF09040100020A0000002D
|
||||||
|
:100120000705040240000107058302400001120197
|
||||||
|
:1001300010010200000841233D0001000102DC0122
|
||||||
|
:1001400011241FBECFEFD2E0DEBFCDBF11E0A0E093
|
||||||
|
:10015000B1E0EEE1F1E102C005900D92AA31B107E4
|
||||||
|
:10016000D9F722E0AAE1B1E001C01D92A833B2079D
|
||||||
|
:10017000E1F77BD0D2C744CFFC01E058FF4FA0810C
|
||||||
|
:10018000B1816C93A081B1819D012F5F3F4F31837D
|
||||||
|
:1001900020832E173F0721F412969C938E9311977C
|
||||||
|
:1001A0002FB7F894FC01EC57FF4F80818F5F80835D
|
||||||
|
:1001B0002FBF0895DC01AE57BF4FED91FC91119711
|
||||||
|
:1001C00021911196FC93EE93AC0140585F4FE417D8
|
||||||
|
:1001D000F50711F48D939C933FB7F894FC01EC570D
|
||||||
|
:1001E000FF4F9081915090833FBF822F08958823C5
|
||||||
|
:1001F00021F03F9A47985C9808953F9847985C9AF9
|
||||||
|
:100200000895882319F046985D980895469A5D9A56
|
||||||
|
:10021000089584B7877F84BF0FB6F894A89580911E
|
||||||
|
:100220006000886180936000109260000FBE80E0E3
|
||||||
|
:10023000DEDF469A3E9A87E690E09093CD00809369
|
||||||
|
:10024000CC0086E08093CA001092C80088E18093B9
|
||||||
|
:10025000C900539A5A9A8AB180638AB98BB1806374
|
||||||
|
:100260008BB98FD284E085BD0895D3DF2FB7F89482
|
||||||
|
:1002700087EA91E0909328028093270290932A02C4
|
||||||
|
:10028000809329022FBF2FB7F89482E291E09093D8
|
||||||
|
:10029000A3018093A2019093A5018093A4012FBF95
|
||||||
|
:1002A0007894D3E09FB7F89480912B029FBF803859
|
||||||
|
:1002B00049F084E091E0C2D697FD04C0682F87EA38
|
||||||
|
:1002C00091E05ADF8FB7F894C091A6018FBFA8992B
|
||||||
|
:1002D00003C0C13608F453C0A89A8091A6018823B0
|
||||||
|
:1002E00019F05D98D0931F01CC2349F082E291E090
|
||||||
|
:1002F00061DF682F84E091E042D6C150F5CF809154
|
||||||
|
:100300001F01882341F080911F01815080931F01BC
|
||||||
|
:10031000811101C05D9A80912001882341F0809174
|
||||||
|
:100320002001815080932001811101C05C9A80914D
|
||||||
|
:1003300002019091030118161906ECF4CC97853B45
|
||||||
|
:10034000910510F481E001C080E05BDF8091020143
|
||||||
|
:10035000909103010197C29710F481E001C080E001
|
||||||
|
:1003600046DF809102019091030101979093030170
|
||||||
|
:100370008093020104C080E044DF80E038DF9FB753
|
||||||
|
:10038000F89480912B029FBF882361F087EA91E067
|
||||||
|
:1003900011DF9091C80095FFFCCF8093CE005C9850
|
||||||
|
:1003A000D093200184E091E03BD608D57BCF84E058
|
||||||
|
:1003B00091E086C584E091E013C5CF92DF92EF9281
|
||||||
|
:1003C000FF92CF93FC018489813021F0823021F4A7
|
||||||
|
:1003D000C0E203C0C0E301C0C0E08389823009F4F9
|
||||||
|
:1003E000C8608589873031F0883031F0863029F453
|
||||||
|
:1003F000C26003C0C46001C0C6601092C900109200
|
||||||
|
:10040000C8001092CA00C784D088E188F28881E0D1
|
||||||
|
:1004100090EBC91694E0D906E104F10409F080E0FC
|
||||||
|
:1004200080931A01C701B60122E030E040E050E0BD
|
||||||
|
:1004300052D6CA01B90160587B47814E9F4FA70130
|
||||||
|
:10044000960127D6215031093093CD002093CC005E
|
||||||
|
:10045000C093CA0082E08093C80088E98093C900F5
|
||||||
|
:10046000CF91FF90EF90DF90CF9008951F920F9261
|
||||||
|
:100470000FB60F9211242F933F934F935F936F9377
|
||||||
|
:100480007F938F939F93AF93BF93EF93FF9360916D
|
||||||
|
:10049000CE008EB3843019F482E291E06DDEFF91DC
|
||||||
|
:1004A000EF91BF91AF919F918F917F916F915F91EC
|
||||||
|
:1004B0004F913F912F910F900FBE0F901F90189565
|
||||||
|
:1004C00020911E0120931D0130911C0130931B01CE
|
||||||
|
:1004D000FC018585982F917090931E0186958170FF
|
||||||
|
:1004E00080931C0180911A01882319F084EB90E01D
|
||||||
|
:1004F00006C0211108C0992331F082E390E0909367
|
||||||
|
:100500000301809302010895292F332722303105FA
|
||||||
|
:1005100059F02330310569F021303105E9F482E1E9
|
||||||
|
:1005200090E02EE231E01CC08EE390E020EF30E05E
|
||||||
|
:1005300017C099278130910549F028F0029761F49E
|
||||||
|
:10054000E8E8F0E005C0ECEEF0E002C0E8EBF0E037
|
||||||
|
:10055000849190E09F0104C080E090E020E030E0D2
|
||||||
|
:10056000FA01318320830895EF92FF920F931F9336
|
||||||
|
:10057000CF93DF93CDB7DEB72A970FB6F894DEBFDF
|
||||||
|
:100580000FBECDBF7E0126E0E20EF11CFE013196CA
|
||||||
|
:100590009F01870190E09093E9005091EC00D80111
|
||||||
|
:1005A0005D938D015091ED00D9015D939D019F5F99
|
||||||
|
:1005B000953089F7282F30E08701020F131FD801EB
|
||||||
|
:1005C0006C932E0F3F1FD9014C9391E09093E9005B
|
||||||
|
:1005D0001092F0001092E8001092ED002091EB00D4
|
||||||
|
:1005E0002E7F2093EB009F5F953081F790E0208174
|
||||||
|
:1005F00021FD0BC09F5F3196BFEFEB1AFB0A9530D0
|
||||||
|
:10060000B1F78093E90081E013C09093E900209155
|
||||||
|
:10061000EB0021602093EB00D7012C912093EC009C
|
||||||
|
:1006200020812093ED002091EE0027FDE3CF80E0B4
|
||||||
|
:100630002A960FB6F894DEBF0FBECDBFDF91CF91E3
|
||||||
|
:100640001F910F91FF90EF9008951092F40080E0B9
|
||||||
|
:100650008093E9001092F0001092E8001092ED00F3
|
||||||
|
:100660009091EB009E7F9093EB008F5F853081F738
|
||||||
|
:1006700008958091300287FF0FC08091E80082FDCD
|
||||||
|
:1006800004C08EB38111F9CF10C08091E8008B7740
|
||||||
|
:100690000AC08EB3882349F08091E80080FFF9CF2B
|
||||||
|
:1006A0008091E8008E778093E800089585E6909128
|
||||||
|
:1006B000EC0090FF05C09091E80090FF05C01BC0C2
|
||||||
|
:1006C0009091E80092FD17C09EB39923B1F09EB3BC
|
||||||
|
:1006D0009530A9F09091EB0095FD13C09091E10049
|
||||||
|
:1006E00092FFE5CF9091E1009B7F9093E1008150D4
|
||||||
|
:1006F000F1F684E0089580E0089582E0089583E0B3
|
||||||
|
:10070000089581E0089542D044D01EBA10922E027E
|
||||||
|
:1007100010922D0210922C0284E089BD89B582606E
|
||||||
|
:1007200089BD09B400FEFDCF8091D800982F9F7736
|
||||||
|
:100730009093D80080688093D800809163008E7F6A
|
||||||
|
:10074000809363008091D8008F7D8093D800809142
|
||||||
|
:10075000E0008E7F8093E0008091E1008E7F8093A7
|
||||||
|
:10076000E1008091E20081608093E2008091E100ED
|
||||||
|
:10077000877F8093E1008091E20088608093E200AF
|
||||||
|
:100780000895C1DF81E080932F0208951092E20066
|
||||||
|
:1007900008951092E10008951F920F920FB60F92E4
|
||||||
|
:1007A00011242F933F934F935F936F937F938F9376
|
||||||
|
:1007B0009F93AF93BF93EF93FF938091E10080FFEE
|
||||||
|
:1007C0001BC08091E20080FF17C08091E1008E7F06
|
||||||
|
:1007D0008093E1008091E2008E7F8093E20080911F
|
||||||
|
:1007E000E20080618093E2008091D8008062809373
|
||||||
|
:1007F000D80019BC1EBAFBD18091E10084FF29C04A
|
||||||
|
:100800008091E20084FF25C084E089BD89B58260C3
|
||||||
|
:1008100089BD09B400FEFDCF8091D8008F7D809303
|
||||||
|
:10082000D8008091E1008F7E8093E1008091E2000A
|
||||||
|
:100830008F7E8093E2008091E20081608093E200ED
|
||||||
|
:1008400080912E02811102C081E001C084E08EBB44
|
||||||
|
:10085000CED18091E10083FF27C08091E20083FF29
|
||||||
|
:1008600023C08091E100877F8093E10082E08EBB0E
|
||||||
|
:1008700010922E028091E1008E7F8093E1008091A2
|
||||||
|
:10088000E2008E7F8093E2008091E200806180939D
|
||||||
|
:10089000E200DBDE42E060E080E066DE8091F000B6
|
||||||
|
:1008A00088608093F000A3D18091E10082FF0AC0AC
|
||||||
|
:1008B0008091E20082FF06C08091E1008B7F8093EF
|
||||||
|
:1008C000E10095D1FF91EF91BF91AF919F918F91F1
|
||||||
|
:1008D0007F916F915F914F913F912F910F900FBE3C
|
||||||
|
:1008E0000F901F9018951F920F920FB60F92112420
|
||||||
|
:1008F000FF920F931F932F933F934F935F936F93A9
|
||||||
|
:100900007F938F939F93AF93BF93CF93DF93EF9397
|
||||||
|
:10091000FF93C9EED0E088818770F82E188200EF2F
|
||||||
|
:1009200010E0F8018081877F808378941DD0F8944F
|
||||||
|
:100930001882F801808188608083F882FF91EF91AE
|
||||||
|
:10094000DF91CF91BF91AF919F918F917F916F91E7
|
||||||
|
:100950005F914F913F912F911F910F91FF900F90B9
|
||||||
|
:100960000FBE0F901F9018951F93CF93DF93CDB7B5
|
||||||
|
:10097000DEB7AA970FB6F894DEBF0FBECDBFE0E397
|
||||||
|
:10098000F2E088E392E02091F10021938E179F0717
|
||||||
|
:10099000D1F78091300290913102492F50E04A30D6
|
||||||
|
:1009A000510508F018C1FA01E65CFF4FB0C380386A
|
||||||
|
:1009B00081F0823809F00FC18091340287708093F2
|
||||||
|
:1009C000E9008091EB0085FB882780F91092E9000F
|
||||||
|
:1009D00006C080912C0290912D029111826090911D
|
||||||
|
:1009E000E800977F9093E8008093F1001092F10067
|
||||||
|
:1009F000C0C0282F2D7F09F0EEC0882319F0823067
|
||||||
|
:100A000061F0DAC080913202813009F0D5C09330B4
|
||||||
|
:100A100009F080E080932D022BC080913202811179
|
||||||
|
:100A200027C080913402877009F4C6C08093E90022
|
||||||
|
:100A30002091EB0020FFC0C0933021F48091EB00A7
|
||||||
|
:100A4000806214C09091EB0090619093EB0021E0E4
|
||||||
|
:100A500030E0A90102C0440F551F8A95E2F7409388
|
||||||
|
:100A6000EA001092EA008091EB0088608093EB002E
|
||||||
|
:100A70001092E9008091E800877F7EC08111ABC0B1
|
||||||
|
:100A8000109132028091E800877F8093E800F1DDC9
|
||||||
|
:100A90008091E80080FD04C08EB38111F9CF8CC035
|
||||||
|
:100AA000812F8F7711F492E001C093E09EBB8068A4
|
||||||
|
:100AB0008093E30081C08058823008F08CC0809120
|
||||||
|
:100AC0003202909133028C3D53E0950779F583E033
|
||||||
|
:100AD0008A838AE289833FB7F894DE01139690E017
|
||||||
|
:100AE0002EE041E2E22FF0E040935700E49190FFC6
|
||||||
|
:100AF00003C0E295EF702F5FEF7080E38E0F8A33B3
|
||||||
|
:100B000010F0E95C01C0E82FF0E0ED93FD939F5FEA
|
||||||
|
:100B1000943141F73FBF8091E800877F8093E800E0
|
||||||
|
:100B20006AE270E0CE01019663D012C0AE014F5F61
|
||||||
|
:100B30005F4F60913402E8DCBC01892B09F43CC0B2
|
||||||
|
:100B40009091E800977F9093E80089819A81A6D0E0
|
||||||
|
:100B50008091E8008B778093E8002EC08038D9F52B
|
||||||
|
:100B60008091E800877F8093E80080912E02809337
|
||||||
|
:100B7000F1008091E8008E778093E8007ADD1CC058
|
||||||
|
:100B8000811129C0809132029091330299270297F6
|
||||||
|
:100B90009CF48091E800877F8093E8008091320286
|
||||||
|
:100BA00080932E0266DD80912E02811102C083E0C7
|
||||||
|
:100BB00001C084E08EBBFBDB8091E80083FF0DC0A9
|
||||||
|
:100BC0008091EB0080628093EB008091E800877F4A
|
||||||
|
:100BD0008093E80002C0EEDBEFCFAA960FB6F89440
|
||||||
|
:100BE000DEBF0FBECDBFDF91CF911F910895089555
|
||||||
|
:100BF00020913602309137022617370748F06115E9
|
||||||
|
:100C0000710539F42091E8002E772093E80001C0A7
|
||||||
|
:100C1000B90130E06115710561F12091E80023FD13
|
||||||
|
:100C200037C02091E80022FD2DC02EB3222391F180
|
||||||
|
:100C30002EB3253089F12091E80020FFEBCF2091E1
|
||||||
|
:100C4000F200FC01CF016115710549F0283038F43C
|
||||||
|
:100C500081918093F100615071092F5FF3CF31E0F2
|
||||||
|
:100C6000283009F030E02091E8002E772093E8004A
|
||||||
|
:100C7000D1CF3111D2CF06C08EB3882359F08EB3B5
|
||||||
|
:100C8000853051F08091E80082FFF6CF80E0089532
|
||||||
|
:100C900081E0089582E0089583E00895209136026E
|
||||||
|
:100CA000309137022617370748F06115710539F47E
|
||||||
|
:100CB0002091E8002E772093E80001C0B90130E0D0
|
||||||
|
:100CC0006115710569F12091E80023FD38C020917C
|
||||||
|
:100CD000E80022FD2EC02EB3222399F12EB3253039
|
||||||
|
:100CE00091F12091E80020FFEBCF2091F200FC0170
|
||||||
|
:100CF000CF016115710551F0283040F48491809343
|
||||||
|
:100D0000F100615071092F5F3196F2CF31E0283048
|
||||||
|
:100D100009F030E02091E8002E772093E800D0CF52
|
||||||
|
:100D20003111D1CF06C08EB3882359F08EB38530F0
|
||||||
|
:100D300051F08091E80082FFF6CF80E0089581E0D5
|
||||||
|
:100D4000089582E0089583E008956115710529F4FE
|
||||||
|
:100D50002091E8002B772093E8006115710511F1CF
|
||||||
|
:100D60002091E80023FD24C02EB3222319F12EB3D5
|
||||||
|
:100D7000253011F12091E80022FFEFCF2091F20001
|
||||||
|
:100D8000222331F301962091F100FC013197208359
|
||||||
|
:100D90006150710999F7DCCF8EB3882359F08EB377
|
||||||
|
:100DA000853051F08091E80080FFF6CF80E0089513
|
||||||
|
:100DB00081E0089582E0089583E00895CF938EB393
|
||||||
|
:100DC000882359F0C091E900C7701092E900809122
|
||||||
|
:100DD000E80083FDC9DDC093E900CF91089508952F
|
||||||
|
:100DE000CF93DF932091E80023FF67C0FC012081AF
|
||||||
|
:100DF00030E040913402509135024217530709F018
|
||||||
|
:100E00005CC0EC0180913102813251F018F48032E3
|
||||||
|
:100E1000E1F053C0823281F1833209F43EC04DC00B
|
||||||
|
:100E200080913002813A09F048C08091E800877FC4
|
||||||
|
:100E30008093E80067E070E0CF010F96D9DE8091E3
|
||||||
|
:100E4000E8008B778093E80038C0809130028132CF
|
||||||
|
:100E5000A1F58091E800877F8093E80067E070E06B
|
||||||
|
:100E6000CF010F9672DF8091E8008E778093E800C3
|
||||||
|
:100E7000CE01DF91CF91A1CA809130028132E9F495
|
||||||
|
:100E80008091E800877F8093E800F3DB8091320255
|
||||||
|
:100E90008D87CE01DF91CF9113CB809130028132CB
|
||||||
|
:100EA00061F48091E800877F8093E800E2DB609145
|
||||||
|
:100EB0003202CE01DF91CF9192CFDF91CF91089591
|
||||||
|
:100EC000CF93DF93EC01FC013D9689E0DF011D9299
|
||||||
|
:100ED0008A95E9F78C81811102C090E001C094E00D
|
||||||
|
:100EE0006A817B81898128E030E040E0261737075E
|
||||||
|
:100EF00020F44F5F220F331FF9CF4295407F92605D
|
||||||
|
:100F0000492B61E831DB8823B1F18885811102C06A
|
||||||
|
:100F100090E001C094E06E817F818D8128E030E017
|
||||||
|
:100F200040E02617370720F44F5F220F331FF9CF19
|
||||||
|
:100F30004295407F9260492B60E816DB8823D9F008
|
||||||
|
:100F40008C85811102C090E001C094E06A857B85A8
|
||||||
|
:100F5000898528E030E040E02617370720F44F5F0E
|
||||||
|
:100F6000220F331FF9CF4295407F9260492B61ECED
|
||||||
|
:100F7000DF91CF91F9CA80E0DF91CF9108950F936F
|
||||||
|
:100F80001F93CF932EB32430F1F4FC010785108911
|
||||||
|
:100F900021893289012B022B032BA9F0C62F8181D5
|
||||||
|
:100FA0008093E9008091E80085FF04C0C093F100C0
|
||||||
|
:100FB00080E00AC08091E8008E778093E80076DBBD
|
||||||
|
:100FC0008823A1F301C082E0CF911F910F91089572
|
||||||
|
:100FD0002EB3243019F5FC01478550896189728947
|
||||||
|
:100FE000452B462B472BD1F081818093E9008091DE
|
||||||
|
:100FF000F200882389F09091E8008091E8008E77D4
|
||||||
|
:101000008093E80095FD08C051DB811108C08091F4
|
||||||
|
:10101000E8008E778093E80080E0089582E00895EC
|
||||||
|
:101020002EB3243051F4FC014785508961897289BF
|
||||||
|
:10103000452B462B472B09F0CBCF08952EB32430F8
|
||||||
|
:1010400019F08FEF9FEF0895FC0147855089618962
|
||||||
|
:101050007289452B462B472BA1F385818093E900AC
|
||||||
|
:101060008091E80082FFEDCF8091F200882321F08B
|
||||||
|
:101070002091F10030E002C02FEF3FEF8091F200AD
|
||||||
|
:10108000811105C08091E8008B778093E800C90149
|
||||||
|
:101090000895A1E21A2EAA1BBB1BFD010DC0AA1FB9
|
||||||
|
:1010A000BB1FEE1FFF1FA217B307E407F50720F0D1
|
||||||
|
:1010B000A21BB30BE40BF50B661F771F881F991F4C
|
||||||
|
:1010C0001A9469F760957095809590959B01AC0195
|
||||||
|
:1010D000BD01CF010895052E97FB16F400940FD0A3
|
||||||
|
:1010E00057FD05D0D6DF07FC02D046F408C0509566
|
||||||
|
:1010F0004095309521953F4F4F4F5F4F0895909504
|
||||||
|
:101100008095709561957F4F8F4F9F4F0895EE0F9B
|
||||||
|
:0E111000FF1F0590F491E02D0994F894FFCF95
|
||||||
|
:10111E0014003200000340000004400000020800EA
|
||||||
|
:0A112E0000000000000000000000B7
|
||||||
|
:00000001FF
|
||||||
@@ -1 +1 @@
|
|||||||
../tools/mac/tool-avrdude/avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem14201 -b 19200 -p m16u2 -vvv -U flash:r:16u2-out3.hex:i
|
avrdude -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:r:16u2-out.hex:i
|
||||||
|
|||||||
16
compiled/DUE_16u2_reflash/reflash16u2DUE.bat
Normal file
16
compiled/DUE_16u2_reflash/reflash16u2DUE.bat
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
REM fetch DeviceID of Arduino Port from WMI Service
|
||||||
|
FOR /f "tokens=* skip=1" %%a IN ('wmic PATH Win32_SerialPort Where "Caption LIKE '%%Arduino Uno%%'" get DeviceID') DO (
|
||||||
|
SET COMX=%%a
|
||||||
|
GOTO exit1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Arduino Due Programming Port not exist
|
||||||
|
GOTO error_comport
|
||||||
|
|
||||||
|
:exit1
|
||||||
|
|
||||||
|
REM remove blank
|
||||||
|
SET COMPORT=%COMX: =%
|
||||||
|
|
||||||
|
|
||||||
|
..\tools\win\tool-avrdude\avrdude -C ..\tools\win\tool-avrdude\avrdude.conf -c arduino -P %COMPORT% -b 19200 -p m16u2 -vvv -U flash:w:Arduino-usbserial.hex:i
|
||||||
@@ -1 +1 @@
|
|||||||
../tools/mac/tool-avrdude/avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem14201 -b 19200 -p m16u2 -vvv -U flash:w:16u2.hex:i
|
avrdude -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:w:Arduino-usbserial.hex:i
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
../tools/mac/tool-avrdude/avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem14201 -b 19200 -p m16u2 -vvv -U flash:w:16u2-original.hex:i
|
#avrdude should be installed via homebrew
|
||||||
|
#avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:w:16u2-original.hex:i
|
||||||
|
avrdude -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:w:16u2-original.hex:i
|
||||||
|
|||||||
3
compiled/DUE_16u2_reflash/reflash_italiano.sh
Executable file
3
compiled/DUE_16u2_reflash/reflash_italiano.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#avrdude should be installed via homebrew
|
||||||
|
#avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:w:16u2-original.hex:i
|
||||||
|
avrdude -c arduino -P /dev/cu.usbmodem144101 -b 19200 -p m16u2 -vvv -U flash:w:16u2-italiano.hex:i
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,2 @@
|
|||||||
~/.platformio/packages/tool-mkspiffs/mkspiffs_espressif32_arduino -s 20480 -c data data.bin
|
~/.platformio/packages/tool-mkspiffs/mkspiffs_espressif32_arduino -s 20480 -c data data.bin
|
||||||
../tools/mac/arduinoOTA -v -address 192.168.88.50 -port 65280 -username arduino -password password -sketch data.bin -upload /data -b
|
../tools/mac/arduinoOTA -v -address 192.168.88.50 -port 80 -username arduino -password password -sketch data.bin -upload /data -b
|
||||||
@@ -1 +1 @@
|
|||||||
../tools/mac/arduinoOTA -v -address 192.168.88.50 -port 65280 -username arduino -password password -sketch firmware.bin -upload /sketch -b
|
../tools/mac/arduinoOTA -v -address 192.168.11.207 -port 80 -username arduino -password password -sketch firmware.bin -upload /sketch -b
|
||||||
BIN
compiled/esp8266-wifi/esp12-noserial/firmware.bin
Normal file
BIN
compiled/esp8266-wifi/esp12-noserial/firmware.bin
Normal file
Binary file not shown.
31
compiled/esp8266-wifi/esp12-noserial/options.txt
Normal file
31
compiled/esp8266-wifi/esp12-noserial/options.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
Компактная сборка с набором опций, умещающаяся в 50 процентов flash ESP12
|
||||||
|
CLI и отладочная информация на serial0 отключена для возможности использования PIN0-1
|
||||||
|
|
||||||
|
(-)MULTIVENT
|
||||||
|
(+)PWM_RELAY
|
||||||
|
(+)MDNS
|
||||||
|
(-)UARTBRIDGE
|
||||||
|
(+)SYSLOG
|
||||||
|
(+)PID
|
||||||
|
(-)MCP23017
|
||||||
|
(-)ARTNET
|
||||||
|
(+)OTA
|
||||||
|
(-)SPI LED
|
||||||
|
(-)MOTOR CTR
|
||||||
|
(+)AC HAIER
|
||||||
|
(+)CCS811 & HDC1080
|
||||||
|
(+)RESTART_LAN_ON_MQTT_ERRORS
|
||||||
|
(-)HARDRESET, using soft
|
||||||
|
(-)COUNTER
|
||||||
|
(+)DHT
|
||||||
|
(-)OWIRE
|
||||||
|
(-)IPMODBUS
|
||||||
|
(-)MODBUS
|
||||||
|
(-)DMX
|
||||||
|
(+)WiFi
|
||||||
|
(+)FreeRam printing
|
||||||
|
(+)WATCHDOG
|
||||||
|
|
||||||
|
Config server:lazyhome.ru
|
||||||
|
201703L C++
|
||||||
|
version:e9355ef_2023-10-31
|
||||||
Binary file not shown.
BIN
compiled/esp8266-wifi/full/firmware.bin
Normal file
BIN
compiled/esp8266-wifi/full/firmware.bin
Normal file
Binary file not shown.
32
compiled/esp8266-wifi/full/options.txt
Normal file
32
compiled/esp8266-wifi/full/options.txt
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
Полная версия прошивки
|
||||||
|
|
||||||
|
(+)MULTIVENT
|
||||||
|
(+)PWM_RELAY
|
||||||
|
(+)MDNS
|
||||||
|
(-)UARTBRIDGE
|
||||||
|
(+)SYSLOG
|
||||||
|
(+)PID
|
||||||
|
(+)MCP23017
|
||||||
|
(+)ARTNET
|
||||||
|
(+)OTA
|
||||||
|
(+)SPI LED
|
||||||
|
(+)MOTOR CTR
|
||||||
|
(+)AC HAIER
|
||||||
|
(+)CCS811 & HDC1080
|
||||||
|
(+)RESTART_LAN_ON_MQTT_ERRORS
|
||||||
|
(-)HARDRESET, using soft
|
||||||
|
(+)COUNTER
|
||||||
|
(+)DHT
|
||||||
|
(-)DS2482-100 USE_1W_PIN
|
||||||
|
(+)OWIRE
|
||||||
|
(-)IPMODBUS
|
||||||
|
(+)MODBUS SERIAL_8N1 at Serial1 speed:9600
|
||||||
|
(+)ADAFRUIT LED
|
||||||
|
(+)DMX
|
||||||
|
(+)WiFi
|
||||||
|
(+)FreeRam printing
|
||||||
|
(+)WATCHDOG
|
||||||
|
|
||||||
|
lazyhome.ru
|
||||||
|
Config server:
|
||||||
|
201703L C++ version:e9355ef_2023-10-31
|
||||||
1
compiled/esp8266-wifi/full/ota.sh
Executable file
1
compiled/esp8266-wifi/full/ota.sh
Executable file
@@ -0,0 +1 @@
|
|||||||
|
../../tools/mac/arduinoOTA -address 192.168.11.208 -port 80 -username arduino -password password -b -upload /sketch -sketch firmware.bin
|
||||||
@@ -1 +1 @@
|
|||||||
arduinoOTA -address 192.168.88.54 -port 80 -username arduino -password password -b -upload /sketch -sketch firmware.bin
|
arduinoOTA -address 192.168.11.208 -port 80 -username arduino -password password -b -upload /sketch -sketch firmware.bin
|
||||||
1
compiled/esp8266-wifi/ota.sh
Executable file
1
compiled/esp8266-wifi/ota.sh
Executable file
@@ -0,0 +1 @@
|
|||||||
|
../tools/mac/arduinoOTA -address 192.168.11.208 -port 80 -username arduino -password password -b -upload /sketch -sketch firmware.bin
|
||||||
1
compiled/lighthub21/ListSerialPorts.bat
Normal file
1
compiled/lighthub21/ListSerialPorts.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
wmic PATH Win32_SerialPort get DeviceID
|
||||||
Binary file not shown.
@@ -28,7 +28,7 @@ REM bin file exist?
|
|||||||
IF NOT EXIST "%BINFILE%" GOTO error_binfile
|
IF NOT EXIST "%BINFILE%" GOTO error_binfile
|
||||||
|
|
||||||
REM fetch DeviceID of Arduino Due Programming Port from WMI Service
|
REM fetch DeviceID of Arduino Due Programming Port from WMI Service
|
||||||
FOR /f "tokens=* skip=1" %%a IN ('wmic PATH Win32_SerialPort Where "Caption LIKE '%%USB%%'" get DeviceID') DO (
|
FOR /f "tokens=* skip=1" %%a IN ('wmic PATH Win32_SerialPort Where "Caption LIKE '%%Due%%'" get DeviceID') DO (
|
||||||
SET COMX=%%a
|
SET COMX=%%a
|
||||||
GOTO exit1
|
GOTO exit1
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
export PORT=cu.usbmodem14101
|
export PORT=cu.usbmodem144101
|
||||||
echo . | stty -f /dev/$PORT speed 1200
|
echo . | stty -f /dev/$PORT speed 1200
|
||||||
../tools/mac/tool-bossac/bossac -U false -p $PORT -i -e -w -v -b firmware.bin -R
|
../tools/mac/tool-bossac/bossac -U false -p $PORT -i -w -v -b firmware.bin -R
|
||||||
1
compiled/lighthub21/uploadOTA.BAT
Normal file
1
compiled/lighthub21/uploadOTA.BAT
Normal file
@@ -0,0 +1 @@
|
|||||||
|
..\tools\arduinoOTA -address 192.168.11.204 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch
|
||||||
@@ -1 +1 @@
|
|||||||
../tools/mac/arduinoOTA -address 192.168.11.172 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch
|
../tools/mac/arduinoOTA -address 192.168.11.13 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch
|
||||||
|
|||||||
3
compiled/lighthub21/upload_native.sh
Executable file
3
compiled/lighthub21/upload_native.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
export PORT=cu.usbmodem144101
|
||||||
|
echo . | stty -f /dev/$PORT speed 1200
|
||||||
|
../tools/mac/tool-bossac/bossac -p $PORT -i -w -v -b firmware.bin -R
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
compiled/mega2560slim/firmware.bin
Executable file
BIN
compiled/mega2560slim/firmware.bin
Executable file
Binary file not shown.
7177
compiled/mega2560slim/firmware.hex
Normal file
7177
compiled/mega2560slim/firmware.hex
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
BIN
compiled/stm32/firmware.elf
Executable file
BIN
compiled/stm32/firmware.elf
Executable file
Binary file not shown.
9867
compiled/stm32/firmware.map
Normal file
9867
compiled/stm32/firmware.map
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,273 +0,0 @@
|
|||||||
:10000000A7C00000C0C00000BEC00000BCC000000F
|
|
||||||
:10001000BAC00000B8C00000B6C00000B4C0000004
|
|
||||||
:10002000B2C00000B0C00000AEC00000C1C40000FB
|
|
||||||
:1000300085C40000A8C00000A6C00000A4C0000045
|
|
||||||
:10004000A2C00000A0C000009EC000009CC0000034
|
|
||||||
:100050009AC0000098C0000096C0000021C10000B6
|
|
||||||
:1000600092C0000090C000008EC000008CC0000054
|
|
||||||
:100070008AC0000088C0000086C0000084C0000064
|
|
||||||
:1000800082C0000080C000007EC000007CC0000074
|
|
||||||
:100090007AC0000078C000001201100102000008C0
|
|
||||||
:1000A00041233D0001000102DC0109023E00020182
|
|
||||||
:1000B00000C0320904000001020201000524000111
|
|
||||||
:1000C0001004240206052406000107058203080027
|
|
||||||
:1000D000FF09040100020A000000070504024000B5
|
|
||||||
:1000E00001070583024000010403090432034100B3
|
|
||||||
:1000F00072006400750069006E006F002000280027
|
|
||||||
:100100007700770077002E006100720064007500B0
|
|
||||||
:1001100069006E006F002E0063006300290000007C
|
|
||||||
:100120002E03410072006400750069006E006F00CC
|
|
||||||
:1001300020004400750065002000500072006F0030
|
|
||||||
:1001400067002E00200050006F0072007400000055
|
|
||||||
:1001500011241FBECFEFD2E0DEBFCDBF11E0A0E083
|
|
||||||
:10016000B1E0E4EDF0E102C005900D92A831B107D5
|
|
||||||
:10017000D9F712E0A8E1B1E001C01D92A833B107A0
|
|
||||||
:10018000E1F72BD1A5C73CCF9C01DC01AE57BF4F97
|
|
||||||
:10019000ED91FC91119741911196FC93EE9380584B
|
|
||||||
:1001A0009F4FE817F90711F42D933C939FB7F894EC
|
|
||||||
:1001B000F901EC57FF4F8081815080839FBF842FCE
|
|
||||||
:1001C0000895882311F03F9A01C03F9847980895F9
|
|
||||||
:1001D000882311F046980895469A0895DF92EF9289
|
|
||||||
:1001E000FF920F931F93FC018489813019F08230B4
|
|
||||||
:1001F00019F404C010E303C010E001C010E28389C9
|
|
||||||
:10020000823009F418608589873031F0883031F008
|
|
||||||
:10021000863029F4126003C0146001C01660109289
|
|
||||||
:10022000C9001092C8001092CA000785F088E188C2
|
|
||||||
:10023000D288202F3F2D4E2D5D2D10921E01203B88
|
|
||||||
:1002400084E0380780E0480780E0580719F481E02F
|
|
||||||
:1002500080931E01CA01B90122E030E040E050E085
|
|
||||||
:100260001CD720583B47414E5F4FCA01B901202F90
|
|
||||||
:100270003F2D4E2D5D2DEFD6215030403093CD00D7
|
|
||||||
:100280002093CC001093CA0082E08093C80088E9D4
|
|
||||||
:100290008093C9001F910F91FF90EF90DF90089518
|
|
||||||
:1002A0001F920F920FB60F9211242F938F939F934B
|
|
||||||
:1002B000EF93FF939091CE008EB38430F1F4E091F0
|
|
||||||
:1002C000A201F091A3019083E091A201F091A3011A
|
|
||||||
:1002D000CF0101969093A3018093A201825A91408D
|
|
||||||
:1002E00021F482E291E0928381839FB7F894809118
|
|
||||||
:1002F000A6018F5F8093A6019FBFFF91EF919F9111
|
|
||||||
:100300008F912F910F900FBE0F901F901895FC01A9
|
|
||||||
:1003100040911A0140931B0180911C0180931D01A3
|
|
||||||
:100320008585282F30E02170307020931A01858553
|
|
||||||
:1003300090E096958795817080931C0180911E01B5
|
|
||||||
:10034000882339F088E790E0909319018093180191
|
|
||||||
:100350000895442341F4222331F082E390E0909306
|
|
||||||
:10036000190180931801089580E091E00AC680E0A9
|
|
||||||
:1003700091E0BDC584B7877F84BF88E10FB6F8944C
|
|
||||||
:1003800080936000109260000FBE81E01ADF16BCFF
|
|
||||||
:1003900083E085BD86B58831E8F315BC16BC80E0E6
|
|
||||||
:1003A00010DF469A3E9A87E690E09093CD008093C6
|
|
||||||
:1003B000CC0086E08093CA001092C80088E1809348
|
|
||||||
:1003C000C900539A5A9A8AB180638AB98BB1806303
|
|
||||||
:1003D0008BB9A9D284E085BD08950F931F93CF9365
|
|
||||||
:1003E000DF93C8DF2FB7F89487EA91E09093280253
|
|
||||||
:1003F0008093270290932A02809329022FBF2FB760
|
|
||||||
:10040000F89482E291E09093A3018093A2019093EB
|
|
||||||
:10041000A5018093A4012FBF7894C7EAD1E003E03F
|
|
||||||
:100420008FB7F89490912B028FBF903809F180E03C
|
|
||||||
:1004300091E0D3D497FD1CC0E0912702F0912802EF
|
|
||||||
:100440008083E0912702F0912802CF0101969093DA
|
|
||||||
:100450002802809327028752924011F4D283C183ED
|
|
||||||
:100460009FB7F89480912B028F5F80932B029FBFE0
|
|
||||||
:100470008FB7F8941091A6018FBFA89903C01136C9
|
|
||||||
:1004800008F456C0A89A8091A601882361F05D986F
|
|
||||||
:1004900000931F0108C082E291E076DE682F80E0C1
|
|
||||||
:1004A00091E001D511501123B1F780911F018823EC
|
|
||||||
:1004B00051F080911F01815080931F0180911F0195
|
|
||||||
:1004C000882309F45D9A80912001882351F080915E
|
|
||||||
:1004D000200181508093200180912001882309F41C
|
|
||||||
:1004E0005C9A809118019091190118161906E4F48C
|
|
||||||
:1004F000CC97CD9710F481E001C080E069DE809157
|
|
||||||
:100500001801909119010197C29710F481E001C080
|
|
||||||
:1005100080E057DE80911801909119010197909326
|
|
||||||
:1005200019018093180104C080E052DE80E049DEAA
|
|
||||||
:100530008FB7F89490912B028FBF992369F087EAC7
|
|
||||||
:1005400091E022DE982F8091C80085FFFCCF909328
|
|
||||||
:10055000CE005C980093200180E091E095D42AD4ED
|
|
||||||
:100560005FCFDA01923049F0933061F09130F9F4C5
|
|
||||||
:10057000E8E9F0E022E130E01EC0EAEAF0E02EE334
|
|
||||||
:1005800030E019C0813049F0813018F0823079F4C0
|
|
||||||
:1005900008C0E8EEF0E0849107C0ECEEF0E0849152
|
|
||||||
:1005A00003C0E0E2F1E08491282F30E004C0E0E0F5
|
|
||||||
:1005B000F0E020E030E0ED93FC93C901089528E0DD
|
|
||||||
:1005C00030E040E003C04F5F220F331F2817390788
|
|
||||||
:1005D000D0F3842F8295807F08958093E9008091E5
|
|
||||||
:1005E000EB0081608093EB001092ED006093EC00D3
|
|
||||||
:1005F0004093ED008091EE00881F8827881F0895A2
|
|
||||||
:100600001092F40090E09093E9001092F0001092A4
|
|
||||||
:10061000E8001092ED008091EB008E7F8093EB005C
|
|
||||||
:100620009F5F953081F708958091300288238CF484
|
|
||||||
:1006300003C08EB38823B1F08091E80082FFF9CF28
|
|
||||||
:100640008091E8008B778093E80008958EB388232B
|
|
||||||
:1006500049F08091E80080FFF9CF8091E8008E7723
|
|
||||||
:100660008093E800089594E68091EC0080FF05C037
|
|
||||||
:100670008091E80080FF05C023C08091E80082FDE2
|
|
||||||
:100680001FC08EB3882311F482E008958EB38530A5
|
|
||||||
:1006900011F483E008958091EB0085FF02C081E0B2
|
|
||||||
:1006A00008958091E10082FFDFCF8091E1008B7F90
|
|
||||||
:1006B0008093E100992311F484E008959150D4CF00
|
|
||||||
:1006C00080E008959C014091360250913702461710
|
|
||||||
:1006D000570718F4F90120E038C06115710511F0D1
|
|
||||||
:1006E000AB01F8CF8091E8008E778093E80040E07E
|
|
||||||
:1006F00050E0F0CF8091E80083FF02C081E00895D0
|
|
||||||
:100700008091E80082FD2DC08EB3882381F18EB3E5
|
|
||||||
:10071000853079F18091E80080FF17C09091F20058
|
|
||||||
:1007200006C081918093F100415050409F5F411578
|
|
||||||
:10073000510511F09830A8F320E0983009F421E039
|
|
||||||
:100740008091E8008E778093E8004115510591F67D
|
|
||||||
:10075000222381F606C08EB3882349F08EB38530FC
|
|
||||||
:1007600041F08091E80082FFF6CF80E0089582E0BA
|
|
||||||
:10077000089583E008959C0140913602509137021C
|
|
||||||
:100780004617570710F490E03BC06115710511F052
|
|
||||||
:10079000AB01F9CF8091E8008E778093E80040E0CC
|
|
||||||
:1007A00050E0F1CF8091E80083FF02C081E008951E
|
|
||||||
:1007B0008091E80082FD30C08EB3882399F18EB31A
|
|
||||||
:1007C000853091F18091E80080FF1AC08091F2009D
|
|
||||||
:1007D00009C0F9012F5F3F4FE491E093F1004150D0
|
|
||||||
:1007E00050408F5F4115510511F0883090F390E033
|
|
||||||
:1007F000883009F491E08091E8008E778093E800DA
|
|
||||||
:100800004115510579F6992369F606C08EB3882300
|
|
||||||
:1008100049F08EB3853041F08091E80082FFF6CF39
|
|
||||||
:1008200080E0089582E0089583E008959C016115B9
|
|
||||||
:10083000710529F48091E8008B778093E800F90135
|
|
||||||
:1008400020C08091E80083FF02C081E008958EB34C
|
|
||||||
:10085000882339F18EB3853031F18091E80082FF31
|
|
||||||
:10086000F0CF06C08091F10081936150704021F07B
|
|
||||||
:100870008091F2008823B1F78091E8008B77809314
|
|
||||||
:10088000E80061157105E9F606C08EB3882349F0CA
|
|
||||||
:100890008EB3853041F08091E80080FFF6CF80E094
|
|
||||||
:1008A000089582E0089583E0089542D044D01EBAAE
|
|
||||||
:1008B00010922E0210922D0210922C0284E089BD1B
|
|
||||||
:1008C00089B5826089BD09B400FEFDCF8091D80052
|
|
||||||
:1008D000982F9F779093D80080688093D80080915C
|
|
||||||
:1008E00063008E7F809363008091D8008F7D80931A
|
|
||||||
:1008F000D8008091E0008E7F8093E0008091E1003D
|
|
||||||
:100900008E7F8093E1008091E20081608093E2001D
|
|
||||||
:100910008091E100877F8093E1008091E200886010
|
|
||||||
:100920008093E2000895C1DF81E080932F02089553
|
|
||||||
:100930001092E20008951092E10008951F920F9224
|
|
||||||
:100940000FB60F9211241F932F933F934F935F93F2
|
|
||||||
:100950006F937F938F939F93AF93BF93EF93FF9387
|
|
||||||
:10096000E9EEF0E0108117701082E0EFF0E0808196
|
|
||||||
:10097000877F80837894C3D0F894A9EEB0E01C926E
|
|
||||||
:10098000E0EFF0E08081886080831C93FF91EF911D
|
|
||||||
:10099000BF91AF919F918F917F916F915F914F9197
|
|
||||||
:1009A0003F912F911F910F900FBE0F901F901895A0
|
|
||||||
:1009B0001F920F920FB60F9211242F933F934F93D4
|
|
||||||
:1009C0005F936F937F938F939F93AF93BF93EF93B7
|
|
||||||
:1009D000FF938091E10080FF1BC08091E20080FFC7
|
|
||||||
:1009E00017C08091E1008E7F8093E1008091E2004A
|
|
||||||
:1009F0008E7F8093E2008091E20080618093E2002C
|
|
||||||
:100A00008091D80080628093D80019BC1EBAD1D1E1
|
|
||||||
:100A10008091E10084FF29C08091E20084FF25C01D
|
|
||||||
:100A200084E089BD89B5826089BD09B400FEFDCF2F
|
|
||||||
:100A30008091D8008F7D8093D8008091E1008F7ED7
|
|
||||||
:100A40008093E1008091E2008F7E8093E2008091AC
|
|
||||||
:100A5000E20081608093E20080912E02882311F4ED
|
|
||||||
:100A600081E001C084E08EBBA4D18091E10083FFCE
|
|
||||||
:100A700027C08091E20083FF23C08091E100877F3F
|
|
||||||
:100A80008093E10082E08EBB10922E028091E10003
|
|
||||||
:100A90008E7F8093E1008091E2008E7F8093E20060
|
|
||||||
:100AA0008091E20080618093E200AADD80E060E056
|
|
||||||
:100AB00042E093DD8091F00088608093F00079D16E
|
|
||||||
:100AC0008091E10082FF0AC08091E20082FF06C0AF
|
|
||||||
:100AD0008091E1008B7F8093E1006BD1FF91EF91DA
|
|
||||||
:100AE000BF91AF919F918F917F916F915F914F9146
|
|
||||||
:100AF0003F912F910F900FBE0F901F9018951F934D
|
|
||||||
:100B0000DF93CF93CDB7DEB7AC970FB6F894DEBFC7
|
|
||||||
:100B10000FBECDBFE0E3F2E08091F100819322E0CF
|
|
||||||
:100B2000E833F207C9F78091300230913102353055
|
|
||||||
:100B300009F487C0363040F43130C9F1313070F0FB
|
|
||||||
:100B4000333009F01DC133C0383009F4EFC03930FB
|
|
||||||
:100B500009F4FEC0363009F013C192C0803821F08C
|
|
||||||
:100B6000823809F00DC108C090912C0280912D02AD
|
|
||||||
:100B7000882399F0926011C080913402877080932D
|
|
||||||
:100B8000E9008091EB0090E025E0969587952A9505
|
|
||||||
:100B9000E1F7982F91701092E9008091E800877F2B
|
|
||||||
:100BA0008093E8009093F1001092F100CAC088236E
|
|
||||||
:100BB00019F0823009F0E4C090E08F7190700097D6
|
|
||||||
:100BC00021F0029709F0DDC00CC080913202813023
|
|
||||||
:100BD00009F0D7C010922D02333069F580932D02B1
|
|
||||||
:100BE0002AC080913202882331F520913402277087
|
|
||||||
:100BF00009F4C7C02093E9008091EB0080FFC1C0D9
|
|
||||||
:100C0000333021F48091EB00806213C08091EB00BF
|
|
||||||
:100C100080618093EB0081E090E002C0880F991F13
|
|
||||||
:100C20002A95E2F78093EA001092EA008091EB00A7
|
|
||||||
:100C300088608093EB001092E9008091E800877F44
|
|
||||||
:100C400083C0882309F09CC0109132028091E80093
|
|
||||||
:100C5000877F8093E800E8DC04C08EB3882309F422
|
|
||||||
:100C600090C08091E80080FFF8CF812F8F7711F43A
|
|
||||||
:100C700092E001C093E09EBB80688093E30081C056
|
|
||||||
:100C80008058823008F07CC080913202909133020B
|
|
||||||
:100C900023E08C3D920799F55FB7F894DE01159635
|
|
||||||
:100CA0004EE020E030E061E2E42FF0E06093570096
|
|
||||||
:100CB000849120FF03C082958F704F5F982F9F70A3
|
|
||||||
:100CC000892F805D8A3308F0895F8C9311961C927E
|
|
||||||
:100CD00011972F5F3F4F12962431310529F75FBFDF
|
|
||||||
:100CE0008AE28B8383E08C838091E800877F809306
|
|
||||||
:100CF000E800CE0103966AE270E0E4DC11C0609186
|
|
||||||
:100D00003402AE014F5F5F4F2CDCBC010097C9F18C
|
|
||||||
:100D10008091E800877F8093E80089819A812BDDAC
|
|
||||||
:100D20008091E8008B778093E8002BC0803841F5F4
|
|
||||||
:100D30008091E800877F8093E80080912E02809365
|
|
||||||
:100D4000F1008091E8008E778093E8006DDC19C097
|
|
||||||
:100D50008823B1F490913202923098F48091E800A7
|
|
||||||
:100D6000877F8093E80090932E025EDC80912E02B4
|
|
||||||
:100D7000882311F483E001C084E08EBBF8DA01C05F
|
|
||||||
:100D8000F3DA8091E80083FF0AC08091EB00806273
|
|
||||||
:100D90008093EB008091E800877F8093E800AC9619
|
|
||||||
:100DA0000FB6F894DEBF0FBECDBFCF91DF911F917C
|
|
||||||
:100DB000089508951F938EB3882361F01091E90080
|
|
||||||
:100DC0001092E9008091E80083FF01C098DE17705F
|
|
||||||
:100DD0001093E9001F9108950895FC018EB38430AB
|
|
||||||
:100DE00021F587859089A189B2890097A105B10570
|
|
||||||
:100DF000E1F085818093E9008091E80082FF15C0D1
|
|
||||||
:100E00008091F200882319F42FEF3FEF04C0809106
|
|
||||||
:100E1000F100282F30E08091F200882341F4809186
|
|
||||||
:100E2000E8008B778093E80002C02FEF3FEFC90105
|
|
||||||
:100E30000895FC018EB3843011F587859089A189CE
|
|
||||||
:100E4000B2890097A105B105D1F081818093E900B5
|
|
||||||
:100E50008091F2008823A9F09091E8008091E80049
|
|
||||||
:100E60008E778093E80095FD0CC0FDDB982F8823DA
|
|
||||||
:100E700049F48091E8008E778093E80003C092E007
|
|
||||||
:100E800001C090E0892F0895FC018EB3843051F4A5
|
|
||||||
:100E900087859089A189B2890097A105B10511F0D4
|
|
||||||
:100EA000CF01C7CF08951F93FC01162F8EB3843056
|
|
||||||
:100EB000D9F487859089A189B2890097A105B105E8
|
|
||||||
:100EC00099F081818093E9008091E80085FD08C058
|
|
||||||
:100ED0008091E8008E778093E800C5DB882329F4B1
|
|
||||||
:100EE0001093F10080E001C082E01F9108950F93FC
|
|
||||||
:100EF0001F93CF93DF93EC010D96FC0189E0DF0196
|
|
||||||
:100F00001D928A95E9F72A813B8109818C8188238A
|
|
||||||
:100F100011F410E001C014E0C90151DB182B12607C
|
|
||||||
:100F2000802F61E8412F59DB882329F12E813F81F1
|
|
||||||
:100F30000D818885882311F410E001C014E0C901F7
|
|
||||||
:100F40003EDB182B1260802F60E8412F46DB8823A0
|
|
||||||
:100F500091F02A853B8509858C85882311F410E062
|
|
||||||
:100F600001C014E0C9012BDB182B1260802F61EC4B
|
|
||||||
:100F7000412F33DB01C080E0DF91CF911F910F91B2
|
|
||||||
:100F80000895CF93DF93EC018091E80083FF60C068
|
|
||||||
:100F9000888190E02091340230913502281739077A
|
|
||||||
:100FA00009F056C080913102813261F0823220F422
|
|
||||||
:100FB000803209F04DC019C0823269F1833209F0E4
|
|
||||||
:100FC00047C038C080913002813A09F041C0809119
|
|
||||||
:100FD000E800877F8093E800CE010F9667E070E01D
|
|
||||||
:100FE00071DB8091E8008B7713C0809130028132F1
|
|
||||||
:100FF00079F58091E800877F8093E800CE010F9615
|
|
||||||
:1010000067E070E013DCCE01E9D88091E8008E77CC
|
|
||||||
:101010008093E8001DC0809130028132C9F4809134
|
|
||||||
:10102000E800877F8093E800809132028D87CE01AF
|
|
||||||
:101030006ED90DC080913002813251F48091E80068
|
|
||||||
:10104000877F8093E800CE0160913202C5DEECDA42
|
|
||||||
:10105000DF91CF910895A1E21A2EAA1BBB1BFD01BF
|
|
||||||
:101060000DC0AA1FBB1FEE1FFF1FA217B307E40787
|
|
||||||
:10107000F50720F0A21BB30BE40BF50B661F771FDF
|
|
||||||
:10108000881F991F1A9469F76095709580959095BF
|
|
||||||
:101090009B01AC01BD01CF01089597FB092E0526E8
|
|
||||||
:1010A0000ED057FD04D0D7DF0AD0001C38F450957D
|
|
||||||
:1010B0004095309521953F4F4F4F5F4F0895F6F77C
|
|
||||||
:1010C00090958095709561957F4F8F4F9F4F0895B4
|
|
||||||
:0410D000F894FFCFC2
|
|
||||||
:1010D400000340000004400000020800000000007B
|
|
||||||
:0810E4000000000000001400F0
|
|
||||||
:00000001FF
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
This package need if you have problem with unrelable cold start of Arduino DUE
|
|
||||||
Arduino ISP should be connected to 16u2 ICSP connector before run
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../tools/mac/tool-avrdude/avrdude -C ../tools/mac/tool-avrdude/avrdude.conf -c arduino -P /dev/cu.usbmodem1411 -b 19200 -p m16u2 -vvv -U flash:w:16u2.hex:i
|
|
||||||
0
compiled/tools/arduinoOTA
Normal file → Executable file
0
compiled/tools/arduinoOTA
Normal file → Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
libavrdude.1.dylib
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# libavrdude.la - a libtool library file
|
|
||||||
# Generated by libtool (GNU libtool) 2.4.6
|
|
||||||
#
|
|
||||||
# Please DO NOT delete this file!
|
|
||||||
# It is necessary for linking the library.
|
|
||||||
|
|
||||||
# The name that we can dlopen(3).
|
|
||||||
dlname='libavrdude.1.dylib'
|
|
||||||
|
|
||||||
# Names of this library.
|
|
||||||
library_names='libavrdude.1.dylib libavrdude.dylib'
|
|
||||||
|
|
||||||
# The name of the static archive.
|
|
||||||
old_library='libavrdude.a'
|
|
||||||
|
|
||||||
# Linker flags that cannot go in dependency_libs.
|
|
||||||
inherited_linker_flags=' '
|
|
||||||
|
|
||||||
# Libraries that this one depends upon.
|
|
||||||
dependency_libs=' -L/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib -lreadline -lncurses -ltermcap'
|
|
||||||
|
|
||||||
# Names of additional weak libraries provided by this library
|
|
||||||
weak_library_names=''
|
|
||||||
|
|
||||||
# Version information for libavrdude.
|
|
||||||
current=1
|
|
||||||
age=0
|
|
||||||
revision=0
|
|
||||||
|
|
||||||
# Is this an already installed library?
|
|
||||||
installed=yes
|
|
||||||
|
|
||||||
# Should we warn about portability when linking against -modules?
|
|
||||||
shouldnotlink=no
|
|
||||||
|
|
||||||
# Files to dlopen/dlpreopen
|
|
||||||
dlopen=''
|
|
||||||
dlpreopen=''
|
|
||||||
|
|
||||||
# Directory that this library needs to be installed in:
|
|
||||||
libdir='/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib'
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,41 +0,0 @@
|
|||||||
# libusb-1.0.la - a libtool library file
|
|
||||||
# Generated by libtool (GNU libtool) 2.4.2
|
|
||||||
#
|
|
||||||
# Please DO NOT delete this file!
|
|
||||||
# It is necessary for linking the library.
|
|
||||||
|
|
||||||
# The name that we can dlopen(3).
|
|
||||||
dlname=''
|
|
||||||
|
|
||||||
# Names of this library.
|
|
||||||
library_names=''
|
|
||||||
|
|
||||||
# The name of the static archive.
|
|
||||||
old_library='libusb-1.0.a'
|
|
||||||
|
|
||||||
# Linker flags that can not go in dependency_libs.
|
|
||||||
inherited_linker_flags=' '
|
|
||||||
|
|
||||||
# Libraries that this one depends upon.
|
|
||||||
dependency_libs=' -lobjc'
|
|
||||||
|
|
||||||
# Names of additional weak libraries provided by this library
|
|
||||||
weak_library_names=''
|
|
||||||
|
|
||||||
# Version information for libusb-1.0.
|
|
||||||
current=1
|
|
||||||
age=1
|
|
||||||
revision=0
|
|
||||||
|
|
||||||
# Is this an already installed library?
|
|
||||||
installed=yes
|
|
||||||
|
|
||||||
# Should we warn about portability when linking against -modules?
|
|
||||||
shouldnotlink=no
|
|
||||||
|
|
||||||
# Files to dlopen/dlpreopen
|
|
||||||
dlopen=''
|
|
||||||
dlpreopen=''
|
|
||||||
|
|
||||||
# Directory that this library needs to be installed in:
|
|
||||||
libdir='/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib'
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
prefix=/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir
|
|
||||||
exec_prefix=${prefix}
|
|
||||||
includedir=${prefix}/include
|
|
||||||
libdir=${exec_prefix}/lib
|
|
||||||
exec_prefix_set=no
|
|
||||||
|
|
||||||
usage()
|
|
||||||
{
|
|
||||||
cat <<EOF
|
|
||||||
Usage: libusb-config [OPTIONS] [LIBRARIES]
|
|
||||||
Options:
|
|
||||||
[--prefix[=DIR]]
|
|
||||||
[--exec-prefix[=DIR]]
|
|
||||||
[--version]
|
|
||||||
[--libs]
|
|
||||||
[--cflags]
|
|
||||||
EOF
|
|
||||||
exit $1
|
|
||||||
}
|
|
||||||
|
|
||||||
if test $# -eq 0; then
|
|
||||||
usage 1 1>&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
while test $# -gt 0; do
|
|
||||||
case "$1" in
|
|
||||||
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
||||||
*) optarg= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
--prefix=*)
|
|
||||||
prefix=$optarg
|
|
||||||
if test $exec_prefix_set = no ; then
|
|
||||||
exec_prefix=$optarg
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
--prefix)
|
|
||||||
echo_prefix=yes
|
|
||||||
;;
|
|
||||||
--exec-prefix=*)
|
|
||||||
exec_prefix=$optarg
|
|
||||||
exec_prefix_set=yes
|
|
||||||
;;
|
|
||||||
--exec-prefix)
|
|
||||||
echo_exec_prefix=yes
|
|
||||||
;;
|
|
||||||
--version)
|
|
||||||
echo 0.1.12
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--cflags)
|
|
||||||
if test "$includedir" != /usr/include ; then
|
|
||||||
includes="-I$includedir"
|
|
||||||
fi
|
|
||||||
echo_cflags=yes
|
|
||||||
;;
|
|
||||||
--libs)
|
|
||||||
echo_libs=yes
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage 1 1>&2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if test "$echo_prefix" = "yes"; then
|
|
||||||
echo $prefix
|
|
||||||
fi
|
|
||||||
if test "$echo_exec_prefix" = "yes"; then
|
|
||||||
echo $exec_prefix
|
|
||||||
fi
|
|
||||||
if test "$echo_cflags" = "yes"; then
|
|
||||||
echo $includes
|
|
||||||
fi
|
|
||||||
if test "$echo_libs" = "yes"; then
|
|
||||||
echo -L$libdir -lusb
|
|
||||||
fi
|
|
||||||
Binary file not shown.
@@ -1,41 +0,0 @@
|
|||||||
# libusb.la - a libtool library file
|
|
||||||
# Generated by libtool (GNU libtool) 2.4.2
|
|
||||||
#
|
|
||||||
# Please DO NOT delete this file!
|
|
||||||
# It is necessary for linking the library.
|
|
||||||
|
|
||||||
# The name that we can dlopen(3).
|
|
||||||
dlname=''
|
|
||||||
|
|
||||||
# Names of this library.
|
|
||||||
library_names=''
|
|
||||||
|
|
||||||
# The name of the static archive.
|
|
||||||
old_library='libusb.a'
|
|
||||||
|
|
||||||
# Linker flags that can not go in dependency_libs.
|
|
||||||
inherited_linker_flags=' '
|
|
||||||
|
|
||||||
# Libraries that this one depends upon.
|
|
||||||
dependency_libs=' -L/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib /Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib/libusb-1.0.la -lobjc'
|
|
||||||
|
|
||||||
# Names of additional weak libraries provided by this library
|
|
||||||
weak_library_names=''
|
|
||||||
|
|
||||||
# Version information for libusb.
|
|
||||||
current=8
|
|
||||||
age=4
|
|
||||||
revision=4
|
|
||||||
|
|
||||||
# Is this an already installed library?
|
|
||||||
installed=yes
|
|
||||||
|
|
||||||
# Should we warn about portability when linking against -modules?
|
|
||||||
shouldnotlink=no
|
|
||||||
|
|
||||||
# Files to dlopen/dlpreopen
|
|
||||||
dlopen=''
|
|
||||||
dlpreopen=''
|
|
||||||
|
|
||||||
# Directory that this library needs to be installed in:
|
|
||||||
libdir='/Users/jenkins/jenkins/workspace/avrdude/label/mac-mini/objdir/lib'
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
copy ..\.pio\build\due\firmware.bin due
|
copy ..\.pio\build\due\firmware.bin due
|
||||||
copy ..\.pio\build\controllino\firmware.hex controllino
|
copy ..\.pio\build\controllino\firmware.hex controllino
|
||||||
copy ..\.pio\build\m5stack\firmware.bin m5stack
|
copy ..\.pio\build\m5stack\firmware.bin m5stack
|
||||||
copy ..\.pio\build\mega2560slim-5100\firmware.hex mega2560slim-5100
|
copy ..\.pio\build\mega2560slim\firmware.hex mega2560slim
|
||||||
copy ..\.pio\build\mega2560slim-5100\firmware.bin mega2560slim-5100
|
copy ..\.pio\build\mega2560slim\firmware.bin mega2560slim
|
||||||
copy ..\.pio\build\mega2560slim2\firmware.hex mega2560slim2
|
copy ..\.pio\build\mega2560slim2\firmware.hex mega2560slim2
|
||||||
copy ..\.pio\build\mega2560slim2\firmware.bin mega2560slim2
|
copy ..\.pio\build\mega2560slim2\firmware.bin mega2560slim2
|
||||||
copy ..\.pio\build\due-5100\firmware.bin due-5100
|
copy ..\.pio\build\due-5100\firmware.bin due-5100
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
cp ../.pio/build/due/firmware.bin due
|
cp ../.pio/build/due/firmware.bin due
|
||||||
cp ../.pio/build/controllino/firmware.hex controllino
|
cp ../.pio/build/controllino/firmware.hex controllino
|
||||||
cp ../.pio/build/m5stack/firmware.bin m5stack
|
cp ../.pio/build/m5stack/firmware.bin m5stack
|
||||||
cp ../.pio/build/mega2560slim-5100/firmware.hex mega2560slim-5100
|
cp ../.pio/build/mega2560slim/firmware.hex mega2560slim
|
||||||
cp ../.pio/build/mega2560slim-5100/firmware.bin mega2560slim-5100
|
cp ../.pio/build/mega2560slim/firmware.bin mega2560slim
|
||||||
cp ../.pio/build/mega2560-optiboot/firmware.hex mega2560-optiboot
|
cp ../.pio/build/mega2560-optiboot/firmware.hex mega2560-optiboot
|
||||||
cp ../.pio/build/mega2560-optiboot/firmware.bin mega2560-optiboot
|
cp ../.pio/build/mega2560-optiboot/firmware.bin mega2560-optiboot
|
||||||
cp ../.pio/build/mega2560-5100/firmware.hex mega2560-5100
|
cp ../.pio/build/mega2560-5100/firmware.hex mega2560-5100
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
|
|
||||||
#include "abstractch.h"
|
#include "abstractch.h"
|
||||||
|
#if not defined (NOIP)
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
|
#endif
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <aJSON.h>
|
#include <aJSON.h>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
extern lan_status lanStatus;
|
extern lan_status lanStatus;
|
||||||
|
|
||||||
|
#if not defined (NOIP)
|
||||||
extern PubSubClient mqttClient;
|
extern PubSubClient mqttClient;
|
||||||
extern int8_t ethernetIdleCount;
|
extern int8_t ethernetIdleCount;
|
||||||
|
#endif
|
||||||
|
|
||||||
int abstractCh::publishTopic(const char* topic, long value, const char* subtopic)
|
int abstractCh::publishTopic(const char* topic, long value, const char* subtopic)
|
||||||
{
|
{
|
||||||
@@ -25,6 +30,7 @@ int abstractCh::publishTopic(const char* topic, float value, const char* subtopi
|
|||||||
|
|
||||||
int abstractCh::publishTopic(const char* topic, const char * value, const char* subtopic)
|
int abstractCh::publishTopic(const char* topic, const char * value, const char* subtopic)
|
||||||
{
|
{
|
||||||
|
#if not defined (NOIP)
|
||||||
char addrstr[MQTT_TOPIC_LENGTH];
|
char addrstr[MQTT_TOPIC_LENGTH];
|
||||||
if (!isNotRetainingStatus()) return 0;
|
if (!isNotRetainingStatus()) return 0;
|
||||||
if (topic)
|
if (topic)
|
||||||
@@ -38,5 +44,6 @@ int abstractCh::publishTopic(const char* topic, const char * value, const char*
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
|
|
||||||
#define CST_UNKNOWN 0
|
#define CST_UNKNOWN 0
|
||||||
#define CST_INITIALIZED 1
|
#define CST_FAILED 1
|
||||||
#define CST_FAILED -1
|
#define CST_INITIALIZED 2
|
||||||
|
#define CST_USER 3
|
||||||
|
|
||||||
class abstractCh {
|
class abstractCh {
|
||||||
public:
|
public:
|
||||||
@@ -11,9 +12,10 @@ public:
|
|||||||
virtual ~abstractCh(){};
|
virtual ~abstractCh(){};
|
||||||
virtual int Poll(short cause) {return 0;}
|
virtual int Poll(short cause) {return 0;}
|
||||||
virtual int Setup() =0; //Should initialize hardware and reserve resources
|
virtual int Setup() =0; //Should initialize hardware and reserve resources
|
||||||
virtual int Anounce () {return 0;};
|
// virtual int Anounce () {return 0;};
|
||||||
virtual int Stop() {return 0;}; //Should free resources
|
virtual int Stop() {return 0;}; //Should free resources
|
||||||
virtual int Status() {return CST_UNKNOWN;}
|
virtual int Status() {return CST_UNKNOWN;}
|
||||||
|
virtual void setStatus(uint8_t status) {}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
|
|
||||||
#include "abstractin.h"
|
#include "abstractin.h"
|
||||||
#include "abstractch.h"
|
#include "abstractch.h"
|
||||||
|
#if not defined (NOIP)
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
|
extern PubSubClient mqttClient;
|
||||||
|
#endif
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <aJSON.h>
|
#include <aJSON.h>
|
||||||
#include "inputs.h"
|
#include "inputs.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
extern lan_status lanStatus;
|
extern lan_status lanStatus;
|
||||||
extern PubSubClient mqttClient;
|
|
||||||
|
|
||||||
int abstractIn::publish(long value, const char* subtopic)
|
int abstractIn::publish(long value, const char* subtopic)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "abstractch.h"
|
#include "abstractch.h"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "item.h"
|
#include "item.h"
|
||||||
#include "abstractout.h"
|
#include "abstractout.h"
|
||||||
#include "itemCmd.h"
|
#include "itemCmd.h"
|
||||||
@@ -25,3 +26,15 @@ int abstractOut::Setup()
|
|||||||
if (item && (item->getCmd()==-1)) item->setCmd(CMD_OFF);
|
if (item && (item->getCmd()==-1)) item->setCmd(CMD_OFF);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int abstractOut::Status()
|
||||||
|
{
|
||||||
|
if (item && item->itemArr)
|
||||||
|
return item->itemArr->subtype;
|
||||||
|
return CST_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
void abstractOut::setStatus(uint8_t status)
|
||||||
|
{
|
||||||
|
if (item && item->itemArr) item->itemArr->subtype = status & 0xF;
|
||||||
|
}
|
||||||
@@ -8,12 +8,14 @@ class chPersistent {};
|
|||||||
class abstractOut : public abstractCh{
|
class abstractOut : public abstractCh{
|
||||||
public:
|
public:
|
||||||
abstractOut(Item * _item):abstractCh(){item=_item;};
|
abstractOut(Item * _item):abstractCh(){item=_item;};
|
||||||
virtual int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) =0;
|
virtual int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true, bool authorized = false) =0;
|
||||||
virtual int isActive();
|
virtual int isActive();
|
||||||
virtual bool isAllowed(itemCmd cmd){return true;};
|
virtual bool isAllowed(itemCmd cmd){return true;};
|
||||||
virtual itemCmd getDefaultOnVal(){return itemCmd().Percents255(255);};
|
virtual itemCmd getDefaultOnVal(){return itemCmd().Percents255(255);};
|
||||||
virtual int getChanType(){return 0;}
|
virtual int getChanType(){return 0;}
|
||||||
virtual int getDefaultStorageType(){return 0;} /// Remove?? Now getChanType used instead
|
// virtual int getDefaultStorageType(){return 0;} /// Remove?? Now getChanType used instead
|
||||||
|
virtual int Status() override;
|
||||||
|
virtual void setStatus(uint8_t status) override;
|
||||||
int Setup() override;
|
int Setup() override;
|
||||||
protected:
|
protected:
|
||||||
Item * item;
|
Item * item;
|
||||||
|
|||||||
918
lighthub/candriver.cpp
Normal file
918
lighthub/candriver.cpp
Normal file
@@ -0,0 +1,918 @@
|
|||||||
|
|
||||||
|
#ifdef CANDRV
|
||||||
|
|
||||||
|
#include <candriver.h>
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <main.h>
|
||||||
|
#include <utils.h>
|
||||||
|
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
#include <STM32_CAN.h>
|
||||||
|
STM32_CAN STMCan( CAN1, CAN_PINS::DEF, RX_SIZE_64, TX_SIZE_16 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
|
#include <CAN.h>
|
||||||
|
#endif
|
||||||
|
#if defined(__SAM3X8E__)
|
||||||
|
#include <due_can.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
//#include <systemconfigdata.h>
|
||||||
|
extern systemConfig sysConf;
|
||||||
|
extern canStream CANConfStream;
|
||||||
|
extern aJsonObject * root;
|
||||||
|
extern volatile int8_t configLocked;
|
||||||
|
extern bool configLoaded;
|
||||||
|
|
||||||
|
|
||||||
|
void printFrame(datagram_t * frame, uint8_t len ) {
|
||||||
|
|
||||||
|
debugSerial.print(" Data:");
|
||||||
|
for (int count = 0; count < len; count++) {
|
||||||
|
debugSerial.print(frame->data[count], HEX);
|
||||||
|
debugSerial.print(" ");
|
||||||
|
}
|
||||||
|
debugSerial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool canDriver::upTime(uint32_t ut)
|
||||||
|
{
|
||||||
|
if (!controllerId) return false;
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=1;
|
||||||
|
id.payloadType=payloadType::metric;
|
||||||
|
id.deviceId=controllerId;
|
||||||
|
id.subjId=metricType::UpTime;
|
||||||
|
|
||||||
|
|
||||||
|
packet.metric1=ut;
|
||||||
|
|
||||||
|
debugSerial<<("CAN: UpTime")<<endl;
|
||||||
|
return write (id.id, &packet, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::salt(uint32_t salt)
|
||||||
|
{
|
||||||
|
if (!controllerId) return false;
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=1;
|
||||||
|
id.payloadType=payloadType::metric;
|
||||||
|
id.deviceId=controllerId;
|
||||||
|
id.subjId=metricType::Salt;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
packet.metric1=salt;
|
||||||
|
|
||||||
|
debugSerial<<("CAN: Salt")<<endl;
|
||||||
|
return write (id.id, &packet, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::lookupMAC()
|
||||||
|
{
|
||||||
|
// return 0;
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
bool res;
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=0;
|
||||||
|
id.payloadType=payloadType::lookupMAC;
|
||||||
|
id.deviceId=0;
|
||||||
|
id.subjId=0; //CRC?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
memcpy(packet.mac,sysConf.mac,6);
|
||||||
|
|
||||||
|
debugSerial<<("CAN: Lookup MAC")<<endl;
|
||||||
|
res=write (id.id, &packet, 6);
|
||||||
|
if (res) state=canState::MACLookup;
|
||||||
|
else state=canState::Error;
|
||||||
|
responseTimer=millisNZ();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::requestFrame(uint8_t devId, payloadType _payloadType, uint16_t seqNo )
|
||||||
|
{
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
bool res;
|
||||||
|
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=0;
|
||||||
|
id.payloadType=_payloadType;
|
||||||
|
id.deviceId=devId;
|
||||||
|
id.subjId=seqNo;
|
||||||
|
|
||||||
|
|
||||||
|
packet.metric1 =0;
|
||||||
|
//memcpy(packet.mac,sysConf.mac,6);
|
||||||
|
//delay (100);
|
||||||
|
debugSerial<<("CAN: Request frame ")<<_payloadType<<F(" for id ")<<devId<<F(" seq:")<<seqNo<<endl;
|
||||||
|
res=write (id.id,&packet,1);
|
||||||
|
if (res) state=canState::FrameRequested;
|
||||||
|
else state=canState::Error;
|
||||||
|
responseTimer=millisNZ();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::sendRemoteID(macAddress mac)
|
||||||
|
{
|
||||||
|
canid_t id;
|
||||||
|
//datagram_t packet;
|
||||||
|
bool res=false;
|
||||||
|
id.deviceId=getIdByMac(mac); //Retrieved controllerID
|
||||||
|
if (!id.deviceId) return false;
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=1; //response
|
||||||
|
id.payloadType=payloadType::lookupMAC;
|
||||||
|
|
||||||
|
id.subjId=200; //CRC16 of remote config
|
||||||
|
|
||||||
|
debugSerial<<("CAN: Send remote ID")<<endl;
|
||||||
|
res = write (id.id,(datagram_t*)mac,6);
|
||||||
|
if (res) state=canState::Idle;
|
||||||
|
else state=canState::Error;
|
||||||
|
// responseTimer=millisNZ(); ????????
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool canDriver::begin()
|
||||||
|
{
|
||||||
|
controllerId = getMyId();
|
||||||
|
|
||||||
|
if (!ready) // not reInitialization
|
||||||
|
{
|
||||||
|
ready=false;
|
||||||
|
//STM32
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
//Can= new STM32_CAN( CAN1, ALT );
|
||||||
|
//if (!Can) return false;
|
||||||
|
STMCan.begin(); //with retransmission
|
||||||
|
STMCan.setBaudRate(50000);
|
||||||
|
// STMCan.setFilter( 0, 0x153, 0x1FFFFFFF );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//ESP
|
||||||
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
|
CAN.setPins(GPIO_NUM_35,GPIO_NUM_5);//(rx, tx);
|
||||||
|
// start the CAN bus at 500 kbps
|
||||||
|
if (!CAN.begin(50000)) {return false; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SAM3X8E__)
|
||||||
|
Can0.begin(CAN_BPS_50K);
|
||||||
|
|
||||||
|
int filter;
|
||||||
|
//extended
|
||||||
|
for (filter = 0; filter < 3; filter++) {
|
||||||
|
Can0.setRXFilter(filter, 0, 0, true);
|
||||||
|
//Can1.setRXFilter(filter, 0, 0, true);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
ready=true;
|
||||||
|
}
|
||||||
|
debugSerial<<"CAN: initialized. addr="<<controllerId<<endl;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int canDriver::readFrame()
|
||||||
|
{
|
||||||
|
if (!ready) return -1;
|
||||||
|
//STM32
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
if (STMCan.read(CAN_RX_msg))
|
||||||
|
{
|
||||||
|
if (CAN_RX_msg.len>8) CAN_RX_msg.len=8;
|
||||||
|
memcpy(RXpacket.data, CAN_RX_msg.buf,CAN_RX_msg.len);
|
||||||
|
RXlen = CAN_RX_msg.len;
|
||||||
|
RXid.id = CAN_RX_msg.id;
|
||||||
|
return RXlen;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
|
// try to parse packet
|
||||||
|
int packetSize = CAN.parsePacket();
|
||||||
|
|
||||||
|
if (packetSize ){//|| CAN.packetId() != -1) {
|
||||||
|
// received a packet
|
||||||
|
debugSerialPort.print("CAN: Received ");
|
||||||
|
|
||||||
|
if (CAN.packetExtended()) {
|
||||||
|
debugSerialPort.print("extended ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CAN.packetRtr()) {
|
||||||
|
// Remote transmission request, packet contains no data
|
||||||
|
debugSerialPort.print("RTR ");
|
||||||
|
}
|
||||||
|
|
||||||
|
debugSerialPort.print("packet with id 0x");
|
||||||
|
debugSerialPort.print(CAN.packetId(), HEX);
|
||||||
|
|
||||||
|
if (CAN.packetRtr()) {
|
||||||
|
debugSerialPort.print(" and requested length ");
|
||||||
|
debugSerialPort.println(CAN.packetDlc());
|
||||||
|
} else {
|
||||||
|
debugSerialPort.print(" and length ");
|
||||||
|
//debugSerialPort.println(packetSize);
|
||||||
|
debugSerialPort.println(CAN.packetDlc());
|
||||||
|
|
||||||
|
|
||||||
|
// only print packet data for non-RTR packets
|
||||||
|
RXlen=0;
|
||||||
|
while (CAN.available()) {
|
||||||
|
RXpacket.data[RXlen++]=CAN.read();
|
||||||
|
if (RXlen>=8) break;
|
||||||
|
}
|
||||||
|
RXid.id = CAN.packetId();
|
||||||
|
|
||||||
|
debugSerialPort.println();
|
||||||
|
return RXlen;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//DUE
|
||||||
|
#if defined(__SAM3X8E__)
|
||||||
|
CAN_FRAME CAN_RX_msg;
|
||||||
|
if (Can0.available() > 0) {
|
||||||
|
|
||||||
|
Can0.read(CAN_RX_msg);
|
||||||
|
if (CAN_RX_msg.length>8) CAN_RX_msg.length=8;
|
||||||
|
memcpy(RXpacket.data, CAN_RX_msg.data.bytes,CAN_RX_msg.length);
|
||||||
|
RXlen = CAN_RX_msg.length;
|
||||||
|
RXid.id = CAN_RX_msg.id;
|
||||||
|
return RXlen;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void canDriver::Poll()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (readFrame()>=0) processPacket( RXid, &RXpacket, RXlen);
|
||||||
|
//State machine
|
||||||
|
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case canState::MACLookup:
|
||||||
|
// case canState::FrameRequested:
|
||||||
|
|
||||||
|
if (isTimeOver(responseTimer,millis(),1000UL))
|
||||||
|
{
|
||||||
|
responseTimer=millisNZ();
|
||||||
|
state=canState::Error;
|
||||||
|
errorSerial<<"CAN: lookup Timeout"<<endl;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::Error:
|
||||||
|
if (configLoaded) state=canState::ConfigLoaded;
|
||||||
|
else
|
||||||
|
if (isTimeOver(responseTimer,millis(),10000UL))
|
||||||
|
lookupMAC();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::ReadConfig:
|
||||||
|
{
|
||||||
|
//Blocking read config
|
||||||
|
if (configLocked) return; // only in safe moments
|
||||||
|
configLocked++;
|
||||||
|
|
||||||
|
infoSerial<<F("CAN: Requesting Config")<<endl;
|
||||||
|
|
||||||
|
CANConfStream.open(controllerId,payloadType::configFrame,'r');
|
||||||
|
|
||||||
|
if (CANConfStream.peek() == '{') {
|
||||||
|
debugSerial<<F("CAN: JSON detected")<<endl;
|
||||||
|
aJsonStream as = aJsonStream(&CANConfStream);
|
||||||
|
cleanConf(false);
|
||||||
|
root = aJson.parse(&as);
|
||||||
|
CANConfStream.close();
|
||||||
|
if (!root) {
|
||||||
|
errorSerial<<F("CAN: config load failed")<<endl;
|
||||||
|
sysConf.setETAG("");
|
||||||
|
// sysConfStream.close();
|
||||||
|
configLocked--;
|
||||||
|
state = canState::Error;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
infoSerial<<F("CAN: config Loaded")<<endl;
|
||||||
|
configLocked--;
|
||||||
|
applyConfig();
|
||||||
|
sysConf.loadETAG();
|
||||||
|
state = canState::Idle;
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
CANConfStream.close();
|
||||||
|
infoSerial<<F("CAN: Config not loaded")<<endl;
|
||||||
|
state = canState::Error;
|
||||||
|
configLocked--;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// case canState::Idle:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::processPacket(canid_t id, datagram_t *packet, uint8_t len, bool rtr)
|
||||||
|
{
|
||||||
|
|
||||||
|
debugSerial.print("CAN: Rcvd ");
|
||||||
|
debugSerial.print(len);
|
||||||
|
debugSerial.print(" bytes id:");
|
||||||
|
debugSerial.println(id.id,HEX);
|
||||||
|
|
||||||
|
//if (id.deviceId && (id.deviceId != controllerId) && !id.status) return false;
|
||||||
|
|
||||||
|
debugSerial<<"CAN: " ;
|
||||||
|
if (id.status) debugSerial.print("Resp "); else debugSerial.print("Req ");
|
||||||
|
debugSerial<<"(devId:"<< id.deviceId <<" ";
|
||||||
|
switch ((id.payloadType)){
|
||||||
|
case payloadType::itemCommand:
|
||||||
|
debugSerial.print("itemCmd");
|
||||||
|
debugSerial<<" itemId:"<< id.itemId;
|
||||||
|
if (id.subItemId!=NO_SUBITEM) debugSerial << " subItem:"<<id.subItemId;
|
||||||
|
|
||||||
|
if (id.deviceId && (id.deviceId != controllerId) && !id.status) //ignore requests with NON ZERO devId where another CANID
|
||||||
|
{
|
||||||
|
debugSerial.println(")");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case payloadType::lookupMAC:
|
||||||
|
debugSerial.print("lookupMAC");
|
||||||
|
if (id.status && (memcmp(packet->mac, sysConf.mac,6))) //Ignore responses for another controller
|
||||||
|
{
|
||||||
|
debugSerial.println(")");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case payloadType::configFrame:
|
||||||
|
debugSerial.print("configFrame #");
|
||||||
|
debugSerial<< id.subjId;
|
||||||
|
if (id.status && (id.deviceId != controllerId)) //Ignore responses on config request not for me
|
||||||
|
{
|
||||||
|
debugSerial.println(")");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case payloadType::OTAFrame:
|
||||||
|
debugSerial.print("OTAFrame #");
|
||||||
|
debugSerial<< id.subjId;
|
||||||
|
break;
|
||||||
|
case payloadType::auth:
|
||||||
|
debugSerial.print("auth #");
|
||||||
|
debugSerial<< id.subjId;
|
||||||
|
break;
|
||||||
|
case payloadType::metric:
|
||||||
|
debugSerial.print("metric #");
|
||||||
|
debugSerial<< id.subjId;
|
||||||
|
break;
|
||||||
|
case payloadType::sysCmd:
|
||||||
|
debugSerial.print("sysCmd");
|
||||||
|
if (id.deviceId != controllerId) //Ignore commands not for me
|
||||||
|
{
|
||||||
|
debugSerial.println(")");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case payloadType::rawPinCtrl:
|
||||||
|
debugSerial.print("rawPinCtrl");
|
||||||
|
if (id.deviceId != controllerId) //Ignore commands not for me
|
||||||
|
{
|
||||||
|
debugSerial.println(")");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
debugSerial<< ") ";
|
||||||
|
|
||||||
|
if (len) printFrame(packet,len);
|
||||||
|
if (id.status){
|
||||||
|
//Responces
|
||||||
|
//@ any state
|
||||||
|
switch (id.payloadType)
|
||||||
|
{
|
||||||
|
case payloadType::itemCommand:
|
||||||
|
{
|
||||||
|
if (len!=8) return false;
|
||||||
|
aJsonObject *confObj = findConfbyID(id.deviceId);
|
||||||
|
if (confObj)
|
||||||
|
{
|
||||||
|
debugSerial<<F("CAN: status received for dev ")<<id.deviceId<<endl;
|
||||||
|
//char * itemNName = findItemName(id.itemId);
|
||||||
|
aJsonObject *itemsObj = aJson.getObjectItem(confObj,"items");
|
||||||
|
if (!itemsObj) return false;
|
||||||
|
Item it(id.itemId, id.subjId, itemsObj);
|
||||||
|
if (it.isValid())
|
||||||
|
{
|
||||||
|
itemCmd ic;
|
||||||
|
uint16_t flags = 0;
|
||||||
|
ic.cmd = packet->cmd;
|
||||||
|
ic.param = packet->param;
|
||||||
|
|
||||||
|
debugSerial<<F("CAN: item ")<<it.itemArr->name;
|
||||||
|
ic.debugOut();
|
||||||
|
|
||||||
|
if (ic.isCommand()) flags |= FLAG_COMMAND;
|
||||||
|
if (ic.isValue()) flags |= FLAG_PARAMETERS;
|
||||||
|
ic.saveItem(&it,flags);
|
||||||
|
it.SendStatusImmediate(ic,flags | FLAG_NOT_SEND_CAN,it.getSubItemStrById(id.subItemId));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case canState::MACLookup:
|
||||||
|
if ((id.payloadType == payloadType::lookupMAC))
|
||||||
|
{
|
||||||
|
debugSerial<<"\nCAN: Got Controller addr: "<<id.deviceId<<endl;
|
||||||
|
controllerId=id.deviceId;
|
||||||
|
state = canState::ReadConfig;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case canState::FrameRequested:
|
||||||
|
if ((id.payloadType == payloadType::configFrame) && (id.deviceId == controllerId))
|
||||||
|
{
|
||||||
|
errorSerial<<F("CAN: Config received when not expected")<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case canState::Idle:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::Error:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else //Requests
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
switch (id.payloadType)
|
||||||
|
{
|
||||||
|
case payloadType::itemCommand:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case payloadType::sysCmd:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}*/
|
||||||
|
if ((id.payloadType == payloadType::itemCommand) && (len ==8))
|
||||||
|
{
|
||||||
|
Item it(id.itemId,id.subItemId);
|
||||||
|
if (it.isValid())
|
||||||
|
{
|
||||||
|
itemCmd ic;
|
||||||
|
ic.cmd = packet->cmd;
|
||||||
|
ic.param = packet->param;
|
||||||
|
//debugSerial<<F("CAN: itemCmd: ");
|
||||||
|
//ic.debugOut();
|
||||||
|
return it.Ctrl(ic,it.getSubItemStrById(id.subItemId));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if ((id.payloadType == payloadType::lookupMAC) && (len>=6))
|
||||||
|
{
|
||||||
|
return sendRemoteID(packet->mac);
|
||||||
|
//debugSerial<<"ID requested"<<endl;
|
||||||
|
}
|
||||||
|
else if ((id.payloadType == payloadType::configFrame) && (id.subjId == 0xFFFF))
|
||||||
|
{
|
||||||
|
debugSerial<<F("CAN: Requested conf for dev#")<<id.deviceId<<endl;
|
||||||
|
aJsonObject * remoteConfObj = findConfbyID(id.deviceId);
|
||||||
|
if (remoteConfObj)
|
||||||
|
{
|
||||||
|
infoSerial<<F("CAN: Sending conf for dev#")<<id.deviceId<<endl;
|
||||||
|
CANConfStream.open(id.deviceId,payloadType::configFrame,'w');
|
||||||
|
aJsonStream outStream = aJsonStream(&CANConfStream);
|
||||||
|
aJson.print(remoteConfObj, &outStream);
|
||||||
|
CANConfStream.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
//debugSerial<<"ID requested"<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t canDriver::getMyId()
|
||||||
|
{
|
||||||
|
if (!root) return 0;
|
||||||
|
aJsonObject * canObj = aJson.getObjectItem(root, "can");
|
||||||
|
if (!canObj) return 0;
|
||||||
|
|
||||||
|
aJsonObject * addrObj = aJson.getObjectItem(canObj, "addr");
|
||||||
|
if (addrObj && (addrObj->type == aJson_Int)) return addrObj->valueint;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
aJsonObject * canDriver::findConfbyID(uint8_t devId)
|
||||||
|
{
|
||||||
|
if (!root) return NULL;
|
||||||
|
aJsonObject * canObj = aJson.getObjectItem(root, "can");
|
||||||
|
if (!canObj) return NULL;
|
||||||
|
|
||||||
|
aJsonObject * remoteConfObj = aJson.getObjectItem(canObj, "conf");
|
||||||
|
|
||||||
|
if (!remoteConfObj) return NULL;
|
||||||
|
remoteConfObj=remoteConfObj->child;
|
||||||
|
while (remoteConfObj)
|
||||||
|
{
|
||||||
|
aJsonObject * remoteCanObj = aJson.getObjectItem(remoteConfObj, "can");
|
||||||
|
if (remoteCanObj)
|
||||||
|
{
|
||||||
|
aJsonObject * addrObj = aJson.getObjectItem(remoteCanObj, "addr");
|
||||||
|
if (addrObj && (addrObj->type == aJson_Int) && (addrObj->valueint == devId)) return remoteConfObj;
|
||||||
|
}
|
||||||
|
remoteConfObj=remoteConfObj->next;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t canDriver::getIdByMac(macAddress mac)
|
||||||
|
{
|
||||||
|
char macStr[19];
|
||||||
|
uint8_t strptr = 0;
|
||||||
|
|
||||||
|
if (!root) return 0;
|
||||||
|
aJsonObject * canObj = aJson.getObjectItem(root, "can");
|
||||||
|
if (!canObj) return 0;
|
||||||
|
aJsonObject * confObj = aJson.getObjectItem(canObj, "conf");
|
||||||
|
if (!confObj) return 0;
|
||||||
|
|
||||||
|
memset(macStr,0,sizeof(macStr));
|
||||||
|
for (byte i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
// if (mac[i]<16) macStr[strptr++]='0';
|
||||||
|
|
||||||
|
SetBytes(&mac[i],1,&macStr[strptr]);
|
||||||
|
strptr+=2;
|
||||||
|
|
||||||
|
if (i < 5) macStr[strptr++]=':';
|
||||||
|
}
|
||||||
|
debugSerial<<F("CAN: Searching devId for ")<<macStr<<endl;
|
||||||
|
aJsonObject * remoteConfObj = aJson.getObjectItem(confObj, macStr);
|
||||||
|
|
||||||
|
if (!remoteConfObj) return 0;
|
||||||
|
|
||||||
|
aJsonObject * remoteCanObj = aJson.getObjectItem(remoteConfObj, "can");
|
||||||
|
if (!remoteCanObj) return 0;
|
||||||
|
|
||||||
|
aJsonObject * addrObj = aJson.getObjectItem(remoteCanObj, "addr");
|
||||||
|
if (!addrObj) return 0;
|
||||||
|
if (addrObj && (addrObj->type == aJson_Int))
|
||||||
|
{
|
||||||
|
debugSerial<<F("CAN: find dev#")<< addrObj->valueint << endl;
|
||||||
|
return addrObj->valueint;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::write(uint32_t msg_id, datagram_t * buf, uint8_t size)
|
||||||
|
{ //return 0;
|
||||||
|
if (!ready) errorSerial<<"CAN: not initialized"<<endl;
|
||||||
|
bool res;
|
||||||
|
if (size>8) size = 8;
|
||||||
|
|
||||||
|
//STM32
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
//if (!Can) return 0;
|
||||||
|
if (buf) for(uint8_t i=0;i<size; i++) CAN_TX_msg.buf[i]=buf->data[i];
|
||||||
|
CAN_TX_msg.id = msg_id;
|
||||||
|
CAN_TX_msg.flags.extended = 1; // To enable extended ID
|
||||||
|
CAN_TX_msg.len=size;
|
||||||
|
if (res=STMCan.write(CAN_TX_msg)) debugSerial<<("CAN: Wrote ")<<size<<" bytes, id "<<_HEX(msg_id)<<endl;
|
||||||
|
else debugSerial.println("CAN: Write error");
|
||||||
|
return res;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//ESP
|
||||||
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
|
CAN.beginExtendedPacket(msg_id,size);
|
||||||
|
CAN.write(buf->data,size);
|
||||||
|
//for(uint8_t i=0;i<size; i++) CAN.write(buf[i]);
|
||||||
|
if (res=CAN.endPacket()) debugSerial<< ("CAN: Wrote ")<<size << " bytes, id "<<_HEX(msg_id)<<endl;
|
||||||
|
else debugSerial.println("CAN: Write error");
|
||||||
|
return res;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SAM3X8E__)
|
||||||
|
CAN_FRAME CAN_TX_msg;
|
||||||
|
CAN_TX_msg.id = msg_id;
|
||||||
|
CAN_TX_msg.extended = true;
|
||||||
|
CAN_TX_msg.length=size;
|
||||||
|
//outgoing.priority = 4; //0-15 lower is higher priority
|
||||||
|
if (buf) for(uint8_t i=0;i<size; i++) CAN_TX_msg.data.bytes[i]=buf->data[i];
|
||||||
|
res=Can0.sendFrame(CAN_TX_msg);
|
||||||
|
if (res) debugSerial<<("CAN: Wrote ")<<size<<" bytes, id "<<_HEX(msg_id)<<endl;
|
||||||
|
else debugSerial.println("CAN: Write error");
|
||||||
|
return res;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool canDriver::sendStatus(uint16_t itemNum, itemCmd cmd, int subItem)
|
||||||
|
{
|
||||||
|
if (!itemNum) return false;
|
||||||
|
return sendCommand(controllerId, itemNum, cmd, true, subItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::sendCommand(aJsonObject * can, itemCmd cmd, bool status)
|
||||||
|
{
|
||||||
|
if (can && (can->type == aJson_Array))
|
||||||
|
{
|
||||||
|
int subItem=NO_SUBITEM;
|
||||||
|
aJsonObject * dev = aJson.getArrayItem(can,0);
|
||||||
|
aJsonObject * it = aJson.getArrayItem(can,1);
|
||||||
|
aJsonObject * sfx = aJson.getArrayItem(can,2);
|
||||||
|
aJsonObject * subItemObj = aJson.getArrayItem(can,3);
|
||||||
|
if (sfx)
|
||||||
|
switch (sfx->type)
|
||||||
|
{
|
||||||
|
case aJson_Int: cmd.setSuffix(sfx->valueint);
|
||||||
|
break;
|
||||||
|
case aJson_String:
|
||||||
|
int suffix=txt2subItem(sfx->valuestring);
|
||||||
|
if (suffix) cmd.setSuffix(suffix);
|
||||||
|
}
|
||||||
|
if (subItemObj && subItemObj->type==aJson_Int && subItemObj->valueint>=0 && subItemObj->valueint<63) subItem=subItemObj->valueint;
|
||||||
|
|
||||||
|
if (dev && it && dev->type == aJson_Int && it->type == aJson_Int)
|
||||||
|
return sendCommand(dev->valueint, it->valueint, cmd, status,subItem);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool canDriver::sendCommand(uint8_t devID, uint16_t itemID,itemCmd cmd, bool status,int subItemID )
|
||||||
|
{
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
bool res;
|
||||||
|
|
||||||
|
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=status?1:0;
|
||||||
|
id.payloadType=payloadType::itemCommand;
|
||||||
|
id.deviceId=devID;
|
||||||
|
id.itemId=itemID;
|
||||||
|
id.subItemId=subItemID;
|
||||||
|
|
||||||
|
packet.cmd = cmd.cmd;
|
||||||
|
packet.param = cmd.param;
|
||||||
|
|
||||||
|
debugSerial << ((status)?"CAN: send Status":"CAN: send Command");
|
||||||
|
debugSerial<<F(" ->[")<<devID<<":"<<itemID<<"] ";
|
||||||
|
if (subItemID!=NO_SUBITEM) debugSerial<<F("Subitem:")<<subItemID<<" ";
|
||||||
|
cmd.debugOut();
|
||||||
|
|
||||||
|
res=write (id.id,&packet,8);
|
||||||
|
|
||||||
|
//if (res) debugSerial<<F("CAN: sent ok")<<endl;
|
||||||
|
// else debugSerial<<F("CAN: fail")<<endl;
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////// Steream //////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
int canStream::send(uint8_t len, uint16_t _seqNo)
|
||||||
|
{
|
||||||
|
canid_t id;
|
||||||
|
datagram_t packet;
|
||||||
|
bool res;
|
||||||
|
if (!driver) return 0;
|
||||||
|
id.reserve=0;
|
||||||
|
id.status=1;
|
||||||
|
id.payloadType=pType;
|
||||||
|
id.deviceId=devId;
|
||||||
|
id.subjId=_seqNo;
|
||||||
|
|
||||||
|
res=driver->write (id.id, &writeBuffer, len);
|
||||||
|
writePos=0;
|
||||||
|
if (res)
|
||||||
|
{
|
||||||
|
//Await check?
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int canStream::checkState()
|
||||||
|
{
|
||||||
|
bool res = false;
|
||||||
|
if (!driver) return -1;
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case canState::StreamOpenedRead:
|
||||||
|
readPos = 0;
|
||||||
|
res= driver->requestFrame(devId,pType,seqNo); //Requesting frame;
|
||||||
|
if (res)
|
||||||
|
state = canState::FrameRequested;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
state = canState::Error;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (seqNo ==0xFFFF) seqNo =0;
|
||||||
|
//continue
|
||||||
|
|
||||||
|
case canState::FrameRequested:
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
|
||||||
|
uint32_t timer = millis();
|
||||||
|
do {
|
||||||
|
//debugSerial.print(".");
|
||||||
|
yield();
|
||||||
|
|
||||||
|
if ((c=driver->readFrame()>0) && (driver->RXid.deviceId == devId) && (driver ->RXid.payloadType == pType) && driver->RXid.status)
|
||||||
|
{
|
||||||
|
state = canState::FrameReceived;
|
||||||
|
debugSerial<<F("CAN: Payload received ")<< c << "|" <<driver->RXlen<< " "<<driver->RXpacket.payload<<"#"<<driver->RXid.subjId<<endl;
|
||||||
|
seqNo=driver->RXid.subjId;
|
||||||
|
failedCount=0;
|
||||||
|
return driver->RXlen;
|
||||||
|
}
|
||||||
|
|
||||||
|
} while((!isTimeOver(timer,millis(),1000UL)) );
|
||||||
|
|
||||||
|
debugSerial<<F("CAN: RX data awaiting timeout #")<<failedCount<<endl;
|
||||||
|
if (failedCount>=3)
|
||||||
|
{
|
||||||
|
state = canState::Error;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
failedCount++;
|
||||||
|
state = canState::StreamOpenedRead;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::FrameReceived:
|
||||||
|
return driver->RXlen;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::waitingConfirm:
|
||||||
|
if (driver->readFrame()>=0)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
(driver->RXid.deviceId == devId) &&
|
||||||
|
(driver->RXid.payloadType == pType) &&
|
||||||
|
(driver->RXid.status == 0)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
debugSerial<<F("CAN: frame confirmed #")<<driver->RXid.subjId<<endl;
|
||||||
|
if (seqNo == driver->RXid.subjId)
|
||||||
|
{
|
||||||
|
state = canState::StreamOpenedWrite;
|
||||||
|
seqNo++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
state = canState::Error;
|
||||||
|
errorSerial<<F("CAN: wrong seqNum")<<endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return driver->RXlen;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case canState::Idle:
|
||||||
|
return -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Stream methods
|
||||||
|
int canStream::available()
|
||||||
|
{
|
||||||
|
if (!driver) return -1;
|
||||||
|
int avail = checkState();
|
||||||
|
return avail;
|
||||||
|
};
|
||||||
|
|
||||||
|
int canStream::read()
|
||||||
|
{
|
||||||
|
if (!driver) return -1;
|
||||||
|
int avail = checkState();
|
||||||
|
int ch;
|
||||||
|
if (avail>=0)
|
||||||
|
{
|
||||||
|
ch = driver->RXpacket.data[readPos++];
|
||||||
|
if (readPos>=8) state = canState::StreamOpenedRead;
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
int canStream::peek()
|
||||||
|
{
|
||||||
|
if (!driver) return -1;
|
||||||
|
int avail = checkState();
|
||||||
|
int ch;
|
||||||
|
if (avail>=0)
|
||||||
|
{
|
||||||
|
ch = driver->RXpacket.data[readPos];
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
size_t canStream::write(uint8_t c)
|
||||||
|
{
|
||||||
|
//if ((state != canState::StreamOpenedWrite) || (state != canState::waitingConfirm)) return -1;
|
||||||
|
|
||||||
|
uint32_t timer = millis();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
checkState();
|
||||||
|
yield();
|
||||||
|
//debugSerial.print("*");
|
||||||
|
if (isTimeOver(timer,millis(),1000UL))
|
||||||
|
{
|
||||||
|
state = canState::Error;
|
||||||
|
errorSerial<<F("CAN: write timeout")<<endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
while (!availableForWrite() );
|
||||||
|
|
||||||
|
writeBuffer.data[writePos++]=c;
|
||||||
|
if (writePos>=8)
|
||||||
|
{
|
||||||
|
bool res = send(8,seqNo);
|
||||||
|
if (res) state = canState::waitingConfirm;
|
||||||
|
else state = canState::Error;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
return 1; };
|
||||||
|
|
||||||
|
void canStream::flush()
|
||||||
|
{
|
||||||
|
send(writePos,seqNo);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int canStream::availableForWrite()
|
||||||
|
{
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case canState::waitingConfirm: return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
230
lighthub/candriver.h
Normal file
230
lighthub/candriver.h
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
#pragma once
|
||||||
|
#define NO_SUBITEM 63
|
||||||
|
#ifdef CANDRV
|
||||||
|
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
#if !defined(HAL_CAN_MODULE_ENABLED)
|
||||||
|
#define HAL_CAN_MODULE_ENABLED
|
||||||
|
#endif
|
||||||
|
#include <STM32_CAN.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <itemCmd.h>
|
||||||
|
|
||||||
|
#include <Stream.h>
|
||||||
|
#include <aJSON.h>
|
||||||
|
#include <streamlog.h>
|
||||||
|
//#include <config.h> NO!
|
||||||
|
|
||||||
|
typedef uint8_t macAddress[6];
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
uint32_t id;
|
||||||
|
struct
|
||||||
|
{ union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint16_t subItemId:6;
|
||||||
|
uint16_t itemId:10;
|
||||||
|
};
|
||||||
|
uint16_t subjId;
|
||||||
|
};
|
||||||
|
uint8_t deviceId;
|
||||||
|
uint8_t payloadType:4;
|
||||||
|
uint8_t status:1;
|
||||||
|
uint8_t reserve:3; //0
|
||||||
|
|
||||||
|
};
|
||||||
|
} canid_t;
|
||||||
|
|
||||||
|
|
||||||
|
enum payloadType
|
||||||
|
{ unknown=0,
|
||||||
|
itemCommand=1,
|
||||||
|
lookupMAC=2,
|
||||||
|
configFrame=3,
|
||||||
|
OTAFrame=4,
|
||||||
|
auth=5,
|
||||||
|
metric=6,
|
||||||
|
sysCmd=7,
|
||||||
|
rawPinCtrl=8
|
||||||
|
};
|
||||||
|
|
||||||
|
enum metricType
|
||||||
|
{
|
||||||
|
MAC=1,
|
||||||
|
IP=2,
|
||||||
|
NetMask=3,
|
||||||
|
GW=4,
|
||||||
|
DNS=5,
|
||||||
|
UpTime=6,
|
||||||
|
Salt=7
|
||||||
|
};
|
||||||
|
|
||||||
|
enum commandType
|
||||||
|
{
|
||||||
|
reboot=1,
|
||||||
|
get=2,
|
||||||
|
save=3,
|
||||||
|
load=4
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define MAXCANID 0x1FFFFFFF
|
||||||
|
// Request item status: id.status=1;deviceId=[0xFF | deviceId];itemId=x; RTR bit=true
|
||||||
|
// Request on config: id.status=0;deviceId=0;itemId=x payload.mac=mac;crc16=crc_current_config
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
uint8_t data[8];
|
||||||
|
char payload[8];
|
||||||
|
struct {
|
||||||
|
itemCmdStore cmd;
|
||||||
|
itemArgStore param;
|
||||||
|
};
|
||||||
|
struct {
|
||||||
|
macAddress mac;
|
||||||
|
uint16_t currentConfCRC;
|
||||||
|
};
|
||||||
|
struct {
|
||||||
|
uint8_t sysCmd;
|
||||||
|
uint8_t sysCmdData[7];
|
||||||
|
};
|
||||||
|
struct {
|
||||||
|
uint32_t metric1;
|
||||||
|
uint32_t metric2;
|
||||||
|
};
|
||||||
|
} datagram_t;
|
||||||
|
|
||||||
|
|
||||||
|
enum canState
|
||||||
|
{
|
||||||
|
stateUnknown,
|
||||||
|
MACLookup,
|
||||||
|
Idle,
|
||||||
|
StreamOpenedWrite,
|
||||||
|
StreamOpenedRead,
|
||||||
|
FrameRequested,
|
||||||
|
FrameReceived,
|
||||||
|
ReadConfig,
|
||||||
|
ConfigLoaded,
|
||||||
|
waitingConfirm,
|
||||||
|
Error
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
class canDriver
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
canDriver(){ready=false; controllerId=0; responseTimer=0; state=canState::stateUnknown;};
|
||||||
|
uint8_t getMyId();
|
||||||
|
bool sendStatus(uint16_t itemNum, itemCmd cmd, int subItem = NO_SUBITEM);
|
||||||
|
bool sendCommand(uint8_t devID, uint16_t itemID, itemCmd cmd, bool status=false, int subItemID=NO_SUBITEM );
|
||||||
|
bool sendCommand(aJsonObject * can,itemCmd cmd, bool status = false);
|
||||||
|
bool upTime(uint32_t ut);
|
||||||
|
bool salt(uint32_t salt);
|
||||||
|
bool lookupMAC();
|
||||||
|
bool requestFrame(uint8_t devId, payloadType _payloadType, uint16_t seqNo );
|
||||||
|
int readFrame();
|
||||||
|
bool sendRemoteID(macAddress mac);
|
||||||
|
bool begin();
|
||||||
|
void Poll();
|
||||||
|
bool processPacket(canid_t id, datagram_t *packet, uint8_t len, bool rtr=false);
|
||||||
|
bool write(uint32_t msg_id, datagram_t * buf = NULL, uint8_t size=0);
|
||||||
|
uint8_t getControllerID(){return controllerId;};
|
||||||
|
uint8_t getIdByMac(macAddress mac);
|
||||||
|
|
||||||
|
datagram_t RXpacket;
|
||||||
|
canid_t RXid;
|
||||||
|
uint8_t RXlen;
|
||||||
|
|
||||||
|
private:
|
||||||
|
aJsonObject * findConfbyID(uint8_t devId);
|
||||||
|
|
||||||
|
#if defined(ARDUINO_ARCH_STM32)
|
||||||
|
CAN_message_t CAN_RX_msg;
|
||||||
|
CAN_message_t CAN_TX_msg;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SAM3X8E__)
|
||||||
|
//CAN_FRAME CAN_RX_msg;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool ready;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t controllerId;
|
||||||
|
canState state;
|
||||||
|
uint32_t responseTimer;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern aJsonObject * topics;
|
||||||
|
|
||||||
|
class canStream : public Stream
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
canStream(canDriver * _driver) : readPos(0),writePos(0),devId(0), pType(payloadType::unknown),state(canState::stateUnknown),seqNo(0),failedCount(0){driver=_driver; }
|
||||||
|
int open(uint8_t controllerID, payloadType _pType, char _mode)
|
||||||
|
{
|
||||||
|
if (mode) close();
|
||||||
|
devId=controllerID;
|
||||||
|
pType = _pType;
|
||||||
|
mode = _mode;
|
||||||
|
seqNo=0xFFFF;
|
||||||
|
failedCount=0;
|
||||||
|
if (mode == 'w') state=canState::StreamOpenedWrite;
|
||||||
|
else state=canState::StreamOpenedRead;
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
|
int close ()
|
||||||
|
{
|
||||||
|
if ((mode == 'w') && writePos) flush();
|
||||||
|
mode = '\0';
|
||||||
|
state=canState::stateUnknown;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Stream methods
|
||||||
|
virtual int available();
|
||||||
|
virtual int read();
|
||||||
|
virtual int peek();
|
||||||
|
|
||||||
|
virtual void flush();
|
||||||
|
// Print methods
|
||||||
|
virtual size_t write(uint8_t c) ;
|
||||||
|
virtual int availableForWrite();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
int send(uint8_t len, uint16_t _seqNo);
|
||||||
|
int checkState();
|
||||||
|
canDriver * driver;
|
||||||
|
unsigned int readPos;
|
||||||
|
unsigned int writePos;
|
||||||
|
|
||||||
|
datagram_t writeBuffer;
|
||||||
|
|
||||||
|
uint8_t devId;
|
||||||
|
uint16_t seqNo;
|
||||||
|
int8_t failedCount;
|
||||||
|
char mode;
|
||||||
|
payloadType pType;
|
||||||
|
canState state;
|
||||||
|
//bool writeBlocked;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //
|
||||||
@@ -16,7 +16,7 @@ short colorChannel::getChannelAddr(short n)
|
|||||||
return item->getArg(n);
|
return item->getArg(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
int colorChannel::getDefaultStorageType()
|
int colorChannel::getDefaultStorageType()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ int colorChannel::getDefaultStorageType()
|
|||||||
return ST_VOID;
|
return ST_VOID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
int colorChannel::isActive()
|
int colorChannel::isActive()
|
||||||
{
|
{
|
||||||
itemCmd st;
|
itemCmd st;
|
||||||
@@ -44,7 +44,7 @@ return val;
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int colorChannel::Ctrl(itemCmd cmd, char* subItem, bool toExecute)
|
int colorChannel::Ctrl(itemCmd cmd, char* subItem, bool toExecute, bool authorized)
|
||||||
{
|
{
|
||||||
debugSerial<<F("clrCtr: ");
|
debugSerial<<F("clrCtr: ");
|
||||||
cmd.debugOut();
|
cmd.debugOut();
|
||||||
@@ -58,28 +58,28 @@ case S_NOTFOUND:
|
|||||||
// turn on and set
|
// turn on and set
|
||||||
toExecute = true;
|
toExecute = true;
|
||||||
case S_SET:
|
case S_SET:
|
||||||
//case S_ESET:
|
|
||||||
case S_HSV:
|
case S_HSV:
|
||||||
PixelCtrl(cmd, subItem, toExecute);
|
PixelCtrl(cmd, subItem, toExecute, authorized);
|
||||||
return 1;
|
return 1;
|
||||||
case S_CMD:
|
case S_CMD:
|
||||||
//item->setCmd(cmd.getCmd());
|
//item->setCmd(cmd.getCmd());
|
||||||
switch (cmd.getCmd())
|
switch (cmd.getCmd())
|
||||||
{
|
{
|
||||||
case CMD_ON:
|
case CMD_ON:
|
||||||
if (vol=cmd.getPercents()<MIN_VOLUME && vol>=0)
|
vol=cmd.getPercents();
|
||||||
|
if (vol<MIN_VOLUME && vol>=0)
|
||||||
{
|
{
|
||||||
cmd.setPercents(INIT_VOLUME);
|
cmd.setPercents(INIT_VOLUME);
|
||||||
cmd.saveItem(item);
|
cmd.saveItem(item);
|
||||||
item->SendStatus(FLAG_PARAMETERS | FLAG_SEND_DEFFERED);
|
item->SendStatus(FLAG_PARAMETERS | FLAG_SEND_DEFFERED);
|
||||||
};
|
};
|
||||||
PixelCtrl(cmd,subItem, true);
|
PixelCtrl(cmd,subItem, true, authorized);
|
||||||
// item->SendStatus(FLAG_COMMAND | FLAG_PARAMETERS );
|
// item->SendStatus(FLAG_COMMAND | FLAG_PARAMETERS );
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
case CMD_OFF:
|
case CMD_OFF:
|
||||||
cmd.param.asInt32=0;
|
cmd.param.asInt32=0;
|
||||||
PixelCtrl(cmd, subItem, true);
|
PixelCtrl(cmd, subItem, true,authorized);
|
||||||
// item->SendStatus(FLAG_COMMAND);
|
// item->SendStatus(FLAG_COMMAND);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ public:
|
|||||||
if (iaddr<0) iaddr=-iaddr;
|
if (iaddr<0) iaddr=-iaddr;
|
||||||
numArgs = item->getArgCount(); // and how many addresses is configured
|
numArgs = item->getArgCount(); // and how many addresses is configured
|
||||||
};
|
};
|
||||||
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) override;
|
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true, bool authorized=false) override;
|
||||||
int getDefaultStorageType()override;
|
//int getDefaultStorageType()override;
|
||||||
virtual int PixelCtrl(itemCmd cmd, char* subItem=NULL, bool show=true ) =0;
|
virtual int PixelCtrl(itemCmd cmd, char* subItem=NULL, bool show=true, bool authorized = false ) =0;
|
||||||
short getChannelAddr(short n =0);
|
short getChannelAddr(short n =0);
|
||||||
// int isActive() override;
|
// int isActive() override;
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ bool systemConfig::isValidSysConf()
|
|||||||
bool isMacValid = false;
|
bool isMacValid = false;
|
||||||
for (short i = 0; i < 6; i++) {
|
for (short i = 0; i < 6; i++) {
|
||||||
mac[i] = stream->read();
|
mac[i] = stream->read();
|
||||||
if (mac[i] != 0 && mac[i] != 0xff) isMacValid = true;
|
if ((mac[i] != 0) && (mac[i] != 0xff)) isMacValid = true;
|
||||||
}
|
}
|
||||||
stream->close();
|
stream->close();
|
||||||
return isMacValid;
|
return isMacValid;
|
||||||
@@ -53,7 +53,7 @@ bool systemConfig::isValidSysConf()
|
|||||||
bool systemConfig::setMAC(macAddress& _mac)
|
bool systemConfig::setMAC(macAddress& _mac)
|
||||||
{
|
{
|
||||||
if (!stream || !isValidSysConf()) return false;
|
if (!stream || !isValidSysConf()) return false;
|
||||||
openStream('a');
|
openStream('r'); //was 'a'
|
||||||
stream->seek(offsetof(systemConfigData,mac));
|
stream->seek(offsetof(systemConfigData,mac));
|
||||||
stream->write ((const uint8_t *)&_mac,sizeof(_mac));
|
stream->write ((const uint8_t *)&_mac,sizeof(_mac));
|
||||||
memcpy(mac, _mac, sizeof(mac));
|
memcpy(mac, _mac, sizeof(mac));
|
||||||
|
|||||||
165
lighthub/dmx.cpp
165
lighthub/dmx.cpp
@@ -47,6 +47,7 @@ volatile uint32_t checkTimestamp=0L;
|
|||||||
#if defined(_dmxin)
|
#if defined(_dmxin)
|
||||||
volatile uint32_t D_State=0;
|
volatile uint32_t D_State=0;
|
||||||
volatile unsigned long D_checkT=0;
|
volatile unsigned long D_checkT=0;
|
||||||
|
uint8_t DMXINChannels=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _artnet
|
#ifdef _artnet
|
||||||
@@ -61,6 +62,61 @@ extern aJsonObject *items;
|
|||||||
extern aJsonObject *dmxArr;
|
extern aJsonObject *dmxArr;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
itemCmd rgb2hsv(itemCmd in)
|
||||||
|
{
|
||||||
|
itemCmd out;
|
||||||
|
out.setArgType(ST_HSV255);
|
||||||
|
|
||||||
|
double min, max, delta;
|
||||||
|
|
||||||
|
double inr=in.param.r/255;
|
||||||
|
double ing=in.param.g/255;
|
||||||
|
double inb=in.param.b/255;
|
||||||
|
double inw=in.param.w/255;
|
||||||
|
|
||||||
|
min = inr < ing ? inr : ing;
|
||||||
|
min = min < inb ? min : inb;
|
||||||
|
|
||||||
|
max = inr > ing ? inr : ing;
|
||||||
|
max = max > inb ? max : inb;
|
||||||
|
max = max > inw ? max : inw;
|
||||||
|
|
||||||
|
out.param.v = max*255; // v
|
||||||
|
delta = max - min;
|
||||||
|
if (delta < 0.00001)
|
||||||
|
{
|
||||||
|
out.param.s = 0;
|
||||||
|
out.param.h = 0; // undefined, maybe nan?
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
if( max > 0.0 ) { // NOTE: if Max is == 0, this divide would cause a crash
|
||||||
|
out.param.s = (delta / max)*100; // s
|
||||||
|
} else {
|
||||||
|
// if max is 0, then r = g = b = 0
|
||||||
|
// s = 0, h is undefined
|
||||||
|
out.param.s = 0;
|
||||||
|
out.param.h = 0; // its now undefined
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
double outh;
|
||||||
|
if( inr >= max ) // > is bogus, just keeps compilor happy
|
||||||
|
outh = ( ing - inb ) / delta; // between yellow & magenta
|
||||||
|
else
|
||||||
|
if( ing >= max )
|
||||||
|
outh = 2.0 + ( inb - inr ) / delta; // between cyan & yellow
|
||||||
|
else
|
||||||
|
outh = 4.0 + ( inr - ing ) / delta; // between magenta & cyan
|
||||||
|
|
||||||
|
outh *= 60.0; // degrees
|
||||||
|
|
||||||
|
if( outh < 0.0 )
|
||||||
|
outh += 360.0;
|
||||||
|
out.param.h=outh;
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int itemCtrl2(char* name,int r,int g, int b, int w)
|
int itemCtrl2(char* name,int r,int g, int b, int w)
|
||||||
{
|
{
|
||||||
if (!items) return 0;
|
if (!items) return 0;
|
||||||
@@ -68,7 +124,6 @@ int itemCtrl2(char* name,int r,int g, int b, int w)
|
|||||||
|
|
||||||
if (itemArr && (itemArr->type==aJson_Array))
|
if (itemArr && (itemArr->type==aJson_Array))
|
||||||
{
|
{
|
||||||
|
|
||||||
short itemtype = aJson.getArrayItem(itemArr,0)->valueint;
|
short itemtype = aJson.getArrayItem(itemArr,0)->valueint;
|
||||||
short itemaddr = aJson.getArrayItem(itemArr,1)->valueint;
|
short itemaddr = aJson.getArrayItem(itemArr,1)->valueint;
|
||||||
switch (itemtype){
|
switch (itemtype){
|
||||||
@@ -84,7 +139,6 @@ int itemCtrl2(char* name,int r,int g, int b, int w)
|
|||||||
|
|
||||||
case CH_RGB: // RGB
|
case CH_RGB: // RGB
|
||||||
{
|
{
|
||||||
|
|
||||||
DmxWrite(itemaddr, r);
|
DmxWrite(itemaddr, r);
|
||||||
DmxWrite(itemaddr+1, g);
|
DmxWrite(itemaddr+1, g);
|
||||||
DmxWrite(itemaddr+2, b);
|
DmxWrite(itemaddr+2, b);
|
||||||
@@ -96,7 +150,7 @@ int itemCtrl2(char* name,int r,int g, int b, int w)
|
|||||||
if (groupArr && (groupArr->type==aJson_Array))
|
if (groupArr && (groupArr->type==aJson_Array))
|
||||||
{ aJsonObject *i =groupArr->child;
|
{ aJsonObject *i =groupArr->child;
|
||||||
while (i)
|
while (i)
|
||||||
{ //Serial.println(i->valuestring);
|
{
|
||||||
if (i->type == aJson_String) itemCtrl2(i->valuestring,r,g,b,w);
|
if (i->type == aJson_String) itemCtrl2(i->valuestring,r,g,b,w);
|
||||||
i=i->next;}
|
i=i->next;}
|
||||||
}
|
}
|
||||||
@@ -119,9 +173,34 @@ void DMXImmediateUpdate(short tch,short r, short g, short b, short w) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DMXSemiImmediateUpdate(short tch,short trh, int val)
|
void DMXSemiImmediateUpdate(short tch,short r, short g, short b, short w)
|
||||||
{
|
{
|
||||||
//Here any code for passthrow between DMX IN and DMX OUT in idle state
|
//Here any code for passthrow between DMX IN and DMX OUT in idle state
|
||||||
|
if (dmxArr && (dmxArr->type==aJson_Array))
|
||||||
|
|
||||||
|
{
|
||||||
|
aJsonObject *DMXch = aJson.getArrayItem(dmxArr,tch);
|
||||||
|
char* itemname = NULL;
|
||||||
|
if (DMXch->type == aJson_String) itemname=DMXch->valuestring;
|
||||||
|
if (itemname)
|
||||||
|
{
|
||||||
|
Item it(itemname);
|
||||||
|
if (!r && !g && !b && !w) it.Ctrl(itemCmd().Cmd(CMD_OFF).setSuffix(S_CMD));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
CRGB rgb;
|
||||||
|
rgb.r = r;
|
||||||
|
rgb.g = g;
|
||||||
|
rgb.b = b;
|
||||||
|
CHSV hsv = rgb2hsv_approximate(rgb);
|
||||||
|
it.Ctrl(itemCmd().HSV255(hsv.h,hsv.s,hsv.v).setSuffix(S_SET)); */
|
||||||
|
it.Ctrl(itemCmd().RGBW(r,g,b,w).setSuffix(S_SET));
|
||||||
|
//it.Ctrl(rgb2hsv(itemCmd().RGBW(r,g,b,w)).setSuffix(S_SET));
|
||||||
|
it.Ctrl(itemCmd().Cmd(CMD_ON).setSuffix(S_CMD));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DMXput(void)
|
void DMXput(void)
|
||||||
@@ -132,6 +211,7 @@ for (short tch=0; tch<=3 ; tch++)
|
|||||||
short base = tch*4;
|
short base = tch*4;
|
||||||
DMXImmediateUpdate(tch,DMXin[base],DMXin[base+1],DMXin[base+2],DMXin[base+3]);
|
DMXImmediateUpdate(tch,DMXin[base],DMXin[base+1],DMXin[base+2],DMXin[base+3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern volatile uint8_t timerHandlerBusy;
|
extern volatile uint8_t timerHandlerBusy;
|
||||||
@@ -140,81 +220,62 @@ extern volatile uint8_t timerHandlerBusy;
|
|||||||
volatile int DMXinDoublecheck=0;
|
volatile int DMXinDoublecheck=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// INVOKED BY INTERRUPTS - MUST BE SAFE CODE
|
||||||
void DMXUpdate(void)
|
void DMXUpdate(void)
|
||||||
{
|
{
|
||||||
#if defined(_dmxin)
|
#if defined(_dmxin)
|
||||||
int t;
|
|
||||||
if(!DMXin) return;
|
if(!DMXin) return;
|
||||||
|
|
||||||
#if defined(__SAM3X8E__)
|
#if defined(__SAM3X8E__)
|
||||||
if (dmxin.getRxLength()<16) return;
|
if (dmxin.getRxLength()<DMXINChannels) return;
|
||||||
#endif
|
#endif
|
||||||
for (short tch=0; tch<=3 ; tch++)
|
|
||||||
|
uint8_t RGBWChannels=DMXINChannels >> 2;
|
||||||
|
for (short tch=0; tch<RGBWChannels ; tch++)
|
||||||
{
|
{
|
||||||
short base = tch*4;
|
short base = tch*4;
|
||||||
bool updated = 0;
|
bool updated = false;
|
||||||
bool confirmed = 0;
|
int t;
|
||||||
|
|
||||||
for (short trh=0; trh<4 ; trh++)
|
for (short trh=0; trh<4 ; trh++)
|
||||||
if (((t=dmxin.read(base+trh+1)) != DMXin[base+trh]))
|
if ((t=dmxin.read(base+trh+1)) != DMXin[base+trh])
|
||||||
{
|
|
||||||
updated=1;
|
|
||||||
if (DMXinDoublecheck>2)
|
|
||||||
{
|
{
|
||||||
D_State |= (1<<tch);
|
D_State |= (1<<tch);
|
||||||
|
updated=1;
|
||||||
DMXin[base+trh]=t;
|
DMXin[base+trh]=t;
|
||||||
confirmed = 1;
|
|
||||||
}
|
}
|
||||||
}
|
if (updated)
|
||||||
|
|
||||||
if (updated) DMXinDoublecheck++; else DMXinDoublecheck=0;
|
|
||||||
|
|
||||||
|
|
||||||
if (confirmed)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
DMXImmediateUpdate(tch,DMXin[base],DMXin[base+1],DMXin[base+2],DMXin[base+3]);
|
DMXImmediateUpdate(tch,DMXin[base],DMXin[base+1],DMXin[base+2],DMXin[base+3]);
|
||||||
//for (int i=1; i<17; i++) {debugSerial.print(dmxin.read(i));debugSerial.print("-");};debugSerial.print("|");
|
|
||||||
D_checkT=millisNZ();
|
D_checkT=millisNZ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Serial.print(D_State,BIN);Serial.println();
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// INVOKED in safe loop
|
||||||
void DMXCheck(void)
|
void DMXCheck(void)
|
||||||
{
|
{
|
||||||
// CHSV hsv;
|
|
||||||
// CRGB rgb;
|
|
||||||
DMXOUT_propagate();
|
DMXOUT_propagate();
|
||||||
#if defined(_dmxin)
|
#if defined(_dmxin)
|
||||||
|
if ( (!D_checkT) || (!isTimeOver(D_checkT,millis(),D_CHECKT))) return;
|
||||||
short t,tch;
|
D_checkT=0;
|
||||||
//Here code for semi-immediate update
|
uint8_t RGBWChannels=DMXINChannels >> 2;
|
||||||
for (t=1,tch=0; t<=8 ; t<<=1,tch++)
|
for (short rgbwChan=0; rgbwChan < RGBWChannels; rgbwChan++)
|
||||||
if (D_State & t)
|
|
||||||
{
|
{
|
||||||
// Serial.print(D_State,BIN);Serial.print(":");
|
short base = rgbwChan*4;
|
||||||
D_State &= ~t;
|
short bitMask = 1 << rgbwChan;
|
||||||
for (short trh=0; trh<4 ; trh++)
|
if (D_State & bitMask)
|
||||||
DMXSemiImmediateUpdate(tch,trh,DMXin[tch*4+trh]);
|
{
|
||||||
|
D_State &= ~bitMask;
|
||||||
|
DMXSemiImmediateUpdate(rgbwChan,DMXin[base],DMXin[base+1],DMXin[base+2],DMXin[base+3]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//if ((millis()<D_checkT) || (D_checkT==0)) return;
|
//#ifdef _dmxout
|
||||||
if ( (!D_checkT) || (!isTimeOver(D_checkT,millis(),D_CHECKT))) return;
|
//for (int i=1; i<17; i++) {debugSerial.print(dmxin.read(i));debugSerial.print(";");}
|
||||||
D_checkT=0;
|
//debugSerial.println();
|
||||||
|
//#endif
|
||||||
// Here code for network update
|
|
||||||
//int ch = 0;
|
|
||||||
|
|
||||||
DMXput();
|
|
||||||
|
|
||||||
#ifdef _dmxout
|
|
||||||
for (int i=1; i<17; i++) {debugSerial.print(dmxin.read(i));debugSerial.print(";");}
|
|
||||||
debugSerial.println();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -238,7 +299,9 @@ void DMXinSetup(int channels)
|
|||||||
//DmxSimple.maxChannel(channels);
|
//DmxSimple.maxChannel(channels);
|
||||||
|
|
||||||
#if defined(_dmxin)
|
#if defined(_dmxin)
|
||||||
|
if (channels>(32*4)) channels = 32*4;
|
||||||
DMXin = new uint8_t [channels];
|
DMXin = new uint8_t [channels];
|
||||||
|
DMXINChannels=channels;
|
||||||
#if defined(ARDUINO_ARCH_AVR)
|
#if defined(ARDUINO_ARCH_AVR)
|
||||||
DMXSerial.init(DMXReceiver,0,channels);
|
DMXSerial.init(DMXReceiver,0,channels);
|
||||||
if (DMXSerial.getBuffer()) {debugSerial.print(F("Init in ch:"));debugSerial.println(channels);} else debugSerial.println(F("DMXin Buffer alloc err"));
|
if (DMXSerial.getBuffer()) {debugSerial.print(F("Init in ch:"));debugSerial.println(channels);} else debugSerial.println(F("DMXin Buffer alloc err"));
|
||||||
|
|||||||
@@ -23,30 +23,13 @@
|
|||||||
|
|
||||||
#if defined(__SAM3X8E__)
|
#if defined(__SAM3X8E__)
|
||||||
#include <DueFlashStorage.h>
|
#include <DueFlashStorage.h>
|
||||||
extern DueFlashStorage EEPROM;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NRF5
|
|
||||||
#include <NRFFlashStorage.h> //STUB
|
|
||||||
extern NRFFlashStorage EEPROM;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//#ifdef ARDUINO_ARCH_STM32
|
|
||||||
//#include <NRFFlashStorage.h> //STUB
|
|
||||||
//extern NRFFlashStorage EEPROM;
|
|
||||||
|
|
||||||
// static char samBuffer[64];
|
|
||||||
// short samBufferPos = 0;
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__SAM3X8E__)
|
|
||||||
DueFlashStorage EEPROM;
|
DueFlashStorage EEPROM;
|
||||||
static char samBuffer[64];
|
static char samBuffer[64];
|
||||||
short samBufferPos = 0;
|
short samBufferPos = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NRF5
|
#ifdef NRF5
|
||||||
|
#include <NRFFlashStorage.h> //STUB
|
||||||
NRFFlashStorage EEPROM;
|
NRFFlashStorage EEPROM;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -201,7 +184,9 @@ NRFFlashStorage EEPROM;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
pos=min(_pos, streamSize);
|
pos=min(_pos, streamSize);
|
||||||
//debugSerial<<F("Seek:")<<pos<<endl;
|
//Serial.print("StartPos=");Serial.println(startPos);
|
||||||
|
//Serial.print("Pos=");Serial.println(pos);
|
||||||
|
//Serial.print("streamSize=");Serial.println(streamSize);
|
||||||
return pos;
|
return pos;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ unsigned int startPos;
|
|||||||
char openmode ;
|
char openmode ;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
flashStream():seekableStream(MAX_STREAM_SIZE){openmode = '\0';};
|
flashStream():seekableStream(MAX_STREAM_SIZE),pos(0),startPos(0),openmode('\0'){};
|
||||||
void setSize(unsigned int _size);
|
void setSize(unsigned int _size);
|
||||||
int open(short fileNum, char mode='\0') ;
|
int open(short fileNum, char mode='\0') ;
|
||||||
virtual int open(String _filename, char mode='\0') override;
|
virtual int open(String _filename, char mode='\0') override;
|
||||||
|
|||||||
@@ -21,7 +21,9 @@ e-mail anklimov@gmail.com
|
|||||||
#include "inputs.h"
|
#include "inputs.h"
|
||||||
#include "item.h"
|
#include "item.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#if not defined (NOIP)
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
|
#endif
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "itemCmd.h"
|
#include "itemCmd.h"
|
||||||
|
|
||||||
@@ -33,12 +35,26 @@ e-mail anklimov@gmail.com
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CANDRV
|
||||||
|
#include <candriver.h>
|
||||||
|
extern canDriver LHCAN;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MCP23017
|
#ifdef MCP23017
|
||||||
#include "Adafruit_MCP23X17.h"
|
#include "Adafruit_MCP23X17.h"
|
||||||
Adafruit_MCP23X17 mcp;
|
Adafruit_MCP23X17 mcp;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ULTRASONIC
|
||||||
|
#define US_TRIG PA_14 //pin49
|
||||||
|
#define US_ECHO PA_15 //pin50
|
||||||
|
#include "Ultrasonic.h"
|
||||||
|
Ultrasonic ultrasonic(US_TRIG, US_ECHO);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if not defined (NOIP)
|
||||||
extern PubSubClient mqttClient;
|
extern PubSubClient mqttClient;
|
||||||
|
#endif
|
||||||
extern aJsonObject *root;
|
extern aJsonObject *root;
|
||||||
extern int8_t ethernetIdleCount;
|
extern int8_t ethernetIdleCount;
|
||||||
extern int8_t configLocked;
|
extern int8_t configLocked;
|
||||||
@@ -99,6 +115,7 @@ void Input::Parse(aJsonObject * configObj)
|
|||||||
store = NULL;
|
store = NULL;
|
||||||
inType = 0;
|
inType = 0;
|
||||||
pin = 0;
|
pin = 0;
|
||||||
|
pin2 =0;
|
||||||
|
|
||||||
if (!inputObj || !root) return;
|
if (!inputObj || !root) return;
|
||||||
if (!configObj) configObj = inputObj;
|
if (!configObj) configObj = inputObj;
|
||||||
@@ -110,10 +127,25 @@ void Input::Parse(aJsonObject * configObj)
|
|||||||
if (itemBuffer) inType = static_cast<uint8_t>(itemBuffer->valueint);
|
if (itemBuffer) inType = static_cast<uint8_t>(itemBuffer->valueint);
|
||||||
|
|
||||||
itemBuffer = aJson.getObjectItem(configObj, "#");
|
itemBuffer = aJson.getObjectItem(configObj, "#");
|
||||||
if (itemBuffer) pin = static_cast<uint8_t>(itemBuffer->valueint);
|
if (itemBuffer)
|
||||||
else pin = static_cast<uint8_t>(atoi(configObj->name));
|
switch (itemBuffer->type)
|
||||||
|
{
|
||||||
|
case aJson_Int:
|
||||||
|
pin = static_cast<uint8_t>(itemBuffer->valueint);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case aJson_Array:
|
||||||
|
if ((itemBuffer->child) && (itemBuffer->child->type == aJson_Int))
|
||||||
|
{
|
||||||
|
pin = static_cast<uint8_t>(itemBuffer->child->valueint);
|
||||||
|
if ((itemBuffer->child->child) && (itemBuffer->child->child->type == aJson_Int))
|
||||||
|
pin = static_cast<uint8_t>(itemBuffer->child->child->valueint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} //switch
|
||||||
|
else pin = static_cast<uint8_t>(atoi(configObj->name));
|
||||||
|
|
||||||
|
}
|
||||||
// Persistant storage
|
// Persistant storage
|
||||||
itemBuffer = aJson.getObjectItem(inputObj, "@S");
|
itemBuffer = aJson.getObjectItem(inputObj, "@S");
|
||||||
if (!itemBuffer) {
|
if (!itemBuffer) {
|
||||||
@@ -127,8 +159,10 @@ void Input::Parse(aJsonObject * configObj)
|
|||||||
|
|
||||||
void cleanStore(aJsonObject * input)
|
void cleanStore(aJsonObject * input)
|
||||||
{
|
{
|
||||||
if (input->type == aJson_Object) {
|
if (input && (input->type == aJson_Object)) {
|
||||||
// Check for nested inputs
|
// Check for nested inputs
|
||||||
|
Input in(input);
|
||||||
|
in.store->aslong = 0;
|
||||||
aJsonObject * inputArray = aJson.getObjectItem(input, "act");
|
aJsonObject * inputArray = aJson.getObjectItem(input, "act");
|
||||||
if (inputArray && (inputArray->type == aJson_Array))
|
if (inputArray && (inputArray->type == aJson_Array))
|
||||||
{
|
{
|
||||||
@@ -145,8 +179,8 @@ if (input->type == aJson_Object) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Input in(input);
|
// Input in(input);
|
||||||
in.Poll(CHECK_INPUT);
|
// in.store->aslong = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -258,6 +292,14 @@ switch (cause) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CHECK_ULTRASONIC:
|
||||||
|
switch (inType)
|
||||||
|
{
|
||||||
|
case IN_ULTRASONIC:
|
||||||
|
analogPoll(cause);
|
||||||
|
contactPoll(cause);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CHECK_SENSOR: //Slow polling
|
case CHECK_SENSOR: //Slow polling
|
||||||
switch (inType)
|
switch (inType)
|
||||||
{
|
{
|
||||||
@@ -519,12 +561,13 @@ debugSerial << F("IN:") << pin << F(" DHT22 type. T=") << temp << F("°C H=") <<
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO Polling via timed interrupt with CHECK_INTERRUPT cause
|
// TODO Polling via timed interrupt with CHECK_INTERRUPT cause
|
||||||
bool Input::changeState(uint8_t newState, short cause)
|
bool Input::
|
||||||
|
changeState(uint8_t newState, short cause)
|
||||||
{
|
{
|
||||||
if (!inputObj || !store) return false;
|
if (!inputObj || !store) return false;
|
||||||
|
|
||||||
if (newState == IS_REQSTATE)
|
if (newState == IS_REQSTATE)
|
||||||
if (store->delayedState && cause != CHECK_INTERRUPT)
|
if (store->delayedState && (cause != CHECK_INTERRUPT))
|
||||||
{
|
{
|
||||||
// Requested delayed change State and safe moment
|
// Requested delayed change State and safe moment
|
||||||
newState=store->reqState; //Retrieve requested state
|
newState=store->reqState; //Retrieve requested state
|
||||||
@@ -622,6 +665,7 @@ if (newState!=store->state && cause!=CHECK_INTERRUPT) debugSerial<<F("#")<<pin<<
|
|||||||
|
|
||||||
aJsonObject *defaultItem = aJson.getObjectItem(inputObj, "item");
|
aJsonObject *defaultItem = aJson.getObjectItem(inputObj, "item");
|
||||||
aJsonObject *defaultEmit = aJson.getObjectItem(inputObj, "emit");
|
aJsonObject *defaultEmit = aJson.getObjectItem(inputObj, "emit");
|
||||||
|
aJsonObject *defaultCan = aJson.getObjectItem(inputObj, "can");
|
||||||
|
|
||||||
if (!defaultEmit && !defaultItem) defCmd.Cmd(CMD_VOID);
|
if (!defaultEmit && !defaultItem) defCmd.Cmd(CMD_VOID);
|
||||||
|
|
||||||
@@ -637,7 +681,7 @@ if (newState!=store->state && cause!=CHECK_INTERRUPT) debugSerial<<F("#")<<pin<<
|
|||||||
{
|
{
|
||||||
store->state=newState;
|
store->state=newState;
|
||||||
store->delayedState=false;
|
store->delayedState=false;
|
||||||
executeCommand(cmd,toggle,defCmd,defaultItem,defaultEmit);
|
executeCommand(cmd,toggle,defCmd,defaultItem,defaultEmit,defaultCan);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -656,8 +700,11 @@ if (newState!=store->state && cause!=CHECK_INTERRUPT) debugSerial<<F("#")<<pin<<
|
|||||||
static volatile uint8_t contactPollBusy = 0;
|
static volatile uint8_t contactPollBusy = 0;
|
||||||
|
|
||||||
void Input::contactPoll(short cause) {
|
void Input::contactPoll(short cause) {
|
||||||
boolean currentInputState;
|
bool currentInputState;
|
||||||
|
|
||||||
if (!store /*|| contactPollBusy*/) return;
|
if (!store /*|| contactPollBusy*/) return;
|
||||||
|
if ((inType == IN_ULTRASONIC) && (cause!=CHECK_ULTRASONIC)) return;
|
||||||
|
|
||||||
contactPollBusy++;
|
contactPollBusy++;
|
||||||
|
|
||||||
changeState(IS_REQSTATE,cause); //Check for postponed states transitions
|
changeState(IS_REQSTATE,cause); //Check for postponed states transitions
|
||||||
@@ -674,9 +721,9 @@ if (inType & IN_I2C)
|
|||||||
currentInputState = (inCache.I2CReadBit(IN_I2C,0,pin) == inputOnLevel);
|
currentInputState = (inCache.I2CReadBit(IN_I2C,0,pin) == inputOnLevel);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (isAnalogPin(pin) && (mapObj=aJson.getObjectItem(inputObj, "map")) && mapObj->type == aJson_Array)
|
if ((isAnalogPin(pin) || (inType == IN_ULTRASONIC)) && (mapObj=aJson.getObjectItem(inputObj, "map")) && mapObj->type == aJson_Array)
|
||||||
{
|
{
|
||||||
int value = inCache.analogReadCached(pin);
|
int value = inCache.analogReadCached(pin,pin2,inType);
|
||||||
if (value >= aJson.getArrayItem(mapObj, 0)->valueint && value <= aJson.getArrayItem(mapObj, 1)->valueint)
|
if (value >= aJson.getArrayItem(mapObj, 0)->valueint && value <= aJson.getArrayItem(mapObj, 1)->valueint)
|
||||||
currentInputState = true;
|
currentInputState = true;
|
||||||
else currentInputState = false;
|
else currentInputState = false;
|
||||||
@@ -886,7 +933,7 @@ void Input::analogPoll(short cause) {
|
|||||||
|
|
||||||
pinMode(pin, inputPinMode);
|
pinMode(pin, inputPinMode);
|
||||||
*/
|
*/
|
||||||
inputVal = inCache.analogReadCached(pin);
|
inputVal = inCache.analogReadCached(pin,pin2,inType);
|
||||||
// Mapping
|
// Mapping
|
||||||
if (inputMap && inputMap->type == aJson_Array)
|
if (inputMap && inputMap->type == aJson_Array)
|
||||||
{
|
{
|
||||||
@@ -950,7 +997,8 @@ void Input::onContactChanged(int newValue) {
|
|||||||
|
|
||||||
aJsonObject *item = aJson.getObjectItem(inputObj, "item");
|
aJsonObject *item = aJson.getObjectItem(inputObj, "item");
|
||||||
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
||||||
if (!item && !emit) return;
|
aJsonObject *can = aJson.getObjectItem(inputObj, "can");
|
||||||
|
if (!item && !emit && !can) return;
|
||||||
aJsonObject *scmd = aJson.getObjectItem(inputObj, "scmd");
|
aJsonObject *scmd = aJson.getObjectItem(inputObj, "scmd");
|
||||||
aJsonObject *rcmd = aJson.getObjectItem(inputObj, "rcmd");
|
aJsonObject *rcmd = aJson.getObjectItem(inputObj, "rcmd");
|
||||||
debugSerial << F("LEGACY IN:") << (pin) << F("=") << newValue << endl;
|
debugSerial << F("LEGACY IN:") << (pin) << F("=") << newValue << endl;
|
||||||
@@ -965,6 +1013,7 @@ void Input::onContactChanged(int newValue) {
|
|||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if not defined (NOIP)
|
||||||
char addrstr[MQTT_TOPIC_LENGTH];
|
char addrstr[MQTT_TOPIC_LENGTH];
|
||||||
strncpy(addrstr,emit->valuestring,sizeof(addrstr));
|
strncpy(addrstr,emit->valuestring,sizeof(addrstr));
|
||||||
if (mqttClient.connected() && !ethernetIdleCount)
|
if (mqttClient.connected() && !ethernetIdleCount)
|
||||||
@@ -979,6 +1028,7 @@ if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestri
|
|||||||
else if (strlen(rcmd->valuestring))mqttClient.publish(addrstr, rcmd->valuestring, true);
|
else if (strlen(rcmd->valuestring))mqttClient.publish(addrstr, rcmd->valuestring, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif //NOIP
|
||||||
}
|
}
|
||||||
} // emit
|
} // emit
|
||||||
if (item && item->type == aJson_String) {
|
if (item && item->type == aJson_String) {
|
||||||
@@ -996,6 +1046,22 @@ if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestri
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CANDRV
|
||||||
|
|
||||||
|
if (can)
|
||||||
|
{
|
||||||
|
if (newValue) { //send set command
|
||||||
|
if (!scmd || scmd->type != aJson_String) LHCAN.sendCommand(can,itemCmd(ST_VOID,CMD_ON));
|
||||||
|
else if (strlen(scmd->valuestring)) LHCAN.sendCommand(can,itemCmd(scmd->valuestring));
|
||||||
|
|
||||||
|
} else { //send reset command
|
||||||
|
if (!rcmd || rcmd->type != aJson_String) LHCAN.sendCommand(can,itemCmd(ST_VOID,CMD_OFF));
|
||||||
|
else if (strlen(rcmd->valuestring)) LHCAN.sendCommand(can,itemCmd(rcmd->valuestring));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1009,8 +1075,7 @@ void Input::onAnalogChanged(itemCmd newValue) {
|
|||||||
// Legacy
|
// Legacy
|
||||||
aJsonObject *item = aJson.getObjectItem(inputObj, "item");
|
aJsonObject *item = aJson.getObjectItem(inputObj, "item");
|
||||||
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
||||||
|
#if not defined (NOIP)
|
||||||
|
|
||||||
if (emit && emit->type == aJson_String) {
|
if (emit && emit->type == aJson_String) {
|
||||||
|
|
||||||
//#ifdef WITH_DOMOTICZ
|
//#ifdef WITH_DOMOTICZ
|
||||||
@@ -1028,11 +1093,18 @@ void Input::onAnalogChanged(itemCmd newValue) {
|
|||||||
if (mqttClient.connected() && !ethernetIdleCount)
|
if (mqttClient.connected() && !ethernetIdleCount)
|
||||||
mqttClient.publish(addrstr, strVal, true);
|
mqttClient.publish(addrstr, strVal, true);
|
||||||
}
|
}
|
||||||
|
#endif //NOIP
|
||||||
if (item && item->type == aJson_String) {
|
if (item && item->type == aJson_String) {
|
||||||
Item it(item->valuestring);
|
Item it(item->valuestring);
|
||||||
if (it.isValid()) it.Ctrl(newValue);
|
if (it.isValid()) it.Ctrl(newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CANDRV
|
||||||
|
aJsonObject *can = aJson.getObjectItem(inputObj, "can");
|
||||||
|
if (can) LHCAN.sendCommand(can, newValue);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1072,10 +1144,21 @@ readCache::readCache()
|
|||||||
{
|
{
|
||||||
addr=0;
|
addr=0;
|
||||||
type=0;
|
type=0;
|
||||||
|
cached_data = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t readCache::analogReadCached (uint8_t _pin)
|
uint16_t readCache::analogReadCached (uint8_t _pin, uint8_t trigPin, uint8_t _type )
|
||||||
{
|
{
|
||||||
|
#ifdef ULTRASONIC
|
||||||
|
if (_type == IN_ULTRASONIC)
|
||||||
|
{
|
||||||
|
if ((_pin==addr) && (IN_ULTRASONIC == type)) return cached_data;
|
||||||
|
type = IN_ULTRASONIC;
|
||||||
|
cached_data=ultrasonic.read();
|
||||||
|
//debugSerial<<F("LEN: ")<<cached_data<<endl;
|
||||||
|
return cached_data;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if ((_pin==addr) && (IN_ANALOG==type)) return cached_data;
|
if ((_pin==addr) && (IN_ANALOG==type)) return cached_data;
|
||||||
addr = _pin;
|
addr = _pin;
|
||||||
type = IN_ANALOG;
|
type = IN_ANALOG;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ e-mail anklimov@gmail.com
|
|||||||
#define IN_DHT22 4
|
#define IN_DHT22 4
|
||||||
#define IN_CCS811 5
|
#define IN_CCS811 5
|
||||||
#define IN_HDC1080 6
|
#define IN_HDC1080 6
|
||||||
|
#define IN_ULTRASONIC 7
|
||||||
|
|
||||||
#define IN_COUNTER 8
|
#define IN_COUNTER 8
|
||||||
#define IN_UPTIME 16
|
#define IN_UPTIME 16
|
||||||
@@ -62,6 +63,7 @@ e-mail anklimov@gmail.com
|
|||||||
#define CHECK_SENSOR 1
|
#define CHECK_SENSOR 1
|
||||||
#define CHECK_INPUT 2
|
#define CHECK_INPUT 2
|
||||||
#define CHECK_INTERRUPT 3
|
#define CHECK_INTERRUPT 3
|
||||||
|
#define CHECK_ULTRASONIC 4
|
||||||
|
|
||||||
|
|
||||||
#define T_LONG 1000
|
#define T_LONG 1000
|
||||||
@@ -105,7 +107,7 @@ extern aJsonObject *inputs;
|
|||||||
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
long int aslong;
|
uint32_t aslong;
|
||||||
uint32_t timestamp;
|
uint32_t timestamp;
|
||||||
// Analog input structure
|
// Analog input structure
|
||||||
struct {
|
struct {
|
||||||
@@ -134,6 +136,7 @@ public:
|
|||||||
aJsonObject *inputObj;
|
aJsonObject *inputObj;
|
||||||
uint8_t inType;
|
uint8_t inType;
|
||||||
uint8_t pin;
|
uint8_t pin;
|
||||||
|
uint8_t pin2;
|
||||||
inStore *store;
|
inStore *store;
|
||||||
|
|
||||||
Input(aJsonObject *obj, aJsonObject * configObj = NULL);
|
Input(aJsonObject *obj, aJsonObject * configObj = NULL);
|
||||||
@@ -188,11 +191,12 @@ protected:
|
|||||||
class readCache {
|
class readCache {
|
||||||
public:
|
public:
|
||||||
readCache();
|
readCache();
|
||||||
uint16_t analogReadCached (uint8_t pin);
|
uint16_t analogReadCached (uint8_t pin, uint8_t trigPin=0, uint8_t _type = IN_ANALOG);
|
||||||
uint8_t digitalReadCached(uint8_t pin);
|
uint8_t digitalReadCached(uint8_t pin);
|
||||||
#ifdef MCP23017
|
#ifdef MCP23017
|
||||||
uint8_t I2CReadBit(uint8_t type, uint8_t addr, uint8_t pin);
|
uint8_t I2CReadBit(uint8_t type, uint8_t addr, uint8_t pin);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void invalidateInputCache();
|
void invalidateInputCache();
|
||||||
protected:
|
protected:
|
||||||
uint8_t addr;
|
uint8_t addr;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -37,6 +37,11 @@ e-mail anklimov@gmail.com
|
|||||||
#define S_TEMP 12
|
#define S_TEMP 12
|
||||||
#define S_RAW 13
|
#define S_RAW 13
|
||||||
|
|
||||||
|
typedef char suffixstr[5];
|
||||||
|
const suffixstr suffix_P[] PROGMEM =
|
||||||
|
{"","cmd","set","val","del","HSV","RGB","fan","mode","ctrl","hue","sat","temp","raw"};
|
||||||
|
#define suffixNum sizeof(suffix_P)/sizeof(suffixstr)
|
||||||
|
|
||||||
#define S_ADDITIONAL 13
|
#define S_ADDITIONAL 13
|
||||||
|
|
||||||
#define CH_DIMMER 0 //DMX 1-4 ch
|
#define CH_DIMMER 0 //DMX 1-4 ch
|
||||||
@@ -63,16 +68,6 @@ e-mail anklimov@gmail.com
|
|||||||
#define CH_HUMIDIFIER 21
|
#define CH_HUMIDIFIER 21
|
||||||
#define CH_MERCURY 22
|
#define CH_MERCURY 22
|
||||||
|
|
||||||
//#define CHANNEL_TYPES 13
|
|
||||||
|
|
||||||
//static uint32_t pollInterval[CHANNEL_TYPES] = {0,0,0,0,MODB};
|
|
||||||
//static uint32_t nextPollTime[CHANNEL_TYPES] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
|
|
||||||
|
|
||||||
#define CH_WHITE 127//
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define POLLING_SLOW 1
|
#define POLLING_SLOW 1
|
||||||
#define POLLING_FAST 2
|
#define POLLING_FAST 2
|
||||||
#define POLLING_INT 3
|
#define POLLING_INT 3
|
||||||
@@ -103,23 +98,25 @@ extern aJsonObject *items;
|
|||||||
extern short thermoSetCurTemp(char *name, float t);
|
extern short thermoSetCurTemp(char *name, float t);
|
||||||
|
|
||||||
int txt2cmd (char * payload);
|
int txt2cmd (char * payload);
|
||||||
bool digGroup (aJsonObject *itemArr, itemCmd *cmd = NULL, char* subItem = NULL);
|
int txt2subItem(char *payload);
|
||||||
|
|
||||||
class Item
|
class Item
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
aJsonObject *itemArr, *itemArg,*itemVal,*itemExt;
|
aJsonObject *rootItems, *itemArr, *itemArg,*itemVal,*itemExt;
|
||||||
uint8_t itemType;
|
uint8_t itemType;
|
||||||
abstractOut * driver;
|
abstractOut * driver;
|
||||||
|
|
||||||
Item(char * name);
|
Item(char * name, aJsonObject *_items = items);
|
||||||
Item(aJsonObject * obj);
|
Item(aJsonObject * obj, aJsonObject *_items = items);
|
||||||
|
Item(uint16_t num, uint8_t subItem, aJsonObject *_items = items);
|
||||||
~Item();
|
~Item();
|
||||||
|
|
||||||
boolean isValid ();
|
boolean isValid ();
|
||||||
boolean Setup();
|
boolean Setup();
|
||||||
void Stop();
|
void Stop();
|
||||||
//int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL);
|
//int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL);
|
||||||
int Ctrl(itemCmd cmd, char* subItem=NULL, bool allowRecursion = true);
|
int Ctrl(itemCmd cmd, char* subItem=NULL, bool allowRecursion = true, bool authorized=false);
|
||||||
int Ctrl(char * payload, char * subItem=NULL);
|
int Ctrl(char * payload, char * subItem=NULL);
|
||||||
|
|
||||||
int getArg(short n=0);
|
int getArg(short n=0);
|
||||||
@@ -148,33 +145,28 @@ class Item
|
|||||||
inline int On (){return Ctrl(itemCmd(ST_VOID,CMD_ON));};
|
inline int On (){return Ctrl(itemCmd(ST_VOID,CMD_ON));};
|
||||||
inline int Off(){return Ctrl(itemCmd(ST_VOID,CMD_OFF));};
|
inline int Off(){return Ctrl(itemCmd(ST_VOID,CMD_OFF));};
|
||||||
inline int Toggle(){return Ctrl(itemCmd(ST_VOID,CMD_TOGGLE));};
|
inline int Toggle(){return Ctrl(itemCmd(ST_VOID,CMD_TOGGLE));};
|
||||||
int scheduleCommand(itemCmd cmd);
|
int scheduleCommand(itemCmd cmd, bool authorized);
|
||||||
int scheduleOppositeCommand(itemCmd cmd);
|
int scheduleOppositeCommand(itemCmd cmd,bool isActiveNow,bool authorized);
|
||||||
int isScheduled();
|
int isScheduled();
|
||||||
|
char * getSubItemStrById(uint8_t subItem);
|
||||||
|
uint8_t getSubitemId(char * subItem);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
bool digGroup (aJsonObject *itemArr, itemCmd *cmd = NULL, char* subItem = NULL, bool authorized = false);
|
||||||
long int limitSetValue();
|
long int limitSetValue();
|
||||||
int VacomSetFan (itemCmd st);
|
int VacomSetFan (itemCmd st);
|
||||||
int VacomSetHeat(itemCmd st);
|
int VacomSetHeat(itemCmd st);
|
||||||
int modbusDimmerSet(itemCmd st);
|
int modbusDimmerSet(itemCmd st);
|
||||||
|
|
||||||
int modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint16_t value);
|
int modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint16_t value);
|
||||||
void mb_fail(int result=0);
|
void mb_fail(int result=0);
|
||||||
void Parse();
|
void Parse();
|
||||||
int checkModbusDimmer();
|
int checkModbusDimmer();
|
||||||
int checkModbusDimmer(int data);
|
int checkModbusDimmer(int data);
|
||||||
|
int checkRetry();
|
||||||
int checkModbusRetry();
|
|
||||||
//boolean checkVCRetry();
|
|
||||||
//boolean checkHeatRetry();
|
|
||||||
void sendDelayedStatus();
|
void sendDelayedStatus();
|
||||||
bool resumeModbus();
|
|
||||||
|
|
||||||
|
|
||||||
int checkFM();
|
int checkFM();
|
||||||
char defaultSubItem[16];
|
char defaultSubItem[16];
|
||||||
int defaultSuffixCode;
|
int defaultSuffixCode;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union
|
typedef union
|
||||||
|
|||||||
@@ -39,6 +39,20 @@ int txt2cmd(char *payload) {
|
|||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int type2num(char *payload) {
|
||||||
|
if (!payload || !payload[0]) return -1;
|
||||||
|
|
||||||
|
for(uint8_t i=0; i<ch_typeNum ;i++)
|
||||||
|
if (strncmp_P(payload, ch_type_P[i], strlen_P(ch_type_P[i])) == 0)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Constructor with definition of type and command
|
\brief Constructor with definition of type and command
|
||||||
\param type - type of value (ST_???, ST_VOID by default)
|
\param type - type of value (ST_???, ST_VOID by default)
|
||||||
@@ -80,6 +94,86 @@ itemCmd::itemCmd(Item *item)
|
|||||||
loadItem(item);
|
loadItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Constructor with textual definition of command
|
||||||
|
\param cmd - name of cmd
|
||||||
|
todo - extend to values
|
||||||
|
*/
|
||||||
|
itemCmd::itemCmd(char * _cmd)
|
||||||
|
{
|
||||||
|
//debugSerial<<"ITEMCMD:" <<_cmd<<endl;
|
||||||
|
cmd.aslong=0;
|
||||||
|
param.aslong=0;
|
||||||
|
|
||||||
|
short i=0;
|
||||||
|
int Par[4];
|
||||||
|
|
||||||
|
while (_cmd[i]) {_cmd[i]=toupper(_cmd[i]);i++;};
|
||||||
|
|
||||||
|
int cmdN = txt2cmd(_cmd);
|
||||||
|
if (cmdN>=0) cmd.cmdCode = cmdN;
|
||||||
|
|
||||||
|
bool hsvflag=false;
|
||||||
|
|
||||||
|
switch (cmd.cmdCode) {
|
||||||
|
case CMD_HSV:
|
||||||
|
hsvflag=true;
|
||||||
|
case CMD_RGB:
|
||||||
|
|
||||||
|
cmd.cmdCode=CMD_VOID;
|
||||||
|
//Parsing integers from payload
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
while (_cmd && i < 4)
|
||||||
|
Par[i++] = getIntFromStr((char **) &_cmd);
|
||||||
|
|
||||||
|
if (hsvflag)
|
||||||
|
{
|
||||||
|
setSuffix(S_HSV);
|
||||||
|
cmd.itemArgType=ST_HSV255;
|
||||||
|
switch (i) //Number of params
|
||||||
|
{
|
||||||
|
case 4:
|
||||||
|
setColorTemp(Par[3]);
|
||||||
|
case 3:
|
||||||
|
param.v=Par[2];
|
||||||
|
case 2:
|
||||||
|
setH(Par[0]);
|
||||||
|
setS(Par[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setSuffix(S_RGB);
|
||||||
|
switch (i) //Number of params
|
||||||
|
{
|
||||||
|
case 3: RGB(Par[0],Par[1],Par[2]);
|
||||||
|
break;
|
||||||
|
case 4: RGBW(Par[0],Par[1],Par[2],Par[3]);
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
// case CMD_UNKNOWN: //Not known command
|
||||||
|
// case CMD_JSON: //JSON input (not implemented yet
|
||||||
|
// cmd.cmdCode=CMD_VOID;
|
||||||
|
// break;
|
||||||
|
|
||||||
|
default: //some known command
|
||||||
|
//case CMD_VOID:
|
||||||
|
//case CMD_UP:
|
||||||
|
//case CMD_DN:
|
||||||
|
{
|
||||||
|
itemCmd num =getNumber((char **) &_cmd);
|
||||||
|
cmd.itemArgType=num.getArgType();
|
||||||
|
param.aslong=num.param.aslong;
|
||||||
|
if (cmd.cmdCode) setSuffix(S_CMD);
|
||||||
|
}
|
||||||
|
} //switch
|
||||||
|
//debugOut();
|
||||||
|
}
|
||||||
|
|
||||||
itemCmd itemCmd::setChanType(short chanType)
|
itemCmd itemCmd::setChanType(short chanType)
|
||||||
{
|
{
|
||||||
@@ -582,7 +676,7 @@ itemCmd itemCmd::assignFrom(itemCmd from, short chanType)
|
|||||||
{
|
{
|
||||||
long coldPercent = map (colorT,0,100,100,30);
|
long coldPercent = map (colorT,0,100,100,30);
|
||||||
long hotPercent = map (colorT,0,100,30,100);
|
long hotPercent = map (colorT,0,100,30,100);
|
||||||
int rgbvLevel;
|
int rgbvLevel = 0;
|
||||||
|
|
||||||
if (rgbSaturation < 128) { // Using white
|
if (rgbSaturation < 128) { // Using white
|
||||||
param.w=map((127 - rgbSaturation) * rgbValue *hotPercent, 0, 127*255*100, 0, 255);
|
param.w=map((127 - rgbSaturation) * rgbValue *hotPercent, 0, 127*255*100, 0, 255);
|
||||||
@@ -1137,6 +1231,7 @@ bool itemCmd::saveItem(Item * item, uint16_t optionsFlag)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
item->setCmd(cmd.cmdCode);
|
item->setCmd(cmd.cmdCode);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (optionsFlag & FLAG_PARAMETERS)
|
if (optionsFlag & FLAG_PARAMETERS)
|
||||||
switch (cmd.itemArgType)
|
switch (cmd.itemArgType)
|
||||||
@@ -1157,8 +1252,8 @@ bool itemCmd::saveItem(Item * item, uint16_t optionsFlag)
|
|||||||
item->setVal(param.asInt32);
|
item->setVal(param.asInt32);
|
||||||
item->setSubtype(cmd.itemArgType);
|
item->setSubtype(cmd.itemArgType);
|
||||||
}
|
}
|
||||||
debugSerial<<F("Saved:");
|
//debugSerial<<F("Saved:");
|
||||||
debugOut();
|
//debugOut();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -1180,6 +1275,30 @@ return false;
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int replaceTypeToInt(aJsonObject* verb)
|
||||||
|
{
|
||||||
|
if (!verb) return -1;
|
||||||
|
switch (verb->type)
|
||||||
|
{
|
||||||
|
case aJson_Int: return verb->valueint;
|
||||||
|
case aJson_Array: return replaceTypeToInt(verb->child);
|
||||||
|
case aJson_Object: return replaceTypeToInt(aJson.getObjectItem(verb, "type"));
|
||||||
|
case aJson_String:
|
||||||
|
{
|
||||||
|
int type = type2num(verb->valuestring);
|
||||||
|
if (type>=0)
|
||||||
|
{
|
||||||
|
freeString(verb->valuestring);
|
||||||
|
verb->valueint=type;
|
||||||
|
verb->type=aJson_Int;
|
||||||
|
return verb->valueint;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// Mapping from unified itemCmd object to some specific device-depended value
|
// Mapping from unified itemCmd object to some specific device-depended value
|
||||||
itemCmd itemCmd::doMapping(aJsonObject *mappingData)
|
itemCmd itemCmd::doMapping(aJsonObject *mappingData)
|
||||||
{
|
{
|
||||||
@@ -1192,7 +1311,7 @@ return false;
|
|||||||
{
|
{
|
||||||
case aJson_Array:
|
case aJson_Array:
|
||||||
{
|
{
|
||||||
debugSerial<<"Array mapping"<<endl;
|
traceSerial<<"Array mapping"<<endl;
|
||||||
aJsonObject *i = cmdMapping->child;
|
aJsonObject *i = cmdMapping->child;
|
||||||
//if first array element is not array - this is default mapping value
|
//if first array element is not array - this is default mapping value
|
||||||
if (i && i->type==aJson_Int)
|
if (i && i->type==aJson_Int)
|
||||||
|
|||||||
@@ -31,8 +31,39 @@ const cmdstr commands_P[] PROGMEM =
|
|||||||
"HIGH","MEDIUM","LOW",
|
"HIGH","MEDIUM","LOW",
|
||||||
"HEAT","COOL","DRY","STOP","RGB","HSV"
|
"HEAT","COOL","DRY","STOP","RGB","HSV"
|
||||||
};
|
};
|
||||||
|
|
||||||
#define commandsNum sizeof(commands_P)/sizeof(cmdstr)
|
#define commandsNum sizeof(commands_P)/sizeof(cmdstr)
|
||||||
|
|
||||||
|
typedef char ch_type[9];
|
||||||
|
const ch_type ch_type_P[] PROGMEM =
|
||||||
|
{
|
||||||
|
"DMX", // 0 //DMX 1-4 ch
|
||||||
|
"DMXRGBW",// 1 //DMX 4 ch
|
||||||
|
"DMXRGB", // 2 //DMX 3 ch
|
||||||
|
"PWM", // 3 //PWM output directly to PIN 1-4 CH
|
||||||
|
"MBUSDIM",// 4 //Modbus AC Dimmer
|
||||||
|
"THERMO", // 5 //Simple ON/OFF thermostat
|
||||||
|
"RELAY", // 6 //ON_OFF relay output
|
||||||
|
"GROUP", // 7 //Group pseudochannel
|
||||||
|
"VCTEMP", // 8 //Vacom PID regulator
|
||||||
|
"MBUSVC", // 9 //Vacom modbus motor regulator
|
||||||
|
"ACHAIER",// 10 //AC Haier
|
||||||
|
"SPILED", // 11 //SPI led strip
|
||||||
|
"MOTOR", // 12 //Motorized gate with feedback resistor
|
||||||
|
"PID", // 13 //PID regulator
|
||||||
|
"MBUS", // 14 //Universal Modbus Master channel
|
||||||
|
"UARTBRDG", // 15 //Bridge between 2 UARTS with reporting PDUs to Wireshark via UDP
|
||||||
|
"RELAYPWM", // 16 //Slow PWM relay to control objects with inertia
|
||||||
|
"DMXRGBWW", // 17 //DMX RGBWW channel (warm&cold white)
|
||||||
|
"VENTS", // 18 //Multichannel ventilation
|
||||||
|
"ELEVATOR", // 19 //
|
||||||
|
"COUNTER", // 20 //Generic counter
|
||||||
|
"HUM", // 21 //Humidifier
|
||||||
|
"MERCURY" // 22 //Mercury energy meter/RS485 interface
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ch_typeNum sizeof(ch_type_P)/sizeof(ch_type)
|
||||||
|
|
||||||
/// Definition of Commands
|
/// Definition of Commands
|
||||||
#define CMD_ON 1 /// Turn channel ON
|
#define CMD_ON 1 /// Turn channel ON
|
||||||
#define CMD_OFF 2 /// Turn channel OFF
|
#define CMD_OFF 2 /// Turn channel OFF
|
||||||
@@ -46,8 +77,8 @@ const cmdstr commands_P[] PROGMEM =
|
|||||||
|
|
||||||
#define CMD_ENABLE 0xa /// for PID regulator and XON/XOFF - chan limitation
|
#define CMD_ENABLE 0xa /// for PID regulator and XON/XOFF - chan limitation
|
||||||
#define CMD_DISABLE 0xb /// for PID regulator
|
#define CMD_DISABLE 0xb /// for PID regulator
|
||||||
#define CMD_UNFREEZE 0xc /// Aliase for ON
|
#define CMD_UNFREEZE 0xc ///
|
||||||
#define CMD_FREEZE 0xd /// Aliase for OFF
|
#define CMD_FREEZE 0xd ///
|
||||||
|
|
||||||
#define CMD_AUTO 0xe /// Thermostat/AC set to Auto mode
|
#define CMD_AUTO 0xe /// Thermostat/AC set to Auto mode
|
||||||
#define CMD_FAN 0xf /// AC set to Fan-only mode
|
#define CMD_FAN 0xf /// AC set to Fan-only mode
|
||||||
@@ -88,7 +119,7 @@ const cmdstr commands_P[] PROGMEM =
|
|||||||
#define FLAG_HALTED 0x40000UL
|
#define FLAG_HALTED 0x40000UL
|
||||||
#define FLAG_XON 0x80000UL
|
#define FLAG_XON 0x80000UL
|
||||||
|
|
||||||
|
#define FLAG_NOT_SEND_CAN 0x2UL
|
||||||
|
|
||||||
int txt2cmd (char * payload);
|
int txt2cmd (char * payload);
|
||||||
|
|
||||||
@@ -126,10 +157,9 @@ typedef union
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t cmdCode;
|
uint8_t cmdCode;
|
||||||
uint8_t suffixCode:4;
|
|
||||||
uint8_t itemArgType:4;
|
uint8_t itemArgType:4;
|
||||||
|
uint8_t cmdEffect:4; //Reserve
|
||||||
uint8_t cmdEffect; //Reserve
|
uint8_t suffixCode;
|
||||||
uint8_t cmdParam; //Reserve
|
uint8_t cmdParam; //Reserve
|
||||||
};
|
};
|
||||||
} itemCmdStore;
|
} itemCmdStore;
|
||||||
@@ -173,6 +203,7 @@ public:
|
|||||||
itemCmd(uint8_t _type=ST_VOID, uint8_t _code=CMD_VOID);
|
itemCmd(uint8_t _type=ST_VOID, uint8_t _code=CMD_VOID);
|
||||||
itemCmd(float val);
|
itemCmd(float val);
|
||||||
itemCmd(Item *item);
|
itemCmd(Item *item);
|
||||||
|
itemCmd(char *cmd);
|
||||||
|
|
||||||
itemCmd assignFrom(itemCmd from, short chanType=-1);
|
itemCmd assignFrom(itemCmd from, short chanType=-1);
|
||||||
|
|
||||||
@@ -241,4 +272,5 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int replaceTypeToInt(aJsonObject* verb);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user