From 9d96b2b5b32bd3f24d7a58f8c8a4077dfa1c95fe Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Sat, 30 Sep 2023 15:42:44 +0700 Subject: [PATCH] nextion --- .../NexButton.cpp | 351 +++ .../NexButton.h | 242 ++ .../NexCheckbox.cpp | 99 + .../NexCheckbox.h | 97 + .../NexConfig.h | 54 + .../NexCrop.cpp | 68 + lib/ITEADLIB_Arduino_Nextion-master/NexCrop.h | 84 + .../NexDualStateButton.cpp | 347 +++ .../NexDualStateButton.h | 243 ++ .../NexGauge.cpp | 158 ++ .../NexGauge.h | 127 + .../NexGpio.cpp | 105 + lib/ITEADLIB_Arduino_Nextion-master/NexGpio.h | 102 + .../NexHardware.cpp | 267 ++ .../NexHardware.h | 55 + .../NexHotspot.cpp | 22 + .../NexHotspot.h | 43 + .../NexNumber.cpp | 266 ++ .../NexNumber.h | 187 ++ .../NexObject.cpp | 58 + .../NexObject.h | 84 + .../NexPage.cpp | 38 + lib/ITEADLIB_Arduino_Nextion-master/NexPage.h | 50 + .../NexPicture.cpp | 67 + .../NexPicture.h | 83 + .../NexProgressBar.cpp | 100 + .../NexProgressBar.h | 95 + .../NexRadio.cpp | 99 + .../NexRadio.h | 98 + .../NexRtc.cpp | 327 +++ lib/ITEADLIB_Arduino_Nextion-master/NexRtc.h | 93 + .../NexScrolltext.cpp | 351 +++ .../NexScrolltext.h | 223 ++ .../NexSlider.cpp | 211 ++ .../NexSlider.h | 159 ++ .../NexText.cpp | 236 ++ lib/ITEADLIB_Arduino_Nextion-master/NexText.h | 173 ++ .../NexTimer.cpp | 115 + .../NexTimer.h | 120 + .../NexTouch.cpp | 95 + .../NexTouch.h | 116 + .../NexUpload.cpp.d | 240 ++ .../NexUpload.h.d | 142 + .../NexVariable.cpp | 64 + .../NexVariable.h | 82 + .../NexWaveform.cpp | 176 ++ .../NexWaveform.h | 133 + lib/ITEADLIB_Arduino_Nextion-master/Nextion.h | 45 + .../doc/Documentation/Logo.png | Bin 0 -> 1659 bytes .../_comp_button_8ino-example.html | 84 + .../_comp_button_8ino_source.html | 171 ++ .../_comp_button__v0__32_8ino_source.html | 171 ++ .../_comp_button_v0_32_8ino-example.html | 161 ++ .../_comp_crop_8ino-example.html | 84 + .../Documentation/_comp_crop_8ino_source.html | 137 + .../_comp_crop__v0__32_8ino_source.html | 137 + .../_comp_crop_v0_32_8ino-example.html | 127 + .../_comp_dual_state_button_8ino-example.html | 84 + .../_comp_dual_state_button_8ino_source.html | 173 ++ ...dual_state_button__v0__32_8ino_source.html | 173 ++ ..._dual_state_button_v0_32_8ino-example.html | 162 ++ .../_comp_gauge_8ino-example.html | 84 + .../_comp_gauge_8ino_source.html | 154 ++ .../_comp_gauge__v0__32_8ino_source.html | 154 ++ .../_comp_gauge_v0_32_8ino-example.html | 143 + .../_comp_gpio_2_comp_gpio_8ino_source.html | 143 + .../_comp_gpio_8ino-example.html | 133 + .../Documentation/_comp_gpio_8ino_source.html | 144 + .../_comp_hotspot_8ino-example.html | 84 + .../_comp_hotspot_8ino_source.html | 148 + .../_comp_hotspot__v0__32_8ino_source.html | 148 + .../_comp_hotspot_v0_32_8ino-example.html | 139 + .../_comp_number_8ino-example.html | 84 + .../_comp_number_8ino_source.html | 200 ++ .../_comp_number__v0__32_8ino_source.html | 200 ++ .../_comp_number_v0_32_8ino-example.html | 189 ++ .../_comp_page_8ino-example.html | 84 + .../Documentation/_comp_page_8ino_source.html | 151 ++ .../_comp_page__v0__32_8ino_source.html | 151 ++ .../_comp_page_v0_32_8ino-example.html | 142 + .../_comp_picture_8ino-example.html | 84 + .../_comp_picture_8ino_source.html | 140 + .../_comp_picture__v0__32_8ino_source.html | 140 + .../_comp_picture_v0_32_8ino-example.html | 130 + .../_comp_progress_bar_8ino-example.html | 84 + .../_comp_progress_bar_8ino_source.html | 153 ++ ...comp_progress_bar__v0__32_8ino_source.html | 153 ++ ..._comp_progress_bar_v0_32_8ino-example.html | 142 + .../Documentation/_comp_rtc_8ino-example.html | 104 + .../Documentation/_comp_rtc_8ino_source.html | 112 + .../_comp_slider_8ino-example.html | 84 + .../_comp_slider_8ino_source.html | 131 + .../_comp_slider__v0__32_8ino_source.html | 131 + .../_comp_slider_v0_32_8ino-example.html | 120 + .../_comp_text_8ino-example.html | 84 + .../Documentation/_comp_text_8ino_source.html | 211 ++ .../_comp_text__v0__32_8ino_source.html | 211 ++ .../_comp_text_v0_32_8ino-example.html | 200 ++ ...r_2_comp_waveform__v0__32_8ino_source.html | 142 + .../_comp_timer_8ino-example.html | 84 + .../_comp_timer_8ino_source.html | 207 ++ .../_comp_timer__v0__32_8ino_source.html | 207 ++ .../_comp_timer_v0_32_8ino-example.html | 190 ++ ...m_2_comp_waveform__v0__32_8ino_source.html | 142 + .../_comp_waveform_8ino-example.html | 84 + .../_comp_waveform_8ino_source.html | 142 + .../_comp_waveform__v0__32_8ino_source.html | 142 + .../_comp_waveform_v0_32_8ino-example.html | 136 + .../doc/Documentation/_nex_button_8cpp.html | 100 + .../Documentation/_nex_button_8cpp__incl.map | 7 + .../Documentation/_nex_button_8cpp__incl.md5 | 1 + .../Documentation/_nex_button_8cpp__incl.png | Bin 0 -> 24618 bytes .../_nex_button_8cpp_source.html | 450 ++++ .../doc/Documentation/_nex_button_8h.html | 114 + .../_nex_button_8h__dep__incl.map | 4 + .../_nex_button_8h__dep__incl.md5 | 1 + .../_nex_button_8h__dep__incl.png | Bin 0 -> 4727 bytes .../Documentation/_nex_button_8h__incl.map | 6 + .../Documentation/_nex_button_8h__incl.md5 | 1 + .../Documentation/_nex_button_8h__incl.png | Bin 0 -> 20438 bytes .../Documentation/_nex_button_8h_source.html | 176 ++ .../doc/Documentation/_nex_checkbox_8cpp.html | 100 + .../_nex_checkbox_8cpp__incl.map | 7 + .../_nex_checkbox_8cpp__incl.md5 | 1 + .../_nex_checkbox_8cpp__incl.png | Bin 0 -> 25080 bytes .../_nex_checkbox_8cpp_source.html | 181 ++ .../doc/Documentation/_nex_checkbox_8h.html | 110 + .../_nex_checkbox_8h__dep__incl.map | 4 + .../_nex_checkbox_8h__dep__incl.md5 | 1 + .../_nex_checkbox_8h__dep__incl.png | Bin 0 -> 5901 bytes .../Documentation/_nex_checkbox_8h__incl.map | 6 + .../Documentation/_nex_checkbox_8h__incl.md5 | 1 + .../Documentation/_nex_checkbox_8h__incl.png | Bin 0 -> 20703 bytes .../_nex_checkbox_8h_source.html | 122 + .../doc/Documentation/_nex_config_8h.html | 116 + .../doc/Documentation/_nex_config_8h.js | 6 + .../_nex_config_8h__dep__incl.map | 45 + .../_nex_config_8h__dep__incl.md5 | 1 + .../_nex_config_8h__dep__incl.png | Bin 0 -> 203166 bytes .../Documentation/_nex_config_8h_source.html | 108 + .../doc/Documentation/_nex_crop_8cpp.html | 100 + .../Documentation/_nex_crop_8cpp__incl.map | 7 + .../Documentation/_nex_crop_8cpp__incl.md5 | 1 + .../Documentation/_nex_crop_8cpp__incl.png | Bin 0 -> 24640 bytes .../Documentation/_nex_crop_8cpp_source.html | 147 + .../doc/Documentation/_nex_crop_8h.html | 110 + .../Documentation/_nex_crop_8h__dep__incl.map | 4 + .../Documentation/_nex_crop_8h__dep__incl.md5 | 1 + .../Documentation/_nex_crop_8h__dep__incl.png | Bin 0 -> 5405 bytes .../doc/Documentation/_nex_crop_8h__incl.map | 6 + .../doc/Documentation/_nex_crop_8h__incl.md5 | 1 + .../doc/Documentation/_nex_crop_8h__incl.png | Bin 0 -> 20481 bytes .../Documentation/_nex_crop_8h_source.html | 117 + .../_nex_dual_state_button_8cpp.html | 100 + .../_nex_dual_state_button_8cpp__incl.map | 7 + .../_nex_dual_state_button_8cpp__incl.md5 | 1 + .../_nex_dual_state_button_8cpp__incl.png | Bin 0 -> 25865 bytes .../_nex_dual_state_button_8cpp_source.html | 446 +++ .../_nex_dual_state_button_8h.html | 110 + .../_nex_dual_state_button_8h__dep__incl.map | 4 + .../_nex_dual_state_button_8h__dep__incl.md5 | 1 + .../_nex_dual_state_button_8h__dep__incl.png | Bin 0 -> 6366 bytes .../_nex_dual_state_button_8h__incl.map | 6 + .../_nex_dual_state_button_8h__incl.md5 | 1 + .../_nex_dual_state_button_8h__incl.png | Bin 0 -> 21038 bytes .../_nex_dual_state_button_8h_source.html | 175 ++ .../doc/Documentation/_nex_gauge_8cpp.html | 100 + .../Documentation/_nex_gauge_8cpp__incl.map | 7 + .../Documentation/_nex_gauge_8cpp__incl.md5 | 1 + .../Documentation/_nex_gauge_8cpp__incl.png | Bin 0 -> 24996 bytes .../Documentation/_nex_gauge_8cpp_source.html | 243 ++ .../doc/Documentation/_nex_gauge_8h.html | 110 + .../_nex_gauge_8h__dep__incl.map | 4 + .../_nex_gauge_8h__dep__incl.md5 | 1 + .../_nex_gauge_8h__dep__incl.png | Bin 0 -> 5225 bytes .../doc/Documentation/_nex_gauge_8h__incl.map | 6 + .../doc/Documentation/_nex_gauge_8h__incl.md5 | 1 + .../doc/Documentation/_nex_gauge_8h__incl.png | Bin 0 -> 20617 bytes .../Documentation/_nex_gauge_8h_source.html | 134 + .../doc/Documentation/_nex_gpio_8cpp.html | 100 + .../Documentation/_nex_gpio_8cpp_source.html | 185 ++ .../doc/Documentation/_nex_gpio_8h.html | 110 + .../Documentation/_nex_gpio_8h_source.html | 119 + .../doc/Documentation/_nex_hardware_8cpp.html | 112 + .../doc/Documentation/_nex_hardware_8cpp.js | 5 + .../_nex_hardware_8cpp__incl.map | 6 + .../_nex_hardware_8cpp__incl.md5 | 1 + .../_nex_hardware_8cpp__incl.png | Bin 0 -> 18959 bytes .../_nex_hardware_8cpp_source.html | 345 +++ .../doc/Documentation/_nex_hardware_8h.html | 114 + .../doc/Documentation/_nex_hardware_8h.js | 5 + .../_nex_hardware_8h__dep__incl.map | 40 + .../_nex_hardware_8h__dep__incl.md5 | 1 + .../_nex_hardware_8h__dep__incl.png | Bin 0 -> 107026 bytes .../Documentation/_nex_hardware_8h__incl.map | 5 + .../Documentation/_nex_hardware_8h__incl.md5 | 1 + .../Documentation/_nex_hardware_8h__incl.png | Bin 0 -> 16903 bytes .../_nex_hardware_8h_source.html | 108 + .../doc/Documentation/_nex_hotspot_8cpp.html | 100 + .../Documentation/_nex_hotspot_8cpp__incl.map | 7 + .../Documentation/_nex_hotspot_8cpp__incl.md5 | 1 + .../Documentation/_nex_hotspot_8cpp__incl.png | Bin 0 -> 24618 bytes .../_nex_hotspot_8cpp_source.html | 97 + .../doc/Documentation/_nex_hotspot_8h.html | 110 + .../_nex_hotspot_8h__dep__incl.map | 4 + .../_nex_hotspot_8h__dep__incl.md5 | 1 + .../_nex_hotspot_8h__dep__incl.png | Bin 0 -> 4969 bytes .../Documentation/_nex_hotspot_8h__incl.map | 6 + .../Documentation/_nex_hotspot_8h__incl.md5 | 1 + .../Documentation/_nex_hotspot_8h__incl.png | Bin 0 -> 20467 bytes .../Documentation/_nex_hotspot_8h_source.html | 103 + .../doc/Documentation/_nex_number_8cpp.html | 100 + .../Documentation/_nex_number_8cpp__incl.map | 7 + .../Documentation/_nex_number_8cpp__incl.md5 | 1 + .../Documentation/_nex_number_8cpp__incl.png | Bin 0 -> 24269 bytes .../_nex_number_8cpp_source.html | 360 +++ .../doc/Documentation/_nex_number_8h.html | 110 + .../_nex_number_8h__dep__incl.map | 4 + .../_nex_number_8h__dep__incl.md5 | 1 + .../_nex_number_8h__dep__incl.png | Bin 0 -> 4785 bytes .../Documentation/_nex_number_8h__incl.map | 6 + .../Documentation/_nex_number_8h__incl.md5 | 1 + .../Documentation/_nex_number_8h__incl.png | Bin 0 -> 20277 bytes .../Documentation/_nex_number_8h_source.html | 158 ++ .../doc/Documentation/_nex_object_8cpp.html | 100 + .../Documentation/_nex_object_8cpp__incl.map | 4 + .../Documentation/_nex_object_8cpp__incl.md5 | 1 + .../Documentation/_nex_object_8cpp__incl.png | Bin 0 -> 7808 bytes .../_nex_object_8cpp_source.html | 134 + .../doc/Documentation/_nex_object_8h.html | 110 + .../_nex_object_8h__dep__incl.map | 44 + .../_nex_object_8h__dep__incl.md5 | 1 + .../_nex_object_8h__dep__incl.png | Bin 0 -> 187131 bytes .../Documentation/_nex_object_8h__incl.map | 3 + .../Documentation/_nex_object_8h__incl.md5 | 1 + .../Documentation/_nex_object_8h__incl.png | Bin 0 -> 5286 bytes .../Documentation/_nex_object_8h_source.html | 132 + .../doc/Documentation/_nex_page_8cpp.html | 100 + .../Documentation/_nex_page_8cpp__incl.map | 7 + .../Documentation/_nex_page_8cpp__incl.md5 | 1 + .../Documentation/_nex_page_8cpp__incl.png | Bin 0 -> 24639 bytes .../Documentation/_nex_page_8cpp_source.html | 114 + .../doc/Documentation/_nex_page_8h.html | 110 + .../Documentation/_nex_page_8h__dep__incl.map | 4 + .../Documentation/_nex_page_8h__dep__incl.md5 | 1 + .../Documentation/_nex_page_8h__dep__incl.png | Bin 0 -> 5172 bytes .../doc/Documentation/_nex_page_8h__incl.map | 6 + .../doc/Documentation/_nex_page_8h__incl.md5 | 1 + .../doc/Documentation/_nex_page_8h__incl.png | Bin 0 -> 20453 bytes .../Documentation/_nex_page_8h_source.html | 106 + .../doc/Documentation/_nex_picture_8cpp.html | 100 + .../Documentation/_nex_picture_8cpp__incl.map | 7 + .../Documentation/_nex_picture_8cpp__incl.md5 | 1 + .../Documentation/_nex_picture_8cpp__incl.png | Bin 0 -> 24375 bytes .../_nex_picture_8cpp_source.html | 146 + .../doc/Documentation/_nex_picture_8h.html | 110 + .../_nex_picture_8h__dep__incl.map | 4 + .../_nex_picture_8h__dep__incl.md5 | 1 + .../_nex_picture_8h__dep__incl.png | Bin 0 -> 4294 bytes .../Documentation/_nex_picture_8h__incl.map | 6 + .../Documentation/_nex_picture_8h__incl.md5 | 1 + .../Documentation/_nex_picture_8h__incl.png | Bin 0 -> 20391 bytes .../Documentation/_nex_picture_8h_source.html | 116 + .../Documentation/_nex_progress_bar_8cpp.html | 100 + .../_nex_progress_bar_8cpp__incl.map | 7 + .../_nex_progress_bar_8cpp__incl.md5 | 1 + .../_nex_progress_bar_8cpp__incl.png | Bin 0 -> 25807 bytes .../_nex_progress_bar_8cpp_source.html | 181 ++ .../Documentation/_nex_progress_bar_8h.html | 110 + .../_nex_progress_bar_8h__dep__incl.map | 4 + .../_nex_progress_bar_8h__dep__incl.md5 | 1 + .../_nex_progress_bar_8h__dep__incl.png | Bin 0 -> 6210 bytes .../_nex_progress_bar_8h__incl.map | 6 + .../_nex_progress_bar_8h__incl.md5 | 1 + .../_nex_progress_bar_8h__incl.png | Bin 0 -> 21003 bytes .../_nex_progress_bar_8h_source.html | 122 + .../doc/Documentation/_nex_radio_8cpp.html | 100 + .../Documentation/_nex_radio_8cpp__incl.map | 7 + .../Documentation/_nex_radio_8cpp__incl.md5 | 1 + .../Documentation/_nex_radio_8cpp__incl.png | Bin 0 -> 24891 bytes .../Documentation/_nex_radio_8cpp_source.html | 181 ++ .../doc/Documentation/_nex_radio_8h.html | 110 + .../_nex_radio_8h__dep__incl.map | 4 + .../_nex_radio_8h__dep__incl.md5 | 1 + .../_nex_radio_8h__dep__incl.png | Bin 0 -> 5890 bytes .../doc/Documentation/_nex_radio_8h__incl.map | 6 + .../doc/Documentation/_nex_radio_8h__incl.md5 | 1 + .../doc/Documentation/_nex_radio_8h__incl.png | Bin 0 -> 20563 bytes .../Documentation/_nex_radio_8h_source.html | 123 + .../doc/Documentation/_nex_rtc_8cpp.html | 100 + .../Documentation/_nex_rtc_8cpp_source.html | 402 +++ .../doc/Documentation/_nex_rtc_8h.html | 110 + .../doc/Documentation/_nex_rtc_8h_source.html | 116 + .../Documentation/_nex_scrolltext_8cpp.html | 100 + .../_nex_scrolltext_8cpp__incl.map | 7 + .../_nex_scrolltext_8cpp__incl.md5 | 1 + .../_nex_scrolltext_8cpp__incl.png | Bin 0 -> 24818 bytes .../_nex_scrolltext_8cpp_source.html | 449 ++++ .../doc/Documentation/_nex_scrolltext_8h.html | 110 + .../_nex_scrolltext_8h__dep__incl.map | 4 + .../_nex_scrolltext_8h__dep__incl.md5 | 1 + .../_nex_scrolltext_8h__dep__incl.png | Bin 0 -> 5069 bytes .../_nex_scrolltext_8h__incl.map | 6 + .../_nex_scrolltext_8h__incl.md5 | 1 + .../_nex_scrolltext_8h__incl.png | Bin 0 -> 20580 bytes .../_nex_scrolltext_8h_source.html | 173 ++ .../doc/Documentation/_nex_slider_8cpp.html | 100 + .../Documentation/_nex_slider_8cpp__incl.map | 7 + .../Documentation/_nex_slider_8cpp__incl.md5 | 1 + .../Documentation/_nex_slider_8cpp__incl.png | Bin 0 -> 24561 bytes .../_nex_slider_8cpp_source.html | 301 +++ .../doc/Documentation/_nex_slider_8h.html | 110 + .../_nex_slider_8h__dep__incl.map | 4 + .../_nex_slider_8h__dep__incl.md5 | 1 + .../_nex_slider_8h__dep__incl.png | Bin 0 -> 5135 bytes .../Documentation/_nex_slider_8h__incl.map | 6 + .../Documentation/_nex_slider_8h__incl.md5 | 1 + .../Documentation/_nex_slider_8h__incl.png | Bin 0 -> 20434 bytes .../Documentation/_nex_slider_8h_source.html | 145 + .../doc/Documentation/_nex_text_8cpp.html | 100 + .../Documentation/_nex_text_8cpp__incl.map | 7 + .../Documentation/_nex_text_8cpp__incl.md5 | 1 + .../Documentation/_nex_text_8cpp__incl.png | Bin 0 -> 23873 bytes .../Documentation/_nex_text_8cpp_source.html | 328 +++ .../doc/Documentation/_nex_text_8h.html | 110 + .../Documentation/_nex_text_8h__dep__incl.map | 4 + .../Documentation/_nex_text_8h__dep__incl.md5 | 1 + .../Documentation/_nex_text_8h__dep__incl.png | Bin 0 -> 4397 bytes .../doc/Documentation/_nex_text_8h__incl.map | 6 + .../doc/Documentation/_nex_text_8h__incl.md5 | 1 + .../doc/Documentation/_nex_text_8h__incl.png | Bin 0 -> 20083 bytes .../Documentation/_nex_text_8h_source.html | 153 ++ .../doc/Documentation/_nex_timer_8cpp.html | 100 + .../Documentation/_nex_timer_8cpp__incl.map | 7 + .../Documentation/_nex_timer_8cpp__incl.md5 | 1 + .../Documentation/_nex_timer_8cpp__incl.png | Bin 0 -> 24054 bytes .../Documentation/_nex_timer_8cpp_source.html | 201 ++ .../doc/Documentation/_nex_timer_8h.html | 110 + .../_nex_timer_8h__dep__incl.map | 4 + .../_nex_timer_8h__dep__incl.md5 | 1 + .../_nex_timer_8h__dep__incl.png | Bin 0 -> 4668 bytes .../doc/Documentation/_nex_timer_8h__incl.map | 6 + .../doc/Documentation/_nex_timer_8h__incl.md5 | 1 + .../doc/Documentation/_nex_timer_8h__incl.png | Bin 0 -> 20184 bytes .../Documentation/_nex_timer_8h_source.html | 129 + .../doc/Documentation/_nex_touch_8cpp.html | 100 + .../Documentation/_nex_touch_8cpp__incl.map | 5 + .../Documentation/_nex_touch_8cpp__incl.md5 | 1 + .../Documentation/_nex_touch_8cpp__incl.png | Bin 0 -> 13536 bytes .../Documentation/_nex_touch_8cpp_source.html | 180 ++ .../doc/Documentation/_nex_touch_8h.html | 130 + .../doc/Documentation/_nex_touch_8h.js | 6 + .../_nex_touch_8h__dep__incl.map | 42 + .../_nex_touch_8h__dep__incl.md5 | 1 + .../_nex_touch_8h__dep__incl.png | Bin 0 -> 182057 bytes .../doc/Documentation/_nex_touch_8h__incl.map | 4 + .../doc/Documentation/_nex_touch_8h__incl.md5 | 1 + .../doc/Documentation/_nex_touch_8h__incl.png | Bin 0 -> 11450 bytes .../Documentation/_nex_touch_8h_source.html | 139 + .../doc/Documentation/_nex_upload_8cpp.html | 101 + .../Documentation/_nex_upload_8cpp__incl.map | 7 + .../Documentation/_nex_upload_8cpp__incl.md5 | 1 + .../Documentation/_nex_upload_8cpp__incl.png | Bin 0 -> 36050 bytes .../_nex_upload_8cpp_source.html | 316 +++ .../doc/Documentation/_nex_upload_8h.html | 112 + .../_nex_upload_8h__dep__incl.map | 3 + .../_nex_upload_8h__dep__incl.md5 | 1 + .../_nex_upload_8h__dep__incl.png | Bin 0 -> 3609 bytes .../Documentation/_nex_upload_8h__incl.map | 6 + .../Documentation/_nex_upload_8h__incl.md5 | 1 + .../Documentation/_nex_upload_8h__incl.png | Bin 0 -> 26807 bytes .../Documentation/_nex_upload_8h_source.html | 182 ++ .../doc/Documentation/_nex_variable_8cpp.html | 100 + .../_nex_variable_8cpp__incl.map | 7 + .../_nex_variable_8cpp__incl.md5 | 1 + .../_nex_variable_8cpp__incl.png | Bin 0 -> 24705 bytes .../_nex_variable_8cpp_source.html | 143 + .../_nex_variable_8h_source.html | 116 + .../doc/Documentation/_nex_waveform_8cpp.html | 100 + .../_nex_waveform_8cpp__incl.map | 7 + .../_nex_waveform_8cpp__incl.md5 | 1 + .../_nex_waveform_8cpp__incl.png | Bin 0 -> 25581 bytes .../_nex_waveform_8cpp_source.html | 263 ++ .../doc/Documentation/_nex_waveform_8h.html | 110 + .../_nex_waveform_8h__dep__incl.map | 4 + .../_nex_waveform_8h__dep__incl.md5 | 1 + .../_nex_waveform_8h__dep__incl.png | Bin 0 -> 6396 bytes .../Documentation/_nex_waveform_8h__incl.map | 6 + .../Documentation/_nex_waveform_8h__incl.md5 | 1 + .../Documentation/_nex_waveform_8h__incl.png | Bin 0 -> 20861 bytes .../_nex_waveform_8h_source.html | 137 + .../doc/Documentation/_nextion_8h.html | 123 + .../Documentation/_nextion_8h__dep__incl.map | 12 + .../Documentation/_nextion_8h__dep__incl.md5 | 1 + .../Documentation/_nextion_8h__dep__incl.png | Bin 0 -> 29467 bytes .../doc/Documentation/_nextion_8h__incl.map | 23 + .../doc/Documentation/_nextion_8h__incl.md5 | 1 + .../doc/Documentation/_nextion_8h__incl.png | Bin 0 -> 191398 bytes .../doc/Documentation/_nextion_8h_source.html | 137 + .../Documentation/_upload_8ino_source.html | 98 + .../doc/Documentation/all__0_8js_source.html | 94 + .../doc/Documentation/all__1_8js_source.html | 91 + .../doc/Documentation/all__2_8js_source.html | 98 + .../doc/Documentation/all__3_8js_source.html | 90 + .../doc/Documentation/all__4_8js_source.html | 125 + .../doc/Documentation/all__5_8js_source.html | 90 + .../doc/Documentation/all__6_8js_source.html | 163 ++ .../doc/Documentation/all__7_8js_source.html | 91 + .../doc/Documentation/all__8_8js_source.html | 92 + .../doc/Documentation/all__9_8js_source.html | 124 + .../doc/Documentation/all__a_8js_source.html | 90 + .../doc/Documentation/all__b_8js_source.html | 90 + .../doc/Documentation/all__c_8js_source.html | 90 + .../doc/Documentation/annotated.html | 113 + .../doc/Documentation/annotated.js | 25 + .../doc/Documentation/bc_s.png | Bin 0 -> 658 bytes .../doc/Documentation/bdwn.png | Bin 0 -> 149 bytes .../class_nex_button-members.html | 122 + .../doc/Documentation/class_nex_button.html | 915 +++++++ .../doc/Documentation/class_nex_button.js | 28 + .../class_nex_button__coll__graph.map | 4 + .../class_nex_button__coll__graph.md5 | 1 + .../class_nex_button__coll__graph.png | Bin 0 -> 4307 bytes .../class_nex_button__inherit__graph.map | 4 + .../class_nex_button__inherit__graph.md5 | 1 + .../class_nex_button__inherit__graph.png | Bin 0 -> 4307 bytes .../class_nex_checkbox-members.html | 104 + .../doc/Documentation/class_nex_checkbox.html | 364 +++ .../doc/Documentation/class_nex_checkbox.js | 10 + .../class_nex_checkbox__coll__graph.map | 4 + .../class_nex_checkbox__coll__graph.md5 | 1 + .../class_nex_checkbox__coll__graph.png | Bin 0 -> 5123 bytes .../class_nex_checkbox__inherit__graph.map | 4 + .../class_nex_checkbox__inherit__graph.md5 | 1 + .../class_nex_checkbox__inherit__graph.png | Bin 0 -> 5123 bytes .../Documentation/class_nex_crop-members.html | 102 + .../doc/Documentation/class_nex_crop.html | 326 +++ .../doc/Documentation/class_nex_crop.js | 8 + .../class_nex_crop__coll__graph.map | 4 + .../class_nex_crop__coll__graph.md5 | 1 + .../class_nex_crop__coll__graph.png | Bin 0 -> 4377 bytes .../class_nex_crop__inherit__graph.map | 4 + .../class_nex_crop__inherit__graph.md5 | 1 + .../class_nex_crop__inherit__graph.png | Bin 0 -> 4377 bytes .../class_nex_d_s_button-members.html | 122 + .../Documentation/class_nex_d_s_button.html | 915 +++++++ .../doc/Documentation/class_nex_d_s_button.js | 28 + .../class_nex_d_s_button__coll__graph.map | 4 + .../class_nex_d_s_button__coll__graph.md5 | 1 + .../class_nex_d_s_button__coll__graph.png | Bin 0 -> 5157 bytes .../class_nex_d_s_button__inherit__graph.map | 4 + .../class_nex_d_s_button__inherit__graph.md5 | 1 + .../class_nex_d_s_button__inherit__graph.png | Bin 0 -> 5157 bytes .../class_nex_gauge-members.html | 103 + .../doc/Documentation/class_nex_gauge.html | 478 ++++ .../doc/Documentation/class_nex_gauge.js | 14 + .../class_nex_gauge__coll__graph.map | 3 + .../class_nex_gauge__coll__graph.md5 | 1 + .../class_nex_gauge__coll__graph.png | Bin 0 -> 3248 bytes .../class_nex_gauge__inherit__graph.map | 3 + .../class_nex_gauge__inherit__graph.md5 | 1 + .../class_nex_gauge__inherit__graph.png | Bin 0 -> 3248 bytes .../Documentation/class_nex_gpio-members.html | 96 + .../doc/Documentation/class_nex_gpio.html | 334 +++ .../doc/Documentation/class_nex_gpio.js | 9 + .../class_nex_hotspot-members.html | 98 + .../doc/Documentation/class_nex_hotspot.html | 181 ++ .../doc/Documentation/class_nex_hotspot.js | 4 + .../class_nex_hotspot__coll__graph.map | 4 + .../class_nex_hotspot__coll__graph.md5 | 1 + .../class_nex_hotspot__coll__graph.png | Bin 0 -> 4402 bytes .../class_nex_hotspot__inherit__graph.map | 4 + .../class_nex_hotspot__inherit__graph.md5 | 1 + .../class_nex_hotspot__inherit__graph.png | Bin 0 -> 4402 bytes .../class_nex_number-members.html | 116 + .../doc/Documentation/class_nex_number.html | 724 +++++ .../doc/Documentation/class_nex_number.js | 22 + .../class_nex_number__coll__graph.map | 4 + .../class_nex_number__coll__graph.md5 | 1 + .../class_nex_number__coll__graph.png | Bin 0 -> 4180 bytes .../class_nex_number__inherit__graph.map | 4 + .../class_nex_number__inherit__graph.md5 | 1 + .../class_nex_number__inherit__graph.png | Bin 0 -> 4180 bytes .../class_nex_object-members.html | 92 + .../doc/Documentation/class_nex_object.html | 184 ++ .../doc/Documentation/class_nex_object.js | 5 + .../class_nex_object__inherit__graph.map | 20 + .../class_nex_object__inherit__graph.md5 | 1 + .../class_nex_object__inherit__graph.png | Bin 0 -> 52519 bytes .../Documentation/class_nex_page-members.html | 99 + .../doc/Documentation/class_nex_page.html | 206 ++ .../doc/Documentation/class_nex_page.js | 5 + .../class_nex_page__coll__graph.map | 4 + .../class_nex_page__coll__graph.md5 | 1 + .../class_nex_page__coll__graph.png | Bin 0 -> 4329 bytes .../class_nex_page__inherit__graph.map | 4 + .../class_nex_page__inherit__graph.md5 | 1 + .../class_nex_page__inherit__graph.png | Bin 0 -> 4329 bytes .../class_nex_picture-members.html | 102 + .../doc/Documentation/class_nex_picture.html | 326 +++ .../doc/Documentation/class_nex_picture.js | 8 + .../class_nex_picture__coll__graph.map | 4 + .../class_nex_picture__coll__graph.md5 | 1 + .../class_nex_picture__coll__graph.png | Bin 0 -> 4257 bytes .../class_nex_picture__inherit__graph.map | 4 + .../class_nex_picture__inherit__graph.md5 | 1 + .../class_nex_picture__inherit__graph.png | Bin 0 -> 4257 bytes .../class_nex_progress_bar-members.html | 99 + .../Documentation/class_nex_progress_bar.html | 358 +++ .../Documentation/class_nex_progress_bar.js | 10 + .../class_nex_progress_bar__coll__graph.map | 3 + .../class_nex_progress_bar__coll__graph.md5 | 1 + .../class_nex_progress_bar__coll__graph.png | Bin 0 -> 3375 bytes ...class_nex_progress_bar__inherit__graph.map | 3 + ...class_nex_progress_bar__inherit__graph.md5 | 1 + ...class_nex_progress_bar__inherit__graph.png | Bin 0 -> 3375 bytes .../class_nex_radio-members.html | 104 + .../doc/Documentation/class_nex_radio.html | 364 +++ .../doc/Documentation/class_nex_radio.js | 10 + .../class_nex_radio__coll__graph.map | 4 + .../class_nex_radio__coll__graph.md5 | 1 + .../class_nex_radio__coll__graph.png | Bin 0 -> 4461 bytes .../class_nex_radio__inherit__graph.map | 4 + .../class_nex_radio__inherit__graph.md5 | 1 + .../class_nex_radio__inherit__graph.png | Bin 0 -> 4461 bytes .../Documentation/class_nex_rtc-members.html | 95 + .../doc/Documentation/class_nex_rtc.html | 305 +++ .../doc/Documentation/class_nex_rtc.js | 8 + .../class_nex_scrolltext-members.html | 120 + .../Documentation/class_nex_scrolltext.html | 853 ++++++ .../doc/Documentation/class_nex_scrolltext.js | 26 + .../class_nex_scrolltext__coll__graph.map | 4 + .../class_nex_scrolltext__coll__graph.md5 | 1 + .../class_nex_scrolltext__coll__graph.png | Bin 0 -> 4928 bytes .../class_nex_scrolltext__inherit__graph.map | 4 + .../class_nex_scrolltext__inherit__graph.md5 | 1 + .../class_nex_scrolltext__inherit__graph.png | Bin 0 -> 4928 bytes .../class_nex_slider-members.html | 112 + .../doc/Documentation/class_nex_slider.html | 614 +++++ .../doc/Documentation/class_nex_slider.js | 18 + .../class_nex_slider__coll__graph.map | 4 + .../class_nex_slider__coll__graph.md5 | 1 + .../class_nex_slider__coll__graph.png | Bin 0 -> 4287 bytes .../class_nex_slider__inherit__graph.map | 4 + .../class_nex_slider__inherit__graph.md5 | 1 + .../class_nex_slider__inherit__graph.png | Bin 0 -> 4287 bytes .../Documentation/class_nex_text-members.html | 114 + .../doc/Documentation/class_nex_text.html | 675 +++++ .../doc/Documentation/class_nex_text.js | 20 + .../class_nex_text__coll__graph.map | 4 + .../class_nex_text__coll__graph.md5 | 1 + .../class_nex_text__coll__graph.png | Bin 0 -> 3937 bytes .../class_nex_text__inherit__graph.map | 4 + .../class_nex_text__inherit__graph.md5 | 1 + .../class_nex_text__inherit__graph.png | Bin 0 -> 3937 bytes .../class_nex_timer-members.html | 106 + .../doc/Documentation/class_nex_timer.html | 442 +++ .../doc/Documentation/class_nex_timer.js | 12 + .../class_nex_timer__coll__graph.map | 4 + .../class_nex_timer__coll__graph.md5 | 1 + .../class_nex_timer__coll__graph.png | Bin 0 -> 4029 bytes .../class_nex_timer__inherit__graph.map | 4 + .../class_nex_timer__inherit__graph.md5 | 1 + .../class_nex_timer__inherit__graph.png | Bin 0 -> 4029 bytes ...65d08df4623ce8a146e73ff9204d5cb_cgraph.map | 3 + ...65d08df4623ce8a146e73ff9204d5cb_cgraph.md5 | 1 + ...65d08df4623ce8a146e73ff9204d5cb_cgraph.png | Bin 0 -> 3588 bytes ...6f1ae95ef40b8bc6f482185b1ec5175_cgraph.map | 3 + ...6f1ae95ef40b8bc6f482185b1ec5175_cgraph.md5 | 1 + ...6f1ae95ef40b8bc6f482185b1ec5175_cgraph.png | Bin 0 -> 3349 bytes .../class_nex_touch-members.html | 97 + .../doc/Documentation/class_nex_touch.html | 301 +++ .../doc/Documentation/class_nex_touch.js | 8 + .../class_nex_touch__coll__graph.map | 3 + .../class_nex_touch__coll__graph.md5 | 1 + .../class_nex_touch__coll__graph.png | Bin 0 -> 3040 bytes .../class_nex_touch__inherit__graph.map | 17 + .../class_nex_touch__inherit__graph.md5 | 1 + .../class_nex_touch__inherit__graph.png | Bin 0 -> 54013 bytes ...a1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.map | 3 + ...a1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.md5 | 1 + ...a1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.png | Bin 0 -> 3313 bytes ...56640c1078a553287a68bf792dd291_icgraph.map | 3 + ...56640c1078a553287a68bf792dd291_icgraph.md5 | 1 + ...56640c1078a553287a68bf792dd291_icgraph.png | Bin 0 -> 3589 bytes .../class_nex_upload-members.html | 93 + .../doc/Documentation/class_nex_upload.html | 207 ++ .../doc/Documentation/class_nex_upload.js | 6 + ...7c25b02bc9a674ab5beb447a3511a0_icgraph.map | 3 + ...7c25b02bc9a674ab5beb447a3511a0_icgraph.md5 | 1 + ...7c25b02bc9a674ab5beb447a3511a0_icgraph.png | Bin 0 -> 3437 bytes ...7d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.map | 3 + ...7d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.md5 | 1 + ...7d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.png | Bin 0 -> 3310 bytes .../class_nex_variable-members.html | 102 + .../doc/Documentation/class_nex_variable.html | 315 +++ .../doc/Documentation/class_nex_variable.js | 8 + .../class_nex_variable__coll__graph.map | 4 + .../class_nex_variable__coll__graph.md5 | 1 + .../class_nex_variable__coll__graph.png | Bin 0 -> 4358 bytes .../class_nex_variable__inherit__graph.map | 4 + .../class_nex_variable__inherit__graph.md5 | 1 + .../class_nex_variable__inherit__graph.png | Bin 0 -> 4358 bytes .../class_nex_waveform-members.html | 104 + .../doc/Documentation/class_nex_waveform.html | 513 ++++ .../doc/Documentation/class_nex_waveform.js | 15 + .../class_nex_waveform__coll__graph.map | 3 + .../class_nex_waveform__coll__graph.md5 | 1 + .../class_nex_waveform__coll__graph.png | Bin 0 -> 3245 bytes .../class_nex_waveform__inherit__graph.map | 3 + .../class_nex_waveform__inherit__graph.md5 | 1 + .../class_nex_waveform__inherit__graph.png | Bin 0 -> 3245 bytes .../doc/Documentation/classes.html | 98 + .../Documentation/classes__0_8js_source.html | 111 + .../doc/Documentation/closed.png | Bin 0 -> 132 bytes .../dir_03b339e07921b59492972343ca10817a.html | 86 + .../dir_03b339e07921b59492972343ca10817a.js | 4 + .../dir_13cb27e7707bad7dfc51e3225831c378.html | 116 + .../dir_13cb27e7707bad7dfc51e3225831c378.js | 19 + .../dir_13fdc5ade55290335ffe8ce184cef04a.html | 112 + .../dir_13fdc5ade55290335ffe8ce184cef04a.js | 17 + .../dir_2af451c22587252d0014dbc596e2e19a.html | 86 + .../dir_2af451c22587252d0014dbc596e2e19a.js | 4 + ...r_2af451c22587252d0014dbc596e2e19a_dep.map | 4 + ...r_2af451c22587252d0014dbc596e2e19a_dep.md5 | 1 + ...r_2af451c22587252d0014dbc596e2e19a_dep.png | Bin 0 -> 2993 bytes .../dir_2c7bb7af606a816dc5d12b9c9f93cdb0.html | 86 + .../dir_2c7bb7af606a816dc5d12b9c9f93cdb0.js | 4 + .../dir_2dae0a562653f78d59931f0e4b070746.html | 93 + .../dir_2dae0a562653f78d59931f0e4b070746.js | 6 + .../dir_362f30179229d7166f5b27ed31213abf.html | 86 + .../dir_362f30179229d7166f5b27ed31213abf.js | 4 + .../dir_37f22946f81336e96770e95cfc44f0d2.html | 86 + .../dir_37f22946f81336e96770e95cfc44f0d2.js | 4 + .../dir_3a828b7214103d705cc83e20f29bdad9.html | 86 + .../dir_3a828b7214103d705cc83e20f29bdad9.js | 4 + ...r_3a828b7214103d705cc83e20f29bdad9_dep.map | 4 + ...r_3a828b7214103d705cc83e20f29bdad9_dep.md5 | 1 + ...r_3a828b7214103d705cc83e20f29bdad9_dep.png | Bin 0 -> 3793 bytes .../dir_44a14d16127103fb968497cef18e2651.html | 86 + .../dir_44a14d16127103fb968497cef18e2651.js | 4 + .../dir_472f54fb1d9b74971d8e15d62f212bd3.html | 86 + .../dir_472f54fb1d9b74971d8e15d62f212bd3.js | 4 + ...r_472f54fb1d9b74971d8e15d62f212bd3_dep.map | 4 + ...r_472f54fb1d9b74971d8e15d62f212bd3_dep.md5 | 1 + ...r_472f54fb1d9b74971d8e15d62f212bd3_dep.png | Bin 0 -> 1089 bytes .../dir_4b43661efaa18af91f213d2681ebd37e.html | 86 + .../dir_4b43661efaa18af91f213d2681ebd37e.js | 4 + ...r_4b43661efaa18af91f213d2681ebd37e_dep.map | 4 + ...r_4b43661efaa18af91f213d2681ebd37e_dep.md5 | 1 + ...r_4b43661efaa18af91f213d2681ebd37e_dep.png | Bin 0 -> 1153 bytes .../dir_53835f0dfcb7abf9d97bc46682fab859.html | 86 + .../dir_53835f0dfcb7abf9d97bc46682fab859.js | 4 + ...r_53835f0dfcb7abf9d97bc46682fab859_dep.map | 4 + ...r_53835f0dfcb7abf9d97bc46682fab859_dep.md5 | 1 + ...r_53835f0dfcb7abf9d97bc46682fab859_dep.png | Bin 0 -> 2811 bytes .../dir_56b2cc69259505f347a71fbc57576a27.html | 86 + .../dir_56b2cc69259505f347a71fbc57576a27.js | 4 + .../dir_575635cc091aa47ec7be91b5cee17183.html | 86 + .../dir_575635cc091aa47ec7be91b5cee17183.js | 4 + .../dir_58f5ecea2e2241e947c6d0b6b0a6574c.html | 86 + .../dir_58f5ecea2e2241e947c6d0b6b0a6574c.js | 4 + ...r_58f5ecea2e2241e947c6d0b6b0a6574c_dep.map | 4 + ...r_58f5ecea2e2241e947c6d0b6b0a6574c_dep.md5 | 1 + ...r_58f5ecea2e2241e947c6d0b6b0a6574c_dep.png | Bin 0 -> 2502 bytes .../dir_5e6e68a9c696254bbe284f64da34b89b.html | 86 + .../dir_5e6e68a9c696254bbe284f64da34b89b.js | 4 + .../dir_64c3f06c647884d4700075d99ac5b054.html | 93 + .../dir_64c3f06c647884d4700075d99ac5b054.js | 6 + .../dir_67a124841349777013960f48b4ca08cd.html | 86 + .../dir_67a124841349777013960f48b4ca08cd.js | 4 + .../dir_6cfe794d384e1e9411c8ed4782275733.html | 93 + .../dir_6cfe794d384e1e9411c8ed4782275733.js | 6 + .../dir_72ff46b74e37ff2b17afdc4e77374e7e.html | 86 + .../dir_72ff46b74e37ff2b17afdc4e77374e7e.js | 4 + .../dir_745a997035d9a4e2cc7e167d495d0fea.html | 86 + .../dir_745a997035d9a4e2cc7e167d495d0fea.js | 4 + .../dir_774ce03e0cf0196adaf36811ea67e4fe.html | 86 + .../dir_774ce03e0cf0196adaf36811ea67e4fe.js | 4 + .../dir_78dd7a2fe86fb9861d4d5f2b99877d05.html | 86 + .../dir_78dd7a2fe86fb9861d4d5f2b99877d05.js | 4 + .../dir_7962cac16a99e8bbaaea18abede03fcb.html | 86 + .../dir_7962cac16a99e8bbaaea18abede03fcb.js | 4 + ...r_7962cac16a99e8bbaaea18abede03fcb_dep.map | 4 + ...r_7962cac16a99e8bbaaea18abede03fcb_dep.md5 | 1 + ...r_7962cac16a99e8bbaaea18abede03fcb_dep.png | Bin 0 -> 1210 bytes .../dir_79c8dee8d7e42a0e610f37121a84c3a9.html | 93 + .../dir_79c8dee8d7e42a0e610f37121a84c3a9.js | 6 + .../dir_88a597dd2562898b9ec6ba971ad7a8dd.html | 152 ++ .../dir_88a597dd2562898b9ec6ba971ad7a8dd.js | 37 + .../dir_88b085927d35ec3e069c44673959ea9f.html | 86 + .../dir_88b085927d35ec3e069c44673959ea9f.js | 4 + .../dir_8dcbebf38b229bfa7bb34d68bf824093.html | 86 + .../dir_8dcbebf38b229bfa7bb34d68bf824093.js | 4 + ...r_8dcbebf38b229bfa7bb34d68bf824093_dep.map | 4 + ...r_8dcbebf38b229bfa7bb34d68bf824093_dep.md5 | 1 + ...r_8dcbebf38b229bfa7bb34d68bf824093_dep.png | Bin 0 -> 1027 bytes .../dir_948fd774738d2193a0c62cde43f2828a.html | 93 + .../dir_948fd774738d2193a0c62cde43f2828a.js | 6 + .../dir_94f957df570c2c6f9ce99687820a8979.html | 86 + .../dir_94f957df570c2c6f9ce99687820a8979.js | 4 + .../dir_9bbf8342b0f9a157b7af08fe1412fc17.html | 86 + .../dir_9bbf8342b0f9a157b7af08fe1412fc17.js | 4 + ...r_9bbf8342b0f9a157b7af08fe1412fc17_dep.map | 4 + ...r_9bbf8342b0f9a157b7af08fe1412fc17_dep.md5 | 1 + ...r_9bbf8342b0f9a157b7af08fe1412fc17_dep.png | Bin 0 -> 1096 bytes .../dir_9d128665765fcd7de990374f9fac59bd.html | 86 + .../dir_9d128665765fcd7de990374f9fac59bd.js | 4 + .../dir_9eb8f3e2c1e15f49f92fa8db657a0769.html | 86 + .../dir_9eb8f3e2c1e15f49f92fa8db657a0769.js | 4 + .../dir_a121929b9544fab6b74c5c8052ef2940.html | 86 + .../dir_a121929b9544fab6b74c5c8052ef2940.js | 4 + .../dir_a1532c81ac7ffe94cd7af0c8adbf41fd.html | 86 + .../dir_a1532c81ac7ffe94cd7af0c8adbf41fd.js | 4 + .../dir_a239a53bd1465befb8d39895b56e9769.html | 86 + .../dir_a239a53bd1465befb8d39895b56e9769.js | 4 + .../dir_a48692e2802a027399b146b680655303.html | 86 + .../dir_a48692e2802a027399b146b680655303.js | 4 + ...r_a48692e2802a027399b146b680655303_dep.map | 4 + ...r_a48692e2802a027399b146b680655303_dep.md5 | 1 + ...r_a48692e2802a027399b146b680655303_dep.png | Bin 0 -> 1134 bytes .../dir_a6952c8402f497b804d4dc074e4d0d34.html | 86 + .../dir_a6952c8402f497b804d4dc074e4d0d34.js | 4 + .../dir_a6c6ee996e64a0a9573e0623ecba0f92.html | 86 + .../dir_a6c6ee996e64a0a9573e0623ecba0f92.js | 4 + .../dir_a844282e018cbc370849ee176c1e0170.html | 86 + .../dir_a844282e018cbc370849ee176c1e0170.js | 4 + .../dir_a923273c60bfbb58e031a3ae0355ae2a.html | 86 + .../dir_a923273c60bfbb58e031a3ae0355ae2a.js | 4 + .../dir_b3d36b9fee6f94e0e9351d3ce179e46a.html | 86 + .../dir_b3d36b9fee6f94e0e9351d3ce179e46a.js | 4 + .../dir_baeae3733d35da11d00f3bdec2bcf189.html | 86 + .../dir_baeae3733d35da11d00f3bdec2bcf189.js | 4 + .../dir_c918e8bf3fc71f849978cdb0d900e61c.html | 86 + .../dir_c918e8bf3fc71f849978cdb0d900e61c.js | 4 + ...r_c918e8bf3fc71f849978cdb0d900e61c_dep.map | 4 + ...r_c918e8bf3fc71f849978cdb0d900e61c_dep.md5 | 1 + ...r_c918e8bf3fc71f849978cdb0d900e61c_dep.png | Bin 0 -> 1054 bytes .../dir_ca98f8e97468ceedc413f5dac34c5fa4.html | 86 + .../dir_ca98f8e97468ceedc413f5dac34c5fa4.js | 4 + .../dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html | 86 + .../dir_ce36ac18ad3deaf5eae0bd2e09775a7d.js | 4 + ...r_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.map | 4 + ...r_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.md5 | 1 + ...r_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.png | Bin 0 -> 1117 bytes .../dir_d28a4824dc47e487b107a5db32ef43c4.html | 112 + .../dir_d28a4824dc47e487b107a5db32ef43c4.js | 17 + ...r_d28a4824dc47e487b107a5db32ef43c4_dep.map | 17 + ...r_d28a4824dc47e487b107a5db32ef43c4_dep.md5 | 1 + ...r_d28a4824dc47e487b107a5db32ef43c4_dep.png | Bin 0 -> 8149 bytes .../dir_d3260f5c9df29a04ffb2fb4dcbe826a0.html | 86 + .../dir_d3260f5c9df29a04ffb2fb4dcbe826a0.js | 4 + .../dir_d3f8111a063a965b5243b82006fc3654.html | 86 + .../dir_d3f8111a063a965b5243b82006fc3654.js | 4 + .../dir_d4ccf8ea657e68a549605ed7009e9385.html | 86 + .../dir_d4ccf8ea657e68a549605ed7009e9385.js | 4 + .../dir_da2f6b5bc4c7a05969000ccffa56cdba.html | 86 + .../dir_da2f6b5bc4c7a05969000ccffa56cdba.js | 4 + .../dir_ddeed1b19b98904c6aa1b48c4ffa871b.html | 146 + .../dir_ddeed1b19b98904c6aa1b48c4ffa871b.js | 34 + .../dir_decd89faf7b7ac7dc2c3b4f68098211d.html | 86 + .../dir_decd89faf7b7ac7dc2c3b4f68098211d.js | 4 + .../dir_e41b6c247808b0e8972a01b8d58acefc.html | 86 + .../dir_e41b6c247808b0e8972a01b8d58acefc.js | 4 + .../dir_e79857bc4faa7405ea054e9dea791d5c.html | 86 + .../dir_e79857bc4faa7405ea054e9dea791d5c.js | 4 + .../dir_f3d39c87bc262720c50d5e3885667b8a.html | 86 + .../dir_f3d39c87bc262720c50d5e3885667b8a.js | 4 + ...r_f3d39c87bc262720c50d5e3885667b8a_dep.map | 4 + ...r_f3d39c87bc262720c50d5e3885667b8a_dep.md5 | 1 + ...r_f3d39c87bc262720c50d5e3885667b8a_dep.png | Bin 0 -> 1108 bytes .../dir_f5fbbb3bb8d47423eec30b73de0af948.html | 152 ++ .../dir_f5fbbb3bb8d47423eec30b73de0af948.js | 37 + .../dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html | 86 + .../dir_f76977d9ffe8ddf3ad01f3d689aa5df4.js | 4 + ...r_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.map | 4 + ...r_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.md5 | 1 + ...r_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.png | Bin 0 -> 1110 bytes .../dir_fb9e35f5ea815af588c3e61147b6fddc.html | 86 + .../dir_fb9e35f5ea815af588c3e61147b6fddc.js | 4 + .../dir_fcb17c1a6a78f3a510af094d9b07469a.html | 86 + .../dir_fcb17c1a6a78f3a510af094d9b07469a.js | 4 + .../doc_2html_2dynsections_8js_source.html | 183 ++ .../doc_2html_2jquery_8js_source.html | 97 + .../doc_2html_2search_2search_8js_source.html | 877 ++++++ .../doc/Documentation/doxygen.css | 1440 ++++++++++ .../doc/Documentation/doxygen.png | Bin 0 -> 3796 bytes .../doc/Documentation/doxygen_8h.html | 99 + .../doc/Documentation/doxygen_8h_source.html | 91 + .../doc/Documentation/dynsections.js | 104 + .../Documentation/dynsections_8js_source.html | 183 ++ .../doc/Documentation/examples.html | 111 + .../doc/Documentation/examples.js | 18 + .../doc/Documentation/files.html | 215 ++ .../doc/Documentation/files.js | 55 + .../Documentation/files__0_8js_source.html | 90 + .../Documentation/files__1_8js_source.html | 134 + .../doc/Documentation/ftv2blank.png | Bin 0 -> 86 bytes .../doc/Documentation/ftv2doc.png | Bin 0 -> 745 bytes .../doc/Documentation/ftv2folderclosed.png | Bin 0 -> 591 bytes .../doc/Documentation/ftv2folderopen.png | Bin 0 -> 618 bytes .../doc/Documentation/ftv2lastnode.png | Bin 0 -> 86 bytes .../doc/Documentation/ftv2link.png | Bin 0 -> 745 bytes .../doc/Documentation/ftv2mlastnode.png | Bin 0 -> 245 bytes .../doc/Documentation/ftv2mnode.png | Bin 0 -> 245 bytes .../doc/Documentation/ftv2node.png | Bin 0 -> 86 bytes .../doc/Documentation/ftv2plastnode.png | Bin 0 -> 228 bytes .../doc/Documentation/ftv2pnode.png | Bin 0 -> 228 bytes .../doc/Documentation/ftv2splitbar.png | Bin 0 -> 315 bytes .../doc/Documentation/ftv2vertline.png | Bin 0 -> 86 bytes .../doc/Documentation/functions.html | 122 + .../functions__0_8js_source.html | 94 + .../functions__1_8js_source.html | 95 + .../functions__2_8js_source.html | 90 + .../functions__3_8js_source.html | 124 + .../functions__4_8js_source.html | 111 + .../functions__5_8js_source.html | 91 + .../functions__6_8js_source.html | 90 + .../functions__7_8js_source.html | 124 + .../functions__8_8js_source.html | 90 + .../functions__9_8js_source.html | 90 + .../doc/Documentation/functions_d.html | 125 + .../doc/Documentation/functions_dup.js | 13 + .../doc/Documentation/functions_e.html | 110 + .../doc/Documentation/functions_func.html | 122 + .../doc/Documentation/functions_func.js | 13 + .../doc/Documentation/functions_func_d.html | 125 + .../doc/Documentation/functions_func_e.html | 110 + .../doc/Documentation/functions_func_g.html | 264 ++ .../doc/Documentation/functions_func_n.html | 167 ++ .../doc/Documentation/functions_func_p.html | 113 + .../doc/Documentation/functions_func_r.html | 110 + .../doc/Documentation/functions_func_s.html | 265 ++ .../doc/Documentation/functions_func_w.html | 110 + .../doc/Documentation/functions_func_~.html | 110 + .../doc/Documentation/functions_g.html | 264 ++ .../doc/Documentation/functions_n.html | 167 ++ .../doc/Documentation/functions_p.html | 113 + .../doc/Documentation/functions_r.html | 110 + .../doc/Documentation/functions_s.html | 265 ++ .../doc/Documentation/functions_w.html | 110 + .../doc/Documentation/functions_~.html | 110 + .../doc/Documentation/globals.html | 117 + .../doc/Documentation/globals_defs.html | 106 + .../doc/Documentation/globals_func.html | 99 + .../doc/Documentation/globals_type.html | 94 + .../doc/Documentation/graph_legend.html | 141 + .../doc/Documentation/graph_legend.md5 | 1 + .../doc/Documentation/graph_legend.png | Bin 0 -> 14975 bytes .../doc/Documentation/group___component.html | 147 + .../doc/Documentation/group___component.js | 247 ++ .../Documentation/group___configuration.html | 119 + .../Documentation/group___configuration.js | 6 + .../doc/Documentation/group___core_a_p_i.html | 164 ++ .../doc/Documentation/group___core_a_p_i.js | 15 + .../doc/Documentation/group___core_a_p_i.map | 3 + .../doc/Documentation/group___core_a_p_i.md5 | 1 + .../doc/Documentation/group___core_a_p_i.png | Bin 0 -> 2776 bytes .../Documentation/group___get_started.html | 83 + .../Documentation/group___touch_event.html | 136 + .../doc/Documentation/group___touch_event.js | 13 + .../doc/Documentation/group___touch_event.map | 3 + .../doc/Documentation/group___touch_event.md5 | 1 + .../doc/Documentation/group___touch_event.png | Bin 0 -> 2786 bytes .../Documentation/groups__0_8js_source.html | 91 + .../Documentation/groups__1_8js_source.html | 90 + .../Documentation/groups__2_8js_source.html | 90 + .../Documentation/groups__3_8js_source.html | 90 + .../doc/Documentation/hierarchy.html | 113 + .../doc/Documentation/hierarchy.js | 27 + .../doc/Documentation/html/bc_s.png | Bin 0 -> 676 bytes .../doc/Documentation/html/bdwn.png | Bin 0 -> 147 bytes .../doc/Documentation/html/closed.png | Bin 0 -> 132 bytes .../doc/Documentation/html/doxygen.css | 1440 ++++++++++ .../doc/Documentation/html/doxygen.png | Bin 0 -> 3779 bytes .../doc/Documentation/html/dynsections.js | 97 + .../doc/Documentation/html/ftv2blank.png | Bin 0 -> 86 bytes .../doc/Documentation/html/ftv2doc.png | Bin 0 -> 746 bytes .../Documentation/html/ftv2folderclosed.png | Bin 0 -> 616 bytes .../doc/Documentation/html/ftv2folderopen.png | Bin 0 -> 597 bytes .../doc/Documentation/html/ftv2lastnode.png | Bin 0 -> 86 bytes .../doc/Documentation/html/ftv2link.png | Bin 0 -> 746 bytes .../doc/Documentation/html/ftv2mlastnode.png | Bin 0 -> 246 bytes .../doc/Documentation/html/ftv2mnode.png | Bin 0 -> 246 bytes .../doc/Documentation/html/ftv2node.png | Bin 0 -> 86 bytes .../doc/Documentation/html/ftv2plastnode.png | Bin 0 -> 229 bytes .../doc/Documentation/html/ftv2pnode.png | Bin 0 -> 229 bytes .../doc/Documentation/html/ftv2splitbar.png | Bin 0 -> 314 bytes .../doc/Documentation/html/ftv2vertline.png | Bin 0 -> 86 bytes .../doc/Documentation/html/index.html | 86 + .../doc/Documentation/html/jquery.js | 31 + .../doc/Documentation/html/nav_f.png | Bin 0 -> 153 bytes .../doc/Documentation/html/nav_g.png | Bin 0 -> 95 bytes .../doc/Documentation/html/nav_h.png | Bin 0 -> 98 bytes .../doc/Documentation/html/open.png | Bin 0 -> 123 bytes .../doc/Documentation/html/search/close.png | Bin 0 -> 273 bytes .../doc/Documentation/html/search/mag_sel.png | Bin 0 -> 563 bytes .../Documentation/html/search/nomatches.html | 12 + .../doc/Documentation/html/search/search.css | 271 ++ .../doc/Documentation/html/search/search.js | 791 ++++++ .../Documentation/html/search/search_l.png | Bin 0 -> 604 bytes .../Documentation/html/search/search_m.png | Bin 0 -> 158 bytes .../Documentation/html/search/search_r.png | Bin 0 -> 612 bytes .../doc/Documentation/html/sync_off.png | Bin 0 -> 853 bytes .../doc/Documentation/html/sync_on.png | Bin 0 -> 845 bytes .../doc/Documentation/html/tab_a.png | Bin 0 -> 142 bytes .../doc/Documentation/html/tab_b.png | Bin 0 -> 169 bytes .../doc/Documentation/html/tab_h.png | Bin 0 -> 177 bytes .../doc/Documentation/html/tab_s.png | Bin 0 -> 184 bytes .../doc/Documentation/html/tabs.css | 60 + .../html_2dynsections_8js_source.html | 183 ++ .../html_2jquery_8js_source.html | 97 + .../html_2search_2search_8js_source.html | 891 ++++++ .../doc/Documentation/index.html | 136 + .../doc/Documentation/inherit_graph_0.map | 21 + .../doc/Documentation/inherit_graph_0.md5 | 1 + .../doc/Documentation/inherit_graph_0.png | Bin 0 -> 52090 bytes .../doc/Documentation/inherit_graph_1.map | 3 + .../doc/Documentation/inherit_graph_1.md5 | 1 + .../doc/Documentation/inherit_graph_1.png | Bin 0 -> 1297 bytes .../doc/Documentation/inherits.html | 98 + .../doc/Documentation/jquery.js | 80 + .../doc/Documentation/jquery_8js_source.html | 97 + .../doc/Documentation/latex/Makefile | 21 + .../doc/Documentation/latex/doxygen.sty | 468 ++++ .../doc/Documentation/latex/make.bat | 25 + .../doc/Documentation/latex/refman.tex | 149 ++ .../doc/Documentation/license_8md_source.html | 95 + .../doc/Documentation/md_license.html | 84 + .../doc/Documentation/md_readme.html | 79 + .../doc/Documentation/md_release_notes.html | 103 + .../doc/Documentation/modules.html | 88 + .../doc/Documentation/modules.js | 7 + .../doc/Documentation/nav_f.png | Bin 0 -> 152 bytes .../doc/Documentation/nav_g.png | Bin 0 -> 95 bytes .../doc/Documentation/nav_h.png | Bin 0 -> 98 bytes .../doc/Documentation/navtree.css | 143 + .../doc/Documentation/navtree.js | 565 ++++ .../doc/Documentation/navtreeindex0.js | 253 ++ .../doc/Documentation/navtreeindex1.js | 241 ++ .../doc/Documentation/open.png | Bin 0 -> 123 bytes .../doc/Documentation/pages.html | 86 + .../Documentation/pages__0_8js_source.html | 90 + .../Documentation/pages__1_8js_source.html | 91 + .../doc/Documentation/readme_8md_source.html | 205 ++ .../release__notes_8md_source.html | 125 + .../doc/Documentation/resize.js | 97 + .../doc/Documentation/search_8js_source.html | 891 ++++++ .../doc/Documentation/sync_off.png | Bin 0 -> 837 bytes .../doc/Documentation/sync_on.png | Bin 0 -> 832 bytes .../doc/Documentation/tab_a.png | Bin 0 -> 139 bytes .../doc/Documentation/tab_b.png | Bin 0 -> 172 bytes .../doc/Documentation/tab_h.png | Bin 0 -> 180 bytes .../doc/Documentation/tab_s.png | Bin 0 -> 195 bytes .../doc/Documentation/tabs.css | 60 + .../Documentation/typedefs__0_8js_source.html | 90 + .../doc/Logo.png | Bin 0 -> 1659 bytes .../doc/doxygen_sqlite3.db | Bin 0 -> 101376 bytes .../doc/html/bc_s.png | Bin 0 -> 676 bytes .../doc/html/bdwn.png | Bin 0 -> 147 bytes .../doc/html/closed.png | Bin 0 -> 132 bytes .../doc/html/doxygen.css | 1440 ++++++++++ .../doc/html/doxygen.png | Bin 0 -> 3779 bytes .../doc/html/dynsections.js | 97 + .../doc/html/ftv2blank.png | Bin 0 -> 86 bytes .../doc/html/ftv2doc.png | Bin 0 -> 746 bytes .../doc/html/ftv2folderclosed.png | Bin 0 -> 616 bytes .../doc/html/ftv2folderopen.png | Bin 0 -> 597 bytes .../doc/html/ftv2lastnode.png | Bin 0 -> 86 bytes .../doc/html/ftv2link.png | Bin 0 -> 746 bytes .../doc/html/ftv2mlastnode.png | Bin 0 -> 246 bytes .../doc/html/ftv2mnode.png | Bin 0 -> 246 bytes .../doc/html/ftv2node.png | Bin 0 -> 86 bytes .../doc/html/ftv2plastnode.png | Bin 0 -> 229 bytes .../doc/html/ftv2pnode.png | Bin 0 -> 229 bytes .../doc/html/ftv2splitbar.png | Bin 0 -> 314 bytes .../doc/html/ftv2vertline.png | Bin 0 -> 86 bytes .../doc/html/index.html | 86 + .../doc/html/jquery.js | 31 + .../doc/html/nav_f.png | Bin 0 -> 153 bytes .../doc/html/nav_g.png | Bin 0 -> 95 bytes .../doc/html/nav_h.png | Bin 0 -> 98 bytes .../doc/html/open.png | Bin 0 -> 123 bytes .../doc/html/search/close.png | Bin 0 -> 273 bytes .../doc/html/search/mag_sel.png | Bin 0 -> 563 bytes .../doc/html/search/nomatches.html | 12 + .../doc/html/search/search.css | 271 ++ .../doc/html/search/search.js | 791 ++++++ .../doc/html/search/search_l.png | Bin 0 -> 604 bytes .../doc/html/search/search_m.png | Bin 0 -> 158 bytes .../doc/html/search/search_r.png | Bin 0 -> 612 bytes .../doc/html/sync_off.png | Bin 0 -> 853 bytes .../doc/html/sync_on.png | Bin 0 -> 845 bytes .../doc/html/tab_a.png | Bin 0 -> 142 bytes .../doc/html/tab_b.png | Bin 0 -> 169 bytes .../doc/html/tab_h.png | Bin 0 -> 177 bytes .../doc/html/tab_s.png | Bin 0 -> 184 bytes .../doc/html/tabs.css | 60 + .../doc/latex/Makefile | 21 + .../doc/latex/doxygen.sty | 468 ++++ .../doc/latex/make.bat | 25 + .../doc/latex/refman.tex | 149 ++ .../doxygen.doxy | 2382 +++++++++++++++++ lib/ITEADLIB_Arduino_Nextion-master/doxygen.h | 45 + .../examples/CompButton/CompButton.tft | Bin 0 -> 1378126 bytes .../examples/CompButton/CompButton_v0_32.HMI | Bin 0 -> 1328239 bytes .../examples/CompButton/CompButton_v0_32.ino | 95 + .../examples/CompCrop/CompCrop.tft | Bin 0 -> 574450 bytes .../examples/CompCrop/CompCrop_v0_32.HMI | Bin 0 -> 523414 bytes .../examples/CompCrop/CompCrop_v0_32.ino | 61 + .../CompDualStateButton.tft | Bin 0 -> 1390795 bytes .../CompDualStateButton_v0_32.HMI | Bin 0 -> 1328854 bytes .../CompDualStateButton_v0_32.ino | 96 + .../examples/CompGauge/CompGauge.tft | Bin 0 -> 1670359 bytes .../examples/CompGauge/CompGauge_v0_32.HMI | Bin 0 -> 1612759 bytes .../examples/CompGauge/CompGauge_v0_32.ino | 78 + .../examples/CompGpio/CompGpio.HMI | Bin 0 -> 9992 bytes .../examples/CompGpio/CompGpio.ino | 65 + .../examples/CompGpio/font.zi | Bin 0 -> 3612 bytes .../CompHotspot/CompHotSpot_v0_32.HMI | Bin 0 -> 317025 bytes .../examples/CompHotspot/CompHotspot.tft | Bin 0 -> 312527 bytes .../CompHotspot/CompHotspot_v0_32.ino | 73 + .../examples/CompNumber/CompNumber.tft | Bin 0 -> 1392495 bytes .../examples/CompNumber/CompNumber_v0_32.HMI | Bin 0 -> 1330499 bytes .../examples/CompNumber/CompNumber_v0_32.ino | 124 + .../examples/CompPage/CompPage.tft | Bin 0 -> 4274937 bytes .../examples/CompPage/CompPage_v0_32.HMI | Bin 0 -> 4224023 bytes .../examples/CompPage/CompPage_v0_32.ino | 75 + .../examples/CompPicture/CompPicture.tft | Bin 0 -> 340970 bytes .../CompPicture/CompPicture_v0_32.HMI | Bin 0 -> 289733 bytes .../CompPicture/CompPicture_v0_32.ino | 65 + .../CompProgressBar/CompProgressBar.tft | Bin 0 -> 1383534 bytes .../CompProgressBar/CompProgressBar_v0_32.HMI | Bin 0 -> 1324141 bytes .../CompProgressBar/CompProgressBar_v0_32.ino | 78 + .../examples/CompRtc/CompRtc.HMI | Bin 0 -> 7323 bytes .../examples/CompRtc/CompRtc.ino | 36 + .../examples/CompRtc/font.zi | Bin 0 -> 3612 bytes .../examples/CompSlider/CompSlider.tft | Bin 0 -> 115806 bytes .../examples/CompSlider/CompSlider_v0_32.HMI | Bin 0 -> 57491 bytes .../examples/CompSlider/CompSlider_v0_32.ino | 54 + .../examples/CompText/CompText.tft | Bin 0 -> 1387534 bytes .../examples/CompText/CompText_v0_32.HMI | Bin 0 -> 1330463 bytes .../examples/CompText/CompText_v0_32.ino | 135 + .../examples/CompTimer/CompTimer.tft | Bin 0 -> 68536 bytes .../examples/CompTimer/CompTimer_v0_32.HMI | Bin 0 -> 8478 bytes .../examples/CompTimer/CompTimer_v0_32.ino | 125 + .../examples/CompWaveform/CompWaveform.tft | Bin 0 -> 114924 bytes .../CompWaveform/CompWaveform_v0_32.HMI | Bin 0 -> 56617 bytes .../CompWaveform/CompWaveform_v0_32.ino | 68 + .../examples/Upload/Upload.ino | 10 + .../html/_nex_button_8cpp.html | 103 + .../html/_nex_button_8h.html | 119 + .../html/_nex_button_8h_source.html | 186 ++ .../html/_nex_checkbox_8cpp.html | 103 + .../html/_nex_checkbox_8h.html | 114 + .../html/_nex_checkbox_8h_source.html | 132 + .../html/_nex_config_8h.html | 125 + .../html/_nex_config_8h_source.html | 118 + .../html/_nex_crop_8cpp.html | 103 + .../html/_nex_crop_8h.html | 114 + .../html/_nex_crop_8h_source.html | 127 + .../html/_nex_dual_state_button_8cpp.html | 103 + .../html/_nex_dual_state_button_8h.html | 114 + .../_nex_dual_state_button_8h_source.html | 185 ++ .../html/_nex_gauge_8cpp.html | 103 + .../html/_nex_gauge_8h.html | 114 + .../html/_nex_gauge_8h_source.html | 144 + .../html/_nex_gpio_8cpp.html | 103 + .../html/_nex_gpio_8h_source.html | 130 + .../html/_nex_hardware_8cpp.html | 180 ++ .../html/_nex_hardware_8h.html | 129 + .../html/_nex_hardware_8h_source.html | 118 + .../html/_nex_hotspot_8cpp.html | 103 + .../html/_nex_hotspot_8h.html | 114 + .../html/_nex_hotspot_8h_source.html | 113 + .../html/_nex_number_8cpp.html | 103 + .../html/_nex_number_8h.html | 114 + .../html/_nex_number_8h_source.html | 168 ++ .../html/_nex_object_8cpp.html | 103 + .../html/_nex_object_8h.html | 114 + .../html/_nex_object_8h_source.html | 142 + .../html/_nex_page_8cpp.html | 103 + .../html/_nex_page_8h.html | 114 + .../html/_nex_page_8h_source.html | 116 + .../html/_nex_picture_8cpp.html | 103 + .../html/_nex_picture_8h.html | 114 + .../html/_nex_picture_8h_source.html | 126 + .../html/_nex_progress_bar_8cpp.html | 103 + .../html/_nex_progress_bar_8h.html | 114 + .../html/_nex_progress_bar_8h_source.html | 132 + .../html/_nex_radio_8cpp.html | 103 + .../html/_nex_radio_8h.html | 114 + .../html/_nex_radio_8h_source.html | 133 + .../html/_nex_rtc_8cpp.html | 103 + .../html/_nex_rtc_8h_source.html | 127 + .../html/_nex_scrolltext_8cpp.html | 103 + .../html/_nex_scrolltext_8h.html | 114 + .../html/_nex_scrolltext_8h_source.html | 183 ++ .../html/_nex_slider_8cpp.html | 103 + .../html/_nex_slider_8h.html | 114 + .../html/_nex_slider_8h_source.html | 155 ++ .../html/_nex_text_8cpp.html | 103 + .../html/_nex_text_8h.html | 114 + .../html/_nex_text_8h_source.html | 163 ++ .../html/_nex_timer_8cpp.html | 103 + .../html/_nex_timer_8h.html | 114 + .../html/_nex_timer_8h_source.html | 139 + .../html/_nex_touch_8cpp.html | 103 + .../html/_nex_touch_8h.html | 129 + .../html/_nex_touch_8h_source.html | 149 ++ .../html/_nex_upload_8cpp.html | 119 + .../html/_nex_upload_8h.html | 116 + .../html/_nex_upload_8h_source.html | 192 ++ .../html/_nex_variable_8cpp.html | 103 + .../html/_nex_variable_8h_source.html | 126 + .../html/_nex_waveform_8cpp.html | 103 + .../html/_nex_waveform_8h.html | 114 + .../html/_nex_waveform_8h_source.html | 147 + .../html/_nextion_8h.html | 128 + .../html/_nextion_8h_source.html | 145 + .../html/annotated.html | 124 + .../html/bc_s.png | Bin 0 -> 676 bytes .../html/bdwn.png | Bin 0 -> 147 bytes .../html/class_nex_button-members.html | 137 + .../html/class_nex_button.html | 840 ++++++ .../html/class_nex_button.png | Bin 0 -> 592 bytes .../html/class_nex_checkbox-members.html | 119 + .../html/class_nex_checkbox.html | 361 +++ .../html/class_nex_checkbox.png | Bin 0 -> 648 bytes .../html/class_nex_crop-members.html | 117 + .../html/class_nex_crop.html | 331 +++ .../html/class_nex_crop.png | Bin 0 -> 593 bytes .../html/class_nex_d_s_button-members.html | 137 + .../html/class_nex_d_s_button.html | 840 ++++++ .../html/class_nex_d_s_button.png | Bin 0 -> 592 bytes .../html/class_nex_gauge-members.html | 117 + .../html/class_nex_gauge.html | 459 ++++ .../html/class_nex_gauge.png | Bin 0 -> 449 bytes .../html/class_nex_gpio-members.html | 107 + .../html/class_nex_gpio.html | 306 +++ .../html/class_nex_hotspot-members.html | 113 + .../html/class_nex_hotspot.html | 202 ++ .../html/class_nex_hotspot.png | Bin 0 -> 602 bytes .../html/class_nex_number-members.html | 131 + .../html/class_nex_number.html | 671 +++++ .../html/class_nex_number.png | Bin 0 -> 613 bytes .../html/class_nex_object-members.html | 106 + .../html/class_nex_object.html | 218 ++ .../html/class_nex_object.png | Bin 0 -> 6143 bytes .../html/class_nex_page-members.html | 114 + .../html/class_nex_page.html | 223 ++ .../html/class_nex_page.png | Bin 0 -> 601 bytes .../html/class_nex_picture-members.html | 117 + .../html/class_nex_picture.html | 331 +++ .../html/class_nex_picture.png | Bin 0 -> 593 bytes .../html/class_nex_progress_bar-members.html | 113 + .../html/class_nex_progress_bar.html | 355 +++ .../html/class_nex_progress_bar.png | Bin 0 -> 523 bytes .../html/class_nex_radio-members.html | 119 + .../html/class_nex_radio.html | 361 +++ .../html/class_nex_radio.png | Bin 0 -> 588 bytes .../html/class_nex_rtc-members.html | 107 + .../html/class_nex_rtc.html | 287 ++ .../html/class_nex_scrolltext-members.html | 137 + .../html/class_nex_scrolltext.html | 792 ++++++ .../html/class_nex_scrolltext.png | Bin 0 -> 602 bytes .../html/class_nex_slider-members.html | 127 + .../html/class_nex_slider.html | 579 ++++ .../html/class_nex_slider.png | Bin 0 -> 598 bytes .../html/class_nex_text-members.html | 129 + .../html/class_nex_text.html | 630 +++++ .../html/class_nex_text.png | Bin 0 -> 581 bytes .../html/class_nex_timer-members.html | 121 + .../html/class_nex_timer.html | 431 +++ .../html/class_nex_timer.png | Bin 0 -> 589 bytes .../html/class_nex_touch-members.html | 112 + .../html/class_nex_touch.html | 325 +++ .../html/class_nex_touch.png | Bin 0 -> 3857 bytes .../html/class_nex_upload-members.html | 105 + .../html/class_nex_upload.html | 229 ++ .../html/class_nex_variable-members.html | 117 + .../html/class_nex_variable.html | 320 +++ .../html/class_nex_variable.png | Bin 0 -> 619 bytes .../html/class_nex_waveform-members.html | 118 + .../html/class_nex_waveform.html | 490 ++++ .../html/class_nex_waveform.png | Bin 0 -> 481 bytes .../html/classes.html | 109 + .../html/closed.png | Bin 0 -> 132 bytes .../html/doxygen.css | 1440 ++++++++++ .../html/doxygen.png | Bin 0 -> 3779 bytes .../html/doxygen_8h.html | 104 + .../html/doxygen_8h_source.html | 101 + .../html/dynsections.js | 97 + .../html/files.html | 149 ++ .../html/ftv2blank.png | Bin 0 -> 86 bytes .../html/ftv2doc.png | Bin 0 -> 746 bytes .../html/ftv2folderclosed.png | Bin 0 -> 616 bytes .../html/ftv2folderopen.png | Bin 0 -> 597 bytes .../html/ftv2lastnode.png | Bin 0 -> 86 bytes .../html/ftv2link.png | Bin 0 -> 746 bytes .../html/ftv2mlastnode.png | Bin 0 -> 246 bytes .../html/ftv2mnode.png | Bin 0 -> 246 bytes .../html/ftv2node.png | Bin 0 -> 86 bytes .../html/ftv2plastnode.png | Bin 0 -> 229 bytes .../html/ftv2pnode.png | Bin 0 -> 229 bytes .../html/ftv2splitbar.png | Bin 0 -> 314 bytes .../html/ftv2vertline.png | Bin 0 -> 86 bytes .../html/functions.html | 133 + .../html/functions_d.html | 136 + .../html/functions_e.html | 121 + .../html/functions_func.html | 133 + .../html/functions_func_d.html | 136 + .../html/functions_func_e.html | 121 + .../html/functions_func_g.html | 275 ++ .../html/functions_func_n.html | 178 ++ .../html/functions_func_p.html | 124 + .../html/functions_func_r.html | 121 + .../html/functions_func_s.html | 276 ++ .../html/functions_func_w.html | 121 + .../html/functions_func_~.html | 121 + .../html/functions_g.html | 275 ++ .../html/functions_n.html | 178 ++ .../html/functions_p.html | 124 + .../html/functions_r.html | 121 + .../html/functions_s.html | 276 ++ .../html/functions_w.html | 121 + .../html/functions_~.html | 121 + .../html/globals.html | 128 + .../html/globals_defs.html | 117 + .../html/globals_func.html | 110 + .../html/globals_type.html | 105 + .../html/group___component.html | 135 + .../html/group___configuration.html | 156 ++ .../html/group___core_a_p_i.html | 165 ++ .../html/group___get_started.html | 94 + .../html/group___touch_event.html | 165 ++ .../html/hierarchy.html | 124 + .../html/index.html | 155 ++ .../html/jquery.js | 31 + .../html/md_readme.html | 90 + .../html/md_release_notes.html | 105 + .../html/modules.html | 99 + .../html/nav_f.png | Bin 0 -> 153 bytes .../html/nav_g.png | Bin 0 -> 95 bytes .../html/nav_h.png | Bin 0 -> 98 bytes .../html/open.png | Bin 0 -> 123 bytes .../html/pages.html | 96 + .../html/search/all_0.html | 26 + .../html/search/all_0.js | 8 + .../html/search/all_1.html | 26 + .../html/search/all_1.js | 5 + .../html/search/all_2.html | 26 + .../html/search/all_2.js | 12 + .../html/search/all_3.html | 26 + .../html/search/all_3.js | 4 + .../html/search/all_4.html | 26 + .../html/search/all_4.js | 39 + .../html/search/all_5.html | 26 + .../html/search/all_5.js | 4 + .../html/search/all_6.html | 26 + .../html/search/all_6.js | 77 + .../html/search/all_7.html | 26 + .../html/search/all_7.js | 5 + .../html/search/all_8.html | 26 + .../html/search/all_8.js | 6 + .../html/search/all_9.html | 26 + .../html/search/all_9.js | 38 + .../html/search/all_a.html | 26 + .../html/search/all_a.js | 4 + .../html/search/all_b.html | 26 + .../html/search/all_b.js | 4 + .../html/search/all_c.html | 26 + .../html/search/all_c.js | 4 + .../html/search/classes_0.html | 26 + .../html/search/classes_0.js | 25 + .../html/search/close.png | Bin 0 -> 273 bytes .../html/search/files_0.html | 26 + .../html/search/files_0.js | 4 + .../html/search/files_1.html | 26 + .../html/search/files_1.js | 48 + .../html/search/functions_0.html | 26 + .../html/search/functions_0.js | 8 + .../html/search/functions_1.html | 26 + .../html/search/functions_1.js | 9 + .../html/search/functions_2.html | 26 + .../html/search/functions_2.js | 4 + .../html/search/functions_3.html | 26 + .../html/search/functions_3.js | 38 + .../html/search/functions_4.html | 26 + .../html/search/functions_4.js | 25 + .../html/search/functions_5.html | 26 + .../html/search/functions_5.js | 5 + .../html/search/functions_6.html | 26 + .../html/search/functions_6.js | 4 + .../html/search/functions_7.html | 26 + .../html/search/functions_7.js | 38 + .../html/search/functions_8.html | 26 + .../html/search/functions_8.js | 4 + .../html/search/functions_9.html | 26 + .../html/search/functions_9.js | 4 + .../html/search/groups_0.html | 26 + .../html/search/groups_0.js | 5 + .../html/search/groups_1.html | 26 + .../html/search/groups_1.js | 4 + .../html/search/groups_2.html | 26 + .../html/search/groups_2.js | 4 + .../html/search/groups_3.html | 26 + .../html/search/groups_3.js | 4 + .../html/search/mag_sel.png | Bin 0 -> 563 bytes .../html/search/nomatches.html | 12 + .../html/search/pages_0.html | 26 + .../html/search/pages_0.js | 4 + .../html/search/pages_1.html | 26 + .../html/search/pages_1.js | 5 + .../html/search/search.css | 271 ++ .../html/search/search.js | 805 ++++++ .../html/search/search_l.png | Bin 0 -> 604 bytes .../html/search/search_m.png | Bin 0 -> 158 bytes .../html/search/search_r.png | Bin 0 -> 612 bytes .../html/search/typedefs_0.html | 26 + .../html/search/typedefs_0.js | 4 + .../html/sync_off.png | Bin 0 -> 853 bytes .../html/sync_on.png | Bin 0 -> 845 bytes .../html/tab_a.png | Bin 0 -> 142 bytes .../html/tab_b.png | Bin 0 -> 169 bytes .../html/tab_h.png | Bin 0 -> 177 bytes .../html/tab_s.png | Bin 0 -> 184 bytes .../html/tabs.css | 60 + .../latex/Makefile | 21 + .../latex/_nex_button_8cpp.tex | 19 + .../latex/_nex_button_8h.tex | 37 + .../latex/_nex_checkbox_8cpp.tex | 19 + .../latex/_nex_checkbox_8h.tex | 25 + .../latex/_nex_config_8h.tex | 36 + .../latex/_nex_crop_8cpp.tex | 19 + .../latex/_nex_crop_8h.tex | 25 + .../latex/_nex_dual_state_button_8cpp.tex | 19 + .../latex/_nex_dual_state_button_8h.tex | 25 + .../latex/_nex_gauge_8cpp.tex | 19 + .../latex/_nex_gauge_8h.tex | 25 + .../latex/_nex_gpio_8cpp.tex | 19 + .../latex/_nex_hardware_8cpp.tex | 92 + .../latex/_nex_hardware_8h.tex | 40 + .../latex/_nex_hotspot_8cpp.tex | 19 + .../latex/_nex_hotspot_8h.tex | 25 + .../latex/_nex_number_8cpp.tex | 19 + .../latex/_nex_number_8h.tex | 25 + .../latex/_nex_object_8cpp.tex | 19 + .../latex/_nex_object_8h.tex | 25 + .../latex/_nex_page_8cpp.tex | 19 + .../latex/_nex_page_8h.tex | 25 + .../latex/_nex_picture_8cpp.tex | 19 + .../latex/_nex_picture_8h.tex | 25 + .../latex/_nex_progress_bar_8cpp.tex | 19 + .../latex/_nex_progress_bar_8h.tex | 25 + .../latex/_nex_radio_8cpp.tex | 19 + .../latex/_nex_radio_8h.tex | 25 + .../latex/_nex_rtc_8cpp.tex | 19 + .../latex/_nex_scrolltext_8cpp.tex | 19 + .../latex/_nex_scrolltext_8h.tex | 25 + .../latex/_nex_slider_8cpp.tex | 19 + .../latex/_nex_slider_8h.tex | 25 + .../latex/_nex_text_8cpp.tex | 19 + .../latex/_nex_text_8h.tex | 25 + .../latex/_nex_timer_8cpp.tex | 19 + .../latex/_nex_timer_8h.tex | 25 + .../latex/_nex_touch_8cpp.tex | 19 + .../latex/_nex_touch_8h.tex | 38 + .../latex/_nex_upload_8cpp.tex | 32 + .../latex/_nex_upload_8h.tex | 27 + .../latex/_nex_variable_8cpp.tex | 19 + .../latex/_nex_waveform_8cpp.tex | 19 + .../latex/_nex_waveform_8h.tex | 25 + .../latex/_nextion_8h.tex | 43 + .../latex/annotated.tex | 25 + .../latex/class_nex_button.eps | 203 ++ .../latex/class_nex_button.tex | 524 ++++ .../latex/class_nex_checkbox.eps | 203 ++ .../latex/class_nex_checkbox.tex | 179 ++ .../latex/class_nex_crop.eps | 203 ++ .../latex/class_nex_crop.tex | 150 ++ .../latex/class_nex_d_s_button.eps | 203 ++ .../latex/class_nex_d_s_button.tex | 524 ++++ .../latex/class_nex_gauge.eps | 197 ++ .../latex/class_nex_gauge.tex | 256 ++ .../latex/class_nex_gpio.tex | 141 + .../latex/class_nex_hotspot.eps | 203 ++ .../latex/class_nex_hotspot.tex | 55 + .../latex/class_nex_number.eps | 203 ++ .../latex/class_nex_number.tex | 400 +++ .../latex/class_nex_object.eps | 271 ++ .../latex/class_nex_object.tex | 81 + .../latex/class_nex_page.eps | 203 ++ .../latex/class_nex_page.tex | 72 + .../latex/class_nex_picture.eps | 203 ++ .../latex/class_nex_picture.tex | 150 ++ .../latex/class_nex_progress_bar.eps | 197 ++ .../latex/class_nex_progress_bar.tex | 180 ++ .../latex/class_nex_radio.eps | 203 ++ .../latex/class_nex_radio.tex | 179 ++ .../latex/class_nex_rtc.tex | 125 + .../latex/class_nex_scrolltext.eps | 203 ++ .../latex/class_nex_scrolltext.tex | 485 ++++ .../latex/class_nex_slider.eps | 203 ++ .../latex/class_nex_slider.tex | 332 +++ .../latex/class_nex_text.eps | 203 ++ .../latex/class_nex_text.tex | 365 +++ .../latex/class_nex_timer.eps | 203 ++ .../latex/class_nex_timer.tex | 222 ++ .../latex/class_nex_touch.eps | 257 ++ .../latex/class_nex_touch.tex | 144 + .../latex/class_nex_upload.tex | 78 + .../latex/class_nex_variable.eps | 203 ++ .../latex/class_nex_variable.tex | 144 + .../latex/class_nex_waveform.eps | 197 ++ .../latex/class_nex_waveform.tex | 274 ++ .../latex/doxygen.sty | 468 ++++ .../latex/doxygen_8h.tex | 18 + .../latex/files.tex | 52 + .../latex/group___component.tex | 50 + .../latex/group___configuration.tex | 44 + .../latex/group___core_a_p_i.tex | 69 + .../latex/group___get_started.tex | 10 + .../latex/group___touch_event.tex | 55 + .../latex/hierarchy.tex | 29 + .../latex/index.tex | 121 + .../latex/make.bat | 25 + .../latex/md_readme.tex | 0 .../latex/md_release_notes.tex | 31 + .../latex/modules.tex | 10 + .../latex/refman.tex | 243 ++ .../license.md | 9 + lib/ITEADLIB_Arduino_Nextion-master/readme.md | 119 + .../release_notes.md | 39 + .../version.txt | 1 + src/espmega_iot_core.cpp | 15 +- src/user_code.cpp | 16 +- src/user_code.hpp | 6 +- 1438 files changed, 117700 insertions(+), 18 deletions(-) create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexButton.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexButton.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexConfig.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexCrop.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexCrop.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexGauge.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexGauge.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexGpio.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexGpio.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexHardware.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexHardware.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexNumber.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexNumber.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexObject.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexObject.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexPage.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexPage.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexPicture.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexPicture.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexRadio.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexRadio.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexRtc.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexRtc.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexSlider.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexSlider.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexText.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexText.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexTimer.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexTimer.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexTouch.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexTouch.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexUpload.cpp.d create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexUpload.h.d create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexVariable.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexVariable.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.cpp create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/Nextion.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/Logo.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_2_comp_gpio_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_2_comp_waveform__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_2_comp_waveform__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform__v0__32_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_v0_32_8ino-example.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hotspot_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_number_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_object_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_page_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_picture_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_progress_bar_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_radio_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_rtc_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_rtc_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_rtc_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_rtc_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_scrolltext_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_slider_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_text_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_timer_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_touch_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_upload_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_variable_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8cpp__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8cpp__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8cpp__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8cpp_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_waveform_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__dep__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__dep__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__dep__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__incl.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__incl.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h__incl.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nextion_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_upload_8ino_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__1_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__2_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__3_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__4_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__5_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__6_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__7_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__8_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__9_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__a_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__b_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/all__c_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/annotated.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/annotated.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/bc_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/bdwn.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_button__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_checkbox__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_crop__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_d_s_button__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gauge__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gpio-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gpio.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_gpio.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_hotspot__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_number__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_object__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_page__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_picture__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_progress_bar__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_radio__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_rtc-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_rtc.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_rtc.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_scrolltext__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_slider__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_text__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_a365d08df4623ce8a146e73ff9204d5cb_cgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_a365d08df4623ce8a146e73ff9204d5cb_cgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_a365d08df4623ce8a146e73ff9204d5cb_cgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_ae6f1ae95ef40b8bc6f482185b1ec5175_cgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_ae6f1ae95ef40b8bc6f482185b1ec5175_cgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_timer_ae6f1ae95ef40b8bc6f482185b1ec5175_cgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_a4da1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_a4da1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_a4da1c4fcdfadb7eabfb9ccaba9ecad11_icgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_af656640c1078a553287a68bf792dd291_icgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_af656640c1078a553287a68bf792dd291_icgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_touch_af656640c1078a553287a68bf792dd291_icgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a017c25b02bc9a674ab5beb447a3511a0_icgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a017c25b02bc9a674ab5beb447a3511a0_icgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a017c25b02bc9a674ab5beb447a3511a0_icgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a97d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a97d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_upload_a97d6aeee29cfdeb1ec4dcec8d5a58396_cgraph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_variable__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__coll__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__coll__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__coll__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__inherit__graph.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__inherit__graph.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/class_nex_waveform__inherit__graph.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/classes.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/classes__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/closed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_03b339e07921b59492972343ca10817a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_03b339e07921b59492972343ca10817a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_13cb27e7707bad7dfc51e3225831c378.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_13cb27e7707bad7dfc51e3225831c378.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_13fdc5ade55290335ffe8ce184cef04a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_13fdc5ade55290335ffe8ce184cef04a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2af451c22587252d0014dbc596e2e19a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2af451c22587252d0014dbc596e2e19a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2af451c22587252d0014dbc596e2e19a_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2af451c22587252d0014dbc596e2e19a_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2af451c22587252d0014dbc596e2e19a_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2c7bb7af606a816dc5d12b9c9f93cdb0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2c7bb7af606a816dc5d12b9c9f93cdb0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2dae0a562653f78d59931f0e4b070746.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_2dae0a562653f78d59931f0e4b070746.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_362f30179229d7166f5b27ed31213abf.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_362f30179229d7166f5b27ed31213abf.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_37f22946f81336e96770e95cfc44f0d2.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_37f22946f81336e96770e95cfc44f0d2.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_3a828b7214103d705cc83e20f29bdad9.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_3a828b7214103d705cc83e20f29bdad9.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_3a828b7214103d705cc83e20f29bdad9_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_3a828b7214103d705cc83e20f29bdad9_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_3a828b7214103d705cc83e20f29bdad9_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_44a14d16127103fb968497cef18e2651.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_44a14d16127103fb968497cef18e2651.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_472f54fb1d9b74971d8e15d62f212bd3.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_472f54fb1d9b74971d8e15d62f212bd3.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_472f54fb1d9b74971d8e15d62f212bd3_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_472f54fb1d9b74971d8e15d62f212bd3_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_472f54fb1d9b74971d8e15d62f212bd3_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_4b43661efaa18af91f213d2681ebd37e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_4b43661efaa18af91f213d2681ebd37e.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_4b43661efaa18af91f213d2681ebd37e_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_4b43661efaa18af91f213d2681ebd37e_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_4b43661efaa18af91f213d2681ebd37e_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_53835f0dfcb7abf9d97bc46682fab859.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_53835f0dfcb7abf9d97bc46682fab859.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_53835f0dfcb7abf9d97bc46682fab859_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_53835f0dfcb7abf9d97bc46682fab859_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_53835f0dfcb7abf9d97bc46682fab859_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_56b2cc69259505f347a71fbc57576a27.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_56b2cc69259505f347a71fbc57576a27.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_575635cc091aa47ec7be91b5cee17183.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_575635cc091aa47ec7be91b5cee17183.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_58f5ecea2e2241e947c6d0b6b0a6574c.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_58f5ecea2e2241e947c6d0b6b0a6574c.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_58f5ecea2e2241e947c6d0b6b0a6574c_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_58f5ecea2e2241e947c6d0b6b0a6574c_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_58f5ecea2e2241e947c6d0b6b0a6574c_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_5e6e68a9c696254bbe284f64da34b89b.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_5e6e68a9c696254bbe284f64da34b89b.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_64c3f06c647884d4700075d99ac5b054.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_64c3f06c647884d4700075d99ac5b054.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_67a124841349777013960f48b4ca08cd.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_67a124841349777013960f48b4ca08cd.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_6cfe794d384e1e9411c8ed4782275733.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_6cfe794d384e1e9411c8ed4782275733.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_72ff46b74e37ff2b17afdc4e77374e7e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_72ff46b74e37ff2b17afdc4e77374e7e.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_745a997035d9a4e2cc7e167d495d0fea.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_745a997035d9a4e2cc7e167d495d0fea.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_774ce03e0cf0196adaf36811ea67e4fe.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_774ce03e0cf0196adaf36811ea67e4fe.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_78dd7a2fe86fb9861d4d5f2b99877d05.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_78dd7a2fe86fb9861d4d5f2b99877d05.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_7962cac16a99e8bbaaea18abede03fcb.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_7962cac16a99e8bbaaea18abede03fcb.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_7962cac16a99e8bbaaea18abede03fcb_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_7962cac16a99e8bbaaea18abede03fcb_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_7962cac16a99e8bbaaea18abede03fcb_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_79c8dee8d7e42a0e610f37121a84c3a9.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_79c8dee8d7e42a0e610f37121a84c3a9.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_88a597dd2562898b9ec6ba971ad7a8dd.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_88a597dd2562898b9ec6ba971ad7a8dd.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_88b085927d35ec3e069c44673959ea9f.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_88b085927d35ec3e069c44673959ea9f.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_8dcbebf38b229bfa7bb34d68bf824093.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_8dcbebf38b229bfa7bb34d68bf824093.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_8dcbebf38b229bfa7bb34d68bf824093_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_8dcbebf38b229bfa7bb34d68bf824093_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_8dcbebf38b229bfa7bb34d68bf824093_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_948fd774738d2193a0c62cde43f2828a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_948fd774738d2193a0c62cde43f2828a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_94f957df570c2c6f9ce99687820a8979.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_94f957df570c2c6f9ce99687820a8979.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9bbf8342b0f9a157b7af08fe1412fc17.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9bbf8342b0f9a157b7af08fe1412fc17.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9bbf8342b0f9a157b7af08fe1412fc17_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9bbf8342b0f9a157b7af08fe1412fc17_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9bbf8342b0f9a157b7af08fe1412fc17_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9d128665765fcd7de990374f9fac59bd.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9d128665765fcd7de990374f9fac59bd.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9eb8f3e2c1e15f49f92fa8db657a0769.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_9eb8f3e2c1e15f49f92fa8db657a0769.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a121929b9544fab6b74c5c8052ef2940.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a121929b9544fab6b74c5c8052ef2940.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a1532c81ac7ffe94cd7af0c8adbf41fd.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a1532c81ac7ffe94cd7af0c8adbf41fd.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a239a53bd1465befb8d39895b56e9769.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a239a53bd1465befb8d39895b56e9769.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a48692e2802a027399b146b680655303.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a48692e2802a027399b146b680655303.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a48692e2802a027399b146b680655303_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a48692e2802a027399b146b680655303_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a48692e2802a027399b146b680655303_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a6952c8402f497b804d4dc074e4d0d34.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a6952c8402f497b804d4dc074e4d0d34.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a6c6ee996e64a0a9573e0623ecba0f92.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a6c6ee996e64a0a9573e0623ecba0f92.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a844282e018cbc370849ee176c1e0170.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a844282e018cbc370849ee176c1e0170.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a923273c60bfbb58e031a3ae0355ae2a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_a923273c60bfbb58e031a3ae0355ae2a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_b3d36b9fee6f94e0e9351d3ce179e46a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_b3d36b9fee6f94e0e9351d3ce179e46a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_baeae3733d35da11d00f3bdec2bcf189.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_baeae3733d35da11d00f3bdec2bcf189.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_c918e8bf3fc71f849978cdb0d900e61c.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_c918e8bf3fc71f849978cdb0d900e61c.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_c918e8bf3fc71f849978cdb0d900e61c_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_c918e8bf3fc71f849978cdb0d900e61c_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_c918e8bf3fc71f849978cdb0d900e61c_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ca98f8e97468ceedc413f5dac34c5fa4.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ca98f8e97468ceedc413f5dac34c5fa4.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ce36ac18ad3deaf5eae0bd2e09775a7d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ce36ac18ad3deaf5eae0bd2e09775a7d.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ce36ac18ad3deaf5eae0bd2e09775a7d_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d28a4824dc47e487b107a5db32ef43c4.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d28a4824dc47e487b107a5db32ef43c4.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d3260f5c9df29a04ffb2fb4dcbe826a0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d3260f5c9df29a04ffb2fb4dcbe826a0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d3f8111a063a965b5243b82006fc3654.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d3f8111a063a965b5243b82006fc3654.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d4ccf8ea657e68a549605ed7009e9385.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_d4ccf8ea657e68a549605ed7009e9385.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_da2f6b5bc4c7a05969000ccffa56cdba.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_da2f6b5bc4c7a05969000ccffa56cdba.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ddeed1b19b98904c6aa1b48c4ffa871b.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_ddeed1b19b98904c6aa1b48c4ffa871b.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_decd89faf7b7ac7dc2c3b4f68098211d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_decd89faf7b7ac7dc2c3b4f68098211d.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_e41b6c247808b0e8972a01b8d58acefc.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_e41b6c247808b0e8972a01b8d58acefc.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_e79857bc4faa7405ea054e9dea791d5c.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_e79857bc4faa7405ea054e9dea791d5c.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f3d39c87bc262720c50d5e3885667b8a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f3d39c87bc262720c50d5e3885667b8a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f3d39c87bc262720c50d5e3885667b8a_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f3d39c87bc262720c50d5e3885667b8a_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f3d39c87bc262720c50d5e3885667b8a_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f5fbbb3bb8d47423eec30b73de0af948.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f5fbbb3bb8d47423eec30b73de0af948.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f76977d9ffe8ddf3ad01f3d689aa5df4.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f76977d9ffe8ddf3ad01f3d689aa5df4.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_f76977d9ffe8ddf3ad01f3d689aa5df4_dep.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_fb9e35f5ea815af588c3e61147b6fddc.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_fb9e35f5ea815af588c3e61147b6fddc.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_fcb17c1a6a78f3a510af094d9b07469a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dir_fcb17c1a6a78f3a510af094d9b07469a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doc_2html_2dynsections_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doc_2html_2jquery_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doc_2html_2search_2search_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doxygen.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doxygen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doxygen_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/doxygen_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dynsections.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/dynsections_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/examples.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/examples.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/files.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/files.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/files__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/files__1_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2blank.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2doc.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2folderclosed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2folderopen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2lastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2link.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2mlastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2mnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2node.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2plastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2pnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2splitbar.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/ftv2vertline.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__1_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__2_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__3_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__4_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__5_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__6_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__7_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__8_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions__9_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_dup.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_g.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_n.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_p.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_r.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_s.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_w.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_func_~.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_g.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_n.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_p.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_r.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_s.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_w.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/functions_~.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/globals.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/globals_defs.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/globals_func.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/globals_type.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/graph_legend.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/graph_legend.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/graph_legend.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___component.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___component.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___configuration.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___configuration.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___core_a_p_i.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___core_a_p_i.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___core_a_p_i.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___core_a_p_i.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___core_a_p_i.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___get_started.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___touch_event.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___touch_event.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___touch_event.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___touch_event.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/group___touch_event.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/groups__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/groups__1_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/groups__2_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/groups__3_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/hierarchy.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/hierarchy.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/bc_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/bdwn.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/closed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/doxygen.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/doxygen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/dynsections.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2blank.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2doc.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2folderclosed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2folderopen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2lastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2link.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2mlastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2mnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2node.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2plastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2pnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2splitbar.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/ftv2vertline.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/index.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/jquery.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/nav_f.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/nav_g.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/nav_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/open.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/close.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/mag_sel.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/nomatches.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/search.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/search.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/search_l.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/search_m.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/search/search_r.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/sync_off.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/sync_on.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/tab_a.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/tab_b.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/tab_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/tab_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html/tabs.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html_2dynsections_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html_2jquery_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/html_2search_2search_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/index.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_0.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_0.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_0.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_1.map create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_1.md5 create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherit_graph_1.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/inherits.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/jquery.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/jquery_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/latex/Makefile create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/latex/doxygen.sty create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/latex/make.bat create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/latex/refman.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/license_8md_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/md_license.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/md_readme.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/md_release_notes.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/modules.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/modules.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/nav_f.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/nav_g.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/nav_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/navtree.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/navtree.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/navtreeindex0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/navtreeindex1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/open.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/pages.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/pages__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/pages__1_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/readme_8md_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/release__notes_8md_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/resize.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/search_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/sync_off.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/sync_on.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/tab_a.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/tab_b.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/tab_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/tab_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/tabs.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/typedefs__0_8js_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/Logo.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/doxygen_sqlite3.db create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/bc_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/bdwn.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/closed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/doxygen.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/doxygen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/dynsections.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2blank.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2doc.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2folderclosed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2folderopen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2lastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2link.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2mlastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2mnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2node.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2plastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2pnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2splitbar.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/ftv2vertline.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/index.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/jquery.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/nav_f.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/nav_g.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/nav_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/open.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/close.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/mag_sel.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/nomatches.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/search.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/search.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/search_l.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/search_m.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/search/search_r.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/sync_off.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/sync_on.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/tab_a.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/tab_b.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/tab_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/tab_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/html/tabs.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/latex/Makefile create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/latex/doxygen.sty create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/latex/make.bat create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doc/latex/refman.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doxygen.doxy create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/doxygen.h create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompButton/CompButton.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompButton/CompButton_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompButton/CompButton_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompCrop/CompCrop.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompCrop/CompCrop_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompCrop/CompCrop_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompDualStateButton/CompDualStateButton.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompDualStateButton/CompDualStateButton_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompDualStateButton/CompDualStateButton_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGauge/CompGauge.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGauge/CompGauge_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGauge/CompGauge_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGpio/CompGpio.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGpio/CompGpio.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompGpio/font.zi create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompHotspot/CompHotSpot_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompHotspot/CompHotspot.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompHotspot/CompHotspot_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompNumber/CompNumber.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompNumber/CompNumber_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompNumber/CompNumber_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPage/CompPage.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPage/CompPage_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPage/CompPage_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPicture/CompPicture.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPicture/CompPicture_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompPicture/CompPicture_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompProgressBar/CompProgressBar.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompProgressBar/CompProgressBar_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompProgressBar/CompProgressBar_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompRtc/CompRtc.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompRtc/CompRtc.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompRtc/font.zi create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompSlider/CompSlider.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompSlider/CompSlider_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompSlider/CompSlider_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompText/CompText.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompText/CompText_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompText/CompText_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompTimer/CompTimer.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompTimer/CompTimer_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompTimer/CompTimer_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompWaveform/CompWaveform.tft create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompWaveform/CompWaveform_v0_32.HMI create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/CompWaveform/CompWaveform_v0_32.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/examples/Upload/Upload.ino create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_button_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_button_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_button_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_checkbox_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_checkbox_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_checkbox_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_config_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_config_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_crop_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_crop_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_crop_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_dual_state_button_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_dual_state_button_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_dual_state_button_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_gauge_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_gauge_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_gauge_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_gpio_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_gpio_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hardware_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hardware_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hardware_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hotspot_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hotspot_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_hotspot_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_number_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_number_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_number_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_object_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_object_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_object_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_page_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_page_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_page_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_picture_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_picture_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_picture_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_progress_bar_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_progress_bar_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_progress_bar_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_radio_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_radio_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_radio_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_rtc_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_rtc_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_scrolltext_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_scrolltext_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_scrolltext_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_slider_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_slider_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_slider_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_text_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_text_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_text_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_timer_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_timer_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_timer_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_touch_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_touch_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_touch_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_upload_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_upload_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_upload_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_variable_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_variable_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_waveform_8cpp.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_waveform_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nex_waveform_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nextion_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/_nextion_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/annotated.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/bc_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/bdwn.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_button-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_button.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_button.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_checkbox-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_checkbox.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_checkbox.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_crop-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_crop.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_crop.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_d_s_button-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_d_s_button.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_d_s_button.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_gauge-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_gauge.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_gauge.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_gpio-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_gpio.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_hotspot-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_hotspot.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_hotspot.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_number-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_number.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_number.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_object-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_object.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_object.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_page-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_page.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_page.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_picture-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_picture.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_picture.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_progress_bar-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_progress_bar.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_progress_bar.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_radio-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_radio.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_radio.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_rtc-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_rtc.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_scrolltext-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_scrolltext.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_scrolltext.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_slider-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_slider.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_slider.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_text-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_text.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_text.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_timer-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_timer.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_timer.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_touch-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_touch.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_touch.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_upload-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_upload.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_variable-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_variable.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_variable.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_waveform-members.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_waveform.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/class_nex_waveform.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/classes.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/closed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/doxygen.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/doxygen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/doxygen_8h.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/doxygen_8h_source.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/dynsections.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/files.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2blank.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2doc.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2folderclosed.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2folderopen.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2lastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2link.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2mlastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2mnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2node.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2plastnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2pnode.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2splitbar.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/ftv2vertline.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_d.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_e.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_g.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_n.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_p.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_r.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_s.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_w.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_func_~.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_g.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_n.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_p.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_r.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_s.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_w.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/functions_~.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/globals.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/globals_defs.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/globals_func.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/globals_type.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/group___component.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/group___configuration.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/group___core_a_p_i.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/group___get_started.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/group___touch_event.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/hierarchy.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/index.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/jquery.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/md_readme.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/md_release_notes.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/modules.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/nav_f.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/nav_g.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/nav_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/open.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/pages.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_1.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_2.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_2.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_3.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_3.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_4.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_4.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_5.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_5.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_6.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_6.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_7.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_7.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_8.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_8.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_9.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_9.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_a.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_a.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_b.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_b.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_c.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/all_c.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/classes_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/classes_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/close.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/files_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/files_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/files_1.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/files_1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_1.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_2.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_2.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_3.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_3.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_4.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_4.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_5.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_5.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_6.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_6.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_7.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_7.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_8.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_8.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_9.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/functions_9.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_1.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_2.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_2.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_3.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/groups_3.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/mag_sel.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/nomatches.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/pages_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/pages_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/pages_1.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/pages_1.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/search.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/search.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/search_l.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/search_m.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/search_r.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/typedefs_0.html create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/search/typedefs_0.js create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/sync_off.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/sync_on.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/tab_a.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/tab_b.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/tab_h.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/tab_s.png create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/html/tabs.css create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/Makefile create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_button_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_button_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_checkbox_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_checkbox_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_config_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_crop_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_crop_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_dual_state_button_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_dual_state_button_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_gauge_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_gauge_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_gpio_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_hardware_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_hardware_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_hotspot_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_hotspot_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_number_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_number_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_object_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_object_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_page_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_page_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_picture_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_picture_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_progress_bar_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_progress_bar_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_radio_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_radio_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_rtc_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_scrolltext_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_scrolltext_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_slider_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_slider_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_text_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_text_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_timer_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_timer_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_touch_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_touch_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_upload_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_upload_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_variable_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_waveform_8cpp.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nex_waveform_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/_nextion_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/annotated.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_button.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_button.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_checkbox.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_checkbox.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_crop.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_crop.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_d_s_button.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_d_s_button.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_gauge.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_gauge.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_gpio.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_hotspot.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_hotspot.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_number.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_number.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_object.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_object.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_page.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_page.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_picture.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_picture.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_progress_bar.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_progress_bar.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_radio.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_radio.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_rtc.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_scrolltext.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_scrolltext.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_slider.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_slider.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_text.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_text.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_timer.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_timer.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_touch.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_touch.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_upload.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_variable.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_variable.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_waveform.eps create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/class_nex_waveform.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/doxygen.sty create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/doxygen_8h.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/files.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/group___component.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/group___configuration.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/group___core_a_p_i.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/group___get_started.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/group___touch_event.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/hierarchy.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/index.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/make.bat create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/md_readme.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/md_release_notes.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/modules.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/latex/refman.tex create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/license.md create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/readme.md create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/release_notes.md create mode 100644 lib/ITEADLIB_Arduino_Nextion-master/version.txt diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexButton.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexButton.cpp new file mode 100644 index 0000000..643f96e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexButton.cpp @@ -0,0 +1,351 @@ +/** + * @file NexButton.cpp + * + * The implementation of class NexButton. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexButton.h" + +NexButton::NexButton(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint16_t NexButton::getText(char *buffer, uint16_t len) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".txt"; + sendCommand(cmd.c_str()); + return recvRetString(buffer,len); +} + +bool NexButton::setText(const char *buffer) +{ + String cmd; + cmd += getObjName(); + cmd += ".txt=\""; + cmd += buffer; + cmd += "\""; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + +uint32_t NexButton::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_press_background_color_bco2(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco2"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_press_background_color_bco2(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco2="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_press_font_color_pco2(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco2"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_press_font_color_pco2(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco2="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_place_xcen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".xcen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_place_xcen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".xcen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_place_ycen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".ycen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_place_ycen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".ycen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::getFont(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".font"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::setFont(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".font="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_background_cropi_picc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_press_background_crop_picc2(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc2"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_press_background_crop_picc2(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc2="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_background_image_pic(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_background_image_pic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexButton::Get_press_background_image_pic2(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pic2"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexButton::Set_press_background_image_pic2(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic2="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexButton.h b/lib/ITEADLIB_Arduino_Nextion-master/NexButton.h new file mode 100644 index 0000000..5c3395a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexButton.h @@ -0,0 +1,242 @@ +/** + * @file NexButton.h + * + * The definition of class NexButton. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXBUTTON_H__ +#define __NEXBUTTON_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexButton component. + * + * Commonly, you want to do something after push and pop it. It is recommanded that only + * call @ref NexTouch::attachPop to satisfy your purpose. + * + * @warning Please do not call @ref NexTouch::attachPush on this component, even though you can. + */ +class NexButton: public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexButton(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get text attribute of component. + * + * @param buffer - buffer storing text returned. + * @param len - length of buffer. + * @return The real length of text returned. + */ + uint16_t getText(char *buffer, uint16_t len); + + /** + * Set text attribute of component. + * + * @param buffer - text buffer terminated with '\0'. + * @return true if success, false for failure. + */ + bool setText(const char *buffer); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get bco2 attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_press_background_color_bco2(uint32_t *number); + + /** + * Set bco2 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_press_background_color_bco2(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get pco2 attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_press_font_color_pco2(uint32_t *number); + + /** + * Set pco2 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_press_font_color_pco2(uint32_t number); + + /** + * Get xcen attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_place_xcen(uint32_t *number); + + /** + * Set xcen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_xcen(uint32_t number); + + /** + * Get ycen attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_place_ycen(uint32_t *number); + + /** + * Set ycen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_ycen(uint32_t number); + + /** + * Get font attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t getFont(uint32_t *number); + + /** + * Set font attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setFont(uint32_t number); + + /** + * Get picc attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_background_cropi_picc(uint32_t *number); + + /** + * Set picc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_crop_picc(uint32_t number); + + /** + * Get picc2 attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_press_background_crop_picc2(uint32_t *number); + + /** + * Set picc2 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_press_background_crop_picc2(uint32_t number); + + /** + * Get pic attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_background_image_pic(uint32_t *number); + + /** + * Set pic attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_image_pic(uint32_t number); + + /** + * Get pic2 attribute of component + * + * @param number - buffer storing data return + * @return the length of the data + */ + uint32_t Get_press_background_image_pic2(uint32_t *number); + + /** + * Set pic2 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_press_background_image_pic2(uint32_t number); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXBUTTON_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.cpp new file mode 100644 index 0000000..a982ba5 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.cpp @@ -0,0 +1,99 @@ +/** + * @file NexCheckbox.cpp + * + * The implementation of class NexCheckbox. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexCheckbox.h" + +NexCheckbox::NexCheckbox(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint32_t NexCheckbox::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexCheckbox::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexCheckbox::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexCheckbox::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexCheckbox::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexCheckbox::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.h b/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.h new file mode 100644 index 0000000..eb468e9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexCheckbox.h @@ -0,0 +1,97 @@ +/** + * @file NexCheckbox.h + * + * The definition of class NexCheckbox. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXCHECKBOX_H__ +#define __NEXCHECKBOX_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexButton component. + * + * Commonly, you want to do something after push and pop it. It is recommanded that only + * call @ref NexTouch::attachPop to satisfy your purpose. + * + * @warning Please do not call @ref NexTouch::attachPush on this component, even though you can. + */ +class NexCheckbox: public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexCheckbox(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get val attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getValue(uint32_t *number); + + /** + * Set val attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXCHECKBOX_H__ */ \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexConfig.h b/lib/ITEADLIB_Arduino_Nextion-master/NexConfig.h new file mode 100644 index 0000000..c871e65 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexConfig.h @@ -0,0 +1,54 @@ +/** + * @file NexConfig.h + * + * Options for user can be found here. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXCONFIG_H__ +#define __NEXCONFIG_H__ + +/** + * @addtogroup Configuration + * @{ + */ + +/** + * Define DEBUG_SERIAL_ENABLE to enable debug serial. + * Comment it to disable debug serial. + */ +//#define DEBUG_SERIAL_ENABLE + +/** + * Define dbSerial for the output of debug messages. + */ +#define dbSerial Serial + +/** + * Define nexSerial for communicate with Nextion touch panel. + */ +#define nexSerial Serial2 + + +#ifdef DEBUG_SERIAL_ENABLE +#define dbSerialPrint(a) dbSerial.print(a) +#define dbSerialPrintln(a) dbSerial.println(a) +#define dbSerialBegin(a) dbSerial.begin(a) +#else +#define dbSerialPrint(a) do{}while(0) +#define dbSerialPrintln(a) do{}while(0) +#define dbSerialBegin(a) do{}while(0) +#endif + +/** + * @} + */ + +#endif /* #ifndef __NEXCONFIG_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.cpp new file mode 100644 index 0000000..840a926 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.cpp @@ -0,0 +1,68 @@ +/** + * @file NexCrop.cpp + * + * The implementation of class NexCrop. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexCrop.h" + +NexCrop::NexCrop(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexCrop::Get_background_crop_picc(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexCrop::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +bool NexCrop::getPic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexCrop::setPic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.h b/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.h new file mode 100644 index 0000000..d85f3ae --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexCrop.h @@ -0,0 +1,84 @@ +/** + * @file NexCrop.h + * + * The definition of class NexCrop. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXCROP_H__ +#define __NEXCROP_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexCrop component. + */ +class NexCrop: public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexCrop(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get the number of picture. + * + * @param number - an output parameter to save the number of picture. + * + * @retval true - success. + * @retval false - failed. + */ + bool Get_background_crop_picc(uint32_t *number); + + /** + * Set the number of picture. + * + * @param number - the number of picture. + * + * @retval true - success. + * @retval false - failed. + */ + bool Set_background_crop_picc(uint32_t number); + + /** + * Get the number of picture. + * + * @param number - an output parameter to save the number of picture. + * + * @retval true - success. + * @retval false - failed. + */ + bool getPic(uint32_t *number); + + /** + * Set the number of picture. + * + * @param number - the number of picture. + * + * @retval true - success. + * @retval false - failed. + */ + bool setPic(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXCROP_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.cpp new file mode 100644 index 0000000..840f4d9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.cpp @@ -0,0 +1,347 @@ +/** + * @file NexDualStateButton.cpp + * + * The implementation of class NexDSButton. + * + * @author huang xianming (email:) + * @date 2015/11/11 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexDualStateButton.h" + +NexDSButton::NexDSButton(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexDSButton::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint16_t NexDSButton::getText(char *buffer, uint16_t len) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".txt"; + sendCommand(cmd.c_str()); + return recvRetString(buffer,len); +} + +bool NexDSButton::setText(const char *buffer) +{ + String cmd; + cmd += getObjName(); + cmd += ".txt=\""; + cmd += buffer; + cmd += "\""; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state0_color_bco0(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco0"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state0_color_bco0(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco0="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state1_color_bco1(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco1"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state1_color_bco1(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco1="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_place_xcen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".xcen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_place_xcen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".xcen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_place_ycen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".ycen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_place_ycen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".ycen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::getFont(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".font"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::setFont(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".font="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state0_crop_picc0(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc0"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state0_crop_picc0(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc0="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state1_crop_picc1(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc1"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state1_crop_picc1(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc1="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state0_image_pic0(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pic0"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state0_image_pic0(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic0="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexDSButton::Get_state1_image_pic1(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pic1"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexDSButton::Set_state1_image_pic1(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic1="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.h b/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.h new file mode 100644 index 0000000..d3872e5 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexDualStateButton.h @@ -0,0 +1,243 @@ +/** + * @file NexDualStateButton.h + * + * The definition of class NexDSButton. + * + * @author huang xianming (email:) + * @date 2015/11/11 + * + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXDSBUTTON_H__ +#define __NEXDSBUTTON_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexDSButton component. + * + * Commonly, you want to do something after push and pop it. It is recommanded that only + * call @ref NexTouch::attachPop to satisfy your purpose. + * + * @warning Please do not call @ref NexTouch::attachPush on this component, even though you can. + */ +class NexDSButton: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexDSButton(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get number attribute of component. + * + * @param number - buffer storing text returned. + * @return The real length of text returned. + */ + bool getValue(uint32_t *number); + + /** + * Set number attribute of component. + * + * @param number - number buffer. + * @return true if success, false for failure. + */ + bool setValue(uint32_t number); + + /** + * Get text attribute of component. + * + * @param buffer - buffer storing text returned. + * @param len - length of buffer. + * @return The real length of text returned. + */ + uint16_t getText(char *buffer, uint16_t len); + + /** + * Set text attribute of component. + * + * @param buffer - text buffer terminated with '\0'. + * @return true if success, false for failure. + */ + bool setText(const char *buffer); + + /** + * Get bco0 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state0_color_bco0(uint32_t *number); + + /** + * Set bco0 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state0_color_bco0(uint32_t number); + + /** + * Get bco1 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state1_color_bco1(uint32_t *number); + + /** + * Set bco1 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state1_color_bco1(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get xcen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_xcen(uint32_t *number); + + /** + * Set xcen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_xcen(uint32_t number); + + /** + * Get ycen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_ycen(uint32_t *number); + + /** + * Set ycen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_ycen(uint32_t number); + + /** + * Get font attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getFont(uint32_t *number); + + /** + * Set font attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setFont(uint32_t number); + + /** + * Get picc0 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state0_crop_picc0(uint32_t *number); + + /** + * Set picc0 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state0_crop_picc0(uint32_t number); + + /** + * Get picc1 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state1_crop_picc1(uint32_t *number); + + /** + * Set picc1 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state1_crop_picc1(uint32_t number); + + /** + * Get pic0 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state0_image_pic0(uint32_t *number); + + /** + * Set pic0 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state0_image_pic0(uint32_t number); + + /** + * Get pic1 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_state1_image_pic1(uint32_t *number); + + /** + * Set pic1 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_state1_image_pic1(uint32_t number); +}; +/** + * @} + */ + + + +#endif /* #ifndef __NEXDSBUTTON_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.cpp new file mode 100644 index 0000000..8650746 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.cpp @@ -0,0 +1,158 @@ +/** + * @file NexGauge.cpp + * + * The implementation of class NexGauge. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexGauge.h" + +NexGauge::NexGauge(uint8_t pid, uint8_t cid, const char *name) + :NexObject(pid, cid, name) +{ +} + +bool NexGauge::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexGauge::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGauge::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexGauge::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGauge::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexGauge::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGauge::Get_pointer_thickness_wid(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".wid"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexGauge::Set_pointer_thickness_wid(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".wid="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGauge::Get_background_cropi_picc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexGauge::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.h b/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.h new file mode 100644 index 0000000..f333216 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexGauge.h @@ -0,0 +1,127 @@ +/** + * @file NexGauge.h + * + * The definition of class NexGauge. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXGAUGE_H__ +#define __NEXGAUGE_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexGauge component. + */ +class NexGauge: public NexObject +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexGauge(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get the value of gauge. + * + * @param number - an output parameter to save gauge's value. + * + * @retval true - success. + * @retval false - failed. + */ + bool getValue(uint32_t *number); + + /** + * Set the value of gauge. + * + * @param number - the value of gauge. + * + * @retval true - success. + * @retval false - failed. + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get wid attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_pointer_thickness_wid(uint32_t *number); + + /** + * Set wid attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_pointer_thickness_wid(uint32_t number); + + /** + * Get picc attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_cropi_picc(uint32_t *number); + + /** + * Set picc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_crop_picc(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXGAUGE_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.cpp new file mode 100644 index 0000000..5190152 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.cpp @@ -0,0 +1,105 @@ +/** + * @file NexGpio.cpp + * + * The implementation of class NexGpio. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexGpio.h" + +bool NexGpio::pin_mode(uint32_t port,uint32_t mode,uint32_t control_id) +{ + char buf; + String cmd; + + cmd += "cfgpio "; + buf = port + '0'; + cmd += buf; + cmd += ','; + buf = mode + '0'; + cmd += buf; + cmd += ','; + buf = control_id = '0'; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); + +} + +bool NexGpio::digital_write(uint32_t port,uint32_t value) +{ + String cmd; + char buf; + + cmd += "pio"; + buf = port + '0'; + cmd += buf; + cmd += '='; + buf = value + '0'; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGpio::digital_read(uint32_t port) +{ + uint32_t number; + char buf; + + String cmd = String("get "); + cmd += "pio"; + buf = port + '0'; + cmd += buf; + + sendCommand(cmd.c_str()); + recvRetNumber(&number); + return number; +} + +bool NexGpio::analog_write(uint32_t port,uint32_t value) +{ + char buf[10] = {0}; + char c; + String cmd; + + utoa(value, buf, 10); + cmd += "pwm"; + c = port + '0'; + cmd += c; + cmd += '='; + cmd += buf; + + Serial.print(cmd); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +bool NexGpio::set_pwmfreq(uint32_t value) +{ + char buf[10] = {0}; + String cmd; + + utoa(value, buf, 10); + cmd += "pwmf"; + cmd += '='; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexGpio::get_pwmfreq(uint32_t *number) +{ + String cmd = String("get pwmf"); + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.h b/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.h new file mode 100644 index 0000000..b4ea3c9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexGpio.h @@ -0,0 +1,102 @@ +/** + * @file NexGpio.h + * + * The definition of class NexGpio. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef _NEXGPIO_H +#define _NEXGPIO_H + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexGpio component. + */ + +class NexGpio +{ +public: + /** + * Set gpio mode + * + * @param port - the gpio port number + * @param mode - set gpio port mode(0--Pull on the input + * 1--the control input binding + * 2--Push-pull output + * 3--pwm output + * 4--open mode leakage) + * @param control_id - nextion controls id ,when the modeel is 1 to be valid + * @return true if success, false for failure + */ + + bool pin_mode(uint32_t port,uint32_t mode,uint32_t control_id); + + /** + * write a HIGH or a LOW value to a digital pin + * + * @param port - the gpio port number + * @param value - HIGH or LOW + * @return true if success, false for failure + */ + + bool digital_write(uint32_t port,uint32_t value); + + /** + * read a HIGH or a LOW value to a digital pin + * + * @param port - the gpio port number + * @return the value from a specified digital pin, either high or low + */ + + uint32_t digital_read(uint32_t port); + + /** + * writes an analog value (PWM wave) to a pin + * + * @param port - the gpio port number + * @param value - the duty cycle: between 0 (always off) and 100 (always on). + * @return true if success, false for failure + */ + + bool analog_write(uint32_t port,uint32_t value); + + /** + * writes pwm output frequency + * + * @param value - the frequency: between 1 and 65535 + * @return true if success, false for failure + */ + + bool set_pwmfreq(uint32_t value); + + /** + * read pwm output frequency + * + * @param number - the frequency + * @return true if success, false for failure + */ + + uint32_t get_pwmfreq(uint32_t *number); + +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXGPIO_H__ */ \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.cpp new file mode 100644 index 0000000..153afcf --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.cpp @@ -0,0 +1,267 @@ +/** + * @file NexHardware.cpp + * + * The implementation of base API for using Nextion. + * + * @author Wu Pengfei (email:) + * @date 2015/8/11 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexHardware.h" + +#define NEX_RET_CMD_FINISHED (0x01) +#define NEX_RET_EVENT_LAUNCHED (0x88) +#define NEX_RET_EVENT_UPGRADED (0x89) +#define NEX_RET_EVENT_TOUCH_HEAD (0x65) +#define NEX_RET_EVENT_POSITION_HEAD (0x67) +#define NEX_RET_EVENT_SLEEP_POSITION_HEAD (0x68) +#define NEX_RET_CURRENT_PAGE_ID_HEAD (0x66) +#define NEX_RET_STRING_HEAD (0x70) +#define NEX_RET_NUMBER_HEAD (0x71) +#define NEX_RET_INVALID_CMD (0x00) +#define NEX_RET_INVALID_COMPONENT_ID (0x02) +#define NEX_RET_INVALID_PAGE_ID (0x03) +#define NEX_RET_INVALID_PICTURE_ID (0x04) +#define NEX_RET_INVALID_FONT_ID (0x05) +#define NEX_RET_INVALID_BAUD (0x11) +#define NEX_RET_INVALID_VARIABLE (0x1A) +#define NEX_RET_INVALID_OPERATION (0x1B) + +/* + * Receive uint32_t data. + * + * @param number - save uint32_t data. + * @param timeout - set timeout time. + * + * @retval true - success. + * @retval false - failed. + * + */ +bool recvRetNumber(uint32_t *number, uint32_t timeout) +{ + bool ret = false; + uint8_t temp[8] = {0}; + + if (!number) + { + goto __return; + } + + nexSerial.setTimeout(timeout); + if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp))) + { + goto __return; + } + + if (temp[0] == NEX_RET_NUMBER_HEAD + && temp[5] == 0xFF + && temp[6] == 0xFF + && temp[7] == 0xFF + ) + { + *number = ((uint32_t)temp[4] << 24) | ((uint32_t)temp[3] << 16) | (temp[2] << 8) | (temp[1]); + ret = true; + } + +__return: + + if (ret) + { + dbSerialPrint("recvRetNumber :"); + dbSerialPrintln(*number); + } + else + { + dbSerialPrintln("recvRetNumber err"); + } + + return ret; +} + + +/* + * Receive string data. + * + * @param buffer - save string data. + * @param len - string buffer length. + * @param timeout - set timeout time. + * + * @return the length of string buffer. + * + */ +uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout) +{ + uint16_t ret = 0; + bool str_start_flag = false; + uint8_t cnt_0xff = 0; + String temp = String(""); + uint8_t c = 0; + long start; + + if (!buffer || len == 0) + { + goto __return; + } + + start = millis(); + while (millis() - start <= timeout) + { + while (nexSerial.available()) + { + c = nexSerial.read(); + if (str_start_flag) + { + if (0xFF == c) + { + cnt_0xff++; + if (cnt_0xff >= 3) + { + break; + } + } + else + { + temp += (char)c; + } + } + else if (NEX_RET_STRING_HEAD == c) + { + str_start_flag = true; + } + } + + if (cnt_0xff >= 3) + { + break; + } + } + + ret = temp.length(); + ret = ret > len ? len : ret; + strncpy(buffer, temp.c_str(), ret); + +__return: + + dbSerialPrint("recvRetString["); + dbSerialPrint(temp.length()); + dbSerialPrint(","); + dbSerialPrint(temp); + dbSerialPrintln("]"); + + return ret; +} + +/* + * Send command to Nextion. + * + * @param cmd - the string of command. + */ +void sendCommand(const char* cmd) +{ + while (nexSerial.available()) + { + nexSerial.read(); + } + + nexSerial.print(cmd); + nexSerial.write(0xFF); + nexSerial.write(0xFF); + nexSerial.write(0xFF); +} + + +/* + * Command is executed successfully. + * + * @param timeout - set timeout time. + * + * @retval true - success. + * @retval false - failed. + * + */ +bool recvRetCommandFinished(uint32_t timeout) +{ + bool ret = false; + uint8_t temp[4] = {0}; + + nexSerial.setTimeout(timeout); + if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp))) + { + ret = false; + } + + if (temp[0] == NEX_RET_CMD_FINISHED + && temp[1] == 0xFF + && temp[2] == 0xFF + && temp[3] == 0xFF + ) + { + ret = true; + } + + if (ret) + { + dbSerialPrintln("recvRetCommandFinished ok"); + } + else + { + dbSerialPrintln("recvRetCommandFinished err"); + } + + return ret; +} + + +bool nexInit(void) +{ + bool ret1 = false; + bool ret2 = false; + + dbSerialBegin(9600); + nexSerial.begin(9600); + sendCommand(""); + sendCommand("bkcmd=1"); + ret1 = recvRetCommandFinished(); + sendCommand("page 0"); + ret2 = recvRetCommandFinished(); + return ret1 && ret2; +} + +void nexLoop(NexTouch *nex_listen_list[]) +{ + static uint8_t __buffer[10]; + + uint16_t i; + uint8_t c; + + while (nexSerial.available() > 0) + { + delay(10); + c = nexSerial.read(); + + if (NEX_RET_EVENT_TOUCH_HEAD == c) + { + if (nexSerial.available() >= 6) + { + __buffer[0] = c; + for (i = 1; i < 7; i++) + { + __buffer[i] = nexSerial.read(); + } + __buffer[i] = 0x00; + + if (0xFF == __buffer[4] && 0xFF == __buffer[5] && 0xFF == __buffer[6]) + { + NexTouch::iterate(nex_listen_list, __buffer[1], __buffer[2], (int32_t)__buffer[3]); + } + + } + } + } +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.h b/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.h new file mode 100644 index 0000000..a263c3d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexHardware.h @@ -0,0 +1,55 @@ +/** + * @file NexHardware.h + * + * The definition of base API for using Nextion. + * + * @author Wu Pengfei (email:) + * @date 2015/8/11 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXHARDWARE_H__ +#define __NEXHARDWARE_H__ +#include +#include "NexConfig.h" +#include "NexTouch.h" + +/** + * @addtogroup CoreAPI + * @{ + */ + +/** + * Init Nextion. + * + * @return true if success, false for failure. + */ +bool nexInit(void); + +/** + * Listen touch event and calling callbacks attached before. + * + * Supports push and pop at present. + * + * @param nex_listen_list - index to Nextion Components list. + * @return none. + * + * @warning This function must be called repeatedly to response touch events + * from Nextion touch panel. Actually, you should place it in your loop function. + */ +void nexLoop(NexTouch *nex_listen_list[]); + +/** + * @} + */ + +bool recvRetNumber(uint32_t *number, uint32_t timeout = 100); +uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout = 100); +void sendCommand(const char* cmd); +bool recvRetCommandFinished(uint32_t timeout = 100); + +#endif /* #ifndef __NEXHARDWARE_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.cpp new file mode 100644 index 0000000..26bb228 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.cpp @@ -0,0 +1,22 @@ +/** + * @file NexHotspot.cpp + * + * The implementation of class NexHotspot. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexHotspot.h" + +NexHotspot::NexHotspot(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.h b/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.h new file mode 100644 index 0000000..f500420 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexHotspot.h @@ -0,0 +1,43 @@ +/** + * @file NexHotspot.h + * + * The definition of class NexHotspot. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXHOTSPOT_H__ +#define __NEXHOTSPOT_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexHotspot component. + */ +class NexHotspot: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexHotspot(uint8_t pid, uint8_t cid, const char *name); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXHOTSPOT_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.cpp new file mode 100644 index 0000000..fecfadc --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.cpp @@ -0,0 +1,266 @@ +/** + * @file NexNumber.cpp + * + * The implementation of class NexNumber. + * + * @author huang xianming (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexNumber.h" + +NexNumber::NexNumber(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexNumber::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_place_xcen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".xcen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_place_xcen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".xcen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_place_ycen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".ycen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_place_ycen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".ycen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::getFont(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".font"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::setFont(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".font="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_number_lenth(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".lenth"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_number_lenth(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".lenth="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_background_crop_picc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexNumber::Get_background_image_pic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexNumber::Set_background_image_pic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.h b/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.h new file mode 100644 index 0000000..23f2115 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexNumber.h @@ -0,0 +1,187 @@ +/** + * @file NexNumber.h + * + * The definition of class NexNumber. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXNUMBER_H__ +#define __NEXNUMBER_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexNumber component. + */ +class NexNumber: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexNumber(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get number attribute of component. + * + * @param number - buffer storing text returned. + * @return The real length of text returned. + */ + bool getValue(uint32_t *number); + + /** + * Set number attribute of component. + * + * @param number - number buffer. + * @return true if success, false for failure. + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get xcen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_xcen(uint32_t *number); + + /** + * Set xcen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_xcen(uint32_t number); + + /** + * Get ycen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_ycen(uint32_t *number); + + /** + * Set ycen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_ycen(uint32_t number); + + /** + * Get font attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getFont(uint32_t *number); + + /** + * Set font attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setFont(uint32_t number); + + /** + * Get lenth attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_number_lenth(uint32_t *number); + + /** + * Set lenth attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_number_lenth(uint32_t number); + + /** + * Get picc attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_crop_picc(uint32_t *number); + + /** + * Set picc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_crop_picc(uint32_t number); + + /** + * Get pic attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_image_pic(uint32_t *number); + + /** + * Set pic attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_image_pic(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXNUMBER_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexObject.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexObject.cpp new file mode 100644 index 0000000..a247d72 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexObject.cpp @@ -0,0 +1,58 @@ +/** + * @file NexObject.cpp + * + * The implementation of class NexObject. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexObject.h" + +NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name) +{ + this->__pid = pid; + this->__cid = cid; + this->__name = name; +} + +uint8_t NexObject::getObjPid(void) +{ + return __pid; +} + +uint8_t NexObject::getObjCid(void) +{ + return __cid; +} + +const char* NexObject::getObjName(void) +{ + return __name; +} + +void NexObject::printObjInfo(void) +{ + dbSerialPrint("["); + dbSerialPrint((uint32_t)this); + dbSerialPrint(":"); + dbSerialPrint(__pid); + dbSerialPrint(","); + dbSerialPrint(__cid); + dbSerialPrint(","); + if (__name) + { + dbSerialPrint(__name); + } + else + { + dbSerialPrint("(null)"); + } + dbSerialPrintln("]"); +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexObject.h b/lib/ITEADLIB_Arduino_Nextion-master/NexObject.h new file mode 100644 index 0000000..cfc55b5 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexObject.h @@ -0,0 +1,84 @@ +/** + * @file NexObject.h + * + * The definition of class NexObject. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXOBJECT_H__ +#define __NEXOBJECT_H__ +#include +#include "NexConfig.h" +/** + * @addtogroup CoreAPI + * @{ + */ + +/** + * Root class of all Nextion components. + * + * Provides the essential attributes of a Nextion component and the methods accessing + * them. At least, Page ID(pid), Component ID(pid) and an unique name are needed for + * creating a component in Nexiton library. + */ +class NexObject +{ +public: /* methods */ + + /** + * Constructor. + * + * @param pid - page id. + * @param cid - component id. + * @param name - pointer to an unique name in range of all components. + */ + NexObject(uint8_t pid, uint8_t cid, const char *name); + + /** + * Print current object'address, page id, component id and name. + * + * @warning this method does nothing, unless debug message enabled. + */ + void printObjInfo(void); + +protected: /* methods */ + + /* + * Get page id. + * + * @return the id of page. + */ + uint8_t getObjPid(void); + + /* + * Get component id. + * + * @return the id of component. + */ + uint8_t getObjCid(void); + + /* + * Get component name. + * + * @return the name of component. + */ + const char *getObjName(void); + +private: /* data */ + uint8_t __pid; /* Page ID */ + uint8_t __cid; /* Component ID */ + const char *__name; /* An unique name */ +}; +/** + * @} + */ + +#endif /* #ifndef __NEXOBJECT_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexPage.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexPage.cpp new file mode 100644 index 0000000..06a7227 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexPage.cpp @@ -0,0 +1,38 @@ +/** + * @file NexPage.cpp + * + * The implementation of class NexPage. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexPage.h" + +NexPage::NexPage(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexPage::show(void) +{ + uint8_t buffer[4] = {0}; + + const char *name = getObjName(); + if (!name) + { + return false; + } + + String cmd = String("page "); + cmd += name; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexPage.h b/lib/ITEADLIB_Arduino_Nextion-master/NexPage.h new file mode 100644 index 0000000..c36a80a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexPage.h @@ -0,0 +1,50 @@ +/** + * @file NexPage.h + * + * The definition of class NexPage. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXPAGE_H__ +#define __NEXPAGE_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * A special component , which can contain other components such as NexButton, + * NexText and NexWaveform, etc. + */ +class NexPage: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexPage(uint8_t pid, uint8_t cid, const char *name); + + /** + * Show itself. + * + * @return true if success, false for faileure. + */ + bool show(void); +}; +/** + * @} + */ + +#endif /* #ifndef __NEXPAGE_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.cpp new file mode 100644 index 0000000..9b84c2c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.cpp @@ -0,0 +1,67 @@ +/** + * @file NexPicture.cpp + * + * The implementation of class NexPicture. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexPicture.h" + +NexPicture::NexPicture(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexPicture::Get_background_image_pic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexPicture::Set_background_image_pic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +bool NexPicture::getPic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexPicture::setPic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.h b/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.h new file mode 100644 index 0000000..0d00c3c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexPicture.h @@ -0,0 +1,83 @@ +/** + * @file NexPicture.h + * + * The definition of class NexPicture. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXPICTURE_H__ +#define __NEXPICTURE_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexPicture component. + */ +class NexPicture: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexPicture(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get picture's number. + * + * @param number - an output parameter to save picture number. + * + * @retval true - success. + * @retval false - failed. + */ + bool Get_background_image_pic(uint32_t *number); + + /** + * Set picture's number. + * + * @param number -the picture number. + * + * @retval true - success. + * @retval false - failed. + */ + bool Set_background_image_pic(uint32_t number); + + /** + * Get picture's number. + * + * @param number - an output parameter to save picture number. + * + * @retval true - success. + * @retval false - failed. + */ + bool getPic(uint32_t *number); + + /** + * Set picture's number. + * + * @param number -the picture number. + * + * @retval true - success. + * @retval false - failed. + */ + bool setPic(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXPICTURE_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.cpp new file mode 100644 index 0000000..c9e8ada --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.cpp @@ -0,0 +1,100 @@ +/** + * @file NexProgressBar.cpp + * + * The implementation of class NexProgressBar. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexProgressBar.h" + +NexProgressBar::NexProgressBar(uint8_t pid, uint8_t cid, const char *name) + :NexObject(pid, cid, name) +{ +} + +bool NexProgressBar::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexProgressBar::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexProgressBar::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexProgressBar::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexProgressBar::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexProgressBar::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.h b/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.h new file mode 100644 index 0000000..24aa177 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexProgressBar.h @@ -0,0 +1,95 @@ +/** + * @file NexProgressBar.h + * + * The definition of class NexProgressBar. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXPROGRESSBAR_H__ +#define __NEXPROGRESSBAR_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexProgressBar component. + */ +class NexProgressBar: public NexObject +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexProgressBar(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get the value of progress bar. + * + * @param number - an output parameter to save the value of porgress bar. + * + * @retval true - success. + * @retval false - failed. + */ + bool getValue(uint32_t *number); + + /** + * Set the value of progress bar. + * + * @param number - the value of progress bar. + * + * @retval true - success. + * @retval false - failed. + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXPROGRESSBAR_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.cpp new file mode 100644 index 0000000..7c67751 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.cpp @@ -0,0 +1,99 @@ +/** + * @file NexRadio.cpp + * + * The implementation of class NexRadio. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexRadio.h" + +NexRadio::NexRadio(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint32_t NexRadio::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexRadio::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexRadio::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexRadio::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexRadio::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexRadio::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.h b/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.h new file mode 100644 index 0000000..0368251 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexRadio.h @@ -0,0 +1,98 @@ +/** + * @file NexRadio.h + * + * The definition of class NexRadio. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXRADIO_H__ +#define __NEXRADIO_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexRadio component. + * + * Commonly, you want to do something after push and pop it. It is recommanded that only + * call @ref NexTouch::attachPop to satisfy your purpose. + * + * @warning Please do not call @ref NexTouch::attachPush on this component, even though you can. + */ +class NexRadio:public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexRadio(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get val attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getValue(uint32_t *number); + + /** + * Set val attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXRADION_H__ */ \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexRtc.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexRtc.cpp new file mode 100644 index 0000000..4d01173 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexRtc.cpp @@ -0,0 +1,327 @@ +/** + * @file NexRtc.cpp + * + * The implementation of class NexRtc. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexRtc.h" + +bool NexRtc::write_rtc_time(char *time) +{ + char year[5],mon[3],day[3],hour[3],min[3],sec[3]; + String cmd = String("rtc"); + int i; + + if(strlen(time) >= 19) + { + year[0]=time[0];year[1]=time[1];year[2]=time[2];year[3]=time[3];year[4]='\0'; + mon[0]=time[5];mon[1]=time[6];mon[2]='\0'; + day[0]=time[8];day[1]=time[9];day[2]='\0'; + hour[0]=time[11];hour[1]=time[12];hour[2]='\0'; + min[0]=time[14];min[1]=time[15];min[2]='\0'; + sec[0]=time[17];sec[1]=time[18];sec[2]='\0'; + + cmd += "0="; + cmd += year; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc1="; + cmd += mon; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc2="; + cmd += day; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc3="; + cmd += hour; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc4="; + cmd += min; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc5="; + cmd += sec; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + } + else + { + return false; + } +} + +bool NexRtc::write_rtc_time(uint32_t *time) +{ + char year[5],mon[3],day[3],hour[3],min[3],sec[3]; + String cmd = String("rtc"); + int i; + + utoa(time[0],year,10); + utoa(time[1],mon, 10); + utoa(time[2],day, 10); + utoa(time[3],hour,10); + utoa(time[4],min, 10); + utoa(time[5],sec, 10); + + + cmd += "0="; + cmd += year; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc1="; + cmd += mon; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc2="; + cmd += day; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc3="; + cmd += hour; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc4="; + cmd += min; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + + cmd = ""; + cmd += "rtc5="; + cmd += sec; + sendCommand(cmd.c_str()); + recvRetCommandFinished(); + +} + +bool NexRtc::write_rtc_time(char *time_type,uint32_t number) +{ + String cmd = String("rtc"); + char buf[10] = {0}; + + utoa(number, buf, 10); + if(strstr(time_type,"year")) + { + cmd += "0="; + cmd += buf; + } + if(strstr(time_type,"mon")) + { + cmd += "1="; + cmd += buf; + } + if(strstr(time_type,"day")) + { + cmd += "2="; + cmd += buf; + } + if(strstr(time_type,"hour")) + { + cmd += "3="; + cmd += buf; + } + if(strstr(time_type,"min")) + { + cmd += "4="; + cmd += buf; + } + if(strstr(time_type,"sec")) + { + cmd += "5="; + cmd += buf; + } + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexRtc::read_rtc_time(char *time,uint32_t len) +{ + char time_buf[22] = {"0000/00/00 00:00:00 0"}; + uint32_t year,mon,day,hour,min,sec,week; + String cmd; + + cmd = "get rtc0"; + sendCommand(cmd.c_str()); + recvRetNumber(&year); + + cmd = ""; + cmd = "get rtc1"; + sendCommand(cmd.c_str()); + recvRetNumber(&mon); + + cmd = ""; + cmd = "get rtc2"; + sendCommand(cmd.c_str()); + recvRetNumber(&day); + + cmd = ""; + cmd = "get rtc3"; + sendCommand(cmd.c_str()); + recvRetNumber(&hour); + + cmd = ""; + cmd = "get rtc4"; + sendCommand(cmd.c_str()); + recvRetNumber(&min); + + cmd = ""; + cmd = "get rtc5"; + sendCommand(cmd.c_str()); + recvRetNumber(&sec); + + cmd = ""; + cmd = "get rtc6"; + sendCommand(cmd.c_str()); + recvRetNumber(&week); + + time_buf[0] = year/1000 + '0'; + time_buf[1] = (year/100)%10 + '0'; + time_buf[2] = (year/10)%10 + '0'; + time_buf[3] = year%10 + '0'; + time_buf[5] = mon/10 + '0'; + time_buf[6] = mon%10 + '0'; + time_buf[8] = day/10 + '0'; + time_buf[9] = day%10 + '0'; + time_buf[11] = hour/10 + '0'; + time_buf[12] = hour%10 + '0'; + time_buf[14] = min/10 + '0'; + time_buf[15] = min%10 + '0'; + time_buf[17] = sec/10 + '0'; + time_buf[18] = sec%10 + '0'; + time_buf[20] = week + '0'; + time_buf[21] = '\0'; + + + if(len >= 22) + { + for(int i=0;i<22;i++) + { + time[i] = time_buf[i]; + } + } + else{ + for(int i=0;i) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef _NEXRTC_H +#define _NEXRTC_H + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexRtc component. + */ + +class NexRtc +{ + public: + + bool write_rtc_time(char *time); + + /** + * write rtc times + * + * @param time_type - To type in time (example:write_rtc_time("year",2016)) + * @param number - the time value + * @return true if success, false for failure + */ + + bool write_rtc_time(char *time_type,uint32_t number); + + /** + * write rtc times + * + * @param time - Time to write to the array + * @return true if success, false for failure + */ + + bool write_rtc_time(uint32_t *time); + + + /** + * read rtc time + * + * @param time - Access data array + * @param len - len of array + * @return true if success, false for failure + */ + + uint32_t read_rtc_time(char *time,uint32_t len); + + /** + * read rtc times + * + * @param time_type - To type in time + * @param number - the time value + * @return true if success, false for failure + */ + + uint32_t read_rtc_time(char *time_type,uint32_t *number); + + /** + * read rtc time + * + * @param time - Access data array + * @param len - len of array + * @return true if success, false for failure + */ + + uint32_t read_rtc_time(uint32_t *time,uint32_t len); + +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXRTC_H__ */ \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.cpp new file mode 100644 index 0000000..6d68e8a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.cpp @@ -0,0 +1,351 @@ +/** + * @file NexScrolltext.cpp + * + * The implementation of class NexScrolltext. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexScrolltext.h" + +NexScrolltext::NexScrolltext(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint16_t NexScrolltext::getText(char *buffer, uint16_t len) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".txt"; + sendCommand(cmd.c_str()); + return recvRetString(buffer,len); +} + +bool NexScrolltext::setText(const char *buffer) +{ + String cmd; + cmd += getObjName(); + cmd += ".txt=\""; + cmd += buffer; + cmd += "\""; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_place_xcen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".xcen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_place_xcen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".xcen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_place_ycen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".ycen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_place_ycen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".ycen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::getFont(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".font"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::setFont(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".font="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_background_crop_picc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_background_image_pic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_background_image_pic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_scroll_dir(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".dir"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_scroll_dir(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".dir="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_scroll_distance(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".dis"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_scroll_distance(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + if (number < 2) + { + number = 2; + } + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".dis="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexScrolltext::Get_cycle_tim(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".tim"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexScrolltext::Set_cycle_tim(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + if (number < 8) + { + number = 8; + } + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".tim="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + +bool NexScrolltext::enable(void) +{ + char buf[10] = {0}; + String cmd; + utoa(1, buf, 10); + cmd += getObjName(); + cmd += ".en="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +bool NexScrolltext::disable(void) +{ + char buf[10] = {0}; + String cmd; + utoa(0, buf, 10); + cmd += getObjName(); + cmd += ".en="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.h b/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.h new file mode 100644 index 0000000..d57e537 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexScrolltext.h @@ -0,0 +1,223 @@ +/** + * @file NexScrolltext.h + * + * The definition of class NexScrolltext. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXSCROLLTEXT_H__ +#define __NEXSCROLLTEXT_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexText component. + */ +class NexScrolltext: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexScrolltext(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get text attribute of component. + * + * @param buffer - buffer storing text returned. + * @param len - length of buffer. + * @return The real length of text returned. + */ + uint16_t getText(char *buffer, uint16_t len); + + /** + * Set text attribute of component. + * + * @param buffer - text buffer terminated with '\0'. + * @return true if success, false for failure. + */ + bool setText(const char *buffer); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get xcen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_xcen(uint32_t *number); + + /** + * Set xcen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_xcen(uint32_t number); + + /** + * Get ycen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_ycen(uint32_t *number); + + /** + * Set ycen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_ycen(uint32_t number); + + /** + * Get font attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getFont(uint32_t *number); + + /** + * Set font attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setFont(uint32_t number); + + /** + * Get picc attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_crop_picc(uint32_t *number); + + /** + * Set picc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_crop_picc(uint32_t number); + + /** + * Get pic attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_image_pic(uint32_t *number); + + /** + * Set pic attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_image_pic(uint32_t number); + + /** + * Get dir attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_scroll_dir(uint32_t *number); + + /** + * Set dir attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_scroll_dir(uint32_t number); + + /** + * Get dis attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_scroll_distance(uint32_t *number); + + /** + * Set dis attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_scroll_distance(uint32_t number); + + /** + * Get tim attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_cycle_tim(uint32_t *number); + + /** + * Set tim attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_cycle_tim(uint32_t number); + + bool enable(void); + bool disable(void); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXSCROLLTEXT_H__ */ \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.cpp new file mode 100644 index 0000000..4d79c13 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.cpp @@ -0,0 +1,211 @@ +/** + * @file NexSlider.cpp + * + * The implementation of class NexSlider. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexSlider.h" + +NexSlider::NexSlider(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +bool NexSlider::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::Get_pointer_thickness_wid(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".wid"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::Set_pointer_thickness_wid(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".wid="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::Get_cursor_height_hig(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".hig"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::Set_cursor_height_hig(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".hig="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::getMaxval(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".maxval"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::setMaxval(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".maxval="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexSlider::getMinval(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".minval"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexSlider::setMinval(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".minval="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.h b/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.h new file mode 100644 index 0000000..2332593 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexSlider.h @@ -0,0 +1,159 @@ +/** + * @file NexSlider.h + * + * The definition of class NexSlider. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXSLIDER_H__ +#define __NEXSLIDER_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexSlider component. + */ +class NexSlider: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexSlider(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get the value of slider. + * + * @param number - an output parameter to save the value of slider. + * + * @retval true - success. + * @retval false - failed. + */ + bool getValue(uint32_t *number); + + /** + * Set the value of slider. + * + * @param number - the value of slider. + * + * @retval true - success. + * @retval false - failed. + */ + bool setValue(uint32_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get wid attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_pointer_thickness_wid(uint32_t *number); + + /** + * Set wid attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_pointer_thickness_wid(uint32_t number); + + /** + * Get hig attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_cursor_height_hig(uint32_t *number); + + /** + * Set hig attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_cursor_height_hig(uint32_t number); + + /** + * Get maxval attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getMaxval(uint32_t *number); + + /** + * Set maxval attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setMaxval(uint32_t number); + + /** + * Get minval attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getMinval(uint32_t *number); + + /** + * Set minval attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setMinval(uint32_t number); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXSLIDER_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexText.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexText.cpp new file mode 100644 index 0000000..2c4145a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexText.cpp @@ -0,0 +1,236 @@ +/** + * @file NexText.cpp + * + * The implementation of class NexText. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexText.h" + +NexText::NexText(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint16_t NexText::getText(char *buffer, uint16_t len) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".txt"; + sendCommand(cmd.c_str()); + return recvRetString(buffer,len); +} + +bool NexText::setText(const char *buffer) +{ + String cmd; + cmd += getObjName(); + cmd += ".txt=\""; + cmd += buffer; + cmd += "\""; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_font_color_pco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_font_color_pco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_place_xcen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".xcen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_place_xcen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".xcen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_place_ycen(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".ycen"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_place_ycen(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".ycen="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::getFont(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".font"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::setFont(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".font="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_background_crop_picc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".picc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_background_crop_picc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".picc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexText::Get_background_image_pic(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".pic"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexText::Set_background_image_pic(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pic="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexText.h b/lib/ITEADLIB_Arduino_Nextion-master/NexText.h new file mode 100644 index 0000000..97abc49 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexText.h @@ -0,0 +1,173 @@ +/** + * @file NexText.h + * + * The definition of class NexText. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXTEXT_H__ +#define __NEXTEXT_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexText component. + */ +class NexText: public NexTouch +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexText(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get text attribute of component. + * + * @param buffer - buffer storing text returned. + * @param len - length of buffer. + * @return The real length of text returned. + */ + uint16_t getText(char *buffer, uint16_t len); + + /** + * Set text attribute of component. + * + * @param buffer - text buffer terminated with '\0'. + * @return true if success, false for failure. + */ + bool setText(const char *buffer); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get pco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_font_color_pco(uint32_t *number); + + /** + * Set pco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_font_color_pco(uint32_t number); + + /** + * Get xcen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_xcen(uint32_t *number); + + /** + * Set xcen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_xcen(uint32_t number); + + /** + * Get ycen attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_place_ycen(uint32_t *number); + + /** + * Set ycen attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_place_ycen(uint32_t number); + + /** + * Get font attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getFont(uint32_t *number); + + /** + * Set font attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setFont(uint32_t number); + + /** + * Get picc attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_crop_picc(uint32_t *number); + + /** + * Set picc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_crop_picc(uint32_t number); + + /** + * Get pic attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_image_pic(uint32_t *number); + + /** + * Set pic attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_image_pic(uint32_t number); + +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXTEXT_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.cpp new file mode 100644 index 0000000..540ab38 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.cpp @@ -0,0 +1,115 @@ +/** + * @file NexTimer.cpp + * + * The implementation of class NexTimer. + * + * @author huang xianming (email:) + * @date 2015/8/26 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexTimer.h" + +NexTimer::NexTimer(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +void NexTimer::attachTimer(NexTouchEventCb timer, void *ptr) +{ + NexTouch::attachPop(timer, ptr); +} + +void NexTimer::detachTimer(void) +{ + NexTouch::detachPop(); +} + +bool NexTimer::getCycle(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".tim"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexTimer::setCycle(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + if (number < 50) + { + number = 50; + } + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".tim="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + + +bool NexTimer::enable(void) +{ + char buf[10] = {0}; + String cmd; + utoa(1, buf, 10); + cmd += getObjName(); + cmd += ".en="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +bool NexTimer::disable(void) +{ + char buf[10] = {0}; + String cmd; + utoa(0, buf, 10); + cmd += getObjName(); + cmd += ".en="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexTimer::Get_cycle_tim(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".tim"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexTimer::Set_cycle_tim(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + if (number < 8) + { + number = 8; + } + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".tim="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd = ""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.h b/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.h new file mode 100644 index 0000000..7e9e259 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexTimer.h @@ -0,0 +1,120 @@ +/** + * @file NexTimer.h + * + * The definition of class NexTimer. + * + * @author huang xianming (email:) + * @date 2015/8/26 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXTIMER_H__ +#define __NEXTIMER_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexTimer component. + * + * Commonly, you want to do something after set timer cycle and enable it,and the cycle value + * must be greater than 50 + * + */ +class NexTimer: public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexTimer(uint8_t pid, uint8_t cid, const char *name); + + /** + * Attach an callback function of timer respond event. + * + * @param timer - callback called with ptr when a timer respond event occurs. + * @param ptr - parameter passed into push[default:NULL]. + * @return none. + * + * @note If calling this method multiply, the last call is valid. + */ + void attachTimer(NexTouchEventCb timer, void *ptr = NULL); + + /** + * Detach an callback function. + * + * @return none. + */ + void detachTimer(void); + + /** + * Get the value of timer cycle val. + * + * @param number - an output parameter to save the value of timer cycle. + * + * @retval true - success. + * @retval false - failed. + */ + bool getCycle(uint32_t *number); + + /** + * Set the value of timer cycle val. + * + * @param number - the value of timer cycle. + * + * @retval true - success. + * @retval false - failed. + * + * @warning the cycle value must be greater than 50. + */ + bool setCycle(uint32_t number); + + /** + * contorl timer enable. + * + * @retval true - success. + * @retval false - failed. + */ + bool enable(void); + + /** + * contorl timer disable. + * + * @retval true - success. + * @retval false - failed. + */ + bool disable(void); + + /** + * Get tim attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_cycle_tim(uint32_t *number); + + /** + * Set tim attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_cycle_tim(uint32_t number); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXTIMER_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.cpp new file mode 100644 index 0000000..19e5c98 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.cpp @@ -0,0 +1,95 @@ +/** + * @file NexTouch.cpp + * + * The implementation of class NexTouch. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexTouch.h" + + +NexTouch::NexTouch(uint8_t pid, uint8_t cid, const char *name) + :NexObject(pid, cid, name) +{ + this->__cb_push = NULL; + this->__cb_pop = NULL; + this->__cbpop_ptr = NULL; + this->__cbpush_ptr = NULL; +} + +void NexTouch::attachPush(NexTouchEventCb push, void *ptr) +{ + this->__cb_push = push; + this->__cbpush_ptr = ptr; +} + +void NexTouch::detachPush(void) +{ + this->__cb_push = NULL; + this->__cbpush_ptr = NULL; +} + +void NexTouch::attachPop(NexTouchEventCb pop, void *ptr) +{ + this->__cb_pop = pop; + this->__cbpop_ptr = ptr; +} + +void NexTouch::detachPop(void) +{ + this->__cb_pop = NULL; + this->__cbpop_ptr = NULL; +} + +void NexTouch::push(void) +{ + if (__cb_push) + { + __cb_push(__cbpush_ptr); + } +} + +void NexTouch::pop(void) +{ + if (__cb_pop) + { + __cb_pop(__cbpop_ptr); + } +} + +void NexTouch::iterate(NexTouch **list, uint8_t pid, uint8_t cid, int32_t event) +{ + NexTouch *e = NULL; + uint16_t i = 0; + + if (NULL == list) + { + return; + } + + for(i = 0; (e = list[i]) != NULL; i++) + { + if (e->getObjPid() == pid && e->getObjCid() == cid) + { + e->printObjInfo(); + if (NEX_EVENT_PUSH == event) + { + e->push(); + } + else if (NEX_EVENT_POP == event) + { + e->pop(); + } + + break; + } + } +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.h b/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.h new file mode 100644 index 0000000..bedc4e9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexTouch.h @@ -0,0 +1,116 @@ +/** + * @file NexTouch.h + * + * The definition of class NexTouch. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXTOUCH_H__ +#define __NEXTOUCH_H__ + +#include +#include "NexConfig.h" +#include "NexObject.h" + +/** + * @addtogroup TouchEvent + * @{ + */ + +/** + * Push touch event occuring when your finger or pen coming to Nextion touch pannel. + */ +#define NEX_EVENT_PUSH (0x01) + +/** + * Pop touch event occuring when your finger or pen leaving from Nextion touch pannel. + */ +#define NEX_EVENT_POP (0x00) + +/** + * Type of callback funciton when an touch event occurs. + * + * @param ptr - user pointer for any purpose. Commonly, it is a pointer to a object. + * @return none. + */ +typedef void (*NexTouchEventCb)(void *ptr); + +/** + * Father class of the components with touch events. + * + * Derives from NexObject and provides methods allowing user to attach + * (or detach) a callback function called when push(or pop) touch event occurs. + */ +class NexTouch: public NexObject +{ +public: /* static methods */ + static void iterate(NexTouch **list, uint8_t pid, uint8_t cid, int32_t event); + +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexTouch(uint8_t pid, uint8_t cid, const char *name); + + /** + * Attach an callback function of push touch event. + * + * @param push - callback called with ptr when a push touch event occurs. + * @param ptr - parameter passed into push[default:NULL]. + * @return none. + * + * @note If calling this method multiply, the last call is valid. + */ + void attachPush(NexTouchEventCb push, void *ptr = NULL); + + /** + * Detach an callback function. + * + * @return none. + */ + void detachPush(void); + + /** + * Attach an callback function of pop touch event. + * + * @param pop - callback called with ptr when a pop touch event occurs. + * @param ptr - parameter passed into pop[default:NULL]. + * @return none. + * + * @note If calling this method multiply, the last call is valid. + */ + void attachPop(NexTouchEventCb pop, void *ptr = NULL); + + /** + * Detach an callback function. + * + * @return none. + */ + void detachPop(void); + +private: /* methods */ + void push(void); + void pop(void); + +private: /* data */ + NexTouchEventCb __cb_push; + void *__cbpush_ptr; + NexTouchEventCb __cb_pop; + void *__cbpop_ptr; +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXTOUCH_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.cpp.d b/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.cpp.d new file mode 100644 index 0000000..ff85eb9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.cpp.d @@ -0,0 +1,240 @@ +/** + * @file NexUpload.cpp + * + * The implementation of download tft file for nextion. + * + * @author Chen Zengpeng (email:) + * @date 2016/3/29 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#include "NexUpload.h" +#include + +//#define USE_SOFTWARE_SERIAL +#ifdef USE_SOFTWARE_SERIAL +SoftwareSerial dbSerial(3, 2); /* RX:D3, TX:D2 */ +#define DEBUG_SERIAL_ENABLE +#endif + +#ifdef DEBUG_SERIAL_ENABLE +#define dbSerialPrint(a) dbSerial.print(a) +#define dbSerialPrintln(a) dbSerial.println(a) +#define dbSerialBegin(a) dbSerial.begin(a) +#else +#define dbSerialPrint(a) do{}while(0) +#define dbSerialPrintln(a) do{}while(0) +#define dbSerialBegin(a) do{}while(0) +#endif + +NexUpload::NexUpload(const char *file_name,const uint8_t SD_chip_select,uint32_t download_baudrate) +{ + _file_name = file_name; + _SD_chip_select = SD_chip_select; + _download_baudrate = download_baudrate; +} + +NexUpload::NexUpload(const String file_Name,const uint8_t SD_chip_select,uint32_t download_baudrate) +{ + NexUpload(file_Name.c_str(),SD_chip_select,download_baudrate); +} + +void NexUpload::upload(void) +{ + dbSerialBegin(9600); + if(!_checkFile()) + { + dbSerialPrintln("the file is error"); + return; + } + if(_getBaudrate() == 0) + { + dbSerialPrintln("get baudrate error"); + return; + } + if(!_setDownloadBaudrate(_download_baudrate)) + { + dbSerialPrintln("modify baudrate error"); + return; + } + if(!_downloadTftFile()) + { + dbSerialPrintln("download file error"); + return; + } + dbSerialPrintln("download ok\r\n"); +} + +uint16_t NexUpload::_getBaudrate(void) +{ + uint32_t baudrate_array[7] = {115200,19200,9600,57600,38400,4800,2400}; + for(uint8_t i = 0; i < 7; i++) + { + if(_searchBaudrate(baudrate_array[i])) + { + _baudrate = baudrate_array[i]; + dbSerialPrintln("get baudrate"); + break; + } + } + return _baudrate; +} + +bool NexUpload::_checkFile(void) +{ + dbSerialPrintln("start _checkFile"); + if(!SD.begin(_SD_chip_select)) + { + dbSerialPrintln("init sd failed"); + return 0; + } + if(!SD.exists(_file_name)) + { + dbSerialPrintln("file is not exit"); + } + _myFile = SD.open(_file_name); + _undownloadByte = _myFile.size(); + dbSerialPrintln("tft file size is:"); + dbSerialPrintln(_undownloadByte); + dbSerialPrintln("check file ok"); + return 1; +} + +bool NexUpload::_searchBaudrate(uint32_t baudrate) +{ + String string = String(""); + nexSerial.begin(baudrate); + this->sendCommand(""); + this->sendCommand("connect"); + this->recvRetString(string); + if(string.indexOf("comok") != -1) + { + return 1; + } + return 0; +} + +void NexUpload::sendCommand(const char* cmd) +{ + + while (nexSerial.available()) + { + nexSerial.read(); + } + + nexSerial.print(cmd); + nexSerial.write(0xFF); + nexSerial.write(0xFF); + nexSerial.write(0xFF); +} + +uint16_t NexUpload::recvRetString(String &string, uint32_t timeout,bool recv_flag) +{ + uint16_t ret = 0; + uint8_t c = 0; + long start; + bool exit_flag = false; + start = millis(); + while (millis() - start <= timeout) + { + while (nexSerial.available()) + { + c = nexSerial.read(); + if(c == 0) + { + continue; + } + string += (char)c; + if(recv_flag) + { + if(string.indexOf(0x05) != -1) + { + exit_flag = true; + } + } + } + if(exit_flag) + { + break; + } + } + ret = string.length(); + return ret; +} + +bool NexUpload::_setDownloadBaudrate(uint32_t baudrate) +{ + String string = String(""); + String cmd = String(""); + + String filesize_str = String(_undownloadByte,10); + String baudrate_str = String(baudrate,10); + cmd = "whmi-wri " + filesize_str + "," + baudrate_str + ",0"; + + dbSerialPrintln(cmd); + this->sendCommand(""); + this->sendCommand(cmd.c_str()); + delay(50); + nexSerial.begin(baudrate); + this->recvRetString(string,500); + if(string.indexOf(0x05) != -1) + { + return 1; + } + return 0; +} + +bool NexUpload::_downloadTftFile(void) +{ + uint8_t c; + uint16_t send_timer = 0; + uint16_t last_send_num = 0; + String string = String(""); + send_timer = _undownloadByte / 4096 + 1; + last_send_num = _undownloadByte % 4096; + + while(send_timer) + { + + if(send_timer == 1) + { + for(uint16_t j = 1; j <= 4096; j++) + { + if(j <= last_send_num) + { + c = _myFile.read(); + nexSerial.write(c); + } + else + { + break; + } + } + } + + else + { + for(uint16_t i = 1; i <= 4096; i++) + { + c = _myFile.read(); + nexSerial.write(c); + } + } + this->recvRetString(string,500,true); + if(string.indexOf(0x05) != -1) + { + string = ""; + } + else + { + return 0; + } + --send_timer; + } +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.h.d b/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.h.d new file mode 100644 index 0000000..7129128 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexUpload.h.d @@ -0,0 +1,142 @@ +/** + * @file NexUpload.h + * + * The definition of class NexUpload. + * + * @author Chen Zengpeng (email:) + * @date 2016/3/29 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXUPLOAD_H__ +#define __NEXUPLOAD_H__ +#include +#include +#include +#include "NexHardware.h" + +/** + * @addtogroup CoreAPI + * @{ + */ + +/** + * + * Provides the API for nextion to download the ftf file. + */ +class NexUpload +{ +public: /* methods */ + + /** + * Constructor. + * + * @param file_name - tft file name. + * @param SD_chip_select - sd chip select pin. + * @param download_baudrate - set download baudrate. + */ + NexUpload(const char *file_name,const uint8_t SD_chip_select,uint32_t download_baudrate); + + /** + * Constructor. + * + * @param file_Name - tft file name. + * @param SD_chip_select - sd chip select pin. + * @param download_baudrate - set download baudrate. + */ + NexUpload(const String file_Name,const uint8_t SD_chip_select,uint32_t download_baudrate); + + /** + * destructor. + * + */ + ~NexUpload(){} + + /* + * start download. + * + * @return none. + */ + void upload(); + +private: /* methods */ + + /* + * get communicate baudrate. + * + * @return communicate baudrate. + * + */ + uint16_t _getBaudrate(void); + + /* + * check tft file. + * + * @return true if success, false for failure. + */ + bool _checkFile(void); + + /* + * search communicate baudrate. + * + * @param baudrate - communicate baudrate. + * + * @return true if success, false for failure. + */ + bool _searchBaudrate(uint32_t baudrate); + + /* + * set download baudrate. + * + * @param baudrate - set download baudrate. + * + * @return true if success, false for failure. + */ + bool _setDownloadBaudrate(uint32_t baudrate); + + /** + * start dowload tft file to nextion. + * + * @return none. + */ + bool _downloadTftFile(void); + + /* + * Send command to Nextion. + * + * @param cmd - the string of command. + * + * @return none. + */ + void sendCommand(const char* cmd); + + /* + * Receive string data. + * + * @param buffer - save string data. + * @param timeout - set timeout time. + * @param recv_flag - if recv_flag is true,will braak when receive 0x05. + * + * @return the length of string buffer. + * + */ + uint16_t recvRetString(String &string, uint32_t timeout = 100,bool recv_flag = false); + +private: /* data */ + uint32_t _baudrate; /*nextion serail baudrate*/ + const char *_file_name; /*nextion tft file name*/ + File _myFile; /*nextion ftf file*/ + uint32_t _undownloadByte; /*undownload byte of tft file*/ + uint8_t _SD_chip_select; /*sd chip select pin*/ + uint32_t _download_baudrate; /*download baudrate*/ +}; +/** + * @} + */ + +#endif /* #ifndef __NEXDOWNLOAD_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.cpp new file mode 100644 index 0000000..d4b2a52 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.cpp @@ -0,0 +1,64 @@ +/** + * @file NexVariable.cpp + * + * The implementation of class NexText. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexVariable.h" + +NexVariable::NexVariable(uint8_t pid, uint8_t cid, const char *name) + :NexTouch(pid, cid, name) +{ +} + +uint32_t NexVariable::getValue(uint32_t *number) +{ + String cmd = String("get "); + cmd += getObjName(); + cmd += ".val"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexVariable::setValue(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".val="; + cmd += buf; + + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexVariable::getText(char *buffer, uint32_t len) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".txt"; + sendCommand(cmd.c_str()); + return recvRetString(buffer,len); +} + +bool NexVariable::setText(const char *buffer) +{ + String cmd; + cmd += getObjName(); + cmd += ".txt=\""; + cmd += buffer; + cmd += "\""; + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.h b/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.h new file mode 100644 index 0000000..d648d5d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexVariable.h @@ -0,0 +1,82 @@ +/** + * @file NexButton.h + * + * The definition of class NexButton. + * + * @author huang xiaoming (email:) + * @date 2016/9/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ + +#ifndef __NEXVARRIABLE_H__ +#define __NEXVARRIABLE_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexButton component. + * + * Commonly, you want to do something after push and pop it. It is recommanded that only + * call @ref NexTouch::attachPop to satisfy your purpose. + * + * @warning Please do not call @ref NexTouch::attachPush on this component, even though you can. + */ +class NexVariable: public NexTouch +{ +public: /* methods */ + + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexVariable(uint8_t pid, uint8_t cid, const char *name); + + /** + * Get text attribute of component. + * + * @param buffer - buffer storing text returned. + * @param len - length of buffer. + * @return The real length of text returned. + */ + uint32_t getText(char *buffer, uint32_t len); + + /** + * Set text attribute of component. + * + * @param buffer - text buffer terminated with '\0'. + * @return true if success, false for failure. + */ + bool setText(const char *buffer); + + /** + * Get val attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t getValue(uint32_t *number); + + /** + * Set val attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool setValue(uint32_t number); +}; +/** + * @} + */ + + +#endif /* #ifndef __NEXVARRIABLE_H__*/ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.cpp b/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.cpp new file mode 100644 index 0000000..a325211 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.cpp @@ -0,0 +1,176 @@ +/** + * @file NexWaveform.cpp + * + * The implementation of class NexWaveform. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#include "NexWaveform.h" + +NexWaveform::NexWaveform(uint8_t pid, uint8_t cid, const char *name) + :NexObject(pid, cid, name) +{ +} + +bool NexWaveform::addValue(uint8_t ch, uint8_t number) +{ + char buf[15] = {0}; + + if (ch > 3) + { + return false; + } + + sprintf(buf, "add %u,%u,%u", getObjCid(), ch, number); + + sendCommand(buf); + return true; +} + +uint32_t NexWaveform::Get_background_color_bco(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".bco"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexWaveform::Set_background_color_bco(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".bco="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexWaveform::Get_grid_color_gdc(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".gdc"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexWaveform::Set_grid_color_gdc(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".gdc="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexWaveform::Get_grid_width_gdw(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".gdw"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexWaveform::Set_grid_width_gdw(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".gdw="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexWaveform::Get_grid_height_gdh(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".gdh"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexWaveform::Set_grid_height_gdh(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".gdh="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + +uint32_t NexWaveform::Get_channel_0_color_pco0(uint32_t *number) +{ + String cmd; + cmd += "get "; + cmd += getObjName(); + cmd += ".pco0"; + sendCommand(cmd.c_str()); + return recvRetNumber(number); +} + +bool NexWaveform::Set_channel_0_color_pco0(uint32_t number) +{ + char buf[10] = {0}; + String cmd; + + utoa(number, buf, 10); + cmd += getObjName(); + cmd += ".pco0="; + cmd += buf; + sendCommand(cmd.c_str()); + + cmd=""; + cmd += "ref "; + cmd += getObjName(); + sendCommand(cmd.c_str()); + return recvRetCommandFinished(); +} + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.h b/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.h new file mode 100644 index 0000000..f89ba09 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/NexWaveform.h @@ -0,0 +1,133 @@ +/** + * @file NexWaveform.h + * + * The definition of class NexWaveform. + * + * @author Wu Pengfei (email:) + * @date 2015/8/13 + * + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXWAVEFORM_H__ +#define __NEXWAVEFORM_H__ + +#include "NexTouch.h" +#include "NexHardware.h" +/** + * @addtogroup Component + * @{ + */ + +/** + * NexWaveform component. + */ +class NexWaveform: public NexObject +{ +public: /* methods */ + /** + * @copydoc NexObject::NexObject(uint8_t pid, uint8_t cid, const char *name); + */ + NexWaveform(uint8_t pid, uint8_t cid, const char *name); + + /** + * Add value to show. + * + * @param ch - channel of waveform(0-3). + * @param number - the value of waveform. + * + * @retval true - success. + * @retval false - failed. + */ + bool addValue(uint8_t ch, uint8_t number); + + /** + * Get bco attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_background_color_bco(uint32_t *number); + + /** + * Set bco attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_background_color_bco(uint32_t number); + + /** + * Get gdc attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_grid_color_gdc(uint32_t *number); + + /** + * Set gdc attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_grid_color_gdc(uint32_t number); + + /** + * Get gdw attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_grid_width_gdw(uint32_t *number); + + /** + * Set gdw attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_grid_width_gdw(uint32_t number); + + /** + * Get gdh attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_grid_height_gdh(uint32_t *number); + + /** + * Set gdh attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_grid_height_gdh(uint32_t number); + + /** + * Get pco0 attribute of component + * + * @param number - buffer storing data retur + * @return the length of the data + */ + uint32_t Get_channel_0_color_pco0(uint32_t *number); + + /** + * Set pco0 attribute of component + * + * @param number - To set up the data + * @return true if success, false for failure + */ + bool Set_channel_0_color_pco0(uint32_t number); +}; + +/** + * @} + */ + +#endif /* #ifndef __NEXWAVEFORM_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/Nextion.h b/lib/ITEADLIB_Arduino_Nextion-master/Nextion.h new file mode 100644 index 0000000..89d70d7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/Nextion.h @@ -0,0 +1,45 @@ +/** + * @file Nextion.h + * + * The header file including all other header files provided by this library. + * + * Every example sketch should include this file. + * + * @author Wu Pengfei (email:) + * @date 2015/8/12 + * @copyright + * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + */ +#ifndef __NEXTION_H__ +#define __NEXTION_H__ + +#include "Arduino.h" +#include "NexConfig.h" +#include "NexTouch.h" +#include "NexHardware.h" + +#include "NexButton.h" +#include "NexCrop.h" +#include "NexGauge.h" +#include "NexHotspot.h" +#include "NexPage.h" +#include "NexPicture.h" +#include "NexProgressBar.h" +#include "NexSlider.h" +#include "NexText.h" +#include "NexWaveform.h" +#include "NexTimer.h" +#include "NexNumber.h" +#include "NexDualStateButton.h" +#include "NexVariable.h" +#include "NexCheckbox.h" +#include "NexRadio.h" +#include "NexScrolltext.h" +#include "NexGpio.h" +#include "NexRtc.h" + +#endif /* #ifndef __NEXTION_H__ */ diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/Logo.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ac038a617e16644325229c817588acc0a94a7ce9 GIT binary patch literal 1659 zcmbuAYgp0;6vqGj0RzknX{nHcmokSIUUQj-w}eb1FJY#p28xMcXkum0u+q>_K+DUt zV$QZ|mSxk>X|YOW=F*iVl_>%9l9vcAFQv^s?CZYlJiqt6&wHNt`zfG?1{t6*C;$Kq zDCB^!WsmO2Rd79*4VK|Yi9jq*4uZ~K&d7A~-V6XhX}=2MSLar-e8go2MrDSx zlQOvp90m}QaDc;3W6)C)@Y_>33@)3Knt}IhWIo9T0Jx44;2V)$J$WIR-M7b-w{0X6 zmFu>;SBs)x{HVV)Rqc3fI*naWaQj0DkylhS{D;k%{eh8JtFBd%qt3U~MeKlTo{@fn zRh))Bv7=XLvJT&HMe25L6-*wmpDiuc+eydi<_9xQOg4WMID5{FYQf>$q1;Q8BaZPb zmc{-}&8K*s1|~}lv|N{TBdPuXI0b}feM&O#NDj7ty%@AXg5D=vX`}wB2pMmv0ItdO zC2ymHryruJLU`@vfq>{oY4Mm8%6XzdNN_P=29iuy$FD-`%xoB7Hn`R3!I1>_k~LJ} zw@P+xV2Hu7}#%S&pii5RZmn?Cx@I(wmEi)&gTH)2OVyLCVaG7bO=HSvs8wTbofuTfG zJ$zPQ*Qii)gL64=;Mp=b*56BI*Ly~O)cZQ!Bxw!WC9m%srB?qqVym0a_+C3SO(yIZ znQrkydO}-^iu0M>n2k;M~@b1>Rx!XL^oL+QCjp8(-in z!ATL-zO^&9u~FzKzuNAX6}}rCzrc5Nj2tF-?Fu1jeg_S0?|t@FIuaAVSapo;5sJ~{ z@<6qt%>hhh;Kmn|m!<7K;SezrmKkP}UL0-q+-Rkur^&7O0x{nb6#3zr%8tue5wW{* z?TWGd6fBSpNh7Cvp3U61C?lp@q1}MBkGJ%DYegob1HrEzk-6?8@N=RT4$fi0s1F{H zkQ^NB(exe+r4lB77X76F8X+XB@h&75H=$?}{3>XVL0viX-oZAx@6sEOP09@}uqpri z2M_py1nlCAmwPDP8o@XZTCli`^f{uLN1qC0h-*F6 z7LVFDVU{*=Uw?G_!q|`GH}~l3Sf#CmP_Q<7jS`*-p^27`Tz|Ic?z@5`oX>xs8XMx> z$|J~)vo_F60X(dcZo2*~Pkk2IjmMolIH{k?G zQ8@z|=O!H0pU$!le>G%&$$68KCVAC?)?k!1MY}}ez5XS}@e{ub*WIj7N=Z6&&(doq zRqU@wOk)cVQOEChwDFwj+oeY0UXk6#_YZFSpW0#48TvMklc%RD+V#w^=)i@w6oi(= z?Cri)+T}du{7OAhhbWEtgs~@C{BJ62^qIp~TVtGd8;4~=jK7#wJ&J58Tw3Jy^Ty+3 zk)KA6v4D4s(y$EESdy2{sciRTK-~FOWE6PAx<}dnD9vELrky4)w?Tyr!s?*gNQ2|_7b+Cft?^njbN`zHg58_7++#smxalX~<@flpg?2952}P?#T$-R<2iI<;DI{lBK#%8Z2-m)cYDC?~YotxeuR<`^6LO-)L8GhK{&D6J$Lt zXa#C6m*1JRV}rv?Eq%stIF~J6DE&|}AE|L77l<}P_Bme^814^h5FPWd5Z%Fu?&O4x z$QI8`=bK1&4q%AT&nE?2o>b3Pk`E6xKXm={_PnlL{avNYg@=yB4@=9B0-ywj2HfzA GKlu+WN8Z~2 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino-example.html new file mode 100644 index 0000000..25ae6e4 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompButton.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompButton.ino
+
+
+
How to Use
This example shows that when the button component on the Nextion screen is released, the text of this button will plus one every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino_source.html new file mode 100644 index 0000000..9505c01 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_8ino_source.html @@ -0,0 +1,171 @@ + + + + + + +Documentation: examples/CompButton/CompButton.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompButton.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 /*
+
21  * Declare a button object [page id:0,component id:1, component name: "b0"].
+
22  */
+
23 NexButton b0 = NexButton(0, 1, "b0");
+
24 
+
25 char buffer[100] = {0};
+
26 
+
27 /*
+
28  * Register a button object to the touch event list.
+
29  */
+
30 NexTouch *nex_listen_list[] =
+
31 {
+
32  &b0,
+
33  NULL
+
34 };
+
35 
+
36 /*
+
37  * Button component pop callback function.
+
38  * In this example,the button's text value will plus one every time when it is released.
+
39  */
+
40 void b0PopCallback(void *ptr)
+
41 {
+
42  uint16_t len;
+
43  uint16_t number;
+
44  NexButton *btn = (NexButton *)ptr;
+
45  dbSerialPrintln("b0PopCallback");
+
46  dbSerialPrint("ptr=");
+
47  dbSerialPrintln((uint32_t)ptr);
+
48  memset(buffer, 0, sizeof(buffer));
+
49 
+
50  /* Get the text value of button component [the value is string type]. */
+
51  btn->getText(buffer, sizeof(buffer));
+
52 
+
53  number = atoi(buffer);
+
54  number += 1;
+
55 
+
56  memset(buffer, 0, sizeof(buffer));
+
57  itoa(number, buffer, 10);
+
58 
+
59  /* Set the text value of button component [the value is string type]. */
+
60  btn->setText(buffer);
+
61 }
+
62 
+
63 void setup(void)
+
64 {
+
65  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
66  nexInit();
+
67 
+
68  /* Register the pop event callback function of the current button component. */
+
69  b0.attachPop(b0PopCallback, &b0);
+
70 
+
71  dbSerialPrintln("setup done");
+
72 }
+
73 
+
74 void loop(void)
+
75 {
+
76  /*
+
77  * When a pop or push event occured every time,
+
78  * the corresponding component[right page id and component id] in touch event list will be asked.
+
79  */
+
80  nexLoop(nex_listen_list);
+
81 }
+
82 
+
83 
+
84 
+
85 
+
86 
+
87 
+
88 
+
89 
+
90 
+
91 
+
92 
+
93 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexButton.cpp:23
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button__v0__32_8ino_source.html new file mode 100644 index 0000000..0dcc6c6 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button__v0__32_8ino_source.html @@ -0,0 +1,171 @@ + + + + + + +Documentation: examples/CompButton/CompButton_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompButton_v0_32.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 /*
+
23  * Declare a button object [page id:0,component id:1, component name: "b0"].
+
24  */
+
25 NexButton b0 = NexButton(0, 1, "b0");
+
26 
+
27 char buffer[100] = {0};
+
28 
+
29 /*
+
30  * Register a button object to the touch event list.
+
31  */
+
32 NexTouch *nex_listen_list[] =
+
33 {
+
34  &b0,
+
35  NULL
+
36 };
+
37 
+
38 /*
+
39  * Button component pop callback function.
+
40  * In this example,the button's text value will plus one every time when it is released.
+
41  */
+
42 void b0PopCallback(void *ptr)
+
43 {
+
44  uint16_t len;
+
45  uint16_t number;
+
46  NexButton *btn = (NexButton *)ptr;
+
47  dbSerialPrintln("b0PopCallback");
+
48  dbSerialPrint("ptr=");
+
49  dbSerialPrintln((uint32_t)ptr);
+
50  memset(buffer, 0, sizeof(buffer));
+
51 
+
52  /* Get the text value of button component [the value is string type]. */
+
53  btn->getText(buffer, sizeof(buffer));
+
54 
+
55  number = atoi(buffer);
+
56  number += 1;
+
57 
+
58  memset(buffer, 0, sizeof(buffer));
+
59  itoa(number, buffer, 10);
+
60 
+
61  /* Set the text value of button component [the value is string type]. */
+
62  btn->setText(buffer);
+
63 }
+
64 
+
65 void setup(void)
+
66 {
+
67  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
68  nexInit();
+
69 
+
70  /* Register the pop event callback function of the current button component. */
+
71  b0.attachPop(b0PopCallback, &b0);
+
72 
+
73  dbSerialPrintln("setup done");
+
74 }
+
75 
+
76 void loop(void)
+
77 {
+
78  /*
+
79  * When a pop or push event occured every time,
+
80  * the corresponding component[right page id and component id] in touch event list will be asked.
+
81  */
+
82  nexLoop(nex_listen_list);
+
83 }
+
84 
+
85 
+
86 
+
87 
+
88 
+
89 
+
90 
+
91 
+
92 
+
93 
+
94 
+
95 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexButton.cpp:23
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_v0_32_8ino-example.html new file mode 100644 index 0000000..85ab719 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_button_v0_32_8ino-example.html @@ -0,0 +1,161 @@ + + + + + + +Documentation: CompButton_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompButton_v0_32.ino
+
+
+
How to Use
This example shows that when the button component on the Nextion screen is released, the text of this button will plus one every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
/*
+
* Declare a button object [page id:0,component id:1, component name: "b0"].
+
*/
+
NexButton b0 = NexButton(0, 1, "b0");
+
+
char buffer[100] = {0};
+
+
/*
+
* Register a button object to the touch event list.
+
*/
+
NexTouch *nex_listen_list[] =
+
{
+
&b0,
+
NULL
+
};
+
+
/*
+
* Button component pop callback function.
+
* In this example,the button's text value will plus one every time when it is released.
+
*/
+
void b0PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
NexButton *btn = (NexButton *)ptr;
+
dbSerialPrintln("b0PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
memset(buffer, 0, sizeof(buffer));
+
+
/* Get the text value of button component [the value is string type]. */
+
btn->getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number += 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
/* Set the text value of button component [the value is string type]. */
+
btn->setText(buffer);
+
}
+
+
void setup(void)
+
{
+
/* Set the baudrate which is for debug and communicate with Nextion screen. */
+ +
+
/* Register the pop event callback function of the current button component. */
+
b0.attachPop(b0PopCallback, &b0);
+
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
/*
+
* When a pop or push event occured every time,
+
* the corresponding component[right page id and component id] in touch event list will be asked.
+
*/
+
nexLoop(nex_listen_list);
+
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino-example.html new file mode 100644 index 0000000..cdfc909 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompCrop.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompCrop.ino
+
+
+
How to Use
This example shows that when the crop component on the Nextion screen is released, the image of this component will be changed.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino_source.html new file mode 100644 index 0000000..926b7ea --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_8ino_source.html @@ -0,0 +1,137 @@ + + + + + + +Documentation: examples/CompCrop/CompCrop.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompCrop.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 /*
+
21  * Declare a crop object [page id:0,component id:1, component name: "q0"].
+
22  */
+
23 NexCrop q0 = NexCrop(0, 1, "q0");
+
24 
+
25 NexTouch *nex_listen_list[] =
+
26 {
+
27  &q0,
+
28  NULL
+
29 };
+
30 
+
31 /*
+
32  * Crop component pop callback function.
+
33  * In this example,the image of current crop component will be changed every time when it is released.
+
34  */
+
35 void q0PopCallback(void *ptr)
+
36 {
+
37  uint32_t number = 0;
+
38  dbSerialPrintln("q0PopCallback");
+
39 
+
40  q0.getPic(&number);
+
41 
+
42  number += 1;
+
43  number %= 2;
+
44 
+
45  q0.setPic(number);
+
46 }
+
47 
+
48 void setup(void)
+
49 {
+
50  nexInit();
+
51  q0.attachPop(q0PopCallback);
+
52  dbSerialPrintln("setup done");
+
53 }
+
54 
+
55 void loop(void)
+
56 {
+
57  nexLoop(nex_listen_list);
+
58 }
+
59 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool getPic(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:46
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
bool setPic(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:55
+
NexCrop component.
Definition: NexCrop.h:30
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop__v0__32_8ino_source.html new file mode 100644 index 0000000..5b1a68f --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop__v0__32_8ino_source.html @@ -0,0 +1,137 @@ + + + + + + +Documentation: examples/CompCrop/CompCrop_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompCrop_v0_32.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 /*
+
23  * Declare a crop object [page id:0,component id:1, component name: "q0"].
+
24  */
+
25 NexCrop q0 = NexCrop(0, 1, "q0");
+
26 
+
27 NexTouch *nex_listen_list[] =
+
28 {
+
29  &q0,
+
30  NULL
+
31 };
+
32 
+
33 /*
+
34  * Crop component pop callback function.
+
35  * In this example,the image of current crop component will be changed every time when it is released.
+
36  */
+
37 void q0PopCallback(void *ptr)
+
38 {
+
39  uint32_t number = 0;
+
40  dbSerialPrintln("q0PopCallback");
+
41 
+
42  q0.getPic(&number);
+
43 
+
44  number += 1;
+
45  number %= 2;
+
46 
+
47  q0.setPic(number);
+
48 }
+
49 
+
50 void setup(void)
+
51 {
+
52  nexInit();
+
53  q0.attachPop(q0PopCallback);
+
54  dbSerialPrintln("setup done");
+
55 }
+
56 
+
57 void loop(void)
+
58 {
+
59  nexLoop(nex_listen_list);
+
60 }
+
61 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool getPic(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:46
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
bool setPic(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:55
+
NexCrop component.
Definition: NexCrop.h:30
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_v0_32_8ino-example.html new file mode 100644 index 0000000..6e5ff8d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_crop_v0_32_8ino-example.html @@ -0,0 +1,127 @@ + + + + + + +Documentation: CompCrop_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompCrop_v0_32.ino
+
+
+
How to Use
This example shows that when the crop component on the Nextion screen is released, the image of this component will be changed.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
/*
+
* Declare a crop object [page id:0,component id:1, component name: "q0"].
+
*/
+
NexCrop q0 = NexCrop(0, 1, "q0");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&q0,
+
NULL
+
};
+
+
/*
+
* Crop component pop callback function.
+
* In this example,the image of current crop component will be changed every time when it is released.
+
*/
+
void q0PopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("q0PopCallback");
+
+
q0.getPic(&number);
+
+
number += 1;
+
number %= 2;
+
+
q0.setPic(number);
+
}
+
+
void setup(void)
+
{
+ +
q0.attachPop(q0PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino-example.html new file mode 100644 index 0000000..2b9e09a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompDualStateButton.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompDualStateButton.ino
+
+
+
How to Use
This example shows that when the dual state button component on the Nextion screen is released, the text of Text component will change one every time.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino_source.html new file mode 100644 index 0000000..8145ac3 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_8ino_source.html @@ -0,0 +1,173 @@ + + + + + + +Documentation: examples/CompDualStateButton/CompDualStateButton.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompDualStateButton.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 /*
+
21  * Declare a dual state button object [page id:0,component id:1, component name: "bt0"].
+
22  */
+
23 NexDSButton bt0 = NexDSButton(0, 1, "bt0");
+
24 
+
25 NexText t0 = NexText(0, 2, "t0");
+
26 
+
27 
+
28 char buffer[100] = {0};
+
29 
+
30 /*
+
31  * Register a dual state button object to the touch event list.
+
32  */
+
33 NexTouch *nex_listen_list[] =
+
34 {
+
35  &bt0,
+
36  NULL
+
37 };
+
38 
+
39 /*
+
40  * Dual state button component pop callback function.
+
41  * In this example,the button's text value will plus one every time when it is released.
+
42  */
+
43 void bt0PopCallback(void *ptr)
+
44 {
+
45  uint32_t dual_state;
+
46  NexDSButton *btn = (NexDSButton *)ptr;
+
47  dbSerialPrintln("b0PopCallback");
+
48  dbSerialPrint("ptr=");
+
49  dbSerialPrintln((uint32_t)ptr);
+
50  memset(buffer, 0, sizeof(buffer));
+
51 
+
52  /* Get the state value of dual state button component . */
+
53  bt0.getValue(&dual_state);
+
54  if(dual_state)
+
55  {
+
56  t0.setText("HI! OPEN STATE");
+
57  }
+
58  else
+
59  {
+
60  t0.setText("HI! OFF STATE");
+
61  }
+
62 }
+
63 
+
64 void setup(void)
+
65 {
+
66  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
67  nexInit();
+
68 
+
69  /* Register the pop event callback function of the dual state button component. */
+
70  bt0.attachPop(bt0PopCallback, &bt0);
+
71 
+
72  dbSerialPrintln("setup done");
+
73 }
+
74 
+
75 void loop(void)
+
76 {
+
77  /*
+
78  * When a pop or push event occured every time,
+
79  * the corresponding component[right page id and component id] in touch event list will be asked.
+
80  */
+
81  nexLoop(nex_listen_list);
+
82 }
+
83 
+
84 
+
85 
+
86 
+
87 
+
88 
+
89 
+
90 
+
91 
+
92 
+
93 
+
94 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
NexDSButton component.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
bool getValue(uint32_t *number)
Get number attribute of component.
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button__v0__32_8ino_source.html new file mode 100644 index 0000000..ca95550 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button__v0__32_8ino_source.html @@ -0,0 +1,173 @@ + + + + + + +Documentation: examples/CompDualStateButton/CompDualStateButton_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompDualStateButton_v0_32.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 /*
+
23  * Declare a dual state button object [page id:0,component id:1, component name: "bt0"].
+
24  */
+
25 NexDSButton bt0 = NexDSButton(0, 1, "bt0");
+
26 
+
27 NexText t0 = NexText(0, 2, "t0");
+
28 
+
29 
+
30 char buffer[100] = {0};
+
31 
+
32 /*
+
33  * Register a dual state button object to the touch event list.
+
34  */
+
35 NexTouch *nex_listen_list[] =
+
36 {
+
37  &bt0,
+
38  NULL
+
39 };
+
40 
+
41 /*
+
42  * Dual state button component pop callback function.
+
43  * In this example,the button's text value will plus one every time when it is released.
+
44  */
+
45 void bt0PopCallback(void *ptr)
+
46 {
+
47  uint32_t dual_state;
+
48  NexDSButton *btn = (NexDSButton *)ptr;
+
49  dbSerialPrintln("b0PopCallback");
+
50  dbSerialPrint("ptr=");
+
51  dbSerialPrintln((uint32_t)ptr);
+
52  memset(buffer, 0, sizeof(buffer));
+
53 
+
54  /* Get the state value of dual state button component . */
+
55  bt0.getValue(&dual_state);
+
56  if(dual_state)
+
57  {
+
58  t0.setText("HI! OPEN STATE");
+
59  }
+
60  else
+
61  {
+
62  t0.setText("HI! OFF STATE");
+
63  }
+
64 }
+
65 
+
66 void setup(void)
+
67 {
+
68  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
69  nexInit();
+
70 
+
71  /* Register the pop event callback function of the dual state button component. */
+
72  bt0.attachPop(bt0PopCallback, &bt0);
+
73 
+
74  dbSerialPrintln("setup done");
+
75 }
+
76 
+
77 void loop(void)
+
78 {
+
79  /*
+
80  * When a pop or push event occured every time,
+
81  * the corresponding component[right page id and component id] in touch event list will be asked.
+
82  */
+
83  nexLoop(nex_listen_list);
+
84 }
+
85 
+
86 
+
87 
+
88 
+
89 
+
90 
+
91 
+
92 
+
93 
+
94 
+
95 
+
96 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
NexDSButton component.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
bool getValue(uint32_t *number)
Get number attribute of component.
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_v0_32_8ino-example.html new file mode 100644 index 0000000..edf3b81 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_dual_state_button_v0_32_8ino-example.html @@ -0,0 +1,162 @@ + + + + + + +Documentation: CompDualStateButton_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompDualStateButton_v0_32.ino
+
+
+
How to Use
This example shows that when the dual state button component on the Nextion screen is released, the text of Text component will change one every time.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
/*
+
* Declare a dual state button object [page id:0,component id:1, component name: "bt0"].
+
*/
+
NexDSButton bt0 = NexDSButton(0, 1, "bt0");
+
+
NexText t0 = NexText(0, 2, "t0");
+
+
+
char buffer[100] = {0};
+
+
/*
+
* Register a dual state button object to the touch event list.
+
*/
+
NexTouch *nex_listen_list[] =
+
{
+
&bt0,
+
NULL
+
};
+
+
/*
+
* Dual state button component pop callback function.
+
* In this example,the button's text value will plus one every time when it is released.
+
*/
+
void bt0PopCallback(void *ptr)
+
{
+
uint32_t dual_state;
+
NexDSButton *btn = (NexDSButton *)ptr;
+
dbSerialPrintln("b0PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
memset(buffer, 0, sizeof(buffer));
+
+
/* Get the state value of dual state button component . */
+
bt0.getValue(&dual_state);
+
if(dual_state)
+
{
+
t0.setText("HI! OPEN STATE");
+
}
+
else
+
{
+
t0.setText("HI! OFF STATE");
+
}
+
}
+
+
void setup(void)
+
{
+
/* Set the baudrate which is for debug and communicate with Nextion screen. */
+ +
+
/* Register the pop event callback function of the dual state button component. */
+
bt0.attachPop(bt0PopCallback, &bt0);
+
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
/*
+
* When a pop or push event occured every time,
+
* the corresponding component[right page id and component id] in touch event list will be asked.
+
*/
+
nexLoop(nex_listen_list);
+
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino-example.html new file mode 100644 index 0000000..1f21376 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompGauge.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompGauge.ino
+
+
+
How to Use
This example shows that ,when the "btn_up" component on the Nextion screen is released, the value of gauge component will plus 5, when the "btn_down" component released, the value of gauge component will minus 5 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino_source.html new file mode 100644 index 0000000..98aab56 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_8ino_source.html @@ -0,0 +1,154 @@ + + + + + + +Documentation: examples/CompGauge/CompGauge.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompGauge.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 NexGauge pointer = NexGauge(0, 1, "pointer");
+
22 NexButton btn_up = NexButton(0, 2, "btn_up");
+
23 NexButton btn_down = NexButton(0, 3, "btn_down");
+
24 
+
25 NexTouch *nex_listen_list[] =
+
26 {
+
27  &btn_up,
+
28  &btn_down,
+
29  NULL
+
30 };
+
31 
+
32 void buttonUpPopCallback(void *ptr)
+
33 {
+
34  uint32_t number = 0;
+
35  dbSerialPrintln("buttonUpPopCallback");
+
36 
+
37  pointer.getValue(&number);
+
38 
+
39  number += 5;
+
40  if (number >= 360)
+
41  {
+
42  number = 0;
+
43  }
+
44 
+
45  pointer.setValue(number);
+
46 }
+
47 void buttonDownPopCallback(void *ptr)
+
48 {
+
49  uint32_t number = 0;
+
50  dbSerialPrintln("buttonDownPopCallback");
+
51 
+
52  pointer.getValue(&number);
+
53 
+
54  if (number >= 5)
+
55  {
+
56  number -= 5;
+
57  }
+
58 
+
59  pointer.setValue(number);
+
60 }
+
61 
+
62 
+
63 
+
64 void setup(void)
+
65 {
+
66  nexInit();
+
67  btn_up.attachPop(buttonUpPopCallback);
+
68  btn_down.attachPop(buttonDownPopCallback);
+
69  dbSerialPrintln("setup done");
+
70 }
+
71 
+
72 void loop(void)
+
73 {
+
74  nexLoop(nex_listen_list);
+
75 }
+
76 
+
NexGauge component.
Definition: NexGauge.h:30
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool setValue(uint32_t number)
Set the value of gauge.
Definition: NexGauge.cpp:32
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool getValue(uint32_t *number)
Get the value of gauge.
Definition: NexGauge.cpp:23
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge__v0__32_8ino_source.html new file mode 100644 index 0000000..0855a9f --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge__v0__32_8ino_source.html @@ -0,0 +1,154 @@ + + + + + + +Documentation: examples/CompGauge/CompGauge_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompGauge_v0_32.ino
+
+
+
1 
+
21 #include "Nextion.h"
+
22 
+
23 NexGauge pointer = NexGauge(0, 1, "pointer");
+
24 NexButton btn_up = NexButton(0, 2, "btn_up");
+
25 NexButton btn_down = NexButton(0, 3, "btn_down");
+
26 
+
27 NexTouch *nex_listen_list[] =
+
28 {
+
29  &btn_up,
+
30  &btn_down,
+
31  NULL
+
32 };
+
33 
+
34 void buttonUpPopCallback(void *ptr)
+
35 {
+
36  uint32_t number = 0;
+
37  dbSerialPrintln("buttonUpPopCallback");
+
38 
+
39  pointer.getValue(&number);
+
40 
+
41  number += 5;
+
42  if (number >= 360)
+
43  {
+
44  number = 0;
+
45  }
+
46 
+
47  pointer.setValue(number);
+
48 }
+
49 void buttonDownPopCallback(void *ptr)
+
50 {
+
51  uint32_t number = 0;
+
52  dbSerialPrintln("buttonDownPopCallback");
+
53 
+
54  pointer.getValue(&number);
+
55 
+
56  if (number >= 5)
+
57  {
+
58  number -= 5;
+
59  }
+
60 
+
61  pointer.setValue(number);
+
62 }
+
63 
+
64 
+
65 
+
66 void setup(void)
+
67 {
+
68  nexInit();
+
69  btn_up.attachPop(buttonUpPopCallback);
+
70  btn_down.attachPop(buttonDownPopCallback);
+
71  dbSerialPrintln("setup done");
+
72 }
+
73 
+
74 void loop(void)
+
75 {
+
76  nexLoop(nex_listen_list);
+
77 }
+
78 
+
NexGauge component.
Definition: NexGauge.h:30
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool setValue(uint32_t number)
Set the value of gauge.
Definition: NexGauge.cpp:32
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool getValue(uint32_t *number)
Get the value of gauge.
Definition: NexGauge.cpp:23
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_v0_32_8ino-example.html new file mode 100644 index 0000000..e368ac1 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gauge_v0_32_8ino-example.html @@ -0,0 +1,143 @@ + + + + + + +Documentation: CompGauge_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompGauge_v0_32.ino
+
+
+
How to Use
This example shows that ,when the "btn_up" component on the Nextion screen is released, the value of gauge component will plus 5, when the "btn_down" component released, the value of gauge component will minus 5 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexGauge pointer = NexGauge(0, 1, "pointer");
+
NexButton btn_up = NexButton(0, 2, "btn_up");
+
NexButton btn_down = NexButton(0, 3, "btn_down");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&btn_up,
+
&btn_down,
+
NULL
+
};
+
+
void buttonUpPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonUpPopCallback");
+
+
pointer.getValue(&number);
+
+
number += 5;
+
if (number >= 360)
+
{
+
number = 0;
+
}
+
+
pointer.setValue(number);
+
}
+
void buttonDownPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonDownPopCallback");
+
+
pointer.getValue(&number);
+
+
if (number >= 5)
+
{
+
number -= 5;
+
}
+
+
pointer.setValue(number);
+
}
+
+
+
+
void setup(void)
+
{
+ +
btn_up.attachPop(buttonUpPopCallback);
+
btn_down.attachPop(buttonDownPopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_2_comp_gpio_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_2_comp_gpio_8ino_source.html new file mode 100644 index 0000000..7577e1b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_2_comp_gpio_8ino_source.html @@ -0,0 +1,143 @@ + + + + + + +Documentation: examples/CompGpio/CompGpio/CompGpio.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompGpio.ino
+
+
+
1 #include "Nextion.h"
+
2 
+
3 NexGpio gpio;
+
4 NexNumber n0 = NexNumber(0,1,"n0");
+
5 NexNumber n1 = NexNumber(0,3,"n1");
+
6 
+
7 #define GPIO_PUSH_PORT 1
+
8 #define GPIO_PWM_PORT 2
+
9 #define GPIO_PUSH_OUTPUT_MODE 2
+
10 #define GPIO_PWM_OUT_MODE 3
+
11 #define CONTROLS_ID 0 //when the modeel is 1 to be valid
+
12 
+
13 uint32_t pwm_value = 0;
+
14 
+
15 void setup()
+
16 {
+
17  nexSerial.begin(115200);
+
18  gpio.pin_mode(GPIO_PUSH_PORT,GPIO_PUSH_OUTPUT_MODE,CONTROLS_ID);
+
19  gpio.pin_mode(GPIO_PWM_PORT,GPIO_PWM_OUT_MODE,CONTROLS_ID);
+
20 }
+
21 
+
22 void loop()
+
23 {
+
24  if(gpio.digital_read(1) == 0)
+
25  {
+
26  gpio.digital_write(GPIO_PUSH_PORT,HIGH);
+
27  n0.setValue(1);
+
28  }
+
29  else
+
30  {
+
31  gpio.digital_write(GPIO_PUSH_PORT,LOW);
+
32  n0.setValue(0);
+
33  }
+
34 
+
35 
+
36  gpio.analog_write(GPIO_PWM_PORT,pwm_value);
+
37  n1.setValue(pwm_value);
+
38  if(pwm_value == 100)
+
39  {
+
40  pwm_value = 0;
+
41  }
+
42  else
+
43  {
+
44  pwm_value += 20;
+
45  }
+
46 
+
47  delay(1000);
+
48 }
+
NexNumber component.
Definition: NexNumber.h:30
+
#define nexSerial
Define nexSerial for communicate with Nextion touch panel.
Definition: NexConfig.h:37
+
bool digital_write(uint32_t port, uint32_t value)
write a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:37
+
bool pin_mode(uint32_t port, uint32_t mode, uint32_t control_id)
Set gpio mode.
Definition: NexGpio.cpp:17
+
The header file including all other header files provided by this library.
+
NexGpio component.
Definition: NexGpio.h:31
+
bool setValue(uint32_t number)
Set number attribute of component.
Definition: NexNumber.cpp:31
+
bool analog_write(uint32_t port, uint32_t value)
writes an analog value (PWM wave) to a pin
Definition: NexGpio.cpp:68
+
uint32_t digital_read(uint32_t port)
read a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino-example.html new file mode 100644 index 0000000..8d74b10 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino-example.html @@ -0,0 +1,133 @@ + + + + + + +Documentation: CompGpio.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompGpio.ino
+
+
+
How to Use
This example shows that In nextion screen displays the current IO mouth level change, to show how to use the API.
+
Author
huangxiaoming (email:xiaom.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2016/12/8
+ +
+
#include "Nextion.h"
+
+
NexGpio gpio;
+
NexNumber n0 = NexNumber(0,1,"n0");
+
NexNumber n1 = NexNumber(0,3,"n1");
+
+
#define GPIO_PUSH_PORT 1
+
#define GPIO_PWM_PORT 2
+
#define GPIO_PUSH_OUTPUT_MODE 2
+
#define GPIO_PWM_OUT_MODE 3
+
#define CONTROLS_ID 0 //when the modeel is 1 to be valid
+
+
uint32_t pwm_value = 0;
+
+
void setup()
+
{
+
nexSerial.begin(115200);
+
gpio.pin_mode(GPIO_PUSH_PORT,GPIO_PUSH_OUTPUT_MODE,CONTROLS_ID);
+
gpio.pin_mode(GPIO_PWM_PORT,GPIO_PWM_OUT_MODE,CONTROLS_ID);
+
}
+
+
void loop()
+
{
+
if(gpio.digital_read(1) == 0)
+
{
+
gpio.digital_write(GPIO_PUSH_PORT,HIGH);
+
n0.setValue(1);
+
}
+
else
+
{
+
gpio.digital_write(GPIO_PUSH_PORT,LOW);
+
n0.setValue(0);
+
}
+
+
+
gpio.analog_write(GPIO_PWM_PORT,pwm_value);
+
n1.setValue(pwm_value);
+
if(pwm_value == 100)
+
{
+
pwm_value = 0;
+
}
+
else
+
{
+
pwm_value += 20;
+
}
+
+
delay(1000);
+
}
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino_source.html new file mode 100644 index 0000000..09ed014 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_gpio_8ino_source.html @@ -0,0 +1,144 @@ + + + + + + +Documentation: examples/CompGpio/CompGpio.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompGpio.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 NexGpio gpio;
+
21 NexNumber n0 = NexNumber(0,1,"n0");
+
22 NexNumber n1 = NexNumber(0,3,"n1");
+
23 
+
24 #define GPIO_PUSH_PORT 1
+
25 #define GPIO_PWM_PORT 2
+
26 #define GPIO_PUSH_OUTPUT_MODE 2
+
27 #define GPIO_PWM_OUT_MODE 3
+
28 #define CONTROLS_ID 0 //when the modeel is 1 to be valid
+
29 
+
30 uint32_t pwm_value = 0;
+
31 
+
32 void setup()
+
33 {
+
34  nexSerial.begin(115200);
+
35  gpio.pin_mode(GPIO_PUSH_PORT,GPIO_PUSH_OUTPUT_MODE,CONTROLS_ID);
+
36  gpio.pin_mode(GPIO_PWM_PORT,GPIO_PWM_OUT_MODE,CONTROLS_ID);
+
37 }
+
38 
+
39 void loop()
+
40 {
+
41  if(gpio.digital_read(1) == 0)
+
42  {
+
43  gpio.digital_write(GPIO_PUSH_PORT,HIGH);
+
44  n0.setValue(1);
+
45  }
+
46  else
+
47  {
+
48  gpio.digital_write(GPIO_PUSH_PORT,LOW);
+
49  n0.setValue(0);
+
50  }
+
51 
+
52 
+
53  gpio.analog_write(GPIO_PWM_PORT,pwm_value);
+
54  n1.setValue(pwm_value);
+
55  if(pwm_value == 100)
+
56  {
+
57  pwm_value = 0;
+
58  }
+
59  else
+
60  {
+
61  pwm_value += 20;
+
62  }
+
63 
+
64  delay(1000);
+
65 }
+
NexNumber component.
Definition: NexNumber.h:30
+
#define nexSerial
Define nexSerial for communicate with Nextion touch panel.
Definition: NexConfig.h:37
+
bool digital_write(uint32_t port, uint32_t value)
write a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:37
+
bool pin_mode(uint32_t port, uint32_t mode, uint32_t control_id)
Set gpio mode.
Definition: NexGpio.cpp:17
+
The header file including all other header files provided by this library.
+
NexGpio component.
Definition: NexGpio.h:31
+
bool setValue(uint32_t number)
Set number attribute of component.
Definition: NexNumber.cpp:31
+
bool analog_write(uint32_t port, uint32_t value)
writes an analog value (PWM wave) to a pin
Definition: NexGpio.cpp:68
+
uint32_t digital_read(uint32_t port)
read a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino-example.html new file mode 100644 index 0000000..0caf84a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompHotspot.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompHotspot.ino
+
+
+
How to Use
This example shows that ,when the hot component on the Nextion screen is pressed or released, the debug serial will output the debug information every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino_source.html new file mode 100644 index 0000000..75a29c7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_8ino_source.html @@ -0,0 +1,148 @@ + + + + + + +Documentation: examples/CompHotspot/CompHotspot.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompHotspot.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 NexHotspot hot0 = NexHotspot(0, 1, "hot0");
+
21 NexHotspot hot1 = NexHotspot(0, 2, "hot1");
+
22 
+
23 NexTouch *nex_listen_list[] =
+
24 {
+
25  &hot0,
+
26  &hot1,
+
27  NULL
+
28 };
+
29 
+
30 void hot0PushCallback(void *ptr)
+
31 {
+
32  dbSerialPrintln("hot0PushCallback");
+
33  dbSerialPrint("ptr=");
+
34  dbSerialPrintln((uint32_t)ptr);
+
35 }
+
36 
+
37 void hot1PushCallback(void *ptr)
+
38 {
+
39  dbSerialPrintln("hot1PushCallback");
+
40  dbSerialPrint("ptr=");
+
41  dbSerialPrintln((uint32_t)ptr);
+
42 }
+
43 
+
44 void hot0PopCallback(void *ptr)
+
45 {
+
46  dbSerialPrintln("hot0PopCallback");
+
47  dbSerialPrint("ptr=");
+
48  dbSerialPrintln((uint32_t)ptr);
+
49 }
+
50 
+
51 void hot1PopCallback(void *ptr)
+
52 {
+
53  dbSerialPrintln("hot1PopCallback");
+
54  dbSerialPrint("ptr=");
+
55  dbSerialPrintln((uint32_t)ptr);
+
56 }
+
57 
+
58 void setup(void)
+
59 {
+
60  nexInit();
+
61  hot0.attachPush(hot0PushCallback, &hot0);
+
62  hot0.attachPop(hot0PopCallback, &hot0);
+
63  hot1.attachPush(hot1PushCallback, &hot1);
+
64  hot1.attachPop(hot1PopCallback, &hot1);
+
65  dbSerialPrintln("setup done");
+
66 }
+
67 
+
68 void loop(void)
+
69 {
+
70  nexLoop(nex_listen_list);
+
71 }
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
NexHotspot component.
Definition: NexHotspot.h:30
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
void attachPush(NexTouchEventCb push, void *ptr=NULL)
Attach an callback function of push touch event.
Definition: NexTouch.cpp:27
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot__v0__32_8ino_source.html new file mode 100644 index 0000000..634f287 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot__v0__32_8ino_source.html @@ -0,0 +1,148 @@ + + + + + + +Documentation: examples/CompHotspot/CompHotspot_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompHotspot_v0_32.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 NexHotspot hot0 = NexHotspot(0, 1, "hot0");
+
23 NexHotspot hot1 = NexHotspot(0, 2, "hot1");
+
24 
+
25 NexTouch *nex_listen_list[] =
+
26 {
+
27  &hot0,
+
28  &hot1,
+
29  NULL
+
30 };
+
31 
+
32 void hot0PushCallback(void *ptr)
+
33 {
+
34  dbSerialPrintln("hot0PushCallback");
+
35  dbSerialPrint("ptr=");
+
36  dbSerialPrintln((uint32_t)ptr);
+
37 }
+
38 
+
39 void hot1PushCallback(void *ptr)
+
40 {
+
41  dbSerialPrintln("hot1PushCallback");
+
42  dbSerialPrint("ptr=");
+
43  dbSerialPrintln((uint32_t)ptr);
+
44 }
+
45 
+
46 void hot0PopCallback(void *ptr)
+
47 {
+
48  dbSerialPrintln("hot0PopCallback");
+
49  dbSerialPrint("ptr=");
+
50  dbSerialPrintln((uint32_t)ptr);
+
51 }
+
52 
+
53 void hot1PopCallback(void *ptr)
+
54 {
+
55  dbSerialPrintln("hot1PopCallback");
+
56  dbSerialPrint("ptr=");
+
57  dbSerialPrintln((uint32_t)ptr);
+
58 }
+
59 
+
60 void setup(void)
+
61 {
+
62  nexInit();
+
63  hot0.attachPush(hot0PushCallback, &hot0);
+
64  hot0.attachPop(hot0PopCallback, &hot0);
+
65  hot1.attachPush(hot1PushCallback, &hot1);
+
66  hot1.attachPop(hot1PopCallback, &hot1);
+
67  dbSerialPrintln("setup done");
+
68 }
+
69 
+
70 void loop(void)
+
71 {
+
72  nexLoop(nex_listen_list);
+
73 }
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
NexHotspot component.
Definition: NexHotspot.h:30
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
void attachPush(NexTouchEventCb push, void *ptr=NULL)
Attach an callback function of push touch event.
Definition: NexTouch.cpp:27
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_v0_32_8ino-example.html new file mode 100644 index 0000000..744d7d5 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_hotspot_v0_32_8ino-example.html @@ -0,0 +1,139 @@ + + + + + + +Documentation: CompHotspot_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompHotspot_v0_32.ino
+
+
+
How to Use
This example shows that ,when the hot component on the Nextion screen is pressed or released, the debug serial will output the debug information every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexHotspot hot0 = NexHotspot(0, 1, "hot0");
+
NexHotspot hot1 = NexHotspot(0, 2, "hot1");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&hot0,
+
&hot1,
+
NULL
+
};
+
+
void hot0PushCallback(void *ptr)
+
{
+
dbSerialPrintln("hot0PushCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot1PushCallback(void *ptr)
+
{
+
dbSerialPrintln("hot1PushCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("hot0PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void hot1PopCallback(void *ptr)
+
{
+
dbSerialPrintln("hot1PopCallback");
+
dbSerialPrint("ptr=");
+
dbSerialPrintln((uint32_t)ptr);
+
}
+
+
void setup(void)
+
{
+ +
hot0.attachPush(hot0PushCallback, &hot0);
+
hot0.attachPop(hot0PopCallback, &hot0);
+
hot1.attachPush(hot1PushCallback, &hot1);
+
hot1.attachPop(hot1PopCallback, &hot1);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino-example.html new file mode 100644 index 0000000..8be42b0 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompNumber.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompNumber.ino
+
+
+
How to Use
This example shows that ,when the "+" component on the Nextion screen is released, the value of number component will plus 1,when the "-" component released ,the value of number component will minus 1 every time.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino_source.html new file mode 100644 index 0000000..3b92083 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_8ino_source.html @@ -0,0 +1,200 @@ + + + + + + +Documentation: examples/CompNumber/CompNumber.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompNumber.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 void n0PopCallback(void *ptr);
+
22 void b0PopCallback(void *ptr);
+
23 void b1PopCallback(void *ptr);
+
24 
+
25 /*
+
26  * Declare a number object [page id:0,component id:3, component name: "n0"].
+
27  */
+
28 NexNumber n0 = NexNumber(0, 3, "n0");
+
29 
+
30 /*
+
31  * Declare a button object [page id:0,component id:1, component name: "b0"].
+
32  */
+
33 NexButton b0 = NexButton(0, 1, "b0");
+
34 
+
35 /*
+
36  * Declare a button object [page id:0,component id:2, component name: "b1"].
+
37  */
+
38 NexButton b1 = NexButton(0, 2, "b1");
+
39 
+
40 char buffer[100] = {0};
+
41 
+
42 /*
+
43  * Register object n0, b0, b1, to the touch event list.
+
44  */
+
45 NexTouch *nex_listen_list[] =
+
46 {
+
47  &n0,
+
48  &b0,
+
49  &b1,
+
50  NULL
+
51 };
+
52 
+
53 /*
+
54  * number component pop callback function.
+
55  */
+
56 void n0PopCallback(void *ptr)
+
57 {
+
58  dbSerialPrintln("n0PopCallback");
+
59  n0.setValue(50);
+
60 }
+
61 
+
62 /*
+
63  * Button0 component pop callback function.
+
64  * In this example,the value of the number component will plus one every time when button0 is released.
+
65  */
+
66 void b0PopCallback(void *ptr)
+
67 {
+
68  uint32_t number;
+
69 
+
70  dbSerialPrintln("b0PopCallback");
+
71 
+
72  n0.getValue(&number);
+
73 
+
74  number += 1;
+
75 
+
76  n0.setValue(number);
+
77 }
+
78 
+
79 /*
+
80  * Button1 component pop callback function.
+
81  * In this example,the value of the number component will minus one every time when button1 is released.
+
82  */
+
83 void b1PopCallback(void *ptr)
+
84 {
+
85  uint32_t number;
+
86 
+
87  dbSerialPrintln("b1PopCallback");
+
88 
+
89  n0.getValue(&number);
+
90 
+
91  number -= 1;
+
92 
+
93  n0.setValue(number);
+
94 }
+
95 
+
96 void setup(void)
+
97 {
+
98  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
99  nexInit();
+
100 
+
101  /* Register the pop event callback function of the current number component. */
+
102  n0.attachPop(n0PopCallback);
+
103 
+
104  /* Register the pop event callback function of the current button0 component. */
+
105  b0.attachPop(b0PopCallback);
+
106 
+
107  /* Register the pop event callback function of the current button1 component. */
+
108  b1.attachPop(b1PopCallback);
+
109 
+
110  dbSerialPrintln("setup done");
+
111 }
+
112 
+
113 void loop(void)
+
114 {
+
115  /*
+
116  * When a pop or push event occured every time,
+
117  * the corresponding component[right page id and component id] in touch event list will be asked.
+
118  */
+
119  nexLoop(nex_listen_list);
+
120 }
+
121 
+
122 
+
NexNumber component.
Definition: NexNumber.h:30
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
The header file including all other header files provided by this library.
+
bool setValue(uint32_t number)
Set number attribute of component.
Definition: NexNumber.cpp:31
+
bool getValue(uint32_t *number)
Get number attribute of component.
Definition: NexNumber.cpp:22
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number__v0__32_8ino_source.html new file mode 100644 index 0000000..d5c9e8b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number__v0__32_8ino_source.html @@ -0,0 +1,200 @@ + + + + + + +Documentation: examples/CompNumber/CompNumber_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompNumber_v0_32.ino
+
+
+
1 
+
21 #include "Nextion.h"
+
22 
+
23 void n0PopCallback(void *ptr);
+
24 void b0PopCallback(void *ptr);
+
25 void b1PopCallback(void *ptr);
+
26 
+
27 /*
+
28  * Declare a number object [page id:0,component id:3, component name: "n0"].
+
29  */
+
30 NexNumber n0 = NexNumber(0, 3, "n0");
+
31 
+
32 /*
+
33  * Declare a button object [page id:0,component id:1, component name: "b0"].
+
34  */
+
35 NexButton b0 = NexButton(0, 1, "b0");
+
36 
+
37 /*
+
38  * Declare a button object [page id:0,component id:2, component name: "b1"].
+
39  */
+
40 NexButton b1 = NexButton(0, 2, "b1");
+
41 
+
42 char buffer[100] = {0};
+
43 
+
44 /*
+
45  * Register object n0, b0, b1, to the touch event list.
+
46  */
+
47 NexTouch *nex_listen_list[] =
+
48 {
+
49  &n0,
+
50  &b0,
+
51  &b1,
+
52  NULL
+
53 };
+
54 
+
55 /*
+
56  * number component pop callback function.
+
57  */
+
58 void n0PopCallback(void *ptr)
+
59 {
+
60  dbSerialPrintln("n0PopCallback");
+
61  n0.setValue(50);
+
62 }
+
63 
+
64 /*
+
65  * Button0 component pop callback function.
+
66  * In this example,the value of the number component will plus one every time when button0 is released.
+
67  */
+
68 void b0PopCallback(void *ptr)
+
69 {
+
70  uint32_t number;
+
71 
+
72  dbSerialPrintln("b0PopCallback");
+
73 
+
74  n0.getValue(&number);
+
75 
+
76  number += 1;
+
77 
+
78  n0.setValue(number);
+
79 }
+
80 
+
81 /*
+
82  * Button1 component pop callback function.
+
83  * In this example,the value of the number component will minus one every time when button1 is released.
+
84  */
+
85 void b1PopCallback(void *ptr)
+
86 {
+
87  uint32_t number;
+
88 
+
89  dbSerialPrintln("b1PopCallback");
+
90 
+
91  n0.getValue(&number);
+
92 
+
93  number -= 1;
+
94 
+
95  n0.setValue(number);
+
96 }
+
97 
+
98 void setup(void)
+
99 {
+
100  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
101  nexInit();
+
102 
+
103  /* Register the pop event callback function of the current number component. */
+
104  n0.attachPop(n0PopCallback);
+
105 
+
106  /* Register the pop event callback function of the current button0 component. */
+
107  b0.attachPop(b0PopCallback);
+
108 
+
109  /* Register the pop event callback function of the current button1 component. */
+
110  b1.attachPop(b1PopCallback);
+
111 
+
112  dbSerialPrintln("setup done");
+
113 }
+
114 
+
115 void loop(void)
+
116 {
+
117  /*
+
118  * When a pop or push event occured every time,
+
119  * the corresponding component[right page id and component id] in touch event list will be asked.
+
120  */
+
121  nexLoop(nex_listen_list);
+
122 }
+
123 
+
124 
+
NexNumber component.
Definition: NexNumber.h:30
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
The header file including all other header files provided by this library.
+
bool setValue(uint32_t number)
Set number attribute of component.
Definition: NexNumber.cpp:31
+
bool getValue(uint32_t *number)
Get number attribute of component.
Definition: NexNumber.cpp:22
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_v0_32_8ino-example.html new file mode 100644 index 0000000..7d9dfdd --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_number_v0_32_8ino-example.html @@ -0,0 +1,189 @@ + + + + + + +Documentation: CompNumber_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompNumber_v0_32.ino
+
+
+
How to Use
This example shows that ,when the "+" component on the Nextion screen is released, the value of number component will plus 1,when the "-" component released ,the value of number component will minus 1 every time.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
void n0PopCallback(void *ptr);
+
void b0PopCallback(void *ptr);
+
void b1PopCallback(void *ptr);
+
+
/*
+
* Declare a number object [page id:0,component id:3, component name: "n0"].
+
*/
+
NexNumber n0 = NexNumber(0, 3, "n0");
+
+
/*
+
* Declare a button object [page id:0,component id:1, component name: "b0"].
+
*/
+
NexButton b0 = NexButton(0, 1, "b0");
+
+
/*
+
* Declare a button object [page id:0,component id:2, component name: "b1"].
+
*/
+
NexButton b1 = NexButton(0, 2, "b1");
+
+
char buffer[100] = {0};
+
+
/*
+
* Register object n0, b0, b1, to the touch event list.
+
*/
+
NexTouch *nex_listen_list[] =
+
{
+
&n0,
+
&b0,
+
&b1,
+
NULL
+
};
+
+
/*
+
* number component pop callback function.
+
*/
+
void n0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("n0PopCallback");
+
n0.setValue(50);
+
}
+
+
/*
+
* Button0 component pop callback function.
+
* In this example,the value of the number component will plus one every time when button0 is released.
+
*/
+
void b0PopCallback(void *ptr)
+
{
+
uint32_t number;
+
+
dbSerialPrintln("b0PopCallback");
+
+
n0.getValue(&number);
+
+
number += 1;
+
+
n0.setValue(number);
+
}
+
+
/*
+
* Button1 component pop callback function.
+
* In this example,the value of the number component will minus one every time when button1 is released.
+
*/
+
void b1PopCallback(void *ptr)
+
{
+
uint32_t number;
+
+
dbSerialPrintln("b1PopCallback");
+
+
n0.getValue(&number);
+
+
number -= 1;
+
+
n0.setValue(number);
+
}
+
+
void setup(void)
+
{
+
/* Set the baudrate which is for debug and communicate with Nextion screen. */
+ +
+
/* Register the pop event callback function of the current number component. */
+
n0.attachPop(n0PopCallback);
+
+
/* Register the pop event callback function of the current button0 component. */
+
b0.attachPop(b0PopCallback);
+
+
/* Register the pop event callback function of the current button1 component. */
+
b1.attachPop(b1PopCallback);
+
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
/*
+
* When a pop or push event occured every time,
+
* the corresponding component[right page id and component id] in touch event list will be asked.
+
*/
+
nexLoop(nex_listen_list);
+
}
+
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino-example.html new file mode 100644 index 0000000..ca959b4 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompPage.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompPage.ino
+
+
+
How to Use
Show how to use API of class NexPage.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino_source.html new file mode 100644 index 0000000..5cccfb7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_8ino_source.html @@ -0,0 +1,151 @@ + + + + + + +Documentation: examples/CompPage/CompPage.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompPage.ino
+
+
+
1 
+
17 #include "Nextion.h"
+
18 
+
19 NexPage page0 = NexPage(0, 0, "page0");
+
20 NexPage page1 = NexPage(1, 0, "page1");
+
21 NexPage page2 = NexPage(2, 0, "page2");
+
22 NexPage page3 = NexPage(3, 0, "page3");
+
23 
+
24 NexTouch *nex_listen_list[] =
+
25 {
+
26  &page0,
+
27  &page1,
+
28  &page2,
+
29  &page3,
+
30  NULL
+
31 };
+
32 
+
33 void page0PopCallback(void *ptr)
+
34 {
+
35  dbSerialPrintln("page0PopCallback");
+
36  page1.show();
+
37 }
+
38 
+
39 void page1PopCallback(void *ptr)
+
40 {
+
41  dbSerialPrintln("page1PopCallback");
+
42  page2.show();
+
43 }
+
44 
+
45 void page2PopCallback(void *ptr)
+
46 {
+
47  dbSerialPrintln("page2PopCallback");
+
48  page3.show();
+
49 }
+
50 
+
51 void page3PopCallback(void *ptr)
+
52 {
+
53  dbSerialPrintln("page3PopCallback");
+
54  page0.show();
+
55 }
+
56 
+
57 void setup(void)
+
58 {
+
59  nexInit();
+
60  dbSerialPrintln("setup begin");
+
61 
+
62  page0.attachPop(page0PopCallback);
+
63  page1.attachPop(page1PopCallback);
+
64  page2.attachPop(page2PopCallback);
+
65  page3.attachPop(page3PopCallback);
+
66 
+
67  dbSerialPrintln("setup end");
+
68 }
+
69 
+
70 void loop(void)
+
71 {
+
72  nexLoop(nex_listen_list);
+
73 }
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool show(void)
Show itself.
Definition: NexPage.cpp:23
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
A special component , which can contain other components such as NexButton, NexText and NexWaveform...
Definition: NexPage.h:31
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page__v0__32_8ino_source.html new file mode 100644 index 0000000..31c3e35 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page__v0__32_8ino_source.html @@ -0,0 +1,151 @@ + + + + + + +Documentation: examples/CompPage/CompPage_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompPage_v0_32.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 NexPage page0 = NexPage(0, 0, "page0");
+
22 NexPage page1 = NexPage(1, 0, "page1");
+
23 NexPage page2 = NexPage(2, 0, "page2");
+
24 NexPage page3 = NexPage(3, 0, "page3");
+
25 
+
26 NexTouch *nex_listen_list[] =
+
27 {
+
28  &page0,
+
29  &page1,
+
30  &page2,
+
31  &page3,
+
32  NULL
+
33 };
+
34 
+
35 void page0PopCallback(void *ptr)
+
36 {
+
37  dbSerialPrintln("page0PopCallback");
+
38  page1.show();
+
39 }
+
40 
+
41 void page1PopCallback(void *ptr)
+
42 {
+
43  dbSerialPrintln("page1PopCallback");
+
44  page2.show();
+
45 }
+
46 
+
47 void page2PopCallback(void *ptr)
+
48 {
+
49  dbSerialPrintln("page2PopCallback");
+
50  page3.show();
+
51 }
+
52 
+
53 void page3PopCallback(void *ptr)
+
54 {
+
55  dbSerialPrintln("page3PopCallback");
+
56  page0.show();
+
57 }
+
58 
+
59 void setup(void)
+
60 {
+
61  nexInit();
+
62  dbSerialPrintln("setup begin");
+
63 
+
64  page0.attachPop(page0PopCallback);
+
65  page1.attachPop(page1PopCallback);
+
66  page2.attachPop(page2PopCallback);
+
67  page3.attachPop(page3PopCallback);
+
68 
+
69  dbSerialPrintln("setup end");
+
70 }
+
71 
+
72 void loop(void)
+
73 {
+
74  nexLoop(nex_listen_list);
+
75 }
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool show(void)
Show itself.
Definition: NexPage.cpp:23
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
A special component , which can contain other components such as NexButton, NexText and NexWaveform...
Definition: NexPage.h:31
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_v0_32_8ino-example.html new file mode 100644 index 0000000..c059dd7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_page_v0_32_8ino-example.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: CompPage_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompPage_v0_32.ino
+
+
+
How to Use
Show how to use API of class NexPage.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexPage page0 = NexPage(0, 0, "page0");
+
NexPage page1 = NexPage(1, 0, "page1");
+
NexPage page2 = NexPage(2, 0, "page2");
+
NexPage page3 = NexPage(3, 0, "page3");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&page0,
+
&page1,
+
&page2,
+
&page3,
+
NULL
+
};
+
+
void page0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page0PopCallback");
+
page1.show();
+
}
+
+
void page1PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page1PopCallback");
+
page2.show();
+
}
+
+
void page2PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page2PopCallback");
+
page3.show();
+
}
+
+
void page3PopCallback(void *ptr)
+
{
+
dbSerialPrintln("page3PopCallback");
+
page0.show();
+
}
+
+
void setup(void)
+
{
+ +
dbSerialPrintln("setup begin");
+
+
page0.attachPop(page0PopCallback);
+
page1.attachPop(page1PopCallback);
+
page2.attachPop(page2PopCallback);
+
page3.attachPop(page3PopCallback);
+
+
dbSerialPrintln("setup end");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino-example.html new file mode 100644 index 0000000..67635dc --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompPicture.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompPicture.ino
+
+
+
How to Use
This example shows that ,when the picture component on the Nextion screen is released, the picture of current component will be changed every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino_source.html new file mode 100644 index 0000000..c418412 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_8ino_source.html @@ -0,0 +1,140 @@ + + + + + + +Documentation: examples/CompPicture/CompPicture.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompPicture.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 /*
+
22  * Declare a picture object [page id:0,component id:1, component name: "p0"].
+
23  */
+
24 NexPicture p0 = NexPicture(0, 1, "p0");
+
25 
+
26 NexTouch *nex_listen_list[] =
+
27 {
+
28  &p0,
+
29  NULL
+
30 };
+
31 
+
32 void p0PopCallback(void *ptr)
+
33 {
+
34  uint32_t number = 0;
+
35  dbSerialPrintln("p0PopCallback");
+
36 
+
37  p0.getPic(&number);
+
38 
+
39  if (number == 1)
+
40  {
+
41  number = 2;
+
42  }
+
43  else
+
44  {
+
45  number = 1;
+
46  }
+
47 
+
48  p0.setPic(number);
+
49 }
+
50 
+
51 
+
52 void setup(void)
+
53 {
+
54  nexInit();
+
55  p0.attachPop(p0PopCallback);
+
56  dbSerialPrintln("setup done");
+
57 }
+
58 
+
59 void loop(void)
+
60 {
+
61  nexLoop(nex_listen_list);
+
62 }
+
63 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setPic(uint32_t number)
Set picture's number.
Definition: NexPicture.cpp:55
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexPicture component.
Definition: NexPicture.h:30
+
The header file including all other header files provided by this library.
+
bool getPic(uint32_t *number)
Get picture's number.
Definition: NexPicture.cpp:46
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture__v0__32_8ino_source.html new file mode 100644 index 0000000..d36311b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture__v0__32_8ino_source.html @@ -0,0 +1,140 @@ + + + + + + +Documentation: examples/CompPicture/CompPicture_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompPicture_v0_32.ino
+
+
+
1 
+
21 #include "Nextion.h"
+
22 
+
23 /*
+
24  * Declare a picture object [page id:0,component id:1, component name: "p0"].
+
25  */
+
26 NexPicture p0 = NexPicture(0, 1, "p0");
+
27 
+
28 NexTouch *nex_listen_list[] =
+
29 {
+
30  &p0,
+
31  NULL
+
32 };
+
33 
+
34 void p0PopCallback(void *ptr)
+
35 {
+
36  uint32_t number = 0;
+
37  dbSerialPrintln("p0PopCallback");
+
38 
+
39  p0.getPic(&number);
+
40 
+
41  if (number == 1)
+
42  {
+
43  number = 2;
+
44  }
+
45  else
+
46  {
+
47  number = 1;
+
48  }
+
49 
+
50  p0.setPic(number);
+
51 }
+
52 
+
53 
+
54 void setup(void)
+
55 {
+
56  nexInit();
+
57  p0.attachPop(p0PopCallback);
+
58  dbSerialPrintln("setup done");
+
59 }
+
60 
+
61 void loop(void)
+
62 {
+
63  nexLoop(nex_listen_list);
+
64 }
+
65 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setPic(uint32_t number)
Set picture's number.
Definition: NexPicture.cpp:55
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexPicture component.
Definition: NexPicture.h:30
+
The header file including all other header files provided by this library.
+
bool getPic(uint32_t *number)
Get picture's number.
Definition: NexPicture.cpp:46
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_v0_32_8ino-example.html new file mode 100644 index 0000000..ed971ef --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_picture_v0_32_8ino-example.html @@ -0,0 +1,130 @@ + + + + + + +Documentation: CompPicture_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompPicture_v0_32.ino
+
+
+
How to Use
This example shows that ,when the picture component on the Nextion screen is released, the picture of current component will be changed every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
/*
+
* Declare a picture object [page id:0,component id:1, component name: "p0"].
+
*/
+
NexPicture p0 = NexPicture(0, 1, "p0");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&p0,
+
NULL
+
};
+
+
void p0PopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("p0PopCallback");
+
+
p0.getPic(&number);
+
+
if (number == 1)
+
{
+
number = 2;
+
}
+
else
+
{
+
number = 1;
+
}
+
+
p0.setPic(number);
+
}
+
+
+
void setup(void)
+
{
+ +
p0.attachPop(p0PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino-example.html new file mode 100644 index 0000000..18572c6 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompProgressBar.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompProgressBar.ino
+
+
+
How to Use
This example shows that,when the "btn_up" component on the Nextion screen is released, the value of progress bar component will plus 5,when the "btn_down" component released ,the value of progress bar component will minus 5 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino_source.html new file mode 100644 index 0000000..661e0c3 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_8ino_source.html @@ -0,0 +1,153 @@ + + + + + + +Documentation: examples/CompProgressBar/CompProgressBar.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompProgressBar.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 NexProgressBar j0 = NexProgressBar(0, 3, "j0");
+
23 NexButton btn_up = NexButton(0, 1, "btn_up");
+
24 NexButton btn_down = NexButton(0, 2, "btn_down");
+
25 
+
26 NexTouch *nex_listen_list[] =
+
27 {
+
28  &btn_up,
+
29  &btn_down,
+
30  NULL
+
31 };
+
32 
+
33 void buttonUpPopCallback(void *ptr)
+
34 {
+
35  uint32_t number = 0;
+
36  dbSerialPrintln("buttonUpPopCallback");
+
37 
+
38  j0.getValue(&number);
+
39 
+
40  number += 5;
+
41  if (number >= 100)
+
42  {
+
43  number = 100;
+
44  }
+
45 
+
46  j0.setValue(number);
+
47 }
+
48 
+
49 void buttonDownPopCallback(void *ptr)
+
50 {
+
51  uint32_t number = 0;
+
52  dbSerialPrintln("buttonDownPopCallback");
+
53 
+
54  j0.getValue(&number);
+
55 
+
56  if (number >= 5)
+
57  {
+
58  number -= 5;
+
59  }
+
60 
+
61  j0.setValue(number);
+
62 }
+
63 
+
64 void setup(void)
+
65 {
+
66  nexInit();
+
67  btn_up.attachPop(buttonUpPopCallback);
+
68  btn_down.attachPop(buttonDownPopCallback);
+
69  dbSerialPrintln("setup done");
+
70 }
+
71 
+
72 void loop(void)
+
73 {
+
74  nexLoop(nex_listen_list);
+
75 }
+
76 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setValue(uint32_t number)
Set the value of progress bar.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
The header file including all other header files provided by this library.
+
bool getValue(uint32_t *number)
Get the value of progress bar.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexProgressBar component.
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar__v0__32_8ino_source.html new file mode 100644 index 0000000..d6d9399 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar__v0__32_8ino_source.html @@ -0,0 +1,153 @@ + + + + + + +Documentation: examples/CompProgressBar/CompProgressBar_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompProgressBar_v0_32.ino
+
+
+
1 
+
22 #include "Nextion.h"
+
23 
+
24 NexProgressBar j0 = NexProgressBar(0, 3, "j0");
+
25 NexButton btn_up = NexButton(0, 1, "btn_up");
+
26 NexButton btn_down = NexButton(0, 2, "btn_down");
+
27 
+
28 NexTouch *nex_listen_list[] =
+
29 {
+
30  &btn_up,
+
31  &btn_down,
+
32  NULL
+
33 };
+
34 
+
35 void buttonUpPopCallback(void *ptr)
+
36 {
+
37  uint32_t number = 0;
+
38  dbSerialPrintln("buttonUpPopCallback");
+
39 
+
40  j0.getValue(&number);
+
41 
+
42  number += 5;
+
43  if (number >= 100)
+
44  {
+
45  number = 100;
+
46  }
+
47 
+
48  j0.setValue(number);
+
49 }
+
50 
+
51 void buttonDownPopCallback(void *ptr)
+
52 {
+
53  uint32_t number = 0;
+
54  dbSerialPrintln("buttonDownPopCallback");
+
55 
+
56  j0.getValue(&number);
+
57 
+
58  if (number >= 5)
+
59  {
+
60  number -= 5;
+
61  }
+
62 
+
63  j0.setValue(number);
+
64 }
+
65 
+
66 void setup(void)
+
67 {
+
68  nexInit();
+
69  btn_up.attachPop(buttonUpPopCallback);
+
70  btn_down.attachPop(buttonDownPopCallback);
+
71  dbSerialPrintln("setup done");
+
72 }
+
73 
+
74 void loop(void)
+
75 {
+
76  nexLoop(nex_listen_list);
+
77 }
+
78 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setValue(uint32_t number)
Set the value of progress bar.
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
The header file including all other header files provided by this library.
+
bool getValue(uint32_t *number)
Get the value of progress bar.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexProgressBar component.
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_v0_32_8ino-example.html new file mode 100644 index 0000000..262fc19 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_progress_bar_v0_32_8ino-example.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: CompProgressBar_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompProgressBar_v0_32.ino
+
+
+
How to Use
This example shows that,when the "btn_up" component on the Nextion screen is released, the value of progress bar component will plus 5,when the "btn_down" component released ,the value of progress bar component will minus 5 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexProgressBar j0 = NexProgressBar(0, 3, "j0");
+
NexButton btn_up = NexButton(0, 1, "btn_up");
+
NexButton btn_down = NexButton(0, 2, "btn_down");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&btn_up,
+
&btn_down,
+
NULL
+
};
+
+
void buttonUpPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonUpPopCallback");
+
+
j0.getValue(&number);
+
+
number += 5;
+
if (number >= 100)
+
{
+
number = 100;
+
}
+
+
j0.setValue(number);
+
}
+
+
void buttonDownPopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
dbSerialPrintln("buttonDownPopCallback");
+
+
j0.getValue(&number);
+
+
if (number >= 5)
+
{
+
number -= 5;
+
}
+
+
j0.setValue(number);
+
}
+
+
void setup(void)
+
{
+ +
btn_up.attachPop(buttonUpPopCallback);
+
btn_down.attachPop(buttonDownPopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino-example.html new file mode 100644 index 0000000..31e3cf4 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino-example.html @@ -0,0 +1,104 @@ + + + + + + +Documentation: CompRtc.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompRtc.ino
+
+
+
How to Use
This example shows that in nextion screen displays the current read the RTC time and show how to use the API.
+
Author
huangxiaoming (email:xiaom.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2016/12/8
+ +
+
#include "Nextion.h"
+
+
NexText t0 = NexText(0,1,"t0");
+
NexRtc rtc;
+
uint32_t time[7] = {2016,11,25,12,34,50};
+
uint8_t time_buf[30] = {0};
+
+
void setup()
+
{
+
nexSerial.begin(115200);
+
rtc.write_rtc_time(time);
+
}
+
+
void loop()
+
{
+
rtc.read_rtc_time(time_buf,30);
+
t0.setText(time_buf);
+
delay(1000);
+
}
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino_source.html new file mode 100644 index 0000000..f77a8e7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_rtc_8ino_source.html @@ -0,0 +1,112 @@ + + + + + + +Documentation: examples/CompRtc/CompRtc.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompRtc.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 NexText t0 = NexText(0,1,"t0");
+
21 NexRtc rtc;
+
22 uint32_t time[7] = {2016,11,25,12,34,50};
+
23 uint8_t time_buf[30] = {0};
+
24 
+
25 void setup()
+
26 {
+
27  nexSerial.begin(115200);
+
28  rtc.write_rtc_time(time);
+
29 }
+
30 
+
31 void loop()
+
32 {
+
33  rtc.read_rtc_time(time_buf,30);
+
34  t0.setText(time_buf);
+
35  delay(1000);
+
36 }
+
NexRtc component.
Definition: NexRtc.h:31
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
#define nexSerial
Define nexSerial for communicate with Nextion touch panel.
Definition: NexConfig.h:37
+
The header file including all other header files provided by this library.
+
uint32_t read_rtc_time(char *time, uint32_t len)
read rtc time
Definition: NexRtc.cpp:166
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino-example.html new file mode 100644 index 0000000..f22c81d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompSlider.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompSlider.ino
+
+
+
How to Use
This example shows that ,when the slider component on the Nextion screen is released, the text value of text component will be changed every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino_source.html new file mode 100644 index 0000000..f811d1d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_8ino_source.html @@ -0,0 +1,131 @@ + + + + + + +Documentation: examples/CompSlider/CompSlider.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompSlider.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 NexText t0 = NexText(0, 2, "t0");
+
21 NexSlider h0 = NexSlider(0, 1, "h0");
+
22 
+
23 NexTouch *nex_listen_list[] =
+
24 {
+
25  &h0,
+
26  NULL
+
27 };
+
28 
+
29 void h0PopCallback(void *ptr)
+
30 {
+
31  uint32_t number = 0;
+
32  char temp[10] = {0};
+
33 
+
34  dbSerialPrintln("h0PopCallback");
+
35 
+
36  h0.getValue(&number);
+
37  utoa(number, temp, 10);
+
38  t0.setText(temp);
+
39 }
+
40 
+
41 void setup(void)
+
42 {
+
43  nexInit();
+
44  h0.attachPop(h0PopCallback);
+
45  dbSerialPrintln("setup done");
+
46 }
+
47 
+
48 void loop(void)
+
49 {
+
50  nexLoop(nex_listen_list);
+
51 }
+
52 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
NexSlider component.
Definition: NexSlider.h:30
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
bool getValue(uint32_t *number)
Get the value of slider.
Definition: NexSlider.cpp:22
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider__v0__32_8ino_source.html new file mode 100644 index 0000000..5f6e8e8 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider__v0__32_8ino_source.html @@ -0,0 +1,131 @@ + + + + + + +Documentation: examples/CompSlider/CompSlider_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompSlider_v0_32.ino
+
+
+
1 
+
20 #include "Nextion.h"
+
21 
+
22 NexText t0 = NexText(0, 2, "t0");
+
23 NexSlider h0 = NexSlider(0, 1, "h0");
+
24 
+
25 NexTouch *nex_listen_list[] =
+
26 {
+
27  &h0,
+
28  NULL
+
29 };
+
30 
+
31 void h0PopCallback(void *ptr)
+
32 {
+
33  uint32_t number = 0;
+
34  char temp[10] = {0};
+
35 
+
36  dbSerialPrintln("h0PopCallback");
+
37 
+
38  h0.getValue(&number);
+
39  utoa(number, temp, 10);
+
40  t0.setText(temp);
+
41 }
+
42 
+
43 void setup(void)
+
44 {
+
45  nexInit();
+
46  h0.attachPop(h0PopCallback);
+
47  dbSerialPrintln("setup done");
+
48 }
+
49 
+
50 void loop(void)
+
51 {
+
52  nexLoop(nex_listen_list);
+
53 }
+
54 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
NexSlider component.
Definition: NexSlider.h:30
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
bool getValue(uint32_t *number)
Get the value of slider.
Definition: NexSlider.cpp:22
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_v0_32_8ino-example.html new file mode 100644 index 0000000..adfa24f --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_slider_v0_32_8ino-example.html @@ -0,0 +1,120 @@ + + + + + + +Documentation: CompSlider_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompSlider_v0_32.ino
+
+
+
How to Use
This example shows that ,when the slider component on the Nextion screen is released, the text value of text component will be changed every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexText t0 = NexText(0, 2, "t0");
+
NexSlider h0 = NexSlider(0, 1, "h0");
+
+
NexTouch *nex_listen_list[] =
+
{
+
&h0,
+
NULL
+
};
+
+
void h0PopCallback(void *ptr)
+
{
+
uint32_t number = 0;
+
char temp[10] = {0};
+
+
dbSerialPrintln("h0PopCallback");
+
+
h0.getValue(&number);
+
utoa(number, temp, 10);
+
t0.setText(temp);
+
}
+
+
void setup(void)
+
{
+ +
h0.attachPop(h0PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino-example.html new file mode 100644 index 0000000..7309ea3 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompText.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompText.ino
+
+
+
How to Use
This example shows that ,when the "+" component on the Nextion screen is released, the value of text component will plus 1,when the "-" component released ,the value of text component will minus 1 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino_source.html new file mode 100644 index 0000000..be4ec04 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_8ino_source.html @@ -0,0 +1,211 @@ + + + + + + +Documentation: examples/CompText/CompText.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompText.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 void t0PopCallback(void *ptr);
+
22 void b0PopCallback(void *ptr);
+
23 void b1PopCallback(void *ptr);
+
24 
+
25 /*
+
26  * Declare a text object [page id:0,component id:1, component name: "t0"].
+
27  */
+
28 NexText t0 = NexText(0, 1, "t0");
+
29 
+
30 /*
+
31  * Declare a button object [page id:0,component id:2, component name: "b0"].
+
32  */
+
33 NexButton b0 = NexButton(0, 2, "b0");
+
34 
+
35 /*
+
36  * Declare a button object [page id:0,component id:3, component name: "b1"].
+
37  */
+
38 NexButton b1 = NexButton(0, 3, "b1");
+
39 
+
40 char buffer[100] = {0};
+
41 
+
42 /*
+
43  * Register object t0, b0, b1, to the touch event list.
+
44  */
+
45 NexTouch *nex_listen_list[] =
+
46 {
+
47  &t0,
+
48  &b0,
+
49  &b1,
+
50  NULL
+
51 };
+
52 
+
53 /*
+
54  * Text component pop callback function.
+
55  */
+
56 void t0PopCallback(void *ptr)
+
57 {
+
58  dbSerialPrintln("t0PopCallback");
+
59  t0.setText("50");
+
60 }
+
61 
+
62 /*
+
63  * Button0 component pop callback function.
+
64  * In this example,the value of the text component will plus one every time when button0 is released.
+
65  */
+
66 void b0PopCallback(void *ptr)
+
67 {
+
68  uint16_t len;
+
69  uint16_t number;
+
70 
+
71  dbSerialPrintln("b0PopCallback");
+
72 
+
73  memset(buffer, 0, sizeof(buffer));
+
74  t0.getText(buffer, sizeof(buffer));
+
75 
+
76  number = atoi(buffer);
+
77  number += 1;
+
78 
+
79  memset(buffer, 0, sizeof(buffer));
+
80  itoa(number, buffer, 10);
+
81 
+
82  t0.setText(buffer);
+
83 }
+
84 
+
85 /*
+
86  * Button1 component pop callback function.
+
87  * In this example,the value of the text component will minus one every time when button1 is released.
+
88  */
+
89 void b1PopCallback(void *ptr)
+
90 {
+
91  uint16_t len;
+
92  uint16_t number;
+
93 
+
94  dbSerialPrintln("b1PopCallback");
+
95 
+
96  memset(buffer, 0, sizeof(buffer));
+
97  t0.getText(buffer, sizeof(buffer));
+
98 
+
99  number = atoi(buffer);
+
100  number -= 1;
+
101 
+
102  memset(buffer, 0, sizeof(buffer));
+
103  itoa(number, buffer, 10);
+
104 
+
105  t0.setText(buffer);
+
106 }
+
107 
+
108 void setup(void)
+
109 {
+
110  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
111  nexInit();
+
112 
+
113  /* Register the pop event callback function of the current text component. */
+
114  t0.attachPop(t0PopCallback);
+
115 
+
116  /* Register the pop event callback function of the current button0 component. */
+
117  b0.attachPop(b0PopCallback);
+
118 
+
119  /* Register the pop event callback function of the current button1 component. */
+
120  b1.attachPop(b1PopCallback);
+
121 
+
122  dbSerialPrintln("setup done");
+
123 }
+
124 
+
125 void loop(void)
+
126 {
+
127  /*
+
128  * When a pop or push event occured every time,
+
129  * the corresponding component[right page id and component id] in touch event list will be asked.
+
130  */
+
131  nexLoop(nex_listen_list);
+
132 }
+
133 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexText.cpp:22
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text__v0__32_8ino_source.html new file mode 100644 index 0000000..4780b32 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text__v0__32_8ino_source.html @@ -0,0 +1,211 @@ + + + + + + +Documentation: examples/CompText/CompText_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompText_v0_32.ino
+
+
+
1 
+
21 #include "Nextion.h"
+
22 
+
23 void t0PopCallback(void *ptr);
+
24 void b0PopCallback(void *ptr);
+
25 void b1PopCallback(void *ptr);
+
26 
+
27 /*
+
28  * Declare a text object [page id:0,component id:1, component name: "t0"].
+
29  */
+
30 NexText t0 = NexText(0, 1, "t0");
+
31 
+
32 /*
+
33  * Declare a button object [page id:0,component id:2, component name: "b0"].
+
34  */
+
35 NexButton b0 = NexButton(0, 2, "b0");
+
36 
+
37 /*
+
38  * Declare a button object [page id:0,component id:3, component name: "b1"].
+
39  */
+
40 NexButton b1 = NexButton(0, 3, "b1");
+
41 
+
42 char buffer[100] = {0};
+
43 
+
44 /*
+
45  * Register object t0, b0, b1, to the touch event list.
+
46  */
+
47 NexTouch *nex_listen_list[] =
+
48 {
+
49  &t0,
+
50  &b0,
+
51  &b1,
+
52  NULL
+
53 };
+
54 
+
55 /*
+
56  * Text component pop callback function.
+
57  */
+
58 void t0PopCallback(void *ptr)
+
59 {
+
60  dbSerialPrintln("t0PopCallback");
+
61  t0.setText("50");
+
62 }
+
63 
+
64 /*
+
65  * Button0 component pop callback function.
+
66  * In this example,the value of the text component will plus one every time when button0 is released.
+
67  */
+
68 void b0PopCallback(void *ptr)
+
69 {
+
70  uint16_t len;
+
71  uint16_t number;
+
72 
+
73  dbSerialPrintln("b0PopCallback");
+
74 
+
75  memset(buffer, 0, sizeof(buffer));
+
76  t0.getText(buffer, sizeof(buffer));
+
77 
+
78  number = atoi(buffer);
+
79  number += 1;
+
80 
+
81  memset(buffer, 0, sizeof(buffer));
+
82  itoa(number, buffer, 10);
+
83 
+
84  t0.setText(buffer);
+
85 }
+
86 
+
87 /*
+
88  * Button1 component pop callback function.
+
89  * In this example,the value of the text component will minus one every time when button1 is released.
+
90  */
+
91 void b1PopCallback(void *ptr)
+
92 {
+
93  uint16_t len;
+
94  uint16_t number;
+
95 
+
96  dbSerialPrintln("b1PopCallback");
+
97 
+
98  memset(buffer, 0, sizeof(buffer));
+
99  t0.getText(buffer, sizeof(buffer));
+
100 
+
101  number = atoi(buffer);
+
102  number -= 1;
+
103 
+
104  memset(buffer, 0, sizeof(buffer));
+
105  itoa(number, buffer, 10);
+
106 
+
107  t0.setText(buffer);
+
108 }
+
109 
+
110 void setup(void)
+
111 {
+
112  /* Set the baudrate which is for debug and communicate with Nextion screen. */
+
113  nexInit();
+
114 
+
115  /* Register the pop event callback function of the current text component. */
+
116  t0.attachPop(t0PopCallback);
+
117 
+
118  /* Register the pop event callback function of the current button0 component. */
+
119  b0.attachPop(b0PopCallback);
+
120 
+
121  /* Register the pop event callback function of the current button1 component. */
+
122  b1.attachPop(b1PopCallback);
+
123 
+
124  dbSerialPrintln("setup done");
+
125 }
+
126 
+
127 void loop(void)
+
128 {
+
129  /*
+
130  * When a pop or push event occured every time,
+
131  * the corresponding component[right page id and component id] in touch event list will be asked.
+
132  */
+
133  nexLoop(nex_listen_list);
+
134 }
+
135 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexText.cpp:22
+
The header file including all other header files provided by this library.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_v0_32_8ino-example.html new file mode 100644 index 0000000..9775a79 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_text_v0_32_8ino-example.html @@ -0,0 +1,200 @@ + + + + + + +Documentation: CompText_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompText_v0_32.ino
+
+
+
How to Use
This example shows that ,when the "+" component on the Nextion screen is released, the value of text component will plus 1,when the "-" component released ,the value of text component will minus 1 every time.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/7/10 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
void t0PopCallback(void *ptr);
+
void b0PopCallback(void *ptr);
+
void b1PopCallback(void *ptr);
+
+
/*
+
* Declare a text object [page id:0,component id:1, component name: "t0"].
+
*/
+
NexText t0 = NexText(0, 1, "t0");
+
+
/*
+
* Declare a button object [page id:0,component id:2, component name: "b0"].
+
*/
+
NexButton b0 = NexButton(0, 2, "b0");
+
+
/*
+
* Declare a button object [page id:0,component id:3, component name: "b1"].
+
*/
+
NexButton b1 = NexButton(0, 3, "b1");
+
+
char buffer[100] = {0};
+
+
/*
+
* Register object t0, b0, b1, to the touch event list.
+
*/
+
NexTouch *nex_listen_list[] =
+
{
+
&t0,
+
&b0,
+
&b1,
+
NULL
+
};
+
+
/*
+
* Text component pop callback function.
+
*/
+
void t0PopCallback(void *ptr)
+
{
+
dbSerialPrintln("t0PopCallback");
+
t0.setText("50");
+
}
+
+
/*
+
* Button0 component pop callback function.
+
* In this example,the value of the text component will plus one every time when button0 is released.
+
*/
+
void b0PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
+
dbSerialPrintln("b0PopCallback");
+
+
memset(buffer, 0, sizeof(buffer));
+
t0.getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number += 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
t0.setText(buffer);
+
}
+
+
/*
+
* Button1 component pop callback function.
+
* In this example,the value of the text component will minus one every time when button1 is released.
+
*/
+
void b1PopCallback(void *ptr)
+
{
+
uint16_t len;
+
uint16_t number;
+
+
dbSerialPrintln("b1PopCallback");
+
+
memset(buffer, 0, sizeof(buffer));
+
t0.getText(buffer, sizeof(buffer));
+
+
number = atoi(buffer);
+
number -= 1;
+
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number, buffer, 10);
+
+
t0.setText(buffer);
+
}
+
+
void setup(void)
+
{
+
/* Set the baudrate which is for debug and communicate with Nextion screen. */
+ +
+
/* Register the pop event callback function of the current text component. */
+
t0.attachPop(t0PopCallback);
+
+
/* Register the pop event callback function of the current button0 component. */
+
b0.attachPop(b0PopCallback);
+
+
/* Register the pop event callback function of the current button1 component. */
+
b1.attachPop(b1PopCallback);
+
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
/*
+
* When a pop or push event occured every time,
+
* the corresponding component[right page id and component id] in touch event list will be asked.
+
*/
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_2_comp_waveform__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_2_comp_waveform__v0__32_8ino_source.html new file mode 100644 index 0000000..52beb9c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_2_comp_waveform__v0__32_8ino_source.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: examples/CompTimer/CompWaveform_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform_v0_32.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 #define LEVEL_HIGH (30)
+
21 #define LEVEL_LOW (0)
+
22 
+
23 #define CH0_OFFSET (40 - LEVEL_HIGH/2)
+
24 #define CH1_OFFSET (CH0_OFFSET + 40 * 1)
+
25 #define CH2_OFFSET (CH0_OFFSET + 40 * 2)
+
26 #define CH3_OFFSET (CH0_OFFSET + 40 * 3)
+
27 
+
28 
+
29 NexWaveform s0 = NexWaveform(0, 1, "s0");
+
30 
+
31 static uint8_t ch0_data = LEVEL_LOW;
+
32 static uint8_t ch1_data = LEVEL_LOW;
+
33 static uint8_t ch2_data = LEVEL_LOW;
+
34 static uint8_t ch3_data = LEVEL_LOW;
+
35 
+
36 void setup(void)
+
37 {
+
38  nexInit();
+
39  dbSerialPrintln("setup done");
+
40 }
+
41 
+
42 void loop(void)
+
43 {
+
44  static uint32_t started = 0;
+
45  if (millis() - started >= 2000)
+
46  {
+
47  started = millis();
+
48  if (LEVEL_HIGH == ch0_data)
+
49  {
+
50  ch0_data = LEVEL_LOW;
+
51  }
+
52  else
+
53  {
+
54  ch0_data = LEVEL_HIGH;
+
55  }
+
56  }
+
57 
+
58  ch1_data = ch0_data + random(0, 2);
+
59  ch2_data = ch0_data + random(0, 5);
+
60  ch3_data = ch0_data + random(0, 8);
+
61 
+
62  s0.addValue(0, CH0_OFFSET + ch0_data);
+
63  s0.addValue(1, CH1_OFFSET + ch1_data);
+
64  s0.addValue(2, CH2_OFFSET + ch2_data);
+
65  s0.addValue(3, CH3_OFFSET + ch3_data);
+
66 
+
67 }
+
68 
+
bool nexInit(void)
Init Nextion.
+
bool addValue(uint8_t ch, uint8_t number)
Add value to show.
Definition: NexWaveform.cpp:22
+
The header file including all other header files provided by this library.
+
NexWaveform component.
Definition: NexWaveform.h:29
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino-example.html new file mode 100644 index 0000000..2d8f2b7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompTimer.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompTimer.ino
+
+
+
How to Use
This example shows that ,when the OFF button component on the Nextion screen is released, the timer will opened,the text will show number changed and push the ADDTIME button timer cycle value will increase,when push the DECTIME button timer cycle value will reduce.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/8/25 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino_source.html new file mode 100644 index 0000000..0ddae41 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_8ino_source.html @@ -0,0 +1,207 @@ + + + + + + +Documentation: examples/CompTimer/CompTimer.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompTimer.ino
+
+
+
1 
+
19 #include "Nextion.h"
+
20 
+
21 NexButton b0 = NexButton(0, 2, "b0");
+
22 NexButton b1 = NexButton(0, 5, "b1");
+
23 NexButton b2 = NexButton(0, 6, "b2");
+
24 NexText t0 = NexText(0, 3, "t0");
+
25 NexText t1 = NexText(0, 4, "t1");
+
26 NexTimer tm0 = NexTimer(0, 1, "tm0");
+
27 
+
28 
+
29 char buffer[100] = {0};
+
30 uint32_t number_timer = 0;
+
31 uint32_t number_enable = 0;
+
32 uint32_t number_cycle = 100;
+
33 
+
34 
+
35 
+
36 NexTouch *nex_listen_list[] =
+
37 {
+
38  &b0,
+
39  &b1,
+
40  &b2,
+
41  &t0,
+
42  &t1,
+
43  &tm0,
+
44  NULL
+
45 };
+
46 /*
+
47  * Button component pop callback function.
+
48  * In this example,the button can open the timer when it is released.
+
49  */
+
50 void b0PopCallback(void *ptr)
+
51 {
+
52  if(number_enable == 1)
+
53  {
+
54  tm0.enable();
+
55  number_enable = 0;
+
56  b0.setText("ON");
+
57  }
+
58  else if (number_enable ==0)
+
59  {
+
60  tm0.disable();
+
61  number_enable =1;
+
62  b0.setText("OFF");
+
63  }
+
64 }
+
65 /*
+
66  * Button component pop callback function.
+
67  * In this example,the timer's cycle value will increase when it is released.
+
68  */
+
69 void b1PopCallback(void *ptr)
+
70 {
+
71  tm0.getCycle(&number_cycle);
+
72  number_cycle = number_cycle + 100;
+
73  tm0.setCycle(number_cycle);
+
74  memset(buffer, 0, sizeof(buffer));
+
75  itoa(number_cycle, buffer, 10);
+
76  t1.setText(buffer);
+
77 }
+
78 
+
79 /*
+
80  * Button component pop callback function.
+
81  * In this example,the timer's cycle value will reduce when it is released.
+
82  */
+
83 
+
84 void b2PopCallback(void *ptr)
+
85 {
+
86  tm0.getCycle(&number_cycle);
+
87  if (number_cycle >100)
+
88  {
+
89  number_cycle = number_cycle - 100;
+
90  }
+
91  tm0.setCycle(number_cycle);
+
92  memset(buffer, 0, sizeof(buffer));
+
93  itoa(number_cycle, buffer, 10);
+
94  t1.setText(buffer);
+
95 }
+
96 
+
97 /*
+
98  * The timer respond function
+
99  * In this example,the timer will respond when set cycle time done and puls one for a variable.
+
100  */
+
101 
+
102 void tm0TimerCallback(void *ptr)
+
103 {
+
104  number_timer++;
+
105  memset(buffer, 0, sizeof(buffer));
+
106  itoa(number_timer, buffer, 10);
+
107  t0.setText(buffer);
+
108 }
+
109 void setup(void)
+
110 {
+
111  nexInit();
+
112  b0.attachPop(b0PopCallback);
+
113  tm0.attachTimer(tm0TimerCallback);
+
114  b1.attachPop(b1PopCallback);
+
115  b2.attachPop(b2PopCallback);
+
116  dbSerialPrintln("setup done");
+
117 }
+
118 
+
119 void loop(void)
+
120 {
+
121  nexLoop(nex_listen_list);
+
122 }
+
123 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
bool enable(void)
contorl timer enable.
Definition: NexTimer.cpp:60
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
bool getCycle(uint32_t *number)
Get the value of timer cycle val.
Definition: NexTimer.cpp:33
+
The header file including all other header files provided by this library.
+
bool setCycle(uint32_t number)
Set the value of timer cycle val.
Definition: NexTimer.cpp:42
+
NexTimer component.
Definition: NexTimer.h:34
+
void attachTimer(NexTouchEventCb timer, void *ptr=NULL)
Attach an callback function of timer respond event.
Definition: NexTimer.cpp:23
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
bool disable(void)
contorl timer disable.
Definition: NexTimer.cpp:73
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer__v0__32_8ino_source.html new file mode 100644 index 0000000..fb51290 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer__v0__32_8ino_source.html @@ -0,0 +1,207 @@ + + + + + + +Documentation: examples/CompTimer/CompTimer_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompTimer_v0_32.ino
+
+
+
1 
+
21 #include "Nextion.h"
+
22 
+
23 NexButton b0 = NexButton(0, 2, "b0");
+
24 NexButton b1 = NexButton(0, 5, "b1");
+
25 NexButton b2 = NexButton(0, 6, "b2");
+
26 NexText t0 = NexText(0, 3, "t0");
+
27 NexText t1 = NexText(0, 4, "t1");
+
28 NexTimer tm0 = NexTimer(0, 1, "tm0");
+
29 
+
30 
+
31 char buffer[100] = {0};
+
32 uint32_t number_timer = 0;
+
33 uint32_t number_enable = 0;
+
34 uint32_t number_cycle = 100;
+
35 
+
36 
+
37 
+
38 NexTouch *nex_listen_list[] =
+
39 {
+
40  &b0,
+
41  &b1,
+
42  &b2,
+
43  &t0,
+
44  &t1,
+
45  &tm0,
+
46  NULL
+
47 };
+
48 /*
+
49  * Button component pop callback function.
+
50  * In this example,the button can open the timer when it is released.
+
51  */
+
52 void b0PopCallback(void *ptr)
+
53 {
+
54  if(number_enable == 1)
+
55  {
+
56  tm0.enable();
+
57  number_enable = 0;
+
58  b0.setText("ON");
+
59  }
+
60  else if (number_enable ==0)
+
61  {
+
62  tm0.disable();
+
63  number_enable =1;
+
64  b0.setText("OFF");
+
65  }
+
66 }
+
67 /*
+
68  * Button component pop callback function.
+
69  * In this example,the timer's cycle value will increase when it is released.
+
70  */
+
71 void b1PopCallback(void *ptr)
+
72 {
+
73  tm0.getCycle(&number_cycle);
+
74  number_cycle = number_cycle + 100;
+
75  tm0.setCycle(number_cycle);
+
76  memset(buffer, 0, sizeof(buffer));
+
77  itoa(number_cycle, buffer, 10);
+
78  t1.setText(buffer);
+
79 }
+
80 
+
81 /*
+
82  * Button component pop callback function.
+
83  * In this example,the timer's cycle value will reduce when it is released.
+
84  */
+
85 
+
86 void b2PopCallback(void *ptr)
+
87 {
+
88  tm0.getCycle(&number_cycle);
+
89  if (number_cycle >100)
+
90  {
+
91  number_cycle = number_cycle - 100;
+
92  }
+
93  tm0.setCycle(number_cycle);
+
94  memset(buffer, 0, sizeof(buffer));
+
95  itoa(number_cycle, buffer, 10);
+
96  t1.setText(buffer);
+
97 }
+
98 
+
99 /*
+
100  * The timer respond function
+
101  * In this example,the timer will respond when set cycle time done and puls one for a variable.
+
102  */
+
103 
+
104 void tm0TimerCallback(void *ptr)
+
105 {
+
106  number_timer++;
+
107  memset(buffer, 0, sizeof(buffer));
+
108  itoa(number_timer, buffer, 10);
+
109  t0.setText(buffer);
+
110 }
+
111 void setup(void)
+
112 {
+
113  nexInit();
+
114  b0.attachPop(b0PopCallback);
+
115  tm0.attachTimer(tm0TimerCallback);
+
116  b1.attachPop(b1PopCallback);
+
117  b2.attachPop(b2PopCallback);
+
118  dbSerialPrintln("setup done");
+
119 }
+
120 
+
121 void loop(void)
+
122 {
+
123  nexLoop(nex_listen_list);
+
124 }
+
125 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexText.cpp:32
+
bool enable(void)
contorl timer enable.
Definition: NexTimer.cpp:60
+
void attachPop(NexTouchEventCb pop, void *ptr=NULL)
Attach an callback function of pop touch event.
Definition: NexTouch.cpp:39
+
bool nexInit(void)
Init Nextion.
+
NexButton component.
Definition: NexButton.h:35
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
bool getCycle(uint32_t *number)
Get the value of timer cycle val.
Definition: NexTimer.cpp:33
+
The header file including all other header files provided by this library.
+
bool setCycle(uint32_t number)
Set the value of timer cycle val.
Definition: NexTimer.cpp:42
+
NexTimer component.
Definition: NexTimer.h:34
+
void attachTimer(NexTouchEventCb timer, void *ptr=NULL)
Attach an callback function of timer respond event.
Definition: NexTimer.cpp:23
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
bool disable(void)
contorl timer disable.
Definition: NexTimer.cpp:73
+
NexText component.
Definition: NexText.h:30
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_v0_32_8ino-example.html new file mode 100644 index 0000000..df10ea8 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_timer_v0_32_8ino-example.html @@ -0,0 +1,190 @@ + + + + + + +Documentation: CompTimer_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompTimer_v0_32.ino
+
+
+
How to Use
This example shows that ,when the OFF button component on the Nextion screen is released, the timer will opened,the text will show number changed and push the ADDTIME button timer cycle value will increase,when push the DECTIME button timer cycle value will reduce.
+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/8/25 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
NexButton b0 = NexButton(0, 2, "b0");
+
NexButton b1 = NexButton(0, 5, "b1");
+
NexButton b2 = NexButton(0, 6, "b2");
+
NexText t0 = NexText(0, 3, "t0");
+
NexText t1 = NexText(0, 4, "t1");
+
NexTimer tm0 = NexTimer(0, 1, "tm0");
+
+
+
char buffer[100] = {0};
+
uint32_t number_timer = 0;
+
uint32_t number_enable = 0;
+
uint32_t number_cycle = 100;
+
+
+
+
NexTouch *nex_listen_list[] =
+
{
+
&b0,
+
&b1,
+
&b2,
+
&t0,
+
&t1,
+
&tm0,
+
NULL
+
};
+
/*
+
* Button component pop callback function.
+
* In this example,the button can open the timer when it is released.
+
*/
+
void b0PopCallback(void *ptr)
+
{
+
if(number_enable == 1)
+
{
+
tm0.enable();
+
number_enable = 0;
+
b0.setText("ON");
+
}
+
else if (number_enable ==0)
+
{
+
tm0.disable();
+
number_enable =1;
+
b0.setText("OFF");
+
}
+
}
+
/*
+
* Button component pop callback function.
+
* In this example,the timer's cycle value will increase when it is released.
+
*/
+
void b1PopCallback(void *ptr)
+
{
+
tm0.getCycle(&number_cycle);
+
number_cycle = number_cycle + 100;
+
tm0.setCycle(number_cycle);
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number_cycle, buffer, 10);
+
t1.setText(buffer);
+
}
+
+
/*
+
* Button component pop callback function.
+
* In this example,the timer's cycle value will reduce when it is released.
+
*/
+
+
void b2PopCallback(void *ptr)
+
{
+
tm0.getCycle(&number_cycle);
+
if (number_cycle >100)
+
{
+
number_cycle = number_cycle - 100;
+
}
+
tm0.setCycle(number_cycle);
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number_cycle, buffer, 10);
+
t1.setText(buffer);
+
}
+
+
/*
+
* The timer respond function
+
* In this example,the timer will respond when set cycle time done and puls one for a variable.
+
*/
+
+
void tm0TimerCallback(void *ptr)
+
{
+
number_timer++;
+
memset(buffer, 0, sizeof(buffer));
+
itoa(number_timer, buffer, 10);
+
t0.setText(buffer);
+
}
+
void setup(void)
+
{
+ +
b0.attachPop(b0PopCallback);
+
tm0.attachTimer(tm0TimerCallback);
+
b1.attachPop(b1PopCallback);
+
b2.attachPop(b2PopCallback);
+
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
nexLoop(nex_listen_list);
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_2_comp_waveform__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_2_comp_waveform__v0__32_8ino_source.html new file mode 100644 index 0000000..bceb2c2 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_2_comp_waveform__v0__32_8ino_source.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: examples/CompWaveform/CompWaveform_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform_v0_32.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 #define LEVEL_HIGH (30)
+
21 #define LEVEL_LOW (0)
+
22 
+
23 #define CH0_OFFSET (40 - LEVEL_HIGH/2)
+
24 #define CH1_OFFSET (CH0_OFFSET + 40 * 1)
+
25 #define CH2_OFFSET (CH0_OFFSET + 40 * 2)
+
26 #define CH3_OFFSET (CH0_OFFSET + 40 * 3)
+
27 
+
28 
+
29 NexWaveform s0 = NexWaveform(0, 1, "s0");
+
30 
+
31 static uint8_t ch0_data = LEVEL_LOW;
+
32 static uint8_t ch1_data = LEVEL_LOW;
+
33 static uint8_t ch2_data = LEVEL_LOW;
+
34 static uint8_t ch3_data = LEVEL_LOW;
+
35 
+
36 void setup(void)
+
37 {
+
38  nexInit();
+
39  dbSerialPrintln("setup done");
+
40 }
+
41 
+
42 void loop(void)
+
43 {
+
44  static uint32_t started = 0;
+
45  if (millis() - started >= 2000)
+
46  {
+
47  started = millis();
+
48  if (LEVEL_HIGH == ch0_data)
+
49  {
+
50  ch0_data = LEVEL_LOW;
+
51  }
+
52  else
+
53  {
+
54  ch0_data = LEVEL_HIGH;
+
55  }
+
56  }
+
57 
+
58  ch1_data = ch0_data + random(0, 2);
+
59  ch2_data = ch0_data + random(0, 5);
+
60  ch3_data = ch0_data + random(0, 8);
+
61 
+
62  s0.addValue(0, CH0_OFFSET + ch0_data);
+
63  s0.addValue(1, CH1_OFFSET + ch1_data);
+
64  s0.addValue(2, CH2_OFFSET + ch2_data);
+
65  s0.addValue(3, CH3_OFFSET + ch3_data);
+
66 
+
67 }
+
68 
+
bool nexInit(void)
Init Nextion.
+
bool addValue(uint8_t ch, uint8_t number)
Add value to show.
Definition: NexWaveform.cpp:22
+
The header file including all other header files provided by this library.
+
NexWaveform component.
Definition: NexWaveform.h:29
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino-example.html new file mode 100644 index 0000000..7c0fd5b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino-example.html @@ -0,0 +1,84 @@ + + + + + + +Documentation: CompWaveform.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform.ino
+
+
+
How to Use
Show how to use API of class NexWaveform.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino_source.html new file mode 100644 index 0000000..12dd536 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_8ino_source.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: examples/CompWaveform/CompWaveform.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform.ino
+
+
+
1 
+
16 #include "Nextion.h"
+
17 
+
18 #define LEVEL_HIGH (30)
+
19 #define LEVEL_LOW (0)
+
20 
+
21 #define CH0_OFFSET (40 - LEVEL_HIGH/2)
+
22 #define CH1_OFFSET (CH0_OFFSET + 40 * 1)
+
23 #define CH2_OFFSET (CH0_OFFSET + 40 * 2)
+
24 #define CH3_OFFSET (CH0_OFFSET + 40 * 3)
+
25 
+
26 
+
27 NexWaveform s0 = NexWaveform(0, 1, "s0");
+
28 
+
29 static uint8_t ch0_data = LEVEL_LOW;
+
30 static uint8_t ch1_data = LEVEL_LOW;
+
31 static uint8_t ch2_data = LEVEL_LOW;
+
32 static uint8_t ch3_data = LEVEL_LOW;
+
33 
+
34 void setup(void)
+
35 {
+
36  nexInit();
+
37  dbSerialPrintln("setup done");
+
38 }
+
39 
+
40 void loop(void)
+
41 {
+
42  static uint32_t started = 0;
+
43  if (millis() - started >= 2000)
+
44  {
+
45  started = millis();
+
46  if (LEVEL_HIGH == ch0_data)
+
47  {
+
48  ch0_data = LEVEL_LOW;
+
49  }
+
50  else
+
51  {
+
52  ch0_data = LEVEL_HIGH;
+
53  }
+
54  }
+
55 
+
56  ch1_data = ch0_data + random(0, 2);
+
57  ch2_data = ch0_data + random(0, 5);
+
58  ch3_data = ch0_data + random(0, 8);
+
59 
+
60  s0.addValue(0, CH0_OFFSET + ch0_data);
+
61  s0.addValue(1, CH1_OFFSET + ch1_data);
+
62  s0.addValue(2, CH2_OFFSET + ch2_data);
+
63  s0.addValue(3, CH3_OFFSET + ch3_data);
+
64 
+
65 }
+
66 
+
bool nexInit(void)
Init Nextion.
+
bool addValue(uint8_t ch, uint8_t number)
Add value to show.
Definition: NexWaveform.cpp:22
+
The header file including all other header files provided by this library.
+
NexWaveform component.
Definition: NexWaveform.h:29
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform__v0__32_8ino_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform__v0__32_8ino_source.html new file mode 100644 index 0000000..6fe0cce --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform__v0__32_8ino_source.html @@ -0,0 +1,142 @@ + + + + + + +Documentation: examples/CompWaveform/CompWaveform_v0_32.ino Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform_v0_32.ino
+
+
+
1 
+
18 #include "Nextion.h"
+
19 
+
20 #define LEVEL_HIGH (30)
+
21 #define LEVEL_LOW (0)
+
22 
+
23 #define CH0_OFFSET (40 - LEVEL_HIGH/2)
+
24 #define CH1_OFFSET (CH0_OFFSET + 40 * 1)
+
25 #define CH2_OFFSET (CH0_OFFSET + 40 * 2)
+
26 #define CH3_OFFSET (CH0_OFFSET + 40 * 3)
+
27 
+
28 
+
29 NexWaveform s0 = NexWaveform(0, 1, "s0");
+
30 
+
31 static uint8_t ch0_data = LEVEL_LOW;
+
32 static uint8_t ch1_data = LEVEL_LOW;
+
33 static uint8_t ch2_data = LEVEL_LOW;
+
34 static uint8_t ch3_data = LEVEL_LOW;
+
35 
+
36 void setup(void)
+
37 {
+
38  nexInit();
+
39  dbSerialPrintln("setup done");
+
40 }
+
41 
+
42 void loop(void)
+
43 {
+
44  static uint32_t started = 0;
+
45  if (millis() - started >= 2000)
+
46  {
+
47  started = millis();
+
48  if (LEVEL_HIGH == ch0_data)
+
49  {
+
50  ch0_data = LEVEL_LOW;
+
51  }
+
52  else
+
53  {
+
54  ch0_data = LEVEL_HIGH;
+
55  }
+
56  }
+
57 
+
58  ch1_data = ch0_data + random(0, 2);
+
59  ch2_data = ch0_data + random(0, 5);
+
60  ch3_data = ch0_data + random(0, 8);
+
61 
+
62  s0.addValue(0, CH0_OFFSET + ch0_data);
+
63  s0.addValue(1, CH1_OFFSET + ch1_data);
+
64  s0.addValue(2, CH2_OFFSET + ch2_data);
+
65  s0.addValue(3, CH3_OFFSET + ch3_data);
+
66 
+
67 }
+
68 
+
bool nexInit(void)
Init Nextion.
+
bool addValue(uint8_t ch, uint8_t number)
Add value to show.
Definition: NexWaveform.cpp:22
+
The header file including all other header files provided by this library.
+
NexWaveform component.
Definition: NexWaveform.h:29
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_v0_32_8ino-example.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_v0_32_8ino-example.html new file mode 100644 index 0000000..e94a571 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_comp_waveform_v0_32_8ino-example.html @@ -0,0 +1,136 @@ + + + + + + +Documentation: CompWaveform_v0_32.ino + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + +
+
+ +
+
+
+ +
+
+
+
CompWaveform_v0_32.ino
+
+
+
How to Use
Show how to use API of class NexWaveform.
+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made
+ +
+
#include "Nextion.h"
+
+
#define LEVEL_HIGH (30)
+
#define LEVEL_LOW (0)
+
+
#define CH0_OFFSET (40 - LEVEL_HIGH/2)
+
#define CH1_OFFSET (CH0_OFFSET + 40 * 1)
+
#define CH2_OFFSET (CH0_OFFSET + 40 * 2)
+
#define CH3_OFFSET (CH0_OFFSET + 40 * 3)
+
+
+
NexWaveform s0 = NexWaveform(0, 1, "s0");
+
+
static uint8_t ch0_data = LEVEL_LOW;
+
static uint8_t ch1_data = LEVEL_LOW;
+
static uint8_t ch2_data = LEVEL_LOW;
+
static uint8_t ch3_data = LEVEL_LOW;
+
+
void setup(void)
+
{
+ +
dbSerialPrintln("setup done");
+
}
+
+
void loop(void)
+
{
+
static uint32_t started = 0;
+
if (millis() - started >= 2000)
+
{
+
started = millis();
+
if (LEVEL_HIGH == ch0_data)
+
{
+
ch0_data = LEVEL_LOW;
+
}
+
else
+
{
+
ch0_data = LEVEL_HIGH;
+
}
+
}
+
+
ch1_data = ch0_data + random(0, 2);
+
ch2_data = ch0_data + random(0, 5);
+
ch3_data = ch0_data + random(0, 8);
+
+
s0.addValue(0, CH0_OFFSET + ch0_data);
+
s0.addValue(1, CH1_OFFSET + ch1_data);
+
s0.addValue(2, CH2_OFFSET + ch2_data);
+
s0.addValue(3, CH3_OFFSET + ch3_data);
+
+
}
+
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp.html new file mode 100644 index 0000000..cbed8ab --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexButton.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexButton.cpp File Reference
+
+
+ +

The implementation of class NexButton. +More...

+
#include "NexButton.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexButton.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexButton.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.map new file mode 100644 index 0000000..2bea002 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.md5 new file mode 100644 index 0000000..6ac58ce --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.md5 @@ -0,0 +1 @@ +68fbe2ac8c00174debc341792ccb83f9 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..58e1d7fab2c8d800bdd9cb529bf49e7425bdb4ac GIT binary patch literal 24618 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≺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 GA^!t2p)9BX literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp_source.html new file mode 100644 index 0000000..3f9051c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8cpp_source.html @@ -0,0 +1,450 @@ + + + + + + +Documentation: NexButton.cpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexButton.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexButton.h"
+
17 
+
18 NexButton::NexButton(uint8_t pid, uint8_t cid, const char *name)
+
19  :NexTouch(pid, cid, name)
+
20 {
+
21 }
+
22 
+
23 uint16_t NexButton::getText(char *buffer, uint16_t len)
+
24 {
+
25  String cmd;
+
26  cmd += "get ";
+
27  cmd += getObjName();
+
28  cmd += ".txt";
+
29  sendCommand(cmd.c_str());
+
30  return recvRetString(buffer,len);
+
31 }
+
32 
+
33 bool NexButton::setText(const char *buffer)
+
34 {
+
35  String cmd;
+
36  cmd += getObjName();
+
37  cmd += ".txt=\"";
+
38  cmd += buffer;
+
39  cmd += "\"";
+
40  sendCommand(cmd.c_str());
+
41  return recvRetCommandFinished();
+
42 }
+
43 
+
44 
+
45 uint32_t NexButton::Get_background_color_bco(uint32_t *number)
+
46 {
+
47  String cmd;
+
48  cmd += "get ";
+
49  cmd += getObjName();
+
50  cmd += ".bco";
+
51  sendCommand(cmd.c_str());
+
52  return recvRetNumber(number);
+
53 }
+
54 
+ +
56 {
+
57  char buf[10] = {0};
+
58  String cmd;
+
59 
+
60  utoa(number, buf, 10);
+
61  cmd += getObjName();
+
62  cmd += ".bco=";
+
63  cmd += buf;
+
64  sendCommand(cmd.c_str());
+
65 
+
66  cmd="";
+
67  cmd += "ref ";
+
68  cmd += getObjName();
+
69  sendCommand(cmd.c_str());
+
70  return recvRetCommandFinished();
+
71 }
+
72 
+ +
74 {
+
75  String cmd;
+
76  cmd += "get ";
+
77  cmd += getObjName();
+
78  cmd += ".bco2";
+
79  sendCommand(cmd.c_str());
+
80  return recvRetNumber(number);
+
81 }
+
82 
+ +
84 {
+
85  char buf[10] = {0};
+
86  String cmd;
+
87 
+
88  utoa(number, buf, 10);
+
89  cmd += getObjName();
+
90  cmd += ".bco2=";
+
91  cmd += buf;
+
92  sendCommand(cmd.c_str());
+
93 
+
94  cmd="";
+
95  cmd += "ref ";
+
96  cmd += getObjName();
+
97  sendCommand(cmd.c_str());
+
98  return recvRetCommandFinished();
+
99 }
+
100 
+
101 uint32_t NexButton::Get_font_color_pco(uint32_t *number)
+
102 {
+
103  String cmd;
+
104  cmd += "get ";
+
105  cmd += getObjName();
+
106  cmd += ".pco";
+
107  sendCommand(cmd.c_str());
+
108  return recvRetNumber(number);
+
109 }
+
110 
+
111 bool NexButton::Set_font_color_pco(uint32_t number)
+
112 {
+
113  char buf[10] = {0};
+
114  String cmd;
+
115 
+
116  utoa(number, buf, 10);
+
117  cmd += getObjName();
+
118  cmd += ".pco=";
+
119  cmd += buf;
+
120  sendCommand(cmd.c_str());
+
121 
+
122  cmd = "";
+
123  cmd += "ref ";
+
124  cmd += getObjName();
+
125  sendCommand(cmd.c_str());
+
126  return recvRetCommandFinished();
+
127 }
+
128 
+
129 uint32_t NexButton::Get_press_font_color_pco2(uint32_t *number)
+
130 {
+
131  String cmd;
+
132  cmd += "get ";
+
133  cmd += getObjName();
+
134  cmd += ".pco2";
+
135  sendCommand(cmd.c_str());
+
136  return recvRetNumber(number);
+
137 }
+
138 
+ +
140 {
+
141  char buf[10] = {0};
+
142  String cmd;
+
143 
+
144  utoa(number, buf, 10);
+
145  cmd += getObjName();
+
146  cmd += ".pco2=";
+
147  cmd += buf;
+
148  sendCommand(cmd.c_str());
+
149 
+
150  cmd = "";
+
151  cmd += "ref ";
+
152  cmd += getObjName();
+
153  sendCommand(cmd.c_str());
+
154  return recvRetCommandFinished();
+
155 }
+
156 
+
157 uint32_t NexButton::Get_place_xcen(uint32_t *number)
+
158 {
+
159  String cmd;
+
160  cmd += "get ";
+
161  cmd += getObjName();
+
162  cmd += ".xcen";
+
163  sendCommand(cmd.c_str());
+
164  return recvRetNumber(number);
+
165 }
+
166 
+
167 bool NexButton::Set_place_xcen(uint32_t number)
+
168 {
+
169  char buf[10] = {0};
+
170  String cmd;
+
171 
+
172  utoa(number, buf, 10);
+
173  cmd += getObjName();
+
174  cmd += ".xcen=";
+
175  cmd += buf;
+
176  sendCommand(cmd.c_str());
+
177 
+
178  cmd = "";
+
179  cmd += "ref ";
+
180  cmd += getObjName();
+
181  sendCommand(cmd.c_str());
+
182  return recvRetCommandFinished();
+
183 }
+
184 
+
185 uint32_t NexButton::Get_place_ycen(uint32_t *number)
+
186 {
+
187  String cmd;
+
188  cmd += "get ";
+
189  cmd += getObjName();
+
190  cmd += ".ycen";
+
191  sendCommand(cmd.c_str());
+
192  return recvRetNumber(number);
+
193 }
+
194 
+
195 bool NexButton::Set_place_ycen(uint32_t number)
+
196 {
+
197  char buf[10] = {0};
+
198  String cmd;
+
199 
+
200  utoa(number, buf, 10);
+
201  cmd += getObjName();
+
202  cmd += ".ycen=";
+
203  cmd += buf;
+
204  sendCommand(cmd.c_str());
+
205 
+
206  cmd = "";
+
207  cmd += "ref ";
+
208  cmd += getObjName();
+
209  sendCommand(cmd.c_str());
+
210  return recvRetCommandFinished();
+
211 }
+
212 
+
213 uint32_t NexButton::getFont(uint32_t *number)
+
214 {
+
215  String cmd;
+
216  cmd += "get ";
+
217  cmd += getObjName();
+
218  cmd += ".font";
+
219  sendCommand(cmd.c_str());
+
220  return recvRetNumber(number);
+
221 }
+
222 
+
223 bool NexButton::setFont(uint32_t number)
+
224 {
+
225  char buf[10] = {0};
+
226  String cmd;
+
227 
+
228  utoa(number, buf, 10);
+
229  cmd += getObjName();
+
230  cmd += ".font=";
+
231  cmd += buf;
+
232  sendCommand(cmd.c_str());
+
233 
+
234  cmd = "";
+
235  cmd += "ref ";
+
236  cmd += getObjName();
+
237  sendCommand(cmd.c_str());
+
238  return recvRetCommandFinished();
+
239 }
+
240 
+
241 uint32_t NexButton::Get_background_cropi_picc(uint32_t *number)
+
242 {
+
243  String cmd;
+
244  cmd += "get ";
+
245  cmd += getObjName();
+
246  cmd += ".picc";
+
247  sendCommand(cmd.c_str());
+
248  return recvRetNumber(number);
+
249 }
+
250 
+ +
252 {
+
253  char buf[10] = {0};
+
254  String cmd;
+
255 
+
256  utoa(number, buf, 10);
+
257  cmd += getObjName();
+
258  cmd += ".picc=";
+
259  cmd += buf;
+
260  sendCommand(cmd.c_str());
+
261 
+
262  cmd = "";
+
263  cmd += "ref ";
+
264  cmd += getObjName();
+
265  sendCommand(cmd.c_str());
+
266  return recvRetCommandFinished();
+
267 }
+
268 
+ +
270 {
+
271  String cmd;
+
272  cmd += "get ";
+
273  cmd += getObjName();
+
274  cmd += ".picc2";
+
275  sendCommand(cmd.c_str());
+
276  return recvRetNumber(number);
+
277 }
+
278 
+ +
280 {
+
281  char buf[10] = {0};
+
282  String cmd;
+
283 
+
284  utoa(number, buf, 10);
+
285  cmd += getObjName();
+
286  cmd += ".picc2=";
+
287  cmd += buf;
+
288  sendCommand(cmd.c_str());
+
289 
+
290  cmd = "";
+
291  cmd += "ref ";
+
292  cmd += getObjName();
+
293  sendCommand(cmd.c_str());
+
294  return recvRetCommandFinished();
+
295 }
+
296 
+
297 uint32_t NexButton::Get_background_image_pic(uint32_t *number)
+
298 {
+
299  String cmd;
+
300  cmd += "get ";
+
301  cmd += getObjName();
+
302  cmd += ".pic";
+
303  sendCommand(cmd.c_str());
+
304  return recvRetNumber(number);
+
305 }
+
306 
+ +
308 {
+
309  char buf[10] = {0};
+
310  String cmd;
+
311 
+
312  utoa(number, buf, 10);
+
313  cmd += getObjName();
+
314  cmd += ".pic=";
+
315  cmd += buf;
+
316  sendCommand(cmd.c_str());
+
317 
+
318  cmd = "";
+
319  cmd += "ref ";
+
320  cmd += getObjName();
+
321  sendCommand(cmd.c_str());
+
322  return recvRetCommandFinished();
+
323 }
+
324 
+ +
326 {
+
327  String cmd;
+
328  cmd += "get ";
+
329  cmd += getObjName();
+
330  cmd += ".pic2";
+
331  sendCommand(cmd.c_str());
+
332  return recvRetNumber(number);
+
333 }
+
334 
+ +
336 {
+
337  char buf[10] = {0};
+
338  String cmd;
+
339 
+
340  utoa(number, buf, 10);
+
341  cmd += getObjName();
+
342  cmd += ".pic2=";
+
343  cmd += buf;
+
344  sendCommand(cmd.c_str());
+
345 
+
346  cmd = "";
+
347  cmd += "ref ";
+
348  cmd += getObjName();
+
349  sendCommand(cmd.c_str());
+
350  return recvRetCommandFinished();
+
351 }
+
uint32_t Get_place_ycen(uint32_t *number)
Get ycen attribute of component.
Definition: NexButton.cpp:185
+
bool Set_place_ycen(uint32_t number)
Set ycen attribute of component.
Definition: NexButton.cpp:195
+
bool Set_background_image_pic(uint32_t number)
Set pic attribute of component.
Definition: NexButton.cpp:307
+
NexButton(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexButton.cpp:18
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexButton.cpp:23
+
bool Set_press_background_image_pic2(uint32_t number)
Set pic2 attribute of component.
Definition: NexButton.cpp:335
+
uint32_t Get_background_cropi_picc(uint32_t *number)
Get picc attribute of component.
Definition: NexButton.cpp:241
+
The definition of class NexButton.
+
bool Set_place_xcen(uint32_t number)
Set xcen attribute of component.
Definition: NexButton.cpp:167
+
uint32_t Get_press_background_color_bco2(uint32_t *number)
Get bco2 attribute of component.
Definition: NexButton.cpp:73
+
uint32_t Get_background_image_pic(uint32_t *number)
Get pic attribute of component.
Definition: NexButton.cpp:297
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexButton.cpp:55
+
bool Set_press_background_crop_picc2(uint32_t number)
Set picc2 attribute of component.
Definition: NexButton.cpp:279
+
bool Set_background_crop_picc(uint32_t number)
Set picc attribute of component.
Definition: NexButton.cpp:251
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
uint32_t Get_press_background_image_pic2(uint32_t *number)
Get pic2 attribute of component.
Definition: NexButton.cpp:325
+
uint32_t Get_press_background_crop_picc2(uint32_t *number)
Get picc2 attribute of component.
Definition: NexButton.cpp:269
+
uint32_t getFont(uint32_t *number)
Get font attribute of component.
Definition: NexButton.cpp:213
+
bool setFont(uint32_t number)
Set font attribute of component.
Definition: NexButton.cpp:223
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexButton.cpp:111
+
bool Set_press_background_color_bco2(uint32_t number)
Set bco2 attribute of component.
Definition: NexButton.cpp:83
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexButton.cpp:101
+
uint32_t Get_place_xcen(uint32_t *number)
Get xcen attribute of component.
Definition: NexButton.cpp:157
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexButton.cpp:45
+
uint32_t Get_press_font_color_pco2(uint32_t *number)
Get pco2 attribute of component.
Definition: NexButton.cpp:129
+
bool Set_press_font_color_pco2(uint32_t number)
Set pco2 attribute of component.
Definition: NexButton.cpp:139
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h.html new file mode 100644 index 0000000..4f60a1e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h.html @@ -0,0 +1,114 @@ + + + + + + +Documentation: NexButton.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexButton.h File Reference
+
+
+ +

The definition of class NexButton. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexButton
 NexButton component. More...
 
+

Detailed Description

+

The definition of class NexButton.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ +
Author
huang xiaoming (email:xiaom.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2016/9/13
+ + +

Definition in file NexButton.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.map new file mode 100644 index 0000000..442edcf --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.md5 new file mode 100644 index 0000000..a8d93a7 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.md5 @@ -0,0 +1 @@ +4a85df539a1d19ddaa422cdade94ae56 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6e2b93ee44ef7b5024d0db085a6bbb1514dc96 GIT binary patch literal 4727 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 X2=L9T-%}j?k_2d~>cGAz+rIiA5vV+b literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.map new file mode 100644 index 0000000..73e28dc --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.md5 new file mode 100644 index 0000000..21b4c89 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.md5 @@ -0,0 +1 @@ +e92c368e36d3eb3ad2a812a0a2e753ec \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..fa795483c1c0abd8fd2c1943d83890af137d2260 GIT binary patch literal 20438 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 jkqVC&0 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h_source.html new file mode 100644 index 0000000..9dc4cf3 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_button_8h_source.html @@ -0,0 +1,176 @@ + + + + + + +Documentation: NexButton.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexButton.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef __NEXBUTTON_H__
+
18 #define __NEXBUTTON_H__
+
19 
+
20 #include "NexTouch.h"
+
21 #include "NexHardware.h"
+
35 class NexButton: public NexTouch
+
36 {
+
37 public: /* methods */
+
38 
+
42  NexButton(uint8_t pid, uint8_t cid, const char *name);
+
43 
+
51  uint16_t getText(char *buffer, uint16_t len);
+
52 
+
59  bool setText(const char *buffer);
+
60 
+
67  uint32_t Get_background_color_bco(uint32_t *number);
+
68 
+
75  bool Set_background_color_bco(uint32_t number);
+
76 
+
83  uint32_t Get_press_background_color_bco2(uint32_t *number);
+
84 
+
91  bool Set_press_background_color_bco2(uint32_t number);
+
92 
+
99  uint32_t Get_font_color_pco(uint32_t *number);
+
100 
+
107  bool Set_font_color_pco(uint32_t number);
+
108 
+
115  uint32_t Get_press_font_color_pco2(uint32_t *number);
+
116 
+
123  bool Set_press_font_color_pco2(uint32_t number);
+
124 
+
131  uint32_t Get_place_xcen(uint32_t *number);
+
132 
+
139  bool Set_place_xcen(uint32_t number);
+
140 
+
147  uint32_t Get_place_ycen(uint32_t *number);
+
148 
+
155  bool Set_place_ycen(uint32_t number);
+
156 
+
163  uint32_t getFont(uint32_t *number);
+
164 
+
171  bool setFont(uint32_t number);
+
172 
+
179  uint32_t Get_background_cropi_picc(uint32_t *number);
+
180 
+
187  bool Set_background_crop_picc(uint32_t number);
+
188 
+
195  uint32_t Get_press_background_crop_picc2(uint32_t *number);
+
196 
+
203  bool Set_press_background_crop_picc2(uint32_t number);
+
204 
+
211  uint32_t Get_background_image_pic(uint32_t *number);
+
212 
+
219  bool Set_background_image_pic(uint32_t number);
+
220 
+
227  uint32_t Get_press_background_image_pic2(uint32_t *number);
+
228 
+
235  bool Set_press_background_image_pic2(uint32_t number);
+
236 };
+
242 #endif /* #ifndef __NEXBUTTON_H__ */
+
uint32_t Get_place_ycen(uint32_t *number)
Get ycen attribute of component.
Definition: NexButton.cpp:185
+
bool Set_place_ycen(uint32_t number)
Set ycen attribute of component.
Definition: NexButton.cpp:195
+
bool Set_background_image_pic(uint32_t number)
Set pic attribute of component.
Definition: NexButton.cpp:307
+
NexButton(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexButton.cpp:18
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
Definition: NexButton.cpp:23
+
bool Set_press_background_image_pic2(uint32_t number)
Set pic2 attribute of component.
Definition: NexButton.cpp:335
+
uint32_t Get_background_cropi_picc(uint32_t *number)
Get picc attribute of component.
Definition: NexButton.cpp:241
+
bool Set_place_xcen(uint32_t number)
Set xcen attribute of component.
Definition: NexButton.cpp:167
+
uint32_t Get_press_background_color_bco2(uint32_t *number)
Get bco2 attribute of component.
Definition: NexButton.cpp:73
+
uint32_t Get_background_image_pic(uint32_t *number)
Get pic attribute of component.
Definition: NexButton.cpp:297
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexButton.cpp:55
+
bool Set_press_background_crop_picc2(uint32_t number)
Set picc2 attribute of component.
Definition: NexButton.cpp:279
+
NexButton component.
Definition: NexButton.h:35
+
bool Set_background_crop_picc(uint32_t number)
Set picc attribute of component.
Definition: NexButton.cpp:251
+
bool setText(const char *buffer)
Set text attribute of component.
Definition: NexButton.cpp:33
+
uint32_t Get_press_background_image_pic2(uint32_t *number)
Get pic2 attribute of component.
Definition: NexButton.cpp:325
+
uint32_t Get_press_background_crop_picc2(uint32_t *number)
Get picc2 attribute of component.
Definition: NexButton.cpp:269
+
The definition of class NexTouch.
+
uint32_t getFont(uint32_t *number)
Get font attribute of component.
Definition: NexButton.cpp:213
+
The definition of base API for using Nextion.
+
bool setFont(uint32_t number)
Set font attribute of component.
Definition: NexButton.cpp:223
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexButton.cpp:111
+
bool Set_press_background_color_bco2(uint32_t number)
Set bco2 attribute of component.
Definition: NexButton.cpp:83
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexButton.cpp:101
+
uint32_t Get_place_xcen(uint32_t *number)
Get xcen attribute of component.
Definition: NexButton.cpp:157
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexButton.cpp:45
+
uint32_t Get_press_font_color_pco2(uint32_t *number)
Get pco2 attribute of component.
Definition: NexButton.cpp:129
+
bool Set_press_font_color_pco2(uint32_t number)
Set pco2 attribute of component.
Definition: NexButton.cpp:139
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp.html new file mode 100644 index 0000000..e0c1afa --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexCheckbox.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexCheckbox.cpp File Reference
+
+
+ +

The implementation of class NexCheckbox. +More...

+
#include "NexCheckbox.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexCheckbox.

+
Author
huang xiaoming (email:xiaom.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2016/9/13
+ + +

Definition in file NexCheckbox.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.map new file mode 100644 index 0000000..c233e48 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.md5 new file mode 100644 index 0000000..0445480 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.md5 @@ -0,0 +1 @@ +ddb4e8097a6c6bb3c64d1cfaf1060ae8 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..7048f52177eca93911ec41219d0d69b21d184772 GIT binary patch literal 25080 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp_source.html new file mode 100644 index 0000000..bf3c8cb --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8cpp_source.html @@ -0,0 +1,181 @@ + + + + + + +Documentation: NexCheckbox.cpp Source File + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+
NexCheckbox.cpp
+
+
+Go to the documentation of this file.
1 
+
15 #include "NexCheckbox.h"
+
16 
+
17 NexCheckbox::NexCheckbox(uint8_t pid, uint8_t cid, const char *name)
+
18  :NexTouch(pid, cid, name)
+
19 {
+
20 }
+
21 
+
22 uint32_t NexCheckbox::getValue(uint32_t *number)
+
23 {
+
24  String cmd = String("get ");
+
25  cmd += getObjName();
+
26  cmd += ".val";
+
27  sendCommand(cmd.c_str());
+
28  return recvRetNumber(number);
+
29 }
+
30 
+
31 bool NexCheckbox::setValue(uint32_t number)
+
32 {
+
33  char buf[10] = {0};
+
34  String cmd;
+
35 
+
36  utoa(number, buf, 10);
+
37  cmd += getObjName();
+
38  cmd += ".val=";
+
39  cmd += buf;
+
40 
+
41  sendCommand(cmd.c_str());
+
42  return recvRetCommandFinished();
+
43 }
+
44 
+
45 uint32_t NexCheckbox::Get_background_color_bco(uint32_t *number)
+
46 {
+
47  String cmd;
+
48  cmd += "get ";
+
49  cmd += getObjName();
+
50  cmd += ".bco";
+
51  sendCommand(cmd.c_str());
+
52  return recvRetNumber(number);
+
53 }
+
54 
+ +
56 {
+
57  char buf[10] = {0};
+
58  String cmd;
+
59 
+
60  utoa(number, buf, 10);
+
61  cmd += getObjName();
+
62  cmd += ".bco=";
+
63  cmd += buf;
+
64  sendCommand(cmd.c_str());
+
65 
+
66  cmd="";
+
67  cmd += "ref ";
+
68  cmd += getObjName();
+
69  sendCommand(cmd.c_str());
+
70  return recvRetCommandFinished();
+
71 }
+
72 
+
73 uint32_t NexCheckbox::Get_font_color_pco(uint32_t *number)
+
74 {
+
75  String cmd;
+
76  cmd += "get ";
+
77  cmd += getObjName();
+
78  cmd += ".pco";
+
79  sendCommand(cmd.c_str());
+
80  return recvRetNumber(number);
+
81 }
+
82 
+
83 bool NexCheckbox::Set_font_color_pco(uint32_t number)
+
84 {
+
85  char buf[10] = {0};
+
86  String cmd;
+
87 
+
88  utoa(number, buf, 10);
+
89  cmd += getObjName();
+
90  cmd += ".pco=";
+
91  cmd += buf;
+
92  sendCommand(cmd.c_str());
+
93 
+
94  cmd = "";
+
95  cmd += "ref ";
+
96  cmd += getObjName();
+
97  sendCommand(cmd.c_str());
+
98  return recvRetCommandFinished();
+
99 }
+
bool setValue(uint32_t number)
Set val attribute of component.
Definition: NexCheckbox.cpp:31
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexCheckbox.cpp:55
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexCheckbox.cpp:83
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexCheckbox.cpp:45
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexCheckbox.cpp:73
+
The definition of class NexCheckbox.
+
uint32_t getValue(uint32_t *number)
Get val attribute of component.
Definition: NexCheckbox.cpp:22
+
NexCheckbox(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexCheckbox.cpp:17
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h.html new file mode 100644 index 0000000..8e99e23 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h.html @@ -0,0 +1,110 @@ + + + + + + +Documentation: NexCheckbox.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexCheckbox.h File Reference
+
+
+ +

The definition of class NexCheckbox. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexCheckbox
 NexButton component. More...
 
+

Detailed Description

+

The definition of class NexCheckbox.

+
Author
huang xiaoming (email:xiaom.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2016/9/13
+ + +

Definition in file NexCheckbox.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.map new file mode 100644 index 0000000..a6b1f8c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.md5 new file mode 100644 index 0000000..548a94d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.md5 @@ -0,0 +1 @@ +0fac01178c8aa0891c549d5523037075 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b3dd144391efc05d81f0b59e0e523a6a6315fd9e GIT binary patch literal 5901 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.map new file mode 100644 index 0000000..bb85242 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.md5 new file mode 100644 index 0000000..460a715 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.md5 @@ -0,0 +1 @@ +59130d9f175fc8bd281df18986305a35 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..129212f326ca494442fe2aeadb10df12d592e87c GIT binary patch literal 20703 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h_source.html new file mode 100644 index 0000000..ecf0df6 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_checkbox_8h_source.html @@ -0,0 +1,122 @@ + + + + + + +Documentation: NexCheckbox.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexCheckbox.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef __NEXCHECKBOX_H__
+
18 #define __NEXCHECKBOX_H__
+
19 
+
20 #include "NexTouch.h"
+
21 #include "NexHardware.h"
+
35 class NexCheckbox: public NexTouch
+
36 {
+
37 public: /* methods */
+
38 
+
42  NexCheckbox(uint8_t pid, uint8_t cid, const char *name);
+
43 
+
50  uint32_t getValue(uint32_t *number);
+
51 
+
58  bool setValue(uint32_t number);
+
59 
+
66  uint32_t Get_background_color_bco(uint32_t *number);
+
67 
+
74  bool Set_background_color_bco(uint32_t number);
+
75 
+
82  uint32_t Get_font_color_pco(uint32_t *number);
+
83 
+
90  bool Set_font_color_pco(uint32_t number);
+
91 };
+
97 #endif /* #ifndef __NEXCHECKBOX_H__ */
+
bool setValue(uint32_t number)
Set val attribute of component.
Definition: NexCheckbox.cpp:31
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexCheckbox.cpp:55
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexCheckbox.cpp:83
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexCheckbox.cpp:45
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexCheckbox.cpp:73
+
The definition of class NexTouch.
+
uint32_t getValue(uint32_t *number)
Get val attribute of component.
Definition: NexCheckbox.cpp:22
+
The definition of base API for using Nextion.
+
NexButton component.
Definition: NexCheckbox.h:35
+
NexCheckbox(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexCheckbox.cpp:17
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.html new file mode 100644 index 0000000..318a143 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.html @@ -0,0 +1,116 @@ + + + + + + +Documentation: NexConfig.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexConfig.h File Reference
+
+
+ +

Options for user can be found here. +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Macros

#define DEBUG_SERIAL_ENABLE
 Define DEBUG_SERIAL_ENABLE to enable debug serial. More...
 
+#define dbSerial   Serial
 Define dbSerial for the output of debug messages.
 
+#define nexSerial   Serial2
 Define nexSerial for communicate with Nextion touch panel.
 
+

Detailed Description

+

Options for user can be found here.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexConfig.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.js b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.js new file mode 100644 index 0000000..c83dc01 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h.js @@ -0,0 +1,6 @@ +var _nex_config_8h = +[ + [ "dbSerial", "group___configuration.html#ga9abc2a70f2ba1b5a4edc63e807ee172e", null ], + [ "DEBUG_SERIAL_ENABLE", "group___configuration.html#ga9b3a5e4cc28fc65f02c9b197e8a4c955", null ], + [ "nexSerial", "group___configuration.html#ga2738b05a77cd5052e440af5b00b0ecbd", null ] +]; \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.map new file mode 100644 index 0000000..f590da9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.map @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.md5 new file mode 100644 index 0000000..6230f1d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.md5 @@ -0,0 +1 @@ +dfc262752b573ac6b6dfbf0eb2fe3397 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..93034477993a269eebd9580c3c1fe4d116afc95b GIT binary patch literal 203166 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

`8 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%0AcbM&sW2pmXC5H#f0EC)rwhZBF_K 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h_source.html new file mode 100644 index 0000000..36f7975 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_config_8h_source.html @@ -0,0 +1,108 @@ + + + + + + +Documentation: NexConfig.h Source File + + + + + + + + + + +

+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexConfig.h
+
+
+Go to the documentation of this file.
1 
+
15 #ifndef __NEXCONFIG_H__
+
16 #define __NEXCONFIG_H__
+
17 
+
27 #define DEBUG_SERIAL_ENABLE
+
28 
+
32 #define dbSerial Serial
+
33 
+
37 #define nexSerial Serial2
+
38 
+
39 
+
40 #ifdef DEBUG_SERIAL_ENABLE
+
41 #define dbSerialPrint(a) dbSerial.print(a)
+
42 #define dbSerialPrintln(a) dbSerial.println(a)
+
43 #define dbSerialBegin(a) dbSerial.begin(a)
+
44 #else
+
45 #define dbSerialPrint(a) do{}while(0)
+
46 #define dbSerialPrintln(a) do{}while(0)
+
47 #define dbSerialBegin(a) do{}while(0)
+
48 #endif
+
49 
+
54 #endif /* #ifndef __NEXCONFIG_H__ */
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp.html new file mode 100644 index 0000000..4f04e2e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexCrop.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexCrop.cpp File Reference
+
+
+ +

The implementation of class NexCrop. +More...

+
#include "NexCrop.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexCrop.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexCrop.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.map new file mode 100644 index 0000000..77b622e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.md5 new file mode 100644 index 0000000..5833f98 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.md5 @@ -0,0 +1 @@ +92dc338994e30e7c59a38fcee00de82f \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..347f98c8d935da718362ada4c24eac8ab7ae9efc GIT binary patch literal 24640 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp_source.html new file mode 100644 index 0000000..e85d175 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8cpp_source.html @@ -0,0 +1,147 @@ + + + + + + +Documentation: NexCrop.cpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexCrop.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexCrop.h"
+
17 
+
18 NexCrop::NexCrop(uint8_t pid, uint8_t cid, const char *name)
+
19  :NexTouch(pid, cid, name)
+
20 {
+
21 }
+
22 
+
23 bool NexCrop::Get_background_crop_picc(uint32_t *number)
+
24 {
+
25  String cmd = String("get ");
+
26  cmd += getObjName();
+
27  cmd += ".picc";
+
28  sendCommand(cmd.c_str());
+
29  return recvRetNumber(number);
+
30 }
+
31 
+
32 bool NexCrop::Set_background_crop_picc(uint32_t number)
+
33 {
+
34  char buf[10] = {0};
+
35  String cmd;
+
36 
+
37  utoa(number, buf, 10);
+
38  cmd += getObjName();
+
39  cmd += ".picc=";
+
40  cmd += buf;
+
41 
+
42  sendCommand(cmd.c_str());
+
43  return recvRetCommandFinished();
+
44 }
+
45 
+
46 bool NexCrop::getPic(uint32_t *number)
+
47 {
+
48  String cmd = String("get ");
+
49  cmd += getObjName();
+
50  cmd += ".picc";
+
51  sendCommand(cmd.c_str());
+
52  return recvRetNumber(number);
+
53 }
+
54 
+
55 bool NexCrop::setPic(uint32_t number)
+
56 {
+
57  char buf[10] = {0};
+
58  String cmd;
+
59 
+
60  utoa(number, buf, 10);
+
61  cmd += getObjName();
+
62  cmd += ".picc=";
+
63  cmd += buf;
+
64 
+
65  sendCommand(cmd.c_str());
+
66  return recvRetCommandFinished();
+
67 }
+
68 
+
bool Get_background_crop_picc(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:23
+
bool getPic(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:46
+
NexCrop(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexCrop.cpp:18
+
The definition of class NexCrop.
+
bool setPic(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:55
+
bool Set_background_crop_picc(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:32
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h.html new file mode 100644 index 0000000..ea55bcb --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h.html @@ -0,0 +1,110 @@ + + + + + + +Documentation: NexCrop.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexCrop.h File Reference
+
+
+ +

The definition of class NexCrop. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexCrop
 NexCrop component. More...
 
+

Detailed Description

+

The definition of class NexCrop.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexCrop.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.map new file mode 100644 index 0000000..ed2a896 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.md5 new file mode 100644 index 0000000..77ad413 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.md5 @@ -0,0 +1 @@ +010097edaecf5398a940aec276640f0e \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ef04764c57c7f7c9ee3a2972e9e4885c8c2fb6 GIT binary patch literal 5405 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 W%Px_-Qv>>)5LG2D#cFxW@c#olhEa + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.md5 new file mode 100644 index 0000000..cb57135 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.md5 @@ -0,0 +1 @@ +474f0f546e1d6f1f869f75096df6a1c1 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..e5504f370596895a7fcfeb82affa3c62d3b36576 GIT binary patch literal 20481 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h_source.html new file mode 100644 index 0000000..ca7797c --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_crop_8h_source.html @@ -0,0 +1,117 @@ + + + + + + +Documentation: NexCrop.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexCrop.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef __NEXCROP_H__
+
18 #define __NEXCROP_H__
+
19 
+
20 #include "NexTouch.h"
+
21 #include "NexHardware.h"
+
30 class NexCrop: public NexTouch
+
31 {
+
32 public: /* methods */
+
33 
+
37  NexCrop(uint8_t pid, uint8_t cid, const char *name);
+
38 
+
47  bool Get_background_crop_picc(uint32_t *number);
+
48 
+
57  bool Set_background_crop_picc(uint32_t number);
+
58 
+
67  bool getPic(uint32_t *number);
+
68 
+
77  bool setPic(uint32_t number);
+
78 };
+
79 
+
84 #endif /* #ifndef __NEXCROP_H__ */
+
bool Get_background_crop_picc(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:23
+
bool getPic(uint32_t *number)
Get the number of picture.
Definition: NexCrop.cpp:46
+
NexCrop(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexCrop.cpp:18
+
The definition of class NexTouch.
+
The definition of base API for using Nextion.
+
bool setPic(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:55
+
NexCrop component.
Definition: NexCrop.h:30
+
bool Set_background_crop_picc(uint32_t number)
Set the number of picture.
Definition: NexCrop.cpp:32
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp.html new file mode 100644 index 0000000..d0596a5 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexDualStateButton.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexDualStateButton.cpp File Reference
+
+
+ +

The implementation of class NexDSButton. +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexDSButton.

+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/11
+ + +

Definition in file NexDualStateButton.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.map new file mode 100644 index 0000000..1a0bc1e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.md5 new file mode 100644 index 0000000..0e62bd9 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.md5 @@ -0,0 +1 @@ +cbdfc08ceb9e7457c448b63d9f7bc40f \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d65100bd8c613c870f1da5f4b433e9d890a84726 GIT binary patch literal 25865 zcmdRWbyQbv+vN{LL>i=|QyL@`P`VM6?h+71knZjV5s(rjL{N~H?hXOz5RgV1L8NQ0 z-}8R&%zW#cS+i#T8=vKR^msVu&g2fZscsHii0>f*ZLythD+mysboWX>&B^-K5W$ z-YoyRvw9#b8l$iyvg&xt&2gZIic%5-MMhQQTD20XxGK@Z!IDgtNA&z0ED>=SI9L%M z7(cW)p+pl95(d0^gP+@*`I+2JnEJl;6dF4_d#+-v(0GW9o10**^Jb?LE0N}7_;Y78 zgpW~> zEo=$Au{5GA)&Y-dUa)H)Xma02H}=}QZZli|WBKq4@4b661L-0>t~&;6o0|f8+jv$S ztgJ1u403j7ht|u>%gvLMWL#Wa$-L&6<>lq?Mzy6xXTFng>SenAp4F*$vyZQeSF^FK zcwrBXx)Unt?Xo=;TvBp3C@AP@M+7ko8(Tn33?3#Hmig2`anohQ(6-#;O&VCpYRV5=G#9K<)Qb@GQ6US6Kr=ABt8%@H|{vT+Ct z3lA0xbX^kj^18b8?n@V;*xA`hzH5SddA>iOH$65q)UrPE z>C453AJfwef`Vj-ySB5!i00$HC5l&dmFAlscpI%tdrzM}9h|@KGpTLuO-e$t*hS;p zp3Gx5zp&un;Cb|+pa5IE1AlF*!YcW`HMwjIb@WnK%!FQy3X8P3IHJD3{;tcG&a0_% zg?d+QU1e!$wA?4}BkY$tO;*3ZXW`~9KDzg)zcrwD#dPIcg4>_vn_R|?2AjNDSy}Rm zifxw{XQkHD_l3PriBM2bj@Pnd2ES-?Z_PGP)YQ~WHh2n*7w885>Q9}R{*;r$G~4Js z{nWanqeG|8h4X>yPE>QVc;EYnq&M)WrHzb?qRlTZF82Pet0PD4^70Y`7gttRHsts~ z#Pbk=c#VuA0z?YVWiAu&08yr>hv4n6CT# z`;R3Gd7ttluhIA%qu|kq7LfEEG~|AVIrob&Hlm@S*_x@jm6DQj&**BixT(Z#&ontX zIn%7`_3ps|@o!UZgKB)`4AG7<^WMA9`^YAzroI($adL7}ih7Ynl5hrOWzi`qDIpLt zGBWoPw|~|N1Ox__nswp+T^qWV#BJQUn&JBz7K=cQb>`&}0`a{6UGPF%s9Ad$!S3Oq ztdbJ8fq}uhQxb7n{CU{#I@NY`u%rh|&E)!$d9G;}8xeE!!F-lm453Pe;$HXD3*{l@ zGHC8g;TwW`oYn?W*tH5i+gmoz)Hs^Fe0lTX!-swE?tRgt`KOP+rr+elQ$we#Y|VNT zIgz`!Vq$n?gvX>c$Z}wPV*~Yb@(GQQ1LJFIkqGPQN`+BvOG~!C{(dX(!VML9DXD9D zd3lqy&g_pKJsPZWT-BRk<>c&uRe0B8kaqINkCyM>an(OP>44w?`=wFO_a&2cotpP= z6a*SNdTVPdDq{EY!ZRo&#Iz@lsR9@4V-3E(jSZJHy=ui#FZ{EvuI^$NtcgYId_`GV zbPjlU474@oaC=%?KX+qud#d8gxSV%!9$&@uR|MNHLahQF|IeRU(!_ilr>qL~DkPsi zrG>Z_o+@Cw2qUogbEU6ODeZwXW`oB8p_n#}B*yo25v&(4RxJmxf+Z2+E-sbFHAlba z%q~t3lKEc};!+Cw6*r#df4?taGZS`vd~7*A@=2M-zK$lY+*)Ba5bvJVI5vZ9l=$=K z&nxKEt*0mPuU)%lS7Y!oCnr3^^X#xtke02gf-WQ^L|$2$RP1$RE|sLDBq|{xVF_#=OUDP|9TQEqv-J{APEOH6 zNvB5YFD!+y^Y|@CSzxAa#L$S5h#f&>H=QUlOcwFHFGz`tj!TJQY;2q+>P-%PP8N3O zh0e^cu7+m#Ufve*_$v-;7zKev!hv69W@?J+>FG%+XeVBeHJ7i+?sc+~H2L)f9_qDg zJieD+$XAHVyg^1I3IUrSiR(h zH#_~ij_`wcktr8LjSSsfM)f+j(-2$65(|HeeAaM&C`5_-z-i6zU~?j{ZDF)7nr8f9 z!3+VLiwAiW3OW7~S69C!6@uOJmQ|hnoTJL-C+3YCH`X>bOuxNlg%cyVsY&dSqT<5V zmO-Hp!p_;bV>m}qRZoviG_%m5T6NlrsM%y`tU*LXBsL*IMp^aKN3A)6x-!9ct}qP{ zL`i->&L^y(3IPZ}MNaZoZ)j|+zLk`emrKjbV>DhI>gOt&h~UcIGAP0gYW2!hRJ}<~PJWk< z53ong(-nfWw_9luVl_|u$bopc6)1TSdAYpVC!Hde08|J&lV$C zQpO7-t|=8tXW2RO6_20a4TnSKu1i6@yiiKXRY`|Q16oYM4?OcPXJ(Q-VOec=5u` z&F!usdd>%kGRa*21pk|r_u7 zX-Nq_L=!kusWJ--qrbm@X!f(#88)Z2gE7vD-9sE~?D_R|*7)tWOn~mHs|BGCOci)o z2n-w?89Td@nW-k%-_#II-@JPl;pd0gJ@FD05~AbgR?fZP_!nf5(a|A`i;uTI-Ze=R zazqCJgz!5)b_4LLFq+8UtCc_Vy~=iOabxU@{Nu+Rt-)A1J70Lb)iK32un~lmlpJG! z8XFrwI&Y3Ma&kUC_j>h;BerAunqPZor+c`M}y?%`g7-n}VMr?elC_SC}aO+1PaEI^=3PC&C zxVSik2Bj}5!g{LwWy$tbV&SI9XRMg6!0>Q|!0BTX@`13jzuX zMN?DLFbMoNF)(O@M$b1Z0X_1Xw4%kOr76)fFoeg)-_osdV4@4cx3#t9wVvXSOHY5I z^!Ra4TPU7Y`BfIge*$ms3%#@a)8v8GTY&j^9e*jsy?gfv&X}8sxRexKvxeRz?ps(` zSi=Rne2c$+$yUDlAxU`amX)>kR3(K69^%dFKt_B(0BY;%zJikz|80H?{2wJIQi0Pf zJ?R~AJcLC?V!2|fJ&6in+QR+` zBL_zmg7(Lc9~E5sq|QITW}2w3B)J1dmR44dVPs~WIQFlos3^RzRO4~LW^ZRl8-$O1 z7C@`;hK7dY8`YJEU*h;VW}AGKjT$^;fTxA4urR_IMOdXf&7B}lOAG6Wmg4>^T4Z~K zsbeS~x)hB2e6+4>JVJ;^`+9hIELz(>(s>K5!@<^qd0nxW9{z8i0fD+%|P3}KJU-xp;S;(3If#aRyo(-k8|_p zO#}kYEdXHiE4@j{4_%9-y*oNPKLEI_Xw<5(g~4xcZ*TtjlL~-cE5J=l!%v?-V|2yP z+(7)@oWPs&+Q)%8E%i9CebA69-P(8bQo{_gVKFy-=455$&X? zC~Rn&+K8m@+Ce|Pui zDQ+piuhhbB2!ye%*?AFgC_#}oaSogMh&>kA}zfx$Vj zF_VG?*|M~UPea4)vjd2u1mc!h;xAHT665eM4CEv zzB!Ib5uve_f@uETbcHLL5o7Fop;^BJ3`E?St}AbiPhy}dom8D5flFd9#%D>(HhJXNM$9BK?q zZEcOWzs%HD{zGIRGBbxNy?>BEMov!1$H%w0y2?CTgeTUPAG7IMSTxW?xAEXbmIG zG{Pr1MvQ|+?7C;l7#BZha=4|OI{JOWI7V`FyjG`FQsno(!cd8d`wiTnwx10*9yr~# zQG4hlC<)h0e6Oftn3dz^Hy_I1*&bR5^8jGd>T|Y@o0c|}t(<|&YZZ?xH%bamKiDy( z<1&m0s5muzR6}+E7_lv&g_INbDuW%?*@8fXKpg9SCFtX73oE(KMT4a1hs{YC6 zq1Hc>@U;o4cw94ipR3h*dfJsyDQ>W(gmrjDMTJT~v1_qj| zi=@}eV%x1wtZG?p1cz|D+QPz>gkof<&&2~?!w8KvyPyVW`RMlaRhI4CYlphgCgGt4 zjE6%dPxCyFjF#e+AMhE(}XI$pSV#!<;xH z;lfI<1`$c4TqH?bKtl!#Zl8Vi8Ox8g_)#WQUw=r?mQT-u5NAQ7 z7WL}4bJoy=POibz$Gx%CQX}*^cI5Q*sK50F<6}rKPL!9sRl9P(ZrS*Z2YpGInW1OA z^E_Ld8}#Ov<@t`cxQ!U480qgNva;Wr|J84So}aw|#Lb+ZK^+D0vreDaKw-(S>5}`t zjd1862ReAFGuP3a?|OGHyVg^44R07TrDxAD`}z+|Oo!vv)yVtDDku^;9d9J{qQq!l z#mrxvIn7Gy!lb5jcWaFMVzsU~lsxNENfYG3J3XBm9Q=Ht6-iDG_oN{2@x4@#iJ{)2 z3eY$hk{hpfcVs#}*u>yUQeQgwgrrF*j~`P{Rhl0bnf>{**G1eG*XaE)?C36>{`B+~IxN@zbyxUns%Q`aYH3n| zG*OC)lJ5V)K?!a1S7B+7rhqQoF1d0uxd)G9J-}ZEIstM}lDf>Fks7}FC9}wEIkUZA zk8yFSv4a{LPt%!)L1fa=)#cHXDLSmF zs^Pl(#S}vLnXcm^y_HLV!BOf%tEzz4eg}Kho&rbx>KjwO*DMUODRTY&8twN$(BtUJF#e7BC z@qT?+4h^}kxOe>M5Cvzg{o$6b zj*bqkfB-21h6Ig*f`W*cSV6PxWPf#GZ4HBpiYhrJWdUS!wB07UP5@0qpzP1oI%DZq zzVeTb#?h;M6&@pYNd{st8shKoIU0~0Zy+G^;RmWXU>5`;O9caDK7(pIiTul**#`a9 z$_Y@**-I)bL;U?wKpbKmJImC-=)i1jl`HIV{T~i3%(&6!EgJ zUzx5DH|eOUsoUGyr1G7Y{b8E=-Vuv?dB;3zFfwZkz?XE{nw0qa_piKzgF|#lNks({ z2$PFlpjtEG;^G1_a&UAEhde=PRTYxi6c70rUa_5dUtNm0A8Zh_a&Rz8X1#%lQ9SoB zr;3e@g`WU&*$wbM|G@t5nkuRvvZ1gK0)TDAGASm$8T+Dr>+$2qNJfLCS|NBeT+Y5Y z)}GeCK^_nUDwn0AWBrgRhr>hy?xo>>iG?c$;lXed|xdGDl9ea zvBMf0MPZ@sZdd(7!|zQ+M@I)E8Nq74k7rg+PH=KE88V3z92^Y1wqPg(7A68f-*xES zn9BMOtCxORXlj4C-8PfY*2SrwZ_xwqxX-Sy@b5nb{cGm(p`3 z{mk}p(Jq#ir*gdUr+vkN03Y8kEDQrw%*-h(z@%Z((bw}PAIkg($H-hHbpv(uKNP~8 zovM!?(O{1QL+=8Wx)e|@d9Q_~B`TtzpkQ~gBhs?C!RtiL;A(fF%^v0($(VY2ZX%UP z7&m*!?%C_ej~Gi$8&Q~_kXPkFJjJ*r=1BFxsTn{oOn$#EXf3>Eo!F*NpNeDS;DkdikCly$ z{-Ns*BVcw$b8~Z8M^D~AkO2`w{>hUk@3$uo&j-Y=l=P}>9s~1G1U*9Pj&eFE97>jb z?;+qqZimFw+WN7Rv$FyK<(|MBcGTn;kwv=DKF>p4nE5_voj3x~>b?*G|WOy&wyGlNJgsaz~{>;<^q5#}W*J^lW%*8}XVWH`o{ z;F$Z6nThs$?(5NF9Z?;e<>4;ddT?~hEA*Ju5lnE zo5INDWmlyn$vjpM`rDB@y0__A6>3Wc2M7ItaY3^1-Hce$H1^cg&%t{48}**9gv88| z-$+B-uF(zuJ{WCt>|vH;am8VE*9lXw=3oplV?u{OD0o@`H-6(!E&0XjT)Voyj~}Yts`t-^W;= zWQcl$ju&!0)oI)E^|c$VIeIUe{ZOJezSJ9pDJES?Je~K3%v>Oxy9>X?u#LTjXbSb# z`STyYl#y;<*!g)jS+R)~MX}1b=aIxkOw0Kg0}l^RNb8di5+=k@lXQ2_Gw^*y+_}TK zGTfCaP-D7iQ2TE$!12YACkCd6-}yNqQm@R)+TR1nfm6&O)zM+TdxRJA#Y#Ib02R?0 zW#6uCd=U=FiHvMepSc?oj_dXDepCcLaRS=`P8s48ZA$re7&9Ho@y;;c8*|#|~IduF^Vp=*H+RcoNUuK?p4b8t|L zMs@A{oUp$*Wp`R1MxU;Hj0Ew6qi?Ugqz&om7w!J8iEK?B$YdX8Iysf!bt|Fzp633f zO)>=f89#P@=v z1rYg?1PZ_Pv1$Sg55H|uI2I|rxyEgoqklaBV4=kZtP~W0fdKUb^Q1`aM$~^i#K1T0SQrUesX{u8!Q(?NREw_ zr4m$9!aP~IO~}i4lKkL+0kSz{&!3-S=4&~WkwageM=?C_#}xPQ5S=Q|a?P-1dw^|n z8_*o^zlDXiV~?adM`m=XP@A?mCJ8$`i_qQO1UNF&)X=Zf)-A|s2Hu#K(5|`-3~Fe% zRU;6_agaGdQRXC}O*#6-+&_@npQXb)PIZE@@6#mHb|1KqWRN4XBirS?m1 zDb!-a1u5vFX9W*&ux=w60X&i(7TwU$%f;1nVTGX3E*m%Z?O@o=T!wl97iXWc%;Z)? zmvyPzV)A99O1hT1ZgzL84E64_JA)$g3L zcDn|D*GzhxQV3(acC+(a0=F}>vxC845vO>z0VWVE`x;8Yhpw#)ZLSL&wICl|$G}aG zyv6)03kmpp1a`UkMHw+{ zvZrlMFV$j?;5`d%o{N_k6EKT!t;F(Q0~Zr^+a$Y`9 zwjy%=`CES>dwDs(-3lhW;rf}+w^5ZRPYBM>1MZr%+5obk752LBb8LcI>vB&H$lu6{ z!eas$3;;~K>z@qm7EqBthJ(cOZIub_afs7uJ=4d-U7 zWbA(o;m^8KBq7ns$PWn#j(eok*BNxPuGDGWK8j`z%XOz9BvkI;3lk3YtH|SHjy&#) zE=Cz#v3v)|OS%|=nX5RfrQ=10 z^9vcByZ6pNTegR#LqBo_l5H5tNgny(2Y8>g@>mQ$ulF^6-J6tT+W#(=(9rMsa(BAh zrSSEHvGx-=8b(eWCq7GmVaeg?@1`A%^VU$B(WUSgA3=ScW;G&m{rv zXGtX-J!3T|gLl2saYeppmame)Lg#K~c{yco;`OCoZr`>rg2QTiGa-+oox!!k5WFe? zAPR2#vL_+*-|n7&-uOCDn+-=F=$|}>n46$?l(e_MilRKh;xdYAw{7ZgR~B=Zl#~0S zV2w-u3`<1BI%m2;D-re}2?_ezct2$l_f?w{Yk^doq<@h?cx#Etbjy#cBRWkN_&Q2!gqc7@Q~m%4FfF4hk6ymojHn%Cbn~0 zJKi2{e{RQvY+4;G*p-E17>nm`udlov~EkoG^V8#-IWSfk|8fx%% z#6!Vy;7GS6B`>w)eQDGV;ioQ6oh83$J^0(s%Q{%{rnFF>+XVEr;}e{YB17X$UA~Ul zcjm1@MxX@U{`QT?bC5tkgeHOio;w+DJ4q7v2-c!Js6SB{!Sn?Nw*#mi7Mbop$2&gp z?(E)1FhALfZfzYVk9Vaf@Rw(7D#rZ5`>#oGJHAUTBqRd~J4}9#XPIzrpX^^X?=AV7 z{Wh`%$C;z+&i#AV!6?^W;S>JBK)gxN^n*vYwwO>Qa*51-tdyY-xM%fbyt;)T6*)WA zlM+&aipm`E_@RRg>hC^&{D?i0OC|a28QW{>_rd>&HH2{Hg#=?=Tlh7Oqg_;w1_WH3 zHV6cmG~t@ep>0{2hL#r@*4IO?fqMpFH6DdV=l5lk#A)YMM7G?E9y@j-vu|%N28UjT z1m5_>XBaV@ee}RO;9I8K0UOSzC!Buo-wS0Q)cbNb!?9H2d4z+3MsHAeh$)#Rf9|2q z&FXq&!vSN)!cDrkHso3DC4_l+NK!!Y&nCt5I{K;mHsR*7!+9iIR@)m{Hcrm2@|U4| z17fzjs~L?^=-{@vJzgvpz4NmvB*PdVv%^?^yb(UNw_ouW9MgNTeH6yJ$-=p3x{_p>uuweIPa_8AaJl)6Oyoa z%sNe^Wf~+b)`Wv8UyZ#1jnIB=@Gp9kH!FwN+!}JTNGK@i78c(`lYI94&%$~Q#pd{X zOD7s7d;9f>&50}XTI?LiL1PBtAD>)bSRY{oapcC&+A(i$C7H9WuR9PK!w=9yR9Gzk z${5qrn{GDrWvH;ALgpiZ{Yop9*(4ASBuKi;#Qb`NY!h-E(;gmC-oRCQ;kBkpVf#C# z#4by*!M|lSi9dfEPAXdbQ7Tk86}h+!?N9y?j{l@91pG2MF_Gm-it}{h)3;0pIrpS=(JacwhAy4+rZevN^`SR3Q~saud}>_OB8;G2>H_NWd(X zB3@}-OD)}>uRnRO7pD6a{eHfYIS(K;m;xzP)umNu4Jw>S^m>m25+5H4@bn?Pyl?Or zzLs_q<~sbH5wi1>Gc!x|f`N9M>@3K9C+U}5U@@gk~zCn2?$vj(@iUY|4%4~q-)^eiB}8vnMv(XaZT zYQ%-6LLe<8^B@~G*AX!)#O6FZbRN5T0FZX;WEd2Vchwx)=?zft< z&fZ?DkR)!Lp-O9%sS5TtZVhkWCdxk<4@@AYAt8w?{=@)IlwIa65Q{-6~6$$49bkU}ugs!OWTkpSqUhIyot9IWfKHNFbO40Rs z^Z>9VD#B*&wMjMMid5U;71N#PW=oy>I_2Fs;Ap&T%qFU)Fx4K?hh2V$->%8PFlgJ(T;HqWt9udS_=Rg4SmS{$^px=A-}P`MfxVv~+vvj-=?H zkCi5L_+ceBKUtAPuc*lIc3#WC0A6Kf|aN zgQEcS15K-=|D+mf*y11u3V@p50C!6yDXUV_2jQ@HQ*}po)(2ZM7@5p_KZ+n2VWjd` z%*@OnMUFi*K7I$BxS(j5!iBMz{~IB3d~LPuknM2_Z!q}Y-b@r5$9H$j4>x$amib(q zlJ{zR*MsgcT&OQV2$qz~lU17GVq>wgS3k-ur}_W06lmq^o1F0lX ziEAnb?pxj_5fTdisFFevqB_`hS@jBShT%4a5$Dm^r5J=L| z(<1~EAF?@mXL+0)-@bjri0NWbRaISF1$(eUL1E!0P9&FM?VEUJT4(xDvG$eWG8IWADGkG|J6m!3XRopo+uj)a)L?RQQiBTC=fsNe`(IfPj#IG( z1Oylv84(D`0xv8r1%e~cbZ4f9@F*!Z79~q13`C^xjIWiIMF-N=`3H5 z5?4aCn7X?9uA6Xs*VXUzoMPjqkl>E1A}ua_4FlQVATlnlf_ou0Ihn=h{QSfbw(rr{ zRN^lyWAi5J&SrnZ%PSw&Jsj==^ieJjpYuIb4o;lA?hay*hRX%14e9NLWVhD#$=*_z z*;u}&{G&$zxEN=C{w(!8vH{}JmnL)zi8XXn7|Xr6lM^L}#3>eIn};N28gQ;U=Krhedr0U?pFk>XoR`$wi) zrpreCBH?$%gJOVs?d<@__17rys zsvD&9a8Q8PNAqrhX*0_0Vt7~$mOrnljm;Ci3QHNJMhFV_=1lItQuIgJbbr#n(gwY$ zuu>+_p5S!Y4&)r&@PJ%~9Ko%4aCs*M_9kp|-3@I6wc)OajG;fAAt6t0^LpEA|+vyGcx zThfrQd9(ZRy-3e0*%irse5ONpA>y_xzK&<2#l*_WidmazLAoRyY7C1W~o zHi`t?NCvqb(@~Zi!81OC5K18h(*>^Ym04{~;dE*zXU~9vCM@yOrA&hIlISS}@bF3yg$<;5C2bR~dvHC;Vv2DuD#UH!-Bt-H$rL+jmQ1J*}~ zziP+E#nFrYP*lCznTrW5+?M>i{gAw-COF!1>F;`zi79XP(7m8gv5@c{IWjSy8x9WS z+EVJ57f`T)dEy19%wR*^b!t(KIfW+)ILJnSu+nz?yJ6np#Ogpm^cP`dFk~`3Hn}M&sDw(T337agoS9~ z?Dv4#kFs04d$)ragNLOCPIg@&!IIW7Ns z|O%Gn7vFLi|jZ^KAPo5#L+Lct*WS0j&NI``8m5Tt9}J*?6?lc<6Z z*mkIy+Ve4>)@SwrW1UzrWKIFBjX z*#OtYN)r3=#ur)uNdKsT1-Bo5N&=&i-RWO?GV%@6zGUOQ<(qZBJ$-$D0gqZ$oMUR{ zv@W&=lin4WkQ+#k5JJi*SwPYR_4u5f zj^V&9)x45wHy*-lxrZf(Ns25)ChNmb&o4dETz;qLmpJMXN$BfiHC^1l1vj)#pV59# zPZ)SVL!1S>((Ml;!O98@iz-XP%}C!X@5t(Er6{tN?`G`ZzM&=at-7WO?PJTm?o+EV zlScS;EtyW==Y~*^*k8T!H|yHrGgQk4U)@b6CiCOfjCTU&YUW#%7!&{Wgl{A?KHkB% zP$%`nhoj>^y$E67^r)q-RixUil*A|i%xrT!+CNqmi^G^Y03`OlRDq!NvX8@g@jTc# z`t!e=Zp|-`rms5?$(pw=o}ZAC36(K#hS0jZcYw%?P*ZcT`?HJ+NrCT93Ya{;jaW`j z?-o*RpU?|bk$usQdD{P?3k<%n=LXVCJxrW!B5msGj9${cMFznXOr_UydsSExlD{H{Iycv2 z?Psb;-EWXjcXuao{KdmS+sQXn(Re3VDsZ@+8q(Z+rt|eqL1%PULPET{XT5uTWE8f` z&$v=n4SEin*{G06MeT9Qu!ICn1b49rKBf$aZFuSC8;wre>!C0 z@QMLF5Y``tR;Y}nWe4ZVTlYptVi9HdHqxN_u-mdhPeKu5DVG{dx8xS24eHwy|(3=(^PrhctaaovT@b1BN7qf78{?8L%PE z`DR2znj)DieC+vmN6h@)Zu=C_g{$A&9}by{b3awO@9*do>oeoEi2F}q%4IE zY8>~{4eNt7lW>sf8JU~R%5mMzR+JB6h%BZn?=6Ksj+92jB0+=XHH}=%_keWjuL3Mu z0^VmXND10>^}AJ+(ZI;~IJN=T4Tu_1W0@GxV)K+@q#Fxtw4FoQUy(_kk(JL(P)3m~ zHh2Atb|@V^{p(nANV^R}P_OrpX_L%@Vy!J*UWnJG<*(=Go9uVztzXTFrtImB{>;~8 znBSNp23UwxF&OSmPQ6=by3%;aq2sEe<=}wp;21eS-#il?^dWns#KV~ke8K^xX79V&{k!(|0@#nO6wbpPo0Zl+u0H7_^f3aT>(W1QnP|ZW$_~} zrKf%Di&Sh%PuFb22+`$)B8jlbnYdJTR_)Er!(>Dzc%eb^yNTS6T*j}}EaoaJt!eSY zG)|{T3a}yp!gS*9iTa$=NlH>LB^lpo8y@zHC4Xl*Q*DHgvC+6q9jb26XZG;n%7Z8) zH6tT$5Pm3(y@`WHN8fp>{24CIz6seS4Uf2ZXOq1--K5c0^Y$+(LEKY%H>%vC*)xtOrWBNy2b54KzvL{|(!$Qf+WNz=aYh*%2gKK~ zm;tq8;|5S=Va$WyQ$1W|68Wg9ss$ zkty$&5Ir>O>QXTj5`Do3RhF785EpSMI#~;pWp0bqda&5lQ2zaGi(|Hwh^@&;gN|Mc z@+cPb6X90ig$xso5NpwsdR2d9VSH(&r=!Dq|A6&ZYt=;YRiyf-bkj{OWhg{v`KT;o z`BRTH!)v%^O1JD5^WpOn`V)J{&5-b0o-n_6;b8n$nDMLso{3FS%tY}^ox2hE0l=?= zl^PR(muwa*oA!~(fi{}p>8q4-H>>KnXa&?=h>Ls%vFAvI_iYkZsd=PV6V-aY-pt~^ zy#S*%U0j|$zzFt=A|FfL(<9$khWbL+otfA*$3;-0%U{wPHF^c!V!pK5iji*si?pPX zQK@8Oz9#>88guKR=5Hacnm zQLDGyI=9q-qbK#U@kbF`A3@82KiAFL3?B!>N5vR`UC%E6ZOM4vs7l z2NRp@T{a+o&k{#;1(vxS?^?qqfxs@qwXOb54!C1+qeI)?5?;q#c~3-64kUGRHD+_4 zP|pQ{DRJ`a>Ye8Uml`X$&bb?_3qv6aqY)fW~Bd6)cbTkl*R{Amv26EBP+}V zPmGL=3A{&x0gJDzxu!ihK-=5X<+Vz}l_Gl^+X9|i|Jc}9SAUv(xy8kssrr)lZZa4< z2LDS~<+3IvB0_$j!R_xF!F}7=C}!pKr=aEtx@?hwXNs2SzSs3U5L{a)tM^tH+q=5j zy5%qBX6{4TD6YlaEQaUN>|5PbsK}CZami{e0=G8D%}6hB53%p7j|2u#({mT2jePQ@ zA8}z?+1!i-dm@8~;i0znREf#8sOV_$tT(17`}=8at1yLNeBpdVDL^2 z3lDDr4HXZ8tOQ5!SFiqsZ*44q)-C9Dd{?X3sBpJ|0Q7id?o=*D)^EV}lyxhiZKZ%? z3=<2V1nT9vb<38km8OyKb8k#@fR-&l}Qma zzSW%04R{b|;H5#5CKaMgD1K-+ZYb7!8G@-!K8cIHCtXC~-3$p`kki_{@{_b<{X5pI zSmRr|$;sU|4*TEVlS#|w-mTSE9SgXQHNUn7`MT$0WUm?T+-Zex2zV{NO--eMVs-=q zJ}3gYf)=RsLw+-5?*aVXVk8#_QXsFVgnch5|M}Da$i`ofuOO{Zk#41`O{JiqFg9NG z^=n(T{ji~K-%R~t$y#lZU=fCgNB`c*>UTl6-9)83cYyVOo=LyX-n#g+P7;bM-spNF z>j%1M^w~S!Px?m~$3bZ+q|oM@{jZG~@$vG4Kb8Z7jy4F)&)W5#8UINsF07n|(xwuV zwh;0;4{-LHfaloG^=dBM45nuBs;j*{)BEh*Z$(4rKx5*V;_4QT_$3nNv4#`$&ajZu!T$0L;0qbb=tt{eoxeGzA&(P z^YHUCii(PU{QNl#J`ocCck4$yvglC~14?m-kV>+UkkFztM4X=CE34mqZ6B)3?q6zg zV_;xJ(1wKtMEFHu(RNBlJ+%wK!o&<9Um`IJAa{=X)oX!%i; zEP{f`$db=6dHUGF`If*QsA-%X_&I2Ge?patCz7qmsGpYoi~HMTw_=5hzSOEzNhyIZ zJ#043?xi3K(!)PF9azf7pXGmk^Cq(QYG|s0dF<&AEOG{tTEBcT1M5tiQd)ZQ`&$%x zC7CZ#4$ON$^bFV*zT;R#Ps<1)B4JBENqtvo<6vA`ssNv-kWqQ#8GmNEu5n$i!?ZM! zb4a+Qg*q&}X7;1f{GB`KoLu@Os~sPzb?8W-I@eq1u*gt*erc)T@VXIa^xL;YP%Zit z%9_?j^WrP}hXnooZD>(HWETt6#@x5oOV_azRoAjFT?`Po*PN1`9tv{A){Kxk)$e=3=d8p2#Zi1H{XeQ6m@$9&)hsg z(D9DuN~Nr91mU%T4DHX;9EB|>h!?skXs4&qzFtRLy4Sy_Dg3vx&O4sU|NsAo>`_QM zb`A-dmA$u&vK@Pt5F%uTtYfd}Eg~fASjm<>vJ$egSBbJ$GQQ9A`SbVt``oVUdR^CR zJzvk~<8eQouPoyXat*5L+*ioD;#udgo7og7InK*+97#^UrSo(LnzG&tiHf$h1Yg8N z-tB1EJkTjD2@baDPfaxxiEuCp-py1tHh!=l=1S2We?yToS=4E04wygQzP=)+=ag*8 zLbU-6e7btVuhJT^nxVx;e2K{;d;0=fY+PI<8yf?npY{$nqet@f^k?f`9u;hbnbxh-oaN=(hP%aGGP+K1!`E{D$#X2 zTvF1i^TlQO*J#|%W^-?CHcb(0q$(|RMA{J$)mOOWmkET+wS45Nm_Mm8HRN>oXs@HM zAEohXcz$#4{(zxd$hU71Tf3$aNlETZ;)!hIewFvm@=K8 zsQ3$brtL`2^cPu{tV}XY;h^XV6|!yWKK;ihK-knAC~H>#^8F6KuA-v!%hc)&ME*sL z^3sJ2A)#?7L&l7iq#vxNI6a>6rM~@8sb#KN_W7x2_!#+?gygf1q1@eTbmZVHVCd+! ze>BSCdE3ACwn-HY6lOS5zSA>QFXpqoewUNuW|Nq8PP@HLkCd)=y^YRe=AeN*(_Dx^ zlUV3=joD6!$wo7`8!G@IL_~b)Ie};mKhRFtb8<=@rZ}pst=NOJ&RtxdL-%yUXHki4*1ytkpPkp7^X9sc zN}O3le}6Y7?(Dx2A!N99xmB=0)2Wx#^W$Gq4+m$53a%uW*{*)gv_cZu56-$AEuXW| zkfN_V9liqh)GegI4|Wu1=72`yqy(oeG@nDWZYqjYn5` zcsRBW#+)lAK1p88&X#TMD<+2AN$%6I^qH9kl!zA#n6BVi3}ElBsn&9&X^)Uxnyxd& zRtA!X;eWPkL_eZP(=2uGUtI2?t*!s=STc;(OYB*OG&-8skc{H@2;-i$dDZWC7Y@ z_;WWiEId)&V3!xF9f_|FX*U~}hGPtcFU7N5vHd;4`s9xZC*;3lD{TLXPOGU>MG~Ov zZXxbt^$rVLDM^OBBac7yR{WmIwd+yqcQZEK*!bCa-sn zOM-Gz`D7`Fu2HlX>|xIqJDWXRoPjwdit9Hxa-ujnDMUmbeitb;_WAcG6BGFt^cjD* z_RT}~_N1KCI~a_{?+FSEcjRd}P-Yfmj8`)c^;!AUc{64BRCR{~8vnj`S)SxTog6LE z_h){B%2Fn-EitkCRnDm@tCJ%P6&1Ty@BtIq#}^LgHXT7e17m}NVL2%J>SQD#u4P38 zk-$;AP?xdQ#W=$tW89~2s7_5+%?SAq#k*=2U*NynhVMJvZ||EyKOTwSruLgdkuVFRf#L(bcIaZb$%C`RZ( zU7i<0BJ>oeL#$zm66D&nL&JQ)ql_D0WvbVX6j7f*lOYKT_wn76d6+`knoR0Wn=RYUbfr3|eiqkD>DEHrDOR#vY zukhtum6GwE5{!i3$6$_pZ)2qDcsT<7ZsuKM8{uKnlK%Cc^5z zflbzGXPNJ)TlN^jU2(wMsKGsx&QAY4S^g}gmgj!-x5UXKG3&>Vk{VxNrTM8>hHNwT z+=)@+uv_Vc42gMd!?Ts?50BC`;|66UF`dzewi{-wSmVnbX-u?cc~5_OVPfAzSbUOz zGTo-zs&-DbR#E4C>&&%e>cypX%VRz&67NBUWF!(}?Ccg7tRk zL`kK~cB;A%UEX3e#rcauMWuv_T8I(`%h6W5C4eW~oYVC~s+~=9O+__0IPAv!;xsu! zv`V0m;+a8FW-<_~iyQlU!G$O)l>55Y5XmLDLBbZ4jnL`KC^Pea* zn$X0>8H#y5mce2*w>KK*go}s@B|v$>2aj1Fc*vhzSWTL={^Tqf%Ba~`>>0w|&5e6_ zn5A{b+%I19CeJ%a8Qf?(Kf5zl`UbQ0Brrt}Z>PMyA1i#Yaf)ba`t-jZQZgGZl6G;~ z@8)|qoO+#Z8biySo$a8epumZtwR|m7z{C3A8}lG(Kbe-d@)u1imOK^i-w*X%=gd)! zzX&q$N7MBwxm7!n@Bv_LtG*|oz;7ho$M|aDIr6=E`Mait_f6{1wkG?RUDP9~#}5zXT?Q+t7hQe09ob_r5$X_*xyBbNb{z zza9rc!SA_qHeJ2*G4;Pns;W2Pofo=df13m@*}?)~-2VcTka2=2Eq#3@8id?H4J(07 zob^U8anlAAW$C-)1-`Czn1uUP4kZXQda<`Q$b8pG;rZfPL8f-#^*o(yMQNab8Wgj|;?K=br_oo^ODf>uf31o;hf#7W?NKbrNShkz_-4|H-fdvdQd|Z4bN*;UN z5_(sDd%oil4X>)=mO0%+e5lNVOiJWHee2iJQ97DPigeK|C>;xT*ib|8u)SrC2P~WI zd3m;&SX0oJz8i6JMWPnJRo9YVJ!@kPw9AG?FH_1V-0zTuU9thR(n$=#_w@8Gd~|ii zCnvwmYaxX%?TZ%HIO~NCUhwG;0r2?5|C!4FWoA%5o)#KP(RhC54x>m$=dTg&iBJDROrB-UG%SIo9WMqsL=GsX&6&u2pU=I% zF+IsO^OKciKrG5lHTn-a^Y+7&7!2lcs4`!;SjKhkOKXmDBETwjs^p+63_Z1Bw{hEj zC}uCxUWosbQ(y0WBVJIjQjQrHLb+voCA7fD=epY6zl@K`y&u@iwvJn#haVkjhKBu7 zNO7rthwHtv)caDNYs$hEs_{|OG#}^ziD|XHc&fe9l=k0$=IzN=?6jyvDtUPp32s`% zHM1uFzwXYA+qb~93_d#b+^2$PN48w`9@aHK*mxg{-nz}I$p30-V@8S!5A=?0SYt^j z^0J~EM39vaeSZ1>Z5d|{2oUOuV-A|0wh4`3l`l3#?QP7EE_J)Mz#5m(M+(LO;ILX5 zWb{s(QAfbLCaUAequ5UL(&1$J0&mkX4;{1{&+PVZOfUM}Y(tBPJ6|nMC zwzDO8LH&^L6Ggk=>dX{TcU-_Q$G+Vsw$Mp}yq6tU#_msAFpBhYB@VDNrKm^g>p0$ytq=q=_<0FFN zr@OmZHv4N!`*i$CeWY;UBO#r{K2`Sfd6}G$5FAF%p3?OeNre8ej3_?a+wVkw=qPKI zYee%Z$+aLLv83B+_NCRhqP)sEVxisK(fcYHVcFjSj1oR*GcxvX@4=~nAX2Glk10|q zyubejune1fy>_1@=il!W^4T%`Y+`7%Z)!rav0bo!{1_2#{qn4qKD>1}Pp6N3DEhD})R6xMuQ`Lk&n}iQ5+OLgD{3bY+t|o- zbw+1_+H5A%cBfH}mkuH&RW@;PCfRc-%FV_Ra)s=-Ul7-+7lv|epyCl{FqfHmuyx>7 zbnqffLB8q`MMYww$!B^`Mj`+v(>iV|!jN=z9U~<^-mtMvZV{BLaiJ3nIL^Z2Yf5^Z z#N}yR`bP4YySJ}r0T$GGt4lGAD`>rsCA<90_Er}bzN$;70v zS$egpC^rN&Fz6(n5iKqS$1(R+1U7FF_RdUCTiM$iEul*s)Sf?=(bb($ej%*vP)I9# z^5n`$e!~kAl1t4o*EOW99eVgTA?@wM#l;m8p{j~R-kGcS$7%ar2lL1Eh;iW0TDPT- zjv;DxWC5oxTsIpC(_+l6*%jMozm9K4wY8y<$UQlnUQ^>SDH&N?rnH|UQ}KRZ;qXNP z0fAU#XKLU{d&BYhQdfnko=zC2OfOVM48CJJa+wPCw>e%kzkh8HL@rNXkH*3N_V#u% z3tqrypj)E}!K!@Iy8iuQTg^S|-E&VV(ZvPz;C`FV#Z-1^BOoR1Fs za*dJU^1vr8d0QaSJpgz*At1!z@Vh|B0}d7@F3!chSt<1ES8XIcH_MPn=Z_x@gN~QU zQEjuI{J%z??SIq27~HLjMxqyp6u4RF{<$jB5x zy?QT0Z0KDRtBgMeq{wW-20HYa(YEH!(HC(z7v3*fU6##w#(zKVsWzs1+=dX8KlaqsLJe>6t6cvpC@CO~g8D?kam>jIR zJ~Y5^0J3R22=qrijlJ*mL*WGIAs7IGjWwt!q7tpZKo4Zp(6BH<@PWeW_yRtBE}(6> zczFpBzb7k+fsD`%8FV}Z2-czO=TdT(%4Zsm1FYx=^gQ4uR31OZ4m+q<#@PFYf$kgF+0(@lDX3R{g;2x!2%tg~>iBo%;OEK7y5mjw zkqvPNSP~L`2fSes5y{XbW-0FkKme%$r0_Zr5b?DGHj14sPtVT{Gj#zxa)pj=7#c%@ zkoMUL#b5xL`3S<7mjE~vb)Dq^@PbK`zt5Y43ovnIdAPZ=fvJoy2kZyKUkreDhy&HL zfn&R#EEHk%ySMb!N007mXs`nkB?^PNmh*k-2LRgM15;cFn8Y(6fdg@>YS!~(Zfa_+ zOsO;wf-685qck)$qT=IkpmN&U6!7H$n@;&X`|d0j6I(Wn^fWq|NmX#}7T82AD%qNQff5>|5xp%hZXQoW&ce zSG+5<1+=KiQ8{j1-_#HYg4ekJ2mrKXVq_%g1AF^%2GO{d(;uCj-9= zX8_S(VSO7Hjbo34as=!QYqoID)rpEThCF}ggj8^<$pM5OvLi7tLJGU)z^&l+^9yrA zTcwJ%H5=4>5L_;HvL{;?fX-TB)%t?rk4h{<7ywJgX|mo(K7(^+%h#_7qZ4}j#DFdQ zY0?}Iv_fv@5#FW021bgb4&W2`sm4V+=H6On-k^e5g|S#=hQ;+HOq0%z4zQnJWR~=b zsrUM$j^L7&%|d{PYpS5O_P>+U)0BIP7G7l*&vD3229d|e2X=Pa?(Vn5B_&6i&-MjS zy8U?3QBmmq++NT5e73dR!jS|X5x@pgw0~Q@38xp}Lvr1`84bL}&+Y9YGRLdzNj-MU zfBtAeVNzdPTMpPNZ(-Rms_EMZ0XxvF;%O>06+jTnkx(p!VIPMwf>MDSd;yM^99HA0EkRhH7145eP4BVAzI?vLlXD2>D(rtw`W9t1!67U2>kY488 zGW~`J;9DFIbQK2Weg!O8Sab#CxFQ_`o58zsLEE2Lpj~wrC_rDp6hqCx0N&KHT=-uB zkYB*reozRGF|psX(^oQlye-(z{tgD_z>l_FG4c>Yz}Sd_!Z<5@-r)k~M)cO!6Q)G9 zP^hlq{?fvvDkLi$d~oG2u9AZV%5cl3_5a(<9i=G?P4u2aQ!;0Capc4J7M+smQC6Lk8=Il2FcMW0?RN=3dzqzVDS7u!GRLuz-fvEp0=@j auAwDoImPsl8UEV@aaZ}CQmKN~i~j@L>Kcdu literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp_source.html new file mode 100644 index 0000000..751f605 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8cpp_source.html @@ -0,0 +1,446 @@ + + + + + + +Documentation: NexDualStateButton.cpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexDualStateButton.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexDualStateButton.h"
+
17 
+
18 NexDSButton::NexDSButton(uint8_t pid, uint8_t cid, const char *name)
+
19  :NexTouch(pid, cid, name)
+
20 {
+
21 }
+
22 
+
23 bool NexDSButton::getValue(uint32_t *number)
+
24 {
+
25  String cmd = String("get ");
+
26  cmd += getObjName();
+
27  cmd += ".val";
+
28  sendCommand(cmd.c_str());
+
29  return recvRetNumber(number);
+
30 }
+
31 
+
32 bool NexDSButton::setValue(uint32_t number)
+
33 {
+
34  char buf[10] = {0};
+
35  String cmd;
+
36 
+
37  utoa(number, buf, 10);
+
38  cmd += getObjName();
+
39  cmd += ".val=";
+
40  cmd += buf;
+
41 
+
42  sendCommand(cmd.c_str());
+
43  return recvRetCommandFinished();
+
44 }
+
45 
+
46 uint16_t NexDSButton::getText(char *buffer, uint16_t len)
+
47 {
+
48  String cmd;
+
49  cmd += "get ";
+
50  cmd += getObjName();
+
51  cmd += ".txt";
+
52  sendCommand(cmd.c_str());
+
53  return recvRetString(buffer,len);
+
54 }
+
55 
+
56 bool NexDSButton::setText(const char *buffer)
+
57 {
+
58  String cmd;
+
59  cmd += getObjName();
+
60  cmd += ".txt=\"";
+
61  cmd += buffer;
+
62  cmd += "\"";
+
63  sendCommand(cmd.c_str());
+
64  return recvRetCommandFinished();
+
65 }
+
66 
+
67 uint32_t NexDSButton::Get_state0_color_bco0(uint32_t *number)
+
68 {
+
69  String cmd;
+
70  cmd += "get ";
+
71  cmd += getObjName();
+
72  cmd += ".bco0";
+
73  sendCommand(cmd.c_str());
+
74  return recvRetNumber(number);
+
75 }
+
76 
+ +
78 {
+
79  char buf[10] = {0};
+
80  String cmd;
+
81 
+
82  utoa(number, buf, 10);
+
83  cmd += getObjName();
+
84  cmd += ".bco0=";
+
85  cmd += buf;
+
86  sendCommand(cmd.c_str());
+
87 
+
88  cmd="";
+
89  cmd += "ref ";
+
90  cmd += getObjName();
+
91  sendCommand(cmd.c_str());
+
92  return recvRetCommandFinished();
+
93 }
+
94 
+
95 uint32_t NexDSButton::Get_state1_color_bco1(uint32_t *number)
+
96 {
+
97  String cmd;
+
98  cmd += "get ";
+
99  cmd += getObjName();
+
100  cmd += ".bco1";
+
101  sendCommand(cmd.c_str());
+
102  return recvRetNumber(number);
+
103 }
+
104 
+ +
106 {
+
107  char buf[10] = {0};
+
108  String cmd;
+
109 
+
110  utoa(number, buf, 10);
+
111  cmd += getObjName();
+
112  cmd += ".bco1=";
+
113  cmd += buf;
+
114  sendCommand(cmd.c_str());
+
115 
+
116  cmd="";
+
117  cmd += "ref ";
+
118  cmd += getObjName();
+
119  sendCommand(cmd.c_str());
+
120  return recvRetCommandFinished();
+
121 }
+
122 
+
123 uint32_t NexDSButton::Get_font_color_pco(uint32_t *number)
+
124 {
+
125  String cmd;
+
126  cmd += "get ";
+
127  cmd += getObjName();
+
128  cmd += ".pco";
+
129  sendCommand(cmd.c_str());
+
130  return recvRetNumber(number);
+
131 }
+
132 
+
133 bool NexDSButton::Set_font_color_pco(uint32_t number)
+
134 {
+
135  char buf[10] = {0};
+
136  String cmd;
+
137 
+
138  utoa(number, buf, 10);
+
139  cmd += getObjName();
+
140  cmd += ".pco=";
+
141  cmd += buf;
+
142  sendCommand(cmd.c_str());
+
143 
+
144  cmd = "";
+
145  cmd += "ref ";
+
146  cmd += getObjName();
+
147  sendCommand(cmd.c_str());
+
148  return recvRetCommandFinished();
+
149 }
+
150 
+
151 uint32_t NexDSButton::Get_place_xcen(uint32_t *number)
+
152 {
+
153  String cmd;
+
154  cmd += "get ";
+
155  cmd += getObjName();
+
156  cmd += ".xcen";
+
157  sendCommand(cmd.c_str());
+
158  return recvRetNumber(number);
+
159 }
+
160 
+
161 bool NexDSButton::Set_place_xcen(uint32_t number)
+
162 {
+
163  char buf[10] = {0};
+
164  String cmd;
+
165 
+
166  utoa(number, buf, 10);
+
167  cmd += getObjName();
+
168  cmd += ".xcen=";
+
169  cmd += buf;
+
170  sendCommand(cmd.c_str());
+
171 
+
172  cmd = "";
+
173  cmd += "ref ";
+
174  cmd += getObjName();
+
175  sendCommand(cmd.c_str());
+
176  return recvRetCommandFinished();
+
177 }
+
178 
+
179 uint32_t NexDSButton::Get_place_ycen(uint32_t *number)
+
180 {
+
181  String cmd;
+
182  cmd += "get ";
+
183  cmd += getObjName();
+
184  cmd += ".ycen";
+
185  sendCommand(cmd.c_str());
+
186  return recvRetNumber(number);
+
187 }
+
188 
+
189 bool NexDSButton::Set_place_ycen(uint32_t number)
+
190 {
+
191  char buf[10] = {0};
+
192  String cmd;
+
193 
+
194  utoa(number, buf, 10);
+
195  cmd += getObjName();
+
196  cmd += ".ycen=";
+
197  cmd += buf;
+
198  sendCommand(cmd.c_str());
+
199 
+
200  cmd = "";
+
201  cmd += "ref ";
+
202  cmd += getObjName();
+
203  sendCommand(cmd.c_str());
+
204  return recvRetCommandFinished();
+
205 }
+
206 
+
207 uint32_t NexDSButton::getFont(uint32_t *number)
+
208 {
+
209  String cmd;
+
210  cmd += "get ";
+
211  cmd += getObjName();
+
212  cmd += ".font";
+
213  sendCommand(cmd.c_str());
+
214  return recvRetNumber(number);
+
215 }
+
216 
+
217 bool NexDSButton::setFont(uint32_t number)
+
218 {
+
219  char buf[10] = {0};
+
220  String cmd;
+
221 
+
222  utoa(number, buf, 10);
+
223  cmd += getObjName();
+
224  cmd += ".font=";
+
225  cmd += buf;
+
226  sendCommand(cmd.c_str());
+
227 
+
228  cmd = "";
+
229  cmd += "ref ";
+
230  cmd += getObjName();
+
231  sendCommand(cmd.c_str());
+
232  return recvRetCommandFinished();
+
233 }
+
234 
+
235 uint32_t NexDSButton::Get_state0_crop_picc0(uint32_t *number)
+
236 {
+
237  String cmd;
+
238  cmd += "get ";
+
239  cmd += getObjName();
+
240  cmd += ".picc0";
+
241  sendCommand(cmd.c_str());
+
242  return recvRetNumber(number);
+
243 }
+
244 
+ +
246 {
+
247  char buf[10] = {0};
+
248  String cmd;
+
249 
+
250  utoa(number, buf, 10);
+
251  cmd += getObjName();
+
252  cmd += ".picc0=";
+
253  cmd += buf;
+
254  sendCommand(cmd.c_str());
+
255 
+
256  cmd = "";
+
257  cmd += "ref ";
+
258  cmd += getObjName();
+
259  sendCommand(cmd.c_str());
+
260  return recvRetCommandFinished();
+
261 }
+
262 
+
263 uint32_t NexDSButton::Get_state1_crop_picc1(uint32_t *number)
+
264 {
+
265  String cmd;
+
266  cmd += "get ";
+
267  cmd += getObjName();
+
268  cmd += ".picc1";
+
269  sendCommand(cmd.c_str());
+
270  return recvRetNumber(number);
+
271 }
+
272 
+ +
274 {
+
275  char buf[10] = {0};
+
276  String cmd;
+
277 
+
278  utoa(number, buf, 10);
+
279  cmd += getObjName();
+
280  cmd += ".picc1=";
+
281  cmd += buf;
+
282  sendCommand(cmd.c_str());
+
283 
+
284  cmd = "";
+
285  cmd += "ref ";
+
286  cmd += getObjName();
+
287  sendCommand(cmd.c_str());
+
288  return recvRetCommandFinished();
+
289 }
+
290 
+
291 uint32_t NexDSButton::Get_state0_image_pic0(uint32_t *number)
+
292 {
+
293  String cmd;
+
294  cmd += "get ";
+
295  cmd += getObjName();
+
296  cmd += ".pic0";
+
297  sendCommand(cmd.c_str());
+
298  return recvRetNumber(number);
+
299 }
+
300 
+ +
302 {
+
303  char buf[10] = {0};
+
304  String cmd;
+
305 
+
306  utoa(number, buf, 10);
+
307  cmd += getObjName();
+
308  cmd += ".pic0=";
+
309  cmd += buf;
+
310  sendCommand(cmd.c_str());
+
311 
+
312  cmd = "";
+
313  cmd += "ref ";
+
314  cmd += getObjName();
+
315  sendCommand(cmd.c_str());
+
316  return recvRetCommandFinished();
+
317 }
+
318 
+
319 uint32_t NexDSButton::Get_state1_image_pic1(uint32_t *number)
+
320 {
+
321  String cmd;
+
322  cmd += "get ";
+
323  cmd += getObjName();
+
324  cmd += ".pic1";
+
325  sendCommand(cmd.c_str());
+
326  return recvRetNumber(number);
+
327 }
+
328 
+ +
330 {
+
331  char buf[10] = {0};
+
332  String cmd;
+
333 
+
334  utoa(number, buf, 10);
+
335  cmd += getObjName();
+
336  cmd += ".pic1=";
+
337  cmd += buf;
+
338  sendCommand(cmd.c_str());
+
339 
+
340  cmd = "";
+
341  cmd += "ref ";
+
342  cmd += getObjName();
+
343  sendCommand(cmd.c_str());
+
344  return recvRetCommandFinished();
+
345 }
+
346 
+
347 
+
bool Set_state1_color_bco1(uint32_t number)
Set bco1 attribute of component.
+
uint32_t Get_state1_color_bco1(uint32_t *number)
Get bco1 attribute of component.
+
bool Set_place_ycen(uint32_t number)
Set ycen attribute of component.
+
bool Set_state1_image_pic1(uint32_t number)
Set pic1 attribute of component.
+
uint32_t getFont(uint32_t *number)
Get font attribute of component.
+
uint32_t Get_state1_image_pic1(uint32_t *number)
Get pic1 attribute of component.
+
bool setFont(uint32_t number)
Set font attribute of component.
+
bool Set_place_xcen(uint32_t number)
Set xcen attribute of component.
+
uint32_t Get_state0_image_pic0(uint32_t *number)
Get pic0 attribute of component.
+
bool Set_state0_crop_picc0(uint32_t number)
Set picc0 attribute of component.
+
uint32_t Get_state0_color_bco0(uint32_t *number)
Get bco0 attribute of component.
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
+
bool getValue(uint32_t *number)
Get number attribute of component.
+
uint32_t Get_place_ycen(uint32_t *number)
Get ycen attribute of component.
+
bool Set_state0_image_pic0(uint32_t number)
Set pic0 attribute of component.
+
NexDSButton(uint8_t pid, uint8_t cid, const char *name)
Constructor.
+
uint32_t Get_state0_crop_picc0(uint32_t *number)
Get picc0 attribute of component.
+
bool setValue(uint32_t number)
Set number attribute of component.
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
+
The definition of class NexDSButton.
+
bool Set_state1_crop_picc1(uint32_t number)
Set picc1 attribute of component.
+
bool setText(const char *buffer)
Set text attribute of component.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
uint32_t Get_state1_crop_picc1(uint32_t *number)
Get picc1 attribute of component.
+
uint32_t Get_place_xcen(uint32_t *number)
Get xcen attribute of component.
+
bool Set_state0_color_bco0(uint32_t number)
Set bco0 attribute of component.
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h.html new file mode 100644 index 0000000..4427efe --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h.html @@ -0,0 +1,110 @@ + + + + + + +Documentation: NexDualStateButton.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexDualStateButton.h File Reference
+
+
+ +

The definition of class NexDSButton. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexDSButton
 NexDSButton component. More...
 
+

Detailed Description

+

The definition of class NexDSButton.

+
Author
huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)
+
Date
2015/11/11
+ + +

Definition in file NexDualStateButton.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.map new file mode 100644 index 0000000..64976a8 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.md5 new file mode 100644 index 0000000..ac6c276 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.md5 @@ -0,0 +1 @@ +a61354633ab957f7a9c0f2755df92c2a \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4aef38ff86ec2343497a539ce78ad9852ebfc646 GIT binary patch literal 6366 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.map new file mode 100644 index 0000000..896362e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.md5 new file mode 100644 index 0000000..c96616f --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.md5 @@ -0,0 +1 @@ +aa2e138fae81b8608b8eb71708a658a5 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9a894706f33b6ab7db01c260ec52c6e37efb71 GIT binary patch literal 21038 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 TGLPqkdoE&ZV4+`*agY5MFDP;u literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h_source.html new file mode 100644 index 0000000..eab530b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_dual_state_button_8h_source.html @@ -0,0 +1,175 @@ + + + + + + +Documentation: NexDualStateButton.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexDualStateButton.h
+
+
+Go to the documentation of this file.
1 
+
18 #ifndef __NEXDSBUTTON_H__
+
19 #define __NEXDSBUTTON_H__
+
20 
+
21 #include "NexTouch.h"
+
22 #include "NexHardware.h"
+
36 class NexDSButton: public NexTouch
+
37 {
+
38 public: /* methods */
+
42  NexDSButton(uint8_t pid, uint8_t cid, const char *name);
+
43 
+
50  bool getValue(uint32_t *number);
+
51 
+
58  bool setValue(uint32_t number);
+
59 
+
67  uint16_t getText(char *buffer, uint16_t len);
+
68 
+
75  bool setText(const char *buffer);
+
76 
+
83  uint32_t Get_state0_color_bco0(uint32_t *number);
+
84 
+
91  bool Set_state0_color_bco0(uint32_t number);
+
92 
+
99  uint32_t Get_state1_color_bco1(uint32_t *number);
+
100 
+
107  bool Set_state1_color_bco1(uint32_t number);
+
108 
+
115  uint32_t Get_font_color_pco(uint32_t *number);
+
116 
+
123  bool Set_font_color_pco(uint32_t number);
+
124 
+
131  uint32_t Get_place_xcen(uint32_t *number);
+
132 
+
139  bool Set_place_xcen(uint32_t number);
+
140 
+
147  uint32_t Get_place_ycen(uint32_t *number);
+
148 
+
155  bool Set_place_ycen(uint32_t number);
+
156 
+
163  uint32_t getFont(uint32_t *number);
+
164 
+
171  bool setFont(uint32_t number);
+
172 
+
179  uint32_t Get_state0_crop_picc0(uint32_t *number);
+
180 
+
187  bool Set_state0_crop_picc0(uint32_t number);
+
188 
+
195  uint32_t Get_state1_crop_picc1(uint32_t *number);
+
196 
+
203  bool Set_state1_crop_picc1(uint32_t number);
+
204 
+
211  uint32_t Get_state0_image_pic0(uint32_t *number);
+
212 
+
219  bool Set_state0_image_pic0(uint32_t number);
+
220 
+
227  uint32_t Get_state1_image_pic1(uint32_t *number);
+
228 
+
235  bool Set_state1_image_pic1(uint32_t number);
+
236 };
+
243 #endif /* #ifndef __NEXDSBUTTON_H__ */
+
bool Set_state1_color_bco1(uint32_t number)
Set bco1 attribute of component.
+
uint32_t Get_state1_color_bco1(uint32_t *number)
Get bco1 attribute of component.
+
bool Set_place_ycen(uint32_t number)
Set ycen attribute of component.
+
bool Set_state1_image_pic1(uint32_t number)
Set pic1 attribute of component.
+
uint32_t getFont(uint32_t *number)
Get font attribute of component.
+
uint32_t Get_state1_image_pic1(uint32_t *number)
Get pic1 attribute of component.
+
NexDSButton component.
+
bool setFont(uint32_t number)
Set font attribute of component.
+
bool Set_place_xcen(uint32_t number)
Set xcen attribute of component.
+
uint32_t Get_state0_image_pic0(uint32_t *number)
Get pic0 attribute of component.
+
bool Set_state0_crop_picc0(uint32_t number)
Set picc0 attribute of component.
+
uint32_t Get_state0_color_bco0(uint32_t *number)
Get bco0 attribute of component.
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
+
bool getValue(uint32_t *number)
Get number attribute of component.
+
uint32_t Get_place_ycen(uint32_t *number)
Get ycen attribute of component.
+
The definition of class NexTouch.
+
bool Set_state0_image_pic0(uint32_t number)
Set pic0 attribute of component.
+
NexDSButton(uint8_t pid, uint8_t cid, const char *name)
Constructor.
+
The definition of base API for using Nextion.
+
uint32_t Get_state0_crop_picc0(uint32_t *number)
Get picc0 attribute of component.
+
bool setValue(uint32_t number)
Set number attribute of component.
+
uint16_t getText(char *buffer, uint16_t len)
Get text attribute of component.
+
bool Set_state1_crop_picc1(uint32_t number)
Set picc1 attribute of component.
+
bool setText(const char *buffer)
Set text attribute of component.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
uint32_t Get_state1_crop_picc1(uint32_t *number)
Get picc1 attribute of component.
+
uint32_t Get_place_xcen(uint32_t *number)
Get xcen attribute of component.
+
bool Set_state0_color_bco0(uint32_t number)
Set bco0 attribute of component.
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp.html new file mode 100644 index 0000000..01ec917 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexGauge.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexGauge.cpp File Reference
+
+
+ +

The implementation of class NexGauge. +More...

+
#include "NexGauge.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexGauge.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexGauge.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.map new file mode 100644 index 0000000..7d24e99 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.md5 new file mode 100644 index 0000000..47ef14e --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.md5 @@ -0,0 +1 @@ +cf65eb9046657613583090b80b117113 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a35289b5da780ff92c4312324cc06dfb0c554b GIT binary patch literal 24996 zcmdS>Wmwf~_cjVoB&E9>1Vp+)=`KOK5fCZq1_7lz1O!Dux&@>J=@0}Jk&sb1m*SvmLj&Y82oMXml-&e-Nrp87f5O}I83OWb`3J(02 zg@pl6Mg<#);C~p_>dFd;Yvey~+e%Uq2u6gef~=n3o1HmdBi+es%zfYPatsmdJm!!HYxt@wPKkvD_OelxN5u4xsY{(0RRIwHn4<|OCRjwyApCjgb z&07vN<}D41PVzdtVI@aL&QV)!o#g|+#RET$j67m7FW2ZtVzl@sO)hx4y1K>cd8|hl zXP!qpQzTLNbk;4T=`u}Rg`F!0-|OtOiih5^)<2mNC|1|L?e*<{buYxl5&Ht`|9-37 z{ea`Gh$8ij<&L{q^X)-#7Ht8a3zNpi^uA*C`b|<9L&eh-?i6qoha-y(fQ>IZr$UravmP<&CUzAL|eA?5;5>; zqZ4REyQik85~zh=ILzeb<=M|Paz7rBZx-`|uHUL2A5bg{o@nhGi_ahqHhK1CC;Bxht`B0fAl z6Zn)s6Scf-jgay35{e{X;K7g8D%Q%ycXf3=Sh?%FyZCRfBPt_<0zOKF$stN5Xv}7bjoDb}kcL4eK+9;$>at(g#Mlv7`1qd&QdsyO4G>mZv{9d(ou!|D^xh^% zz9~;W%KFc*uY_1=xj_lm_;@(t%O1^{qOSDxk^$j=)`ty0eo0|bPJa0^lJ2h0LzqZ( zVxp3p8(;hR)*Y{n?k z>XN*C`4aK0yIYRSqLq@{q+Z6}o&#o;X#UZMiJg7D&O2A!6C>pEnBwB%0=bCsRDu}L z^`-UK@wTSz$!eS9t?{2VR;W5UI)v2JCJwJ``V+0-nNfoy+3ws&cKkZtHl^G2F#Nj4 z#>k{30uk5w_%C0+a8~C^29ir(ow8_XYL2w}d!C-3FJE2$Lp*yWXvZueLGAhLOV?so z*wV%Z7Gm+w8DqGNy1M%8{f^*E&P&9z;$pVHJ5yoCb&vDhS3WJvkKAZ+M$e&nE$bC2q4mZ&nEp#49?(gm7XBIz$*Nd-w%R#lCZ z>)+AHmLQ|xwMg3#Ry){u6LABVPJ(o@+OmJT!RcTnN!lQQTT+s)CyJo@=*_!#JO~*r zEdo>wTp1M=tchw%-r%+e1xnw?#uVUUnbg~(AeLjsT3heoQVU@r-oAU62&cZ%vXm{?ekkdrvk8QFhYbirdMJg()n#M+Q>BidH=Lrd#MYf#n^Ysq8ts&PI z`I8)d1y*?oT6|3D>kC0Pt(lKc7rUpqSyG$K!)rKgi27^S5djE#*EgC~9pN=o@K zbu4V`?of1`-rvnFEz4tNy89<5)ngWYZM?T`-7;$Ny8V*JJocUWM>$5q#ht0T^p_Oa z5!$-CFhPdi;a9I-Egf%9+RwK(pEkz^8X*S=w@fJ@phe7&n3&k@WY;{N?yfwG7MsjS-gF_8`;Nc^IVoQaAd}&sx-&m>3lm73AXH&z3;!0 z%O5{<4qD}`teB3Djt~e69y1yEb0WPYr%T{KGSkmm8%%nsr&v!?Ivp1grJG%li{8{fnA|N2Z*>=rs+PDZ8KRO|y56ZQWny!)1Z=SzpG<{WQqWtLtG1xp)q}uk^-{@QH{-W@XV_ovsjk$>c|sIpceLeza*+YmHvt z&~Py4yU;Z^N9VczP4Uqq)?$rUq2M9HBO|+qhY3VoW)a%-I2Ohb8etwLMjEKIzJ~vMzIQbjS8)n^D05{G6JK$^967DRFha%?o>|&KA@f z^p6~_ch%pw4a0403ARHoyLx-WEr#WkHu%EJnfdvN?ijvPc>467nwr}Fav#pc*?KP0 z?2Q&Zz|HR=ERTgNlK0^QWgI!T-2MCbTwGk=n_Mk%X~nc32f?5xe$KBWhZDs_T&~qa zs4pAE^jvGG@zI(6_m*%Yx~{2@tu{;)&28HbHZ$FCq!5!QQev@tfthe`M<9k=*4-Zs~`u@)6->}~$ z>O2PLFLQfhbClojpUB6-KYR0%W&6>nrlvO38~N z`1{uC!7wh}G>WZlH?`%u8v+{FJKE-TmUD<8Kl(Y7)!o%aON(DJJvlx;&gZCShi<4? zi-H#yFfcQNXXbKj8D#tlOFr@g#|P$EJbR-tdHAy&E3v+R&d}OhXHzF3=jqJnxIJO;_yDq4$2epWT3jbibj^_r_n)Yj=j-|`oFjpnB{ykbcFM*9%$iF>xq+o zFvD;0X^4tZm5=27Z^QBjEaqO@6E_?kudlGs;XUvmO#A0~HnNYm2MEv>BR+KL^<$S}%)kpYMP(9torvr`5O z?Zz81_Zx5v2fp!iRE8KCQPR@VYHMpF{)3?&e|@cQt5WAO*P@1*lr7Upsk#d-yps(=#xDRbg2D z@~=%HX@s`-rA5M5VDj;IjMkt^V@X z*4EJ#6?a|%lwt}`K3M5by-C8Be01bx{rIsGn0{p}ros;>oZZUgYHPxUlo`R{tPi z3g16_nqO9?3eHzUM^{%BU=oUqfS_Q-*n@)uaHG-SgvEV#Y5lLSB%A#Xm}{GwC_1j1 zUswF2#lWSMIejV>6CKTn7yu_ycuw2X({sxrr(BYnTtGXchA})Dzz9)LP|)G8uUVWS zg^7uYtlZq17pKd8alKPhuL$K-0Ls-iHnM@GXHn1KA>;k?_qXW{8CvYz^NLe20N~SC z*M>4!rKNMRBIG=NPYb)7=i=b7v$MYsxxP}{Tkm|1x;!au=;@s+uct@K6i%3@ZM5l` zf`*6Fm)Aphi_hj0?uQQ_9&U}50U%aYRjsM1AX^cmka=*t^%5-TgK4_=$Z_jB&uws2h=Oh4VO?m)sv7B)5vt(<#Z?`?-_ zoF;kf?d=f=aC_P&CfJ&qnt-jXKEJqycm@!VlA8Jk;_vSnOaLT+cjadrb8{Jfeanu+ zq2O6u=}-FLv4#y;jPt6Xy6iFHXIr4Chv#)0zhEEpmxO0}%I51_QbaKdy`!UbKg>{a zhuKrvG?|r@lnMd&_V)Kjk&==o1FTJjH>3hElEY$3NlEGL?hZw6$z(!eA{#82f~94y zn1sX&fFUWX>+8tIaT#ZqCkv_tN(m~^ql&gRA(do+5WleSt#HEk)_vI4_Vy|}J39k# zLHfLJM##Ol>cOzKvs1>!#f^q2M?CmK3>NI{3B&<=ypk_hJqta_W4o9NBZGX>dSP2o z5Xi9c196|2_ZI1EA%{@pJ9FcrqdQ~C?(Cl)*hEZpFS!xY)AL;6bDY5$RC9#>DDV1k zlp%&-HvbnevgiUH?w@kZ}VN*0;B}Yh);W zCc?u}a|HZ_#8L*8MqS|BZ;V)B{lB2Yf4%yBx50tzyS^Lk!D>YicA|*P^0MA4V!~Q_ z>!91Nw|z6hjFo-6XIg^b^=mnCeZxRlC%KaQ*_k{A7H^f^CQua>i#C3`ix+EbCQjA; zQ)zqm@gKl`tH@-+fbaT2O6y!(&ueM|Ie5q+_H)sxuBfVt@!nQi{!v6B7I2h8TVC)p zG%_NV1Y7ZE+dm1VL@)UQrIrTAm5S;ee)r``qZ-B=o0~`RBj>Tu>aHgnhU@&(-jjt8 z-4Y*iZt7^I1h0cX!%?<+RDB{sTza$LvLEapI>tTzsV+xtfB&McJ}q>N=*scvJQKr($XY`KkmD;g7FO34H`2=Jt^mL@KOo4 zMV|V4AwIW<|9E-1Zb92zXv-*v)!n^oHCB56`@}?=I)j&(&h_^iZCS(WPt3PBQQQB$ zi<>=v3tdD-Mqrn3-7^y1rIXy%ur)VowJhwm^r^^7D1fKJ3%VN3{r;VLy|G%D+lVF8M$Hqov zWRQ#&Jtc=uF`!eQ_4_wYFPQxT8m(H=c=LOR{uWquS;PA0+p2p4zKGt`X;(2dCCL&A ziW&yB;B@^K##cO)oS9`RsF5iX#qvb4C$vaFz~f+8dh_&G)=P~HW-3#z^%QKn#2N}1WJ~ZRgV)xWnM=lb20OH5hnC*|{@ww+6}lm0DFz4MJUXK0GiN)# z-gt?QGuQSHn@-|qzAWlryUU9+)bBNU`a7M@UN5EZf?krlvLf) z&cV{*JgY7Ne*W7v0Bg$}CW%kG+SHa3yu%Wv!M+MwE1(gP-Z{#vQ0iYw*7pN-mv(S8e&3tK$iKJmMjN~%3C z1-9*BN_e;iq1^ZU2r3AX(q2TJSaK4ZhZixIox{YPI;LKPUzUe_J=s3m^ z9udL+-*24oU>X=G=~U?&7)0*xyZHqM4wZ4L&4XiNBAs|zSdm}4yJ*-)N|w&dUP1^Y znns4)xGqeDnY-%Z(36}T5cy*`!ZE&k9tZ?EIR>tw+_)j~bHP*sJUn3`$HF16+j^34 zhi-Xz;#fU=i-%vbB~JRjcgYPnQW=#sCk<9s)`3FT{{ZxIOylvRr_KZA2FA&2|E#Iu zHVu5`mg|X}#@^fp1`vyYz);1KG!Xg5)>dmuN)9%zr$IqW>+Ai4Va?zkt-6Sx2J=&k zjOnOYUR_j?T!)XmQdq1bu&xaOH4q$bP#1Hh|d32B%4g=TPuyM0(-V zgus(s6hw>9?^t+%K)iqdzH`lk-|ibN;+Zx_cuES<{ah(-{SZ;t`O1T~$<^)%oSLSl zD0psAZNWXh{#FmG54*jc>Cxe;q)s*Fv+$@W^@gWF55&a9u}n`-vxr*6@A5d)+Gsg(k}MU}<~D%DQ?dMHRM=9cjn`NjZ$NAv=Y@L-!UJ#7(LuCa+Hq z`r;^J>gog`{@B@hV(sj#35HJ@K%hy{`b}>0Q^tZXWZvn5*hC|N9NKH-6diQQtrTNE~N86KH zTUYHz^A-Q@73Al`a$-evtL^FP3=)$cxw)1r2|oVPIZ~j^@4cn>Wa@p<52ycP|I(v3 z&t=c}86zVj_YV$`DA(;^xsUVrr~dw)`T6!Ao@6H$_KuFsJUsXdA=i>H(52;NogzGC zWo3knni}?-?Cd*j6YtFLBA&&?;dps_A1rpEnso%znKnM@f|P*U<+-<6TL2j>eMUpPI({0kJsi_ZvCp^y%r5Ay@>+I=4 zML|K)IWg7KLjyt{4FdzoAc5029f1H-vb;H3l5P=rbGWVFIxa2@ zLcxHO-Gn#_-sSV-?d6)};{ObXW5{K;CEu!xS>xgxq#kg$C#rhj^E;B#Pk!=2CV}De z=g-kGG0y=C1I3P=q7wc&mEGpomseOgI6cS-9=fu3GC5Nrs< z;bFOjg)1<3Sh%>o0IpMVauOl%v4Z7Yp8R*b9R+-!*X}G8Y$B4Tn{NxWvavy>p`j`J z_ir{3^BJ687EwdRJ>209#^@J6({6{na2O@MYj+T%!pfYJlav073xds8LJq|I0s_oH zPq0ZzNfo|*`|Qbl>#KU#g&go@#Bx|M@$szW8#*peL*D9oC#g_vO3 z9vy9r^p1_y56-F@8&es7^x=kpmc6B=r4aHns}LnG+j@9-M7Oj^7z5aba}4(c86HDi zV_FuXiX3Y7ZqU=sTGlk%Z=v#7s54DzV;2`!z}nsp4J%P;ppWXwD=Dp;E!o?JU@?9I z$UZKxq6uLAfXvw92Y)wGlPBWg8JEcuR^AUcE4;m({PZcHchCR+Mdb9U1a4lYJXqlP z1R7@EYOGtgcG^yP`dq+F=R1rl5yoKY=)BM5i6}2Yej_1)AHgVohT4;^eM|-h_&cyX zNF4p^t1=|Jwr&S7Q^oz9re+a0ZmH2WH0(zvW;|90Bu<9cM4mPJ(AYZ&_w*+zKL~zb z`qW*_kx`)~@UffNTE|3q>9>n-r4I@+d7ek2X9+ny4mGS6C^A_eOuysZzO3))h~hG< zqU?2q>DK%#E9)lE0Vv$u4ZPK6%F2nX`K2n+?kgrL^{v_}HGT*3xb#or?q_SPnq@D4 zXl~{=zk!D%;xIQ&eAib=wc-BB?wr$jh74nGvu6kkAZC}@X!$?C*sySS;%aR^c6Z8@ z7&xoJQAL|=^~W@AjPLuN_l~&Qch`*m$B%GG^m$aiy8>Ur>^x(_#1fYD<;%Uy*CGJp zT^AnPEVR#H;e3pnon=1STnT4UzSti({A+1p9ElBlASER}LDGZ{IywTEekU|HSmN2v z&J9Yc5mWX7Y;e#Hqo1%5`#Z+vW1=coFMj?MLPIz2f~<+vqr$Khmb*5~z12nSP34u9 zM(#J7n-z^d8k{%31d8o#US6c2oi*QM4MTA~Luo)HL@X@kM#fZ2Q*})OIB@_AYrVH^ z&Dt-BxlLc&T%JFmy!R8Gn))y|sq}M|=}oMg%?aG5pC%k})RdJ;+5#H74_377jRpu| zf8E_3VwIC#Y>i7n!qKXZ+$mz`xos76Fx)mGmEz1p5BFL+|`}PSW?DWV5v(>Y@R06O$U0)jt%n$uNzstTF zLTtt8Xut5|?O`Ut)Fk(n_U@z2wue?$rEeW?u~$GJVVEC*#Ccd)vfe%WW9ng%n zLPBGUThpW`ySIXUnrTFrzn2ULe9581uv;&Vj(r`qHWbBatBrUMvly!|ytA<-(g{IR zM=Rg4B3z|XQ&CK_kL0GmTl*4d+&5-UeB-Gb=zM&NKLiI!`RrsOXtF-x>T$l(>PaHI z6Z!e*Gz9~1?BI9PePB+3xW_r(T8oB**88bACO7bil4iak6{IFW_BYzM?X}wSuyn*t4)O@v*U= zC&Gh)rw>v}?40Z!%U8P5#hnvT|3?cTL0X3M_wwbqysP6K zxLdu8b4+QeQSngfYvxD>G6yH8RLdM?!>ui|r~j%*?sSKi!FMkIH7Ua^+Pb{BA)vSsPWWVjJ|ahQ@@=8Qvp?&o zHEv6Y7#o2k%gugp!1*E9 zJ|8@6c_e(E7;OJNKX!`R*m%?$RPj`v$d)o#?+ES!2Nzf0@0pt#8Ql^>T%=sE2^hFP zqrvp;uji&7%(%`230|q2B^f9oXK87=DN>ydhAAaIod|A!@7bRaL38YF;2GZHP~_yf zF5qeFt}O3NO#$a~C)Gz7ZujPtNm(TGpvXmOsa9^ISjd%s)jJ!LTv*I!?*)in@=7PF zre5_fc6}4`KU98Y8UMKR*inArD4(0$^x#YCWB(|R!y2akjkN?;Q3x4UIcl# z#1}859xirjs;CTf*4ha2LuRP?xCqRBSD3lm{-R{_G1E<3`u~{C*WXN4Vj?5nq*>y4 zqT=G#yYHGI01q>tNcrCrWo2vcU+H&Uoj24>^Z)N4E!s8Y;Zzl?Tj5cYdk_+P;MjcH zk=dJ16!Ul#*)7tSot@P^GIAq|V8Ku&H3gitd!}I!vO0K z_@}!o?4;It#xI_3Xg2%f*Dtu=+diU#Z$Tg+DksPiF%Pf%LyU$-Td6z4Ow`pKpqt!5x&yT01#9gxS_5H zoZ+q|H*Etp1z=yq0=$%}W`h3iaJOIj(23DL{86}T^uY~*g>vuSM7|=9AkYBmOCPo4 z`E7h;luJ;2e!m{@x~-Npzg>?nh2A%m;Se4F=D9%?7gbeBVIeO2{d=D#stlp??jm(w zCeqm6>dE659$;wXVa;wlCuCx3a=*F|taq~OYk}JxbY9`<%ub+*y51AHiY8Vn?G#aJWS9+uK9pOr-G9eZcEV8|u{0pE=WTb@G z_A<`T<0=9By?N80wJX#URWvcK?GB&4#D&k#)`Ka<-|HrX)HJ+WB?aO!@qYQ=a{@<4 zv(kzRtEu-)ST|o`2L(Bo&DgyLo=7r4Z1K=m!u3F0h>I0D9xfBo=Y4UQ`pqLr@0Z-f zj6P1#v;{VWwgik@$-BHeG9^bsslWT~!otGf&Y1)}*oyD}eozsRt_a4&?VryLY-~sA z>VhqMqo-X%8GDO+43Vm-Ej^P>?4xTc3YrOVba&Z0KYzyF+Dh+OZoRkJv;6lrn!Td| zK0QxHSdOGAGv}5aICb5Ufb{1d1D(>+Z*De-ONT}F*{%K}w;oJ;SnpsH0R!YWPt*fi zyC$TApt35Vmn4-IzjIw(8n@Ypn;cHAj6Y#nnLA%daLCS#C>aKZgg{l+?N6Tq>}Muk z@5)``Qj-fqSaES7_rSy?QZkTD-K&Se*5*-R-2Ohp+v;jOZ*Lwk+IM57`nFse!pRVM*IdK}dx!HZ6QxoT&2KnU}l?uh7WQb%N-td#OkI ztt_f$v;uQk6W8v77U>@L?~xu9!|E$sij3kzj&yfe*zS+M;-~AmUd8GU)Q%M1J1Qvl zf#xIIsOcL`fwFIkefCtH9gDEA{|{O@4b z96yovAk{dlJT&LAAqo>(ogG6soTZLSw##b+V72!D{(UKLtLMFXU<`o{cHQIOn7Nj{ zgEmU5G2e{!YJB%J&Dze1XBra>Ul|9hNwfus-$1;xOtSevye8kXe0}Ry5HPVNd`>Uf zXJ;Kl79PaT;o^ENE?dj{<{5-Vq7OzfNMAptY-~(`$RtN2L!N&JiKwOJuDla{vH;7lB%u3Qr_v zahWeneM2_BUGu?TkRD8N*WsExB51V7^xo+nTOeD2E%lr%Iw)6+-=pRBvP zd%Bf&U%#!bto7>Wjo!`H$9z6;luP_X0#Bg}2U%xv? z*SSuyv^h!&r<=YoXS(q>r^5tSGGMc0)j)&_2psf=`uqD+KYS3&ud31v4GROp4sxNX zv6e%xg`EcWmwG;DiMoQ~4A^(@}xzp--Atl1Th(zA{LVZ2dP0o(s)~l zYDQH|YtM2&!%6B=Pt!nEP-9s}PjUhcubi$f-e~bLcuqto=sJNK4h4qTfGUyo)~zm( zgtoHxjE<62TXtX|Ac@`G-;X(*E8P#&>8)K}78X>{q51guEU&``R!9=Pvz7!(4CJ;E zr|uO7ReYd9RU0xjdAT4RF?4xY{ZeR1AP*wRdw%=W5fS5-PwEy_i6N%Sz zarP(W&6{{2V*UL6t$=7Dj8VwE=P&U1+nbo08a}fYubb>zIccT5czAg6wBp3jK{tqG z4|b*mxlHP@Y(B+5&&y*%JX~lG0!`~F$Vz*+fuh3)DL^l_T0eTEKrQN`0oPbXRu*Nd)nCwIpF%M%P$<-t4(mSb!jIOq_cE=BO6GU1G+UuuvUy z^N-W==Gk!|qe19e_ypohbkMRLZ7Vl%a%>)NEIn&-tvfjPzLc^xU+Y=!iF&G_ za4)>tRjWl`c09JuQ`a8i@7*~=2;ex<3E~zPX}*s;zdbtPC`!wSjHH(Eswq3cv@7#6 zBBj7Vo@WwvADdNDFEwv48LjhC5o!zAi>C+u1H-&s;WsVs6n22Rf%B5-OF3LMMXM8s z&Dm!0iE8Pj`g&S0sGNmbwgo?|YQf{-(r#2H&k&fvVBr9QWHxN}U%85=CPPch@2>R) zG{(yVZ`wqR4`y^&5e;`qO*N~Syu7pFlN)bOar(S|PwO*X0xrUVPs`12^^NO{LqO#bx%Y-c-%ck0)#GWJrm(W| z1r}B0L(BBy#t0Rk(4$|)DswI3i@h-nDX(8A1Ye4j9%)8=^s23x{6o%3MgBCH=zexU zYz)aqNTh$c8Npm>=8x_9i#9Y#OKWHDE*Tz;Bfp7mg#kH|JmTWU<9AzBf-HUfNWf|l z1VPaWn#w+nk1}}lgrT$kL`e(;F7@gcw_ESiGYsPoR(!37bGCoBcyp2S(7qMwPo$*U zWafH8eSYGabXzyH)^lCBSp7xw{p{CaJt*{28ekfgN>|a=mwHY{Izj@|TWXyH0(d^f zPsLPL!U_2T$&KY*cjnugn%lvRK(PN)zX(i@%VX`=n7O2Fo6B(9Vrle=@VBQYN|ln|`i|7o0lOB~R~xfa`2753$A>L%I4Q{4wWPX|nck@hzO0S| zF6rTyOgeBQx9}ORPym_;n7`12bKUhhRhn6}2@4hDNpFSWD~$|2JM$KyC>cftulh$B zBzm_v$;d;lvtyBo^M%|?y9}3EKNRUpQVfRN8~}_rsD&P`AHArm;!mW@iujb^&F{C* z;CB=~7xIXlJktJ0;e)o>h;kh(_wyrNBNOWUpuj%b8(ak8gcpbEtjHUoUlD1u)QwUp z9X|Whh(I~<6r^RQ@w8OE=QQ|}lYbQSIJv<1b^(W5dAUN2t%!w%)!!b}RO7uZ7Lh%g zj|HSE1c09@g$B@9`uDnHNDiA*KQhC$q)no~CCf-CU>+-1reOrKNPJ*wVG7y(29P4L znywEL3%=n0yPI9^(I1U?20(RtGO2g<^W4(<3B}*Njvg=7h9Av!bg{8&2PX^qu7ibx zKg9{(eFA$0qA@H(!?pP;qwLU7VvSeC@$6dji;G*{hF|X`_AGUdk7Fb;)CImbFySO3udQ{6 zP8#l>aFGnM_EP)~mf`WfKSDY1%UlH~vey#MCJ@^bvNNvzRwD8Dz zATEgXU2v-^&CH$m|2m5Z2>kR`|J0%#Q}ZD}n0$A)%Gi@}0wQxtaRDs3JS-xjV8~xT zY++RbMLs@&n@`VCPxyRyt)dkM87RMf6It{ShhQpVQ-?J2*eV4sa%LteB&c3&>aZRH zY46v{h=nFcO-knHSN|zTGS%&LAN5Oipvoqyyrm@$$P&gX{Bb6t`l?J1fImknl8V*O z^0j0i7$}A1OYH8hJ$GLnkVnJd40#B4ic#VmZ`76pce@7?f+35mj}ks5tc7HMZFwup zLDpt2f*BTaCZew+tcw^P_#!+0t1WI90lNctG@~|p;Abv3d=hXf6D~MLg_070C zdt*MPK-6;iFUUb#rOb7q5xj;Flp7E?I)5Al$%VarX`cR_xB$TH4+`+|}DHt~y$Si4O^s2Ead75gy-dnC?)N7d#R?^J53hOhod_+ zaVao|f(1(Vz>>p~eYnVE)lLgE>UyD1S9SEF=ND9uCJ>H9Py;$0rCEeN@{6n5d7x$^fdmT`s8!l~W zz+}Ng>WrbTUtet&w;bcZf3QeqpZyVlgv$5#Ma@6LGw$6UwtStIUyz!2Y zC@HmIVN+KN_%7)9K$!SxcP`a!^9Rl+f@#N@32J};KBO-y@E)MK6H><@sV0}omOv@} z#DtYOlb?l@imLg)tj=RsZL7{l zhuGF9?(hHm*|04k@`UoMANTRx#o6T&B+S~|1Cg`i>K*YfZ(eS54(sSJw61g7cJs??-tJdyo5`3fx}%Z~7?RV8IoGsD!QjiQO2LB z5jnX-O`V|r&+AIU9v?% z8%z45gjv|JFwSMpL{CE92TEda4Opdfa-8`fOU9|&_mk=u)QuFPB z$~!w64n}<3AQ6Bp*AwT2wfV_NJc{IW{b#q-F^1ZB+5G(*$Xtz~h*7Obt5y_d(;a~d zsVq@KI_{1vs)|E;qKR-tNYWslRaHH0;#yw*0nkAIOV%X8uV3XsS+WqPZH$&&AO!X4 zLiL0^94>-qx-{l5gLvlBfdAKl)Ek5D&J@dAgJd%koxxexUUrZ8L3kLpu0{7S8 zYG&xj2P~a~@-7ImC7F5qv7$$Z8S$Bo?y_~*^eQHqm_|w4W+j;}< zOcZUtZn}T|%mAVqvlXks_aJNX1oCtlf)gEcdR}2+GV>O%E+~jxGswE|=Qo$B0_h+N zx8|XIrD>y3|Ib?U+JIw+qrC--U+kJtRs)2~A?apN zB@yu)H5(|q?6Gap{}ldc;io@%FXHPWO?&q*rL3$W6cSuMn*Litf~%`rH&UKnq%rfD zIxdolVO65}Y|^qRCG7|WhXOy@lp)Q7PiU+wNjkt9lCXtEpZ^Y;0I;u_ybqUZEgC!p-3Q{`*tGQH?d(R!xbO$*i# zISKkCcB#4iV<_&tnYTY=m^|I+OrxRU7{YVk+L}2YP+qUIIRxCe zG&D9(W_HqFp?93Lh6 zKUx4z;+Xw|0*~BxU)MaKG*OFI>HaKcBnWCMkgwp}l37KbhjA^$%J`s6y`?9K@cQTFd$f;fb4@ zn~bdN886%#4su=#T;Ya6l!}UqIH=%)V$;~%nT`-?sQ!3pZ5;}-IY_Y)%B(TTX?i0o z<)N?zsTbAI(BK13b#*muFLCEb5e}kr_ToZlDEw38y;6aKAYKJH?c+BOX2DoA9$s4V?4I=ZxDb{X*mWQasG z|MrT0U4d?Q&!EJQqY zAKC;n00@R3S!s@rL(cKkNkLbaE|tw&S!IBG|IAxD;&RmO>@sj18;6jbQrMB^mE^y- z8Z$eic9I7NQ+HAu|A!AoeFp3_i5%7xR2z>>PO`hsw=x|Z92723E^ln8{P^*sHwlVa zRbaG0WIwXABXM$a`T^p}_gBwJ{CdsgX-V(^j?|$RM#*~T-185`r;~_gXtE!XyKq%j?spt+C@o7|U0qe% zZgL#QmXA{NwdGeII_$}JYFYlkys_=H^l`7{;p96ffmfMAA``mJ+&Bi|ef>#id?FL6 z#(_wqc|7@7&7Ixn?L`tOh$)*~=DNRS-@ViJ_{o!as7E7|lfjbp@oDt?BX#Q*I>=3* zM@3=YxN(ECO7!s;N-oRx)9;1E+- z$a>%bQy?OcXT3F?iduxUcTlYLlveV*^qVsbt#?zfs2>Z3P2 zxb^k5a8HZ(Ho%c{wP6Ap5nM1j${rp9PIAq1X=;N;iFdeUT>>&PQ~7yaI6GAPUlVP-lhG?VC4m`t2{GkaHP5gA|NGS#_}l z@~0x;_Z^lY-v^0ms>fe4pRcYCQe=D{9;Ubk{r23z*RPkZf7F1_hpMR$)+f6yT3*yN zqPuEXW2OWdZ2^a*>T#*VfmwVqjn(wWvrvGof6x3?m~{?y&>}1PHhPx9Tjd?@b>&^g@gi zmpic1|JmDdy(AYuxz@&app~0nOpzF!9!18K5R*i)DVTGFtuhGAiP^>>NS=e8)BZ zJ;|AY3k0wJANW-jzkmR1D7A!8>E`Gf2W`?ihTOA(fen);kiZ65 zI@{7`+nv``urE#G8q{%cp00<&xA%8zW1RtW@Vh+>+?nykS?Lea-xl%kz_vA`s!IzV zLe?}uB<3x}%L*b=DLqQc@i3-qQk`OQISd>4pcor+_ak~V;V7sTVudu2bO6kS}1 zaB;U9^#KPW36XfZ8U1pc1D)dxC>eqPjZx_6e$~Xa7x|wOZX5l#M8XMLce)h-c% zlau&{R-#r_bserRkh}d*`KHpgTO!`5<>^u`v)PmX!3g2({8gfXh>9xVo%!$0Ubb85 zO!8)+i;e}E1QgKaSe$WVK>5leb8?%s;Ly5K6$E$H^j`ZAaOO}h1`#?opB^5;|!?7x7ZeCa;H8e;%lbcUPvz@0-5r_m=ASlalGe-t>d5e39D$~ zJqITzS;&3^)VeJID)DIBO zi$nfufiC+Q9&Z%BH)z*~i=@2Gl}nyF8KuMTYnYN3c~eKy-X%}Sk)*TraZ&XKqi-Wh zIXE!T2U<}^Vp}Ho#f%o8^eYV223agw?eAoj7D3eJAOH51>$AYGSsY!Ts8oeq|IL(^ zzOg=hjYmJMxqJ)?1t_%uYBTL>hMSXkEZ{#|D(cc}wV`cDWmrUOabX#_PDeftzZh|% zAuGegh^3=|riX?jqD{i0#F`n0-iN)_K&-B9gFEunLX+=+x*+AJ4HLhJ9vZrh;TR=K z0!J@#VN3)kBj;P)i4#nUWh`7f4ne#9i=6&-_isCO#-5MA2L83M+iP%=on&06^BZew%k1#IY@#5}o^nl7ZxjjEFs<}D8n!10j zHq9}Wv4Y~*jSwP^K1f#ExdEEK;nUP4KU;A>%$m7ld)oY^JS3-P&; zrKuUb+ic|i{=`uS~6 zP9T3w3F(4J?)u(edsNm3Ro;-?EIVCImBqrHjdN{}i8Qkan(%P$8LGgsw$ar$c~n%u z(p_PwS>l7W-Y3Vy9<5NmAgPtp8gX@bS5K<@|ElV|Q#jI7L1R%B!)j^Y>% z8QG3KG9!*;Z^umDNTTdbM$!9}%`xLGqjac{Q$idvvcK2)+-|==e*faUobw#l>-oAK zkH`Itxys9L$YI=Q$HxD#vaZvWJIOM3+s|prgdQJqLo0yMb(mmU&hZ%SG~038o}2pT z$d}sI^<$RAlQl_~-5K(@7%EMuqpmjbrMkGV!5A|d7_1&uO!@sXmTzhK*wwGcEOt9I zY2{~pnWz7~VBa!8))7T2($?H6qicxCKv%+3{lacl_mkvcexh<+EM%crKIyG*bA?kzz`H5i$cd~=T2L}m-= zjf+k)7#Q5m(}=(ZZ2J@%B63o=7@CAK223AW=BWlST)e2nQ>|cT=PZA@ZC8{hnUlW* zdWusmLB_35T0GgTt?%%ut1@qI*Uo-_Wm|gX(kIf!QuO@1Jan%bJ!II{MHrfd;bK){ zLfNNB@^JWHL9Ozjl_$E7YeI*Hs>W^&E7QLD<5tzdTSw=Tw6J~G&QEW+%JdoVy{UH< zy^Wtk2S%s-HYY@xIjgr1`Zb63N~=<(*x2OLbN3kq!>4epwH|zpuksxi`kA0Z#!qwV zeOG_Fx~InVn=s}UxG}DwCro{VS$(9>cO9%OU1r8#UAq0^mg8izTE{?g9O3Lg)$FfS z0#}tF7ec42o2>J?Y7Q5Eh=j?wDw#FclNje4&@}$~dMenx*PK4RJd=?0mLlRf|Mf+K zQY`k808$F&*SN7)do@VfI-I9ShdbWrm*pWoIl}V`A*rH*7v_!j?%fM09qKLu!D3ug zQBp8;lrB9z|E#n$v#qTsNO9Hf85ZB?$EbC5_Ws34;664JHFsg z<>p!)e~?llEwAzme2wM1*`J@d-aQzOjEZ_$Hf+rBT-8z-rZpvHle{ni?4&&|+5qj5 z0y_;FbW8tjslVYYf;z-L<6Dfw`k?4`tXuG$WDHm;OJ~WoP zo^G7bxz@>$!vF5f-I1BzudNhM<%#P0xg~P2?;*Y(agsWCcHCeGI*7C*GOU8K1tKpr zA`)X`_is$E8)!|WThx2MOGeZ`oZfHe9%nqGWpZAgBcD1?!p_(4&8l+^U_xLCd%-P1FJPhiz33Rn(= z^2z*rI@gnM?zUX$!$3Y&1se0ZGN-9}7PVlL3ik|;h1MMcIK+vLLTq%F-xgm}j3mch z?YP(xG}rab?c=Rj+g3tlr{v^k$i0f{6XMg5OYvIRA00gW%5oo>3{ex7nS4dQ_gyi(hRVncI^5TY&o<|}mD5OBSeUKgVX*d9u}>Q6_Ib{k1a^tSW_L(pswND!E9e^~kROJJ1umHDm|sbH3?FZ!m;CWI zH+ycB3qb=D``qRNH*a->22d7~h?GHvhJt8`{Hf|}=@;r3s+Hn}v#OpDQ-wE%c_+uq4O%KDc+# zbwykIJVa2Z|Mvn@KFHL2(HQ2CvH`r>6C^?=jxIDH6Jl7jkw*UeoK3)%jw-IPXZA zh>EYZb^_UvuE8R;2R9OPX5cMR&w*nuUFB z&5hGe?t-`Sp!8}2UeheV5d56!Pr2Xc4Et7f;OHh72G&m4pG_C%qAyUJ{Tr+~0lRPJ z?G~*U!$TKWWM`FWyAZgJ;Pzrzn5$nIIy*g*OFV6me^ma=;=%Tvzq{V}7#b>CdR1D} z)m#w&=|$+2G@<&+-OI~0qo+d9X3N;Mp~rPv9zmFAdj)6wlP`r=d9T>!$^%b<6O=o` z>gs}iI6esp+}RUv13Y6QBW(aZW&kBgfP!Mx$`00{uDN+ix=4tS*iVQ(7LV5C(AvCf z?tChjORjJWen2Z@UHLt1!BH-+D4nJ?)0$grj4-_@7P|9=yY~5@-#wlanFdT|FV)J7 zU7geQBHP0FSvZxFP4{nR|0DNc#Wl`}vAbhzjFv5t9gdb-X#(D+jk(x;F9PP&w{Tu2 z8XA9ateUzyIB`?=_U-{`=GX$?wz2V|&>-KwbpMGh)`1)I+avXRpGIx=;j>tOSjJCP z8U!&I6W*!;Vk~h;x8CDIdOr(0rhqURU}>oh_virz?b9yXE6lURNh%46%k;l^5^3>x z7mM~I#_DjZCi#xM%P|&pqs~v0B$~Iot~bcaj^bnK!YpJSvL(iHYqT+|1~{63!|ZP- z_rI5_k@u_Qc9yonK(}+Z>dbI42cL>BNBiLui{G2qB(og;{Phkm8oUbv=FA z@?ru!{S`H~qN6h$DG--jTmB2?5oV(Uj3|ql_n(ay4#Uq*D{@}^XNaz}v~Kq28`I^a z?G14;B$6pVjI&IE8ZX;1kH=bUl~-TroyUJ|qMpY)3WbJ+6ly2CRy`fMta5=YWxdbOc70gnNs`Q$&Q3%!@s1S`36 zVxvp9rF3D|5Z%ouvF7g@%F(ghQ19$#RFqLV;nB%l?H%Aqfd? zjbk+?IO0-i78Vc?=UIiW>`OFzUH-3Xtu5>~G}=ur({s{OWfgNpT^)7y`0Tgw;ny-s z$F?u;^1Ev&^4xbsJtsf@-Bxxp=p^}%F<6ysNU4p_Vy_*F5VQuwRofA zV2>?An7|~tlA25~tq=mvz}_-7b68qTAnmW+1Zxx8)2^}-=No88m2>Mv#5pq?ycxLU{bIoQbk1JbLm($D+RD zG&t&Mz`KHNkFc{9|0@4}m`N^dZ~xzi_vIe((e?DFw-%I(#lw;CEDPKa=9lZz>X(M# zsWn5il_8!YVepb01&r30+*m`zl^69 z91@}hxPr;xBSO>N^%YAA;5U#qF<@#_2Egu*2&4OS)yOI6wvUx;aJl`{*eHLnJ?-OB z%R#8iXK4-ILTPFuU!n)D1@HNzbieg1O%~QS)wU{m?{6DJVbm-2d+p88gQqYvb5VI{ zxPO8O=H__dymmE6jz0zj)y!M`MYfuYH*SQ1&T zX*oD3Y;LL+mBd=NpKpfZcnUDOcT~)X*>?*0fji|Pmn1D1wqUe-Y*ai|TUl|HU+}!B zs7`6Bp4wpgjiG!L>66JJSdYsHto$0TKj!8fsAM?R)YNKb@zGc;mZQajL?YD}UBe4Q zrz@GMV@oxoO?ETc}EfX#Vv!sGBifR_Sf1O>Df z$^2h(z90Jh!8xtz8f@gpttP z2C4+dM607-!1jve)YQ~0a5$i8p{R;kL{L&vw(PII1J1!6xBVZu$<{tuMzWd#K)ph6 zjsIPJwo1Q>cQ;bD~7<;Nd!o=%>1gD4v=dQ2&ff+ zFSgA(dLnI2W)_>Ynf(Y+-1P!5C!)Z3)^;aAxC?$YyRdK)Vq~GDP8uK@o2lx%vqzLE z_YVvdLL|nTmkad*jxv z63`UJfs9h!B!~zK3AqC;={PL*G-B|-|IB~!K&RpbgdI#&vE{DN!>{1kF}V?U4D*}; zD2}-Jcs3)`c1s{215qIfAb}Eca_PaFi`VQz*Qr=pA>@-t#t4G0<9zSlZHP#qP$m`@ zdWedGf&#NEnY*_7$m;iNZ{V%LKw<#qGB`9;JYH^)5fh`8`l-C_2((N$9`#_%WcW8V zL#_s3)}Bw-GjSiyk2t!H082_@!qM(5Aaqfv32;k7wkw}wkBr(~I>*V;+!nl5wQ&G? zSGu8iN&C@Wb>r{3ZtOs3XQ9Xa-Hc4)5Fch^bKaiVZ5xeGS*NWWo2bWY=CQ8SWcpgGwYbfUIW*gmWc@u%*OR` z0}Y9myMWIGxh85*_akf_l$V!Oe0K4U6u9k}D#fI&3y=~FgPl^5YhkYLaO zyvg~TTRH*)0_*_gq@tplfYY)ntYKmh4u^AgbkqdSJG6yd-Uj^nMDd7LVENf)UGbQpFVgEowM&uF+(I>19U%P;~u6-NzQqw;A{{W3T2+IHf literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp_source.html new file mode 100644 index 0000000..724ddea --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8cpp_source.html @@ -0,0 +1,243 @@ + + + + + + +Documentation: NexGauge.cpp Source File + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+
NexGauge.cpp
+
+
+Go to the documentation of this file.
1 
+
16 #include "NexGauge.h"
+
17 
+
18 NexGauge::NexGauge(uint8_t pid, uint8_t cid, const char *name)
+
19  :NexObject(pid, cid, name)
+
20 {
+
21 }
+
22 
+
23 bool NexGauge::getValue(uint32_t *number)
+
24 {
+
25  String cmd = String("get ");
+
26  cmd += getObjName();
+
27  cmd += ".val";
+
28  sendCommand(cmd.c_str());
+
29  return recvRetNumber(number);
+
30 }
+
31 
+
32 bool NexGauge::setValue(uint32_t number)
+
33 {
+
34  char buf[10] = {0};
+
35  String cmd;
+
36 
+
37  utoa(number, buf, 10);
+
38  cmd += getObjName();
+
39  cmd += ".val=";
+
40  cmd += buf;
+
41 
+
42  sendCommand(cmd.c_str());
+
43  return recvRetCommandFinished();
+
44 }
+
45 
+
46 uint32_t NexGauge::Get_background_color_bco(uint32_t *number)
+
47 {
+
48  String cmd;
+
49  cmd += "get ";
+
50  cmd += getObjName();
+
51  cmd += ".bco";
+
52  sendCommand(cmd.c_str());
+
53  return recvRetNumber(number);
+
54 }
+
55 
+ +
57 {
+
58  char buf[10] = {0};
+
59  String cmd;
+
60 
+
61  utoa(number, buf, 10);
+
62  cmd += getObjName();
+
63  cmd += ".bco=";
+
64  cmd += buf;
+
65  sendCommand(cmd.c_str());
+
66 
+
67  cmd="";
+
68  cmd += "ref ";
+
69  cmd += getObjName();
+
70  sendCommand(cmd.c_str());
+
71  return recvRetCommandFinished();
+
72 }
+
73 
+
74 uint32_t NexGauge::Get_font_color_pco(uint32_t *number)
+
75 {
+
76  String cmd;
+
77  cmd += "get ";
+
78  cmd += getObjName();
+
79  cmd += ".pco";
+
80  sendCommand(cmd.c_str());
+
81  return recvRetNumber(number);
+
82 }
+
83 
+
84 bool NexGauge::Set_font_color_pco(uint32_t number)
+
85 {
+
86  char buf[10] = {0};
+
87  String cmd;
+
88 
+
89  utoa(number, buf, 10);
+
90  cmd += getObjName();
+
91  cmd += ".pco=";
+
92  cmd += buf;
+
93  sendCommand(cmd.c_str());
+
94 
+
95  cmd = "";
+
96  cmd += "ref ";
+
97  cmd += getObjName();
+
98  sendCommand(cmd.c_str());
+
99  return recvRetCommandFinished();
+
100 }
+
101 
+
102 uint32_t NexGauge::Get_pointer_thickness_wid(uint32_t *number)
+
103 {
+
104  String cmd;
+
105  cmd += "get ";
+
106  cmd += getObjName();
+
107  cmd += ".wid";
+
108  sendCommand(cmd.c_str());
+
109  return recvRetNumber(number);
+
110 }
+
111 
+ +
113 {
+
114  char buf[10] = {0};
+
115  String cmd;
+
116 
+
117  utoa(number, buf, 10);
+
118  cmd += getObjName();
+
119  cmd += ".wid=";
+
120  cmd += buf;
+
121  sendCommand(cmd.c_str());
+
122 
+
123  cmd = "";
+
124  cmd += "ref ";
+
125  cmd += getObjName();
+
126  sendCommand(cmd.c_str());
+
127  return recvRetCommandFinished();
+
128 }
+
129 
+
130 uint32_t NexGauge::Get_background_cropi_picc(uint32_t *number)
+
131 {
+
132  String cmd;
+
133  cmd += "get ";
+
134  cmd += getObjName();
+
135  cmd += ".picc";
+
136  sendCommand(cmd.c_str());
+
137  return recvRetNumber(number);
+
138 }
+
139 
+ +
141 {
+
142  char buf[10] = {0};
+
143  String cmd;
+
144 
+
145  utoa(number, buf, 10);
+
146  cmd += getObjName();
+
147  cmd += ".picc=";
+
148  cmd += buf;
+
149  sendCommand(cmd.c_str());
+
150 
+
151  cmd = "";
+
152  cmd += "ref ";
+
153  cmd += getObjName();
+
154  sendCommand(cmd.c_str());
+
155  return recvRetCommandFinished();
+
156 }
+
157 
+
158 
+
bool setValue(uint32_t number)
Set the value of gauge.
Definition: NexGauge.cpp:32
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexGauge.cpp:74
+
NexGauge(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexGauge.cpp:18
+
uint32_t Get_background_cropi_picc(uint32_t *number)
Get picc attribute of component.
Definition: NexGauge.cpp:130
+
bool Set_pointer_thickness_wid(uint32_t number)
Set wid attribute of component.
Definition: NexGauge.cpp:112
+
The definition of class NexGauge.
+
bool Set_background_crop_picc(uint32_t number)
Set picc attribute of component.
Definition: NexGauge.cpp:140
+
uint32_t Get_pointer_thickness_wid(uint32_t *number)
Get wid attribute of component.
Definition: NexGauge.cpp:102
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexGauge.cpp:84
+
bool getValue(uint32_t *number)
Get the value of gauge.
Definition: NexGauge.cpp:23
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexGauge.cpp:46
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexGauge.cpp:56
+
Root class of all Nextion components.
Definition: NexObject.h:32
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h.html new file mode 100644 index 0000000..0541782 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h.html @@ -0,0 +1,110 @@ + + + + + + +Documentation: NexGauge.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexGauge.h File Reference
+
+
+ +

The definition of class NexGauge. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexGauge
 NexGauge component. More...
 
+

Detailed Description

+

The definition of class NexGauge.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexGauge.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.map new file mode 100644 index 0000000..6c53c02 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.md5 new file mode 100644 index 0000000..70a0e28 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.md5 @@ -0,0 +1 @@ +6c30d86ca638f92b052cdf1dfb9c4799 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..c05d1dfa1697fadfbd7e86603bcc9317c963f1b8 GIT binary patch literal 5225 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 literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.map new file mode 100644 index 0000000..00a6a3b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.md5 new file mode 100644 index 0000000..c9550aa --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.md5 @@ -0,0 +1 @@ +6906a078275f266f4e7afd51b40ae120 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bff0210b4c9108bb093191311262db91d5b330 GIT binary patch literal 20617 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 aN0460)G}N59tN-lkwbPzY-!fs@&5)cIfuyr literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h_source.html new file mode 100644 index 0000000..d218167 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gauge_8h_source.html @@ -0,0 +1,134 @@ + + + + + + +Documentation: NexGauge.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexGauge.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef __NEXGAUGE_H__
+
18 #define __NEXGAUGE_H__
+
19 
+
20 #include "NexTouch.h"
+
21 #include "NexHardware.h"
+
30 class NexGauge: public NexObject
+
31 {
+
32 public: /* methods */
+
36  NexGauge(uint8_t pid, uint8_t cid, const char *name);
+
37 
+
46  bool getValue(uint32_t *number);
+
47 
+
56  bool setValue(uint32_t number);
+
57 
+
64  uint32_t Get_background_color_bco(uint32_t *number);
+
65 
+
72  bool Set_background_color_bco(uint32_t number);
+
73 
+
80  uint32_t Get_font_color_pco(uint32_t *number);
+
81 
+
88  bool Set_font_color_pco(uint32_t number);
+
89 
+
96  uint32_t Get_pointer_thickness_wid(uint32_t *number);
+
97 
+
104  bool Set_pointer_thickness_wid(uint32_t number);
+
105 
+
112  uint32_t Get_background_cropi_picc(uint32_t *number);
+
113 
+
120  bool Set_background_crop_picc(uint32_t number);
+
121 };
+
122 
+
127 #endif /* #ifndef __NEXGAUGE_H__ */
+
NexGauge component.
Definition: NexGauge.h:30
+
bool setValue(uint32_t number)
Set the value of gauge.
Definition: NexGauge.cpp:32
+
uint32_t Get_font_color_pco(uint32_t *number)
Get pco attribute of component.
Definition: NexGauge.cpp:74
+
NexGauge(uint8_t pid, uint8_t cid, const char *name)
Constructor.
Definition: NexGauge.cpp:18
+
uint32_t Get_background_cropi_picc(uint32_t *number)
Get picc attribute of component.
Definition: NexGauge.cpp:130
+
bool Set_pointer_thickness_wid(uint32_t number)
Set wid attribute of component.
Definition: NexGauge.cpp:112
+
bool Set_background_crop_picc(uint32_t number)
Set picc attribute of component.
Definition: NexGauge.cpp:140
+
uint32_t Get_pointer_thickness_wid(uint32_t *number)
Get wid attribute of component.
Definition: NexGauge.cpp:102
+
bool Set_font_color_pco(uint32_t number)
Set pco attribute of component.
Definition: NexGauge.cpp:84
+
The definition of class NexTouch.
+
bool getValue(uint32_t *number)
Get the value of gauge.
Definition: NexGauge.cpp:23
+
uint32_t Get_background_color_bco(uint32_t *number)
Get bco attribute of component.
Definition: NexGauge.cpp:46
+
The definition of base API for using Nextion.
+
bool Set_background_color_bco(uint32_t number)
Set bco attribute of component.
Definition: NexGauge.cpp:56
+
Root class of all Nextion components.
Definition: NexObject.h:32
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp.html new file mode 100644 index 0000000..df89af8 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp.html @@ -0,0 +1,100 @@ + + + + + + +Documentation: NexGpio.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexGpio.cpp File Reference
+
+
+ +

The implementation of class NexGpio. +More...

+
#include "NexGpio.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

The implementation of class NexGpio.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexGpio.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp_source.html new file mode 100644 index 0000000..a4e3aff --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8cpp_source.html @@ -0,0 +1,185 @@ + + + + + + +Documentation: NexGpio.cpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexGpio.cpp
+
+
+Go to the documentation of this file.
1 
+
15 #include "NexGpio.h"
+
16 
+
17 bool NexGpio::pin_mode(uint32_t port,uint32_t mode,uint32_t control_id)
+
18 {
+
19  char buf;
+
20  String cmd;
+
21 
+
22  cmd += "cfgpio ";
+
23  buf = port + '0';
+
24  cmd += buf;
+
25  cmd += ',';
+
26  buf = mode + '0';
+
27  cmd += buf;
+
28  cmd += ',';
+
29  buf = control_id = '0';
+
30  cmd += buf;
+
31 
+
32  sendCommand(cmd.c_str());
+
33  return recvRetCommandFinished();
+
34 
+
35 }
+
36 
+
37 bool NexGpio::digital_write(uint32_t port,uint32_t value)
+
38 {
+
39  String cmd;
+
40  char buf;
+
41 
+
42  cmd += "pio";
+
43  buf = port + '0';
+
44  cmd += buf;
+
45  cmd += '=';
+
46  buf = value + '0';
+
47  cmd += buf;
+
48 
+
49  sendCommand(cmd.c_str());
+
50  return recvRetCommandFinished();
+
51 }
+
52 
+
53 uint32_t NexGpio::digital_read(uint32_t port)
+
54 {
+
55  uint32_t number;
+
56  char buf;
+
57 
+
58  String cmd = String("get ");
+
59  cmd += "pio";
+
60  buf = port + '0';
+
61  cmd += buf;
+
62 
+
63  sendCommand(cmd.c_str());
+
64  recvRetNumber(&number);
+
65  return number;
+
66 }
+
67 
+
68 bool NexGpio::analog_write(uint32_t port,uint32_t value)
+
69 {
+
70  char buf[10] = {0};
+
71  char c;
+
72  String cmd;
+
73 
+
74  utoa(value, buf, 10);
+
75  cmd += "pwm";
+
76  c = port + '0';
+
77  cmd += c;
+
78  cmd += '=';
+
79  cmd += buf;
+
80 
+
81  Serial.print(cmd);
+
82  sendCommand(cmd.c_str());
+
83  return recvRetCommandFinished();
+
84 }
+
85 
+
86 bool NexGpio::set_pwmfreq(uint32_t value)
+
87 {
+
88  char buf[10] = {0};
+
89  String cmd;
+
90 
+
91  utoa(value, buf, 10);
+
92  cmd += "pwmf";
+
93  cmd += '=';
+
94  cmd += buf;
+
95 
+
96  sendCommand(cmd.c_str());
+
97  return recvRetCommandFinished();
+
98 }
+
99 
+
100 uint32_t NexGpio::get_pwmfreq(uint32_t *number)
+
101 {
+
102  String cmd = String("get pwmf");
+
103  sendCommand(cmd.c_str());
+
104  return recvRetNumber(number);
+
105 }
+
bool digital_write(uint32_t port, uint32_t value)
write a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:37
+
bool set_pwmfreq(uint32_t value)
writes pwm output frequency
Definition: NexGpio.cpp:86
+
bool pin_mode(uint32_t port, uint32_t mode, uint32_t control_id)
Set gpio mode.
Definition: NexGpio.cpp:17
+
uint32_t get_pwmfreq(uint32_t *number)
read pwm output frequency
Definition: NexGpio.cpp:100
+
The definition of class NexGpio.
+
bool analog_write(uint32_t port, uint32_t value)
writes an analog value (PWM wave) to a pin
Definition: NexGpio.cpp:68
+
uint32_t digital_read(uint32_t port)
read a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h.html new file mode 100644 index 0000000..b94d0b0 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h.html @@ -0,0 +1,110 @@ + + + + + + +Documentation: NexGpio.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexGpio.h File Reference
+
+
+ +

The definition of class NexGpio. +More...

+
#include "NexTouch.h"
+#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  NexGpio
 NexGpio component. More...
 
+

Detailed Description

+

The definition of class NexGpio.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/13
+ + +

Definition in file NexGpio.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h_source.html new file mode 100644 index 0000000..04cb774 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_gpio_8h_source.html @@ -0,0 +1,119 @@ + + + + + + +Documentation: NexGpio.h Source File + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
NexGpio.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef _NEXGPIO_H
+
18 #define _NEXGPIO_H
+
19 
+
20 #include "NexTouch.h"
+
21 #include "NexHardware.h"
+
31 class NexGpio
+
32 {
+
33 public:
+
47  bool pin_mode(uint32_t port,uint32_t mode,uint32_t control_id);
+
48 
+
57  bool digital_write(uint32_t port,uint32_t value);
+
58 
+
66  uint32_t digital_read(uint32_t port);
+
67 
+
76  bool analog_write(uint32_t port,uint32_t value);
+
77 
+
85  bool set_pwmfreq(uint32_t value);
+
86 
+
94  uint32_t get_pwmfreq(uint32_t *number);
+
95 
+
96 };
+
97 
+
102 #endif /* #ifndef __NEXGPIO_H__ */
+
bool digital_write(uint32_t port, uint32_t value)
write a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:37
+
bool set_pwmfreq(uint32_t value)
writes pwm output frequency
Definition: NexGpio.cpp:86
+
bool pin_mode(uint32_t port, uint32_t mode, uint32_t control_id)
Set gpio mode.
Definition: NexGpio.cpp:17
+
The definition of class NexTouch.
+
uint32_t get_pwmfreq(uint32_t *number)
read pwm output frequency
Definition: NexGpio.cpp:100
+
The definition of base API for using Nextion.
+
NexGpio component.
Definition: NexGpio.h:31
+
bool analog_write(uint32_t port, uint32_t value)
writes an analog value (PWM wave) to a pin
Definition: NexGpio.cpp:68
+
uint32_t digital_read(uint32_t port)
read a HIGH or a LOW value to a digital pin
Definition: NexGpio.cpp:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.html new file mode 100644 index 0000000..7f07a91 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.html @@ -0,0 +1,112 @@ + + + + + + +Documentation: NexHardware.cpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexHardware.cpp File Reference
+
+
+ +

The implementation of base API for using Nextion. +More...

+
#include "NexHardware.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

bool nexInit (void)
 Init Nextion. More...
 
void nexLoop (NexTouch *nex_listen_list[])
 Listen touch event and calling callbacks attached before. More...
 
+

Detailed Description

+

The implementation of base API for using Nextion.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11
+ + +

Definition in file NexHardware.cpp.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.js b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.js new file mode 100644 index 0000000..11abaf1 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp.js @@ -0,0 +1,5 @@ +var _nex_hardware_8cpp = +[ + [ "nexInit", "group___core_a_p_i.html#gab09ddba6b72334d30ae091a7b038d790", null ], + [ "nexLoop", "group___core_a_p_i.html#ga91c549e696b0ca035cf18901e6a50d5a", null ] +]; \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.map new file mode 100644 index 0000000..e9cf914 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.md5 new file mode 100644 index 0000000..263596a --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.md5 @@ -0,0 +1 @@ +c8f0437e4aba0d7c9c9ae6bfc7481f47 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..81b3d74c2a15b62c48bd658a0294deafc23b784c GIT binary patch literal 18959 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 O1B0ilpUXO@geCxy`xiI> literal 0 HcmV?d00001 diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp_source.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp_source.html new file mode 100644 index 0000000..45bed33 --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8cpp_source.html @@ -0,0 +1,345 @@ + + + + + + +Documentation: NexHardware.cpp Source File + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+
NexHardware.cpp
+
+
+Go to the documentation of this file.
1 
+
15 #include "NexHardware.h"
+
16 
+
17 #define NEX_RET_CMD_FINISHED (0x01)
+
18 #define NEX_RET_EVENT_LAUNCHED (0x88)
+
19 #define NEX_RET_EVENT_UPGRADED (0x89)
+
20 #define NEX_RET_EVENT_TOUCH_HEAD (0x65)
+
21 #define NEX_RET_EVENT_POSITION_HEAD (0x67)
+
22 #define NEX_RET_EVENT_SLEEP_POSITION_HEAD (0x68)
+
23 #define NEX_RET_CURRENT_PAGE_ID_HEAD (0x66)
+
24 #define NEX_RET_STRING_HEAD (0x70)
+
25 #define NEX_RET_NUMBER_HEAD (0x71)
+
26 #define NEX_RET_INVALID_CMD (0x00)
+
27 #define NEX_RET_INVALID_COMPONENT_ID (0x02)
+
28 #define NEX_RET_INVALID_PAGE_ID (0x03)
+
29 #define NEX_RET_INVALID_PICTURE_ID (0x04)
+
30 #define NEX_RET_INVALID_FONT_ID (0x05)
+
31 #define NEX_RET_INVALID_BAUD (0x11)
+
32 #define NEX_RET_INVALID_VARIABLE (0x1A)
+
33 #define NEX_RET_INVALID_OPERATION (0x1B)
+
34 
+
35 /*
+
36  * Receive uint32_t data.
+
37  *
+
38  * @param number - save uint32_t data.
+
39  * @param timeout - set timeout time.
+
40  *
+
41  * @retval true - success.
+
42  * @retval false - failed.
+
43  *
+
44  */
+
45 bool recvRetNumber(uint32_t *number, uint32_t timeout)
+
46 {
+
47  bool ret = false;
+
48  uint8_t temp[8] = {0};
+
49 
+
50  if (!number)
+
51  {
+
52  goto __return;
+
53  }
+
54 
+
55  nexSerial.setTimeout(timeout);
+
56  if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp)))
+
57  {
+
58  goto __return;
+
59  }
+
60 
+
61  if (temp[0] == NEX_RET_NUMBER_HEAD
+
62  && temp[5] == 0xFF
+
63  && temp[6] == 0xFF
+
64  && temp[7] == 0xFF
+
65  )
+
66  {
+
67  *number = ((uint32_t)temp[4] << 24) | ((uint32_t)temp[3] << 16) | (temp[2] << 8) | (temp[1]);
+
68  ret = true;
+
69  }
+
70 
+
71 __return:
+
72 
+
73  if (ret)
+
74  {
+
75  dbSerialPrint("recvRetNumber :");
+
76  dbSerialPrintln(*number);
+
77  }
+
78  else
+
79  {
+
80  dbSerialPrintln("recvRetNumber err");
+
81  }
+
82 
+
83  return ret;
+
84 }
+
85 
+
86 
+
87 /*
+
88  * Receive string data.
+
89  *
+
90  * @param buffer - save string data.
+
91  * @param len - string buffer length.
+
92  * @param timeout - set timeout time.
+
93  *
+
94  * @return the length of string buffer.
+
95  *
+
96  */
+
97 uint16_t recvRetString(char *buffer, uint16_t len, uint32_t timeout)
+
98 {
+
99  uint16_t ret = 0;
+
100  bool str_start_flag = false;
+
101  uint8_t cnt_0xff = 0;
+
102  String temp = String("");
+
103  uint8_t c = 0;
+
104  long start;
+
105 
+
106  if (!buffer || len == 0)
+
107  {
+
108  goto __return;
+
109  }
+
110 
+
111  start = millis();
+
112  while (millis() - start <= timeout)
+
113  {
+
114  while (nexSerial.available())
+
115  {
+
116  c = nexSerial.read();
+
117  if (str_start_flag)
+
118  {
+
119  if (0xFF == c)
+
120  {
+
121  cnt_0xff++;
+
122  if (cnt_0xff >= 3)
+
123  {
+
124  break;
+
125  }
+
126  }
+
127  else
+
128  {
+
129  temp += (char)c;
+
130  }
+
131  }
+
132  else if (NEX_RET_STRING_HEAD == c)
+
133  {
+
134  str_start_flag = true;
+
135  }
+
136  }
+
137 
+
138  if (cnt_0xff >= 3)
+
139  {
+
140  break;
+
141  }
+
142  }
+
143 
+
144  ret = temp.length();
+
145  ret = ret > len ? len : ret;
+
146  strncpy(buffer, temp.c_str(), ret);
+
147 
+
148 __return:
+
149 
+
150  dbSerialPrint("recvRetString[");
+
151  dbSerialPrint(temp.length());
+
152  dbSerialPrint(",");
+
153  dbSerialPrint(temp);
+
154  dbSerialPrintln("]");
+
155 
+
156  return ret;
+
157 }
+
158 
+
159 /*
+
160  * Send command to Nextion.
+
161  *
+
162  * @param cmd - the string of command.
+
163  */
+
164 void sendCommand(const char* cmd)
+
165 {
+
166  while (nexSerial.available())
+
167  {
+
168  nexSerial.read();
+
169  }
+
170 
+
171  nexSerial.print(cmd);
+
172  nexSerial.write(0xFF);
+
173  nexSerial.write(0xFF);
+
174  nexSerial.write(0xFF);
+
175 }
+
176 
+
177 
+
178 /*
+
179  * Command is executed successfully.
+
180  *
+
181  * @param timeout - set timeout time.
+
182  *
+
183  * @retval true - success.
+
184  * @retval false - failed.
+
185  *
+
186  */
+
187 bool recvRetCommandFinished(uint32_t timeout)
+
188 {
+
189  bool ret = false;
+
190  uint8_t temp[4] = {0};
+
191 
+
192  nexSerial.setTimeout(timeout);
+
193  if (sizeof(temp) != nexSerial.readBytes((char *)temp, sizeof(temp)))
+
194  {
+
195  ret = false;
+
196  }
+
197 
+
198  if (temp[0] == NEX_RET_CMD_FINISHED
+
199  && temp[1] == 0xFF
+
200  && temp[2] == 0xFF
+
201  && temp[3] == 0xFF
+
202  )
+
203  {
+
204  ret = true;
+
205  }
+
206 
+
207  if (ret)
+
208  {
+
209  dbSerialPrintln("recvRetCommandFinished ok");
+
210  }
+
211  else
+
212  {
+
213  dbSerialPrintln("recvRetCommandFinished err");
+
214  }
+
215 
+
216  return ret;
+
217 }
+
218 
+
219 
+
220 bool nexInit(void)
+
221 {
+
222  bool ret1 = false;
+
223  bool ret2 = false;
+
224 
+
225  dbSerialBegin(9600);
+
226  nexSerial.begin(9600);
+
227  sendCommand("");
+
228  sendCommand("bkcmd=1");
+
229  ret1 = recvRetCommandFinished();
+
230  sendCommand("page 0");
+
231  ret2 = recvRetCommandFinished();
+
232  return ret1 && ret2;
+
233 }
+
234 
+
235 void nexLoop(NexTouch *nex_listen_list[])
+
236 {
+
237  static uint8_t __buffer[10];
+
238 
+
239  uint16_t i;
+
240  uint8_t c;
+
241 
+
242  while (nexSerial.available() > 0)
+
243  {
+
244  delay(10);
+
245  c = nexSerial.read();
+
246 
+
247  if (NEX_RET_EVENT_TOUCH_HEAD == c)
+
248  {
+
249  if (nexSerial.available() >= 6)
+
250  {
+
251  __buffer[0] = c;
+
252  for (i = 1; i < 7; i++)
+
253  {
+
254  __buffer[i] = nexSerial.read();
+
255  }
+
256  __buffer[i] = 0x00;
+
257 
+
258  if (0xFF == __buffer[4] && 0xFF == __buffer[5] && 0xFF == __buffer[6])
+
259  {
+
260  NexTouch::iterate(nex_listen_list, __buffer[1], __buffer[2], (int32_t)__buffer[3]);
+
261  }
+
262 
+
263  }
+
264  }
+
265  }
+
266 }
+
267 
+
void nexLoop(NexTouch *nex_listen_list[])
Listen touch event and calling callbacks attached before.
+
#define nexSerial
Define nexSerial for communicate with Nextion touch panel.
Definition: NexConfig.h:37
+
bool nexInit(void)
Init Nextion.
+
The definition of base API for using Nextion.
+
Father class of the components with touch events.
Definition: NexTouch.h:53
+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.html b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.html new file mode 100644 index 0000000..c43da1d --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.html @@ -0,0 +1,114 @@ + + + + + + +Documentation: NexHardware.h File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
Documentation +
+
For Arduino users
+
+
+ + + + +
+
+ +
+
+
+ +
+
+ +
+
NexHardware.h File Reference
+
+
+ +

The definition of base API for using Nextion. +More...

+
#include <Arduino.h>
+#include "NexConfig.h"
+#include "NexTouch.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

bool nexInit (void)
 Init Nextion. More...
 
void nexLoop (NexTouch *nex_listen_list[])
 Listen touch event and calling callbacks attached before. More...
 
+

Detailed Description

+

The definition of base API for using Nextion.

+
Author
Wu Pengfei (email:pengf.nosp@m.ei.w.nosp@m.u@ite.nosp@m.ad.c.nosp@m.c)
+
Date
2015/8/11
+ + +

Definition in file NexHardware.h.

+
+
+ + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.js b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.js new file mode 100644 index 0000000..aa733cb --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h.js @@ -0,0 +1,5 @@ +var _nex_hardware_8h = +[ + [ "nexInit", "group___core_a_p_i.html#gab09ddba6b72334d30ae091a7b038d790", null ], + [ "nexLoop", "group___core_a_p_i.html#ga91c549e696b0ca035cf18901e6a50d5a", null ] +]; \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.map b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.map new file mode 100644 index 0000000..2065cec --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.map @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.md5 b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.md5 new file mode 100644 index 0000000..29a0b9b --- /dev/null +++ b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.md5 @@ -0,0 +1 @@ +08c96aab97e8bd7a213b6bb68da8eab7 \ No newline at end of file diff --git a/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.png b/lib/ITEADLIB_Arduino_Nextion-master/doc/Documentation/_nex_hardware_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8fe889842ca3096332105b8eb1ace50c01e5b6 GIT binary patch literal 107026 zcmZ^L1z6PG_BA3>0wR*q-6_(dbl1>QN_VHEAksa6w6uhDr${sONJ%qEY&ls;2oe&eB)H#Oh_ zzfg@8WF(Pp@BVylElfZ{qC%3B6w~lb-)Z&wM5mdtciR(x`8u)I13n>KqEtRWFYmlf}w9*LZrnoF8Wn@;qH_6cMi`6bHdL+(+3z!gXTKW_T)qz!&y zQ~iIQMHkdylEnKzUx-d^+Al#J|9@WR(@k#M z;tr^Sl1ZFK(d9mCtPfjB{_#s}#Nc}rvHg+$=UWm+*S8&i_53p?{1G#D>K>5Ff4_MM3E-LrrEj;`vD z;02`r&zJuYD-kSC_kS$tUl&Lc!KcCa|2$c>n*Bc?<)6P6OaCZX_8;%q7umQJ_|Op% z#h(Ky(kY-6@x&$4ckD=Sx$Ou-D}3S0H#ku@{J`bB@gE;s@b&**KZT(Ede`Bgk2Z$w zkNH2>4jt)#wunp(3QH^^N~PsDc7{norQ-&rE3F+!$s=cRq;h4j;dWOWVlk)aVM&E5hv*A}xgyW1^@^Ys4-aS>; zkn6!`BTIG;-lUoSH(qnz`>mc+%?rU1oNdIE7o#D+!PV{~iJo;lG6vy<6d+0S{vl@z zZvDbLR;17R941HWL!KZ?%xl_+3_Y{gEF8K|c4rTUJ=&h6@jLW9^7|b`a!qb7pRM|x zHs*@t_G;vGiSqWK`KXEGA6tS$^gmlGDDHXKKQGJRGTn5{+=3vlU(QPqjZpF3^1C{S zDIZdB&MPi%xVhLq_ybo#B)4Cg!OiyCZ~d^av6oL~9eRiO7b7h)y-+gpe07*_a$|q#&6??RC^zTSOMceHDEi*P|8h38 z7xC;WMp3y)qi5g0{XW>FM^58%S>3{mUcz5WQM{gz(+>rWCz7h(W|FaCCrA zZsE0?sBI{?*|h5}+;)_)|GA{(Ax_AB@LHq*4Hh#t7qC7i$6FI;1KMqY{uhP*-@P_6 z(2&rB#TzcRN)GZleK9PueEIfTPYv-Sq(n~VT&Anc9)blGrAv?#x!kE1Sc9rBISPPi zE^KWp67_zza8g&_vFnbQa~XL+HO_MFcbn%QRK%3bI^E{W?{`wYaq#WFiiwZN15Hge zj)*^_^7(pW`0xx1 zm`qTYdw_FwHoxx|!s&kwYdHC7!+!KJB*Y0E9o+&i5elS$sqOB?tD(gua8SR4pqu;M zb{9RBwlh4inui<>-#kmVg>c9O0@Cc8Fj5pz!TGWAj3HpvLPF~4>8WtveGL;~<|qR} zr(F1?yyXxR6&2NSw{~h}voNdY+c%_4-xJ-Io8$7VgNuTToguJ-NL-9nTi?F<+0HkS zzdY}+4wb|s#DFY3`R`G3&J+7*{fHH$q8RxMv0_umfF;KEucoyz#P#td!ZCyK#y8i? z7INlt!B9wCbB$B*2YvAx%*zbi;(_NruBlanS%o`5bv7sk`5UnxeY zSa`&QUuyie^|MYnu8PTlX)3(zWNUwx4KF;pev0WzBw>-E@&mt6$qF>&4?#wklS-jr! zh&s2(a3j3AUc4n|%=84W>;(xRe8hLp<=5Vxw1>xOaVlQqsy*8+2QHRtzw@`lUcgAZQaUk@Hx}i zwQmjKx{Iz;f*HrPuPvxXrwRXCNc)!G|D(Y7A*-?^Vq2AK6cZc2Y1B_Z88Xh&rC>{D zEikj*SLe{ijfv=u%E@`|#Fa5jomJi+AkKmxvmM-STNi3u$G}hknL%ZC;uv)!pooEc z+E*9-_AJG4Q!d2D3DFcid`FI*pA#fj61(a=Gdi(Wtyn$l)}XKT9=2Q8X+OmV_Yo!1 zsAYIsT#TGG683J+{=hI;9OK;Q@p(%FC!s>c3@^fqLt9eRNRlT-s!?BzAwede#&pD| zEmVUg##oI_oe2s;LX|0WiXg%aA5#h{4{qu4Bg`~dzJzBa7GNa8v-P!N`y0%UUq8Dm zh5P=u-nNTv^Pf&)ZqH)Q*7@7RO3Ior!*iCdjz)Sf7jONpRvBN4@jmSqUO2${)fBy5 z){J9xKA`=(X{r@RG|M5r_Q&sctqtp`Hov<${T_29KlDHK@DJf{JBa#MHSs%2OETkZ z{R6?rd@%QJ`)jBqjZU>Ww&-c&$nt&4GbE%XP%rP|rJpei3rS!zFF}F8C^(5IurVXnK3(D`u0GTHibr5^7P^B)|#5G0=WnZ8ge!t{((53n@nCOT$T1 z3WBW#bY@Gau{a9YR?Hr6c~l1)S7K=fZ#Ea}oKOc$qfI>QA6iA2j3~2+;8GIp+B}tJ3bn`6fCdjQ-PP3Ke-g*9x;b69ZW0jZ+<8% z=@DssiC11S1b5rsZZRyZyya~#%whU{`N%ix)qjG^xj~Jkx>a8OKmSmL9vAk(TyRuG zDf~lr{AM=-8^_<`U$5+O8o63*~ZFL4^a)23NNoY`o6tVQfJ3A^1VpW ztx?0L!u`@(h-+yLiH6ayG9JClUcc67ZEU|l|Zz?BgdYIm!F3?C_QNB zNQME-A}zS7UuKD}87%&|NCRin^<;d*f2gFy&ozN(`W^rsLSJiw#5ksEJa3d4*vaQ-ma94{dJTQt> zn<~p6wR^>H&ao5w=uEE9=WtXaW~q7c1(Lz($ky@vydOTM8GZykR9?J}J&}beaiE&e zZo6`(OH?`(ib;l}SF7}}e|)*36P#hkUz&n5s97WTLOQ`MMluYi-DnOCnZu-=Vf96& zf5Ij7)vKM`tzh$KaJlTS$*_BIAJUZd)&^|r-aLNZeIs)8Ve9JZu?mwk zmo6VN#nddS)MtF2q*?^UK6m0ncT%kk4On+&lX|~dY0Q?p&2n)mp_H7p<%?t!o~`>T zJ$k1>Blde-Y;bs}WPFbcGsA!$Tap+{q6AB#lt`uoIPu^PgSsSNnhXPNcXtjoBOy59 zm^9Cwn%3T1M9g#0aTKbD6ckxH5aAWUizGBPX=jw?O3+dCN8QLfK0kDC{`l$}b}}sb z&8S_TqWqXFyzA)aXR3G{u`L zR-_@#o61MGW~`Psfmx*Ele{L{4sxqip-U8Qgy!__Q&)rF&bL8jHku^r=${}9N9XB| zLSOL;ptq|$;(L=zr_IIjpU+4e=iM9h-6MG0M$zLSS4!JY{D+PPH`BU}cZrSIlA?aR zVGf^aPuAr~?6pAxD<_TjC3Z5{mL=Hj8;eVi@utL03k|h;UmQ+|x$OCR{04~NrZSRS z;a8Yxsq|lU_F{$(3l-@J!&047r(@El*iR0^$J+jLXq`QEM6}KR^N@!&Pcc@0Ey}qs zSbPk3$g~QIPtxT(8K2J79potzAurX(k`HNoJy2sy$C|2+la?r$!9kO#Dtiy|=h;I{ z2qttBQd~^@J=?2svxV>rJ>4Xy_RC#MNzAV)k(QhXo~Y+O7@Mv*MNp;9z^T`wD$e6;|{=rf@ z$9zb~%{2l^|=_$>Id7QIr z<(gVATy*rX@qLf)8%M@Nsb$6b%qR-&ix09!tQ3#V^|8O}v?|*9adfw8u!MMu1cimw z(62pDX4N`1kwOrs^oL&RD~J9NA7;~DyIjwLMb4>&jsJmPrU{XWCnX(b^dh*TgTRh) zBxCRH8cLKx=}XoQByyk?wy<)J@({2{^-n!U$lz%#q=zMEeP{rsnKR3I_%Q)$3O4kPRNMne-Os z7%3bX1n-eEk1jkNg*`bTuyA&l3s30p(;rKV{a@tX$M%?fU7SoY-&xu@yAh>Y_61n` zXHuIB@ng)K!dqq=t%?J96Fu=cRlNC%b=!L}oGAZ&seh~`cIeTFd3Pur% zlmT-IswJKeS~CU6_v*)z(v{PwUr-c%T9fvADVq6xX$b`t%>*2wP)SH=_qc4nb5dUY z%=pZv1XTrPu@DbhRsb7*$LEixhZv>$=j~kFahYSMgh+L^f&_-;_YKQI--Vi{6jIFc zMI*qtGE|2xLWeCXER2^X4uye%N0yF_7hjPxy>zHN%U{_55K)B0Ag-InVYcl7a5RP4CT2F~towaUv3 zmBH_3tu1V8k(dJg6JJ6s0; zK_rlI_wiCQGY!x&>xMrAU64jR4Ecp?Wv!~0eWRnBJ&_#2wzh#^K&1D(8F+= z^IrR@$mq8zzi8tF$s8MZe(n6xgl!J|5wfw)ki~;UI%ljL*AAPfkePDq%dQjY(rDEc z>af|NKQuAHh>YxtlV1b*1MHJDC?0%zuS7Dx4pd6zVh@-WZx*VAbyXF`(!Z2KPAOzz z7s7rkmK11bIsxtdQ6}x0ENtdw|xF|Odo(x-3&o4{l z+*~KDN4;EpNv~+)o^@>%0bpidPY%v0N)Sg)z4z!WX%}~I4Wa`L?e_qy1bjidel~il z)n3qjPXs+JDj74Grx??;x_sp*tNp9+Tp2kx(F`B6b)G32+M>4rSh9K_pdA|v_ zk(5jb5xDT56VwWOgGWNbzQ48(b8|Z%#`NO6;-=fOci z(7pGWDw&lAPmTs$&XpHONj=JS(z!7bQUp1}0Rpcwv(@ZQ* zXStaQ4=iS5z4^#< @G+-n%LA_Z>gpTc|^e?&8{YixDLwpl4pLNP|yt#}@bqzr;n zK(aPuruXDN)1eaDc^86)M7IGln?4zaREtr8vl`F|ZHk`D8Ed z2ZAQ_JY8C*bSE}Bqs*D4e9FqTVL;hecU*N!3azxb`1g5fMnlz)y|_&CdT1=91d0pt zOng5Zq=*bJjIE~!FSNT#Hoq!V8ZIqp)fkDZZJlug5f#+n{mQ`d(>673(5im>_oacf zl?H%R^|N8BvUGV9h1|9Bw?gS*hB7?I&L(V0MVQgtAeIyr=^o=Sa*Jk43y}3r>r_!c zP*MB9HOWSn-gNK#dsWT^B0HO4)P}J=< z@?};IQfq6o6I|(51Thug-J#-lNP6`<1Ov&qeViq@lEh}p9pTa5yuibr#!hV4($=bw z;^E30-O*v$*~SGRP4le797vMy-d#=b>8EWRHO9)CrphOLHI-+^pE8;(OH3oY|H!pf zYfn!N9||*DJ<8c}63TF3woie*Lqo2W9C-J>Dn*}J{nI1PP;Y zio@Z&dLaF8oFc1i3DRxJG2J)Xz_BFESO)OL)G@ z4i0Qct&G|Be)wtoys~GxLNl0@U!MbQ&Yl#6q>rdY?T=C>{@F=}fyTOeZ*Ulvjs&x} zY2wrvJUJ5ol+ebBXPZKE2YjYQbI=^X$KuqF z#HlHpntXok;e0M+3>a26a%&<2?F2|JIC6u``0@gdZ^*n)r7JufP*gTHh z|Nj1jOZ0|md~>?A?mZh$pcuiECy!QY;0r6Zm+{~1DMh%Vl1$VC~^BeuCJ;8 zoQ4$m_|nmQSgPcX^LYvaQ|Kv(O5`|MJkC~LOE#06vgzHX0|VSeY|eM@kbnL9Z9LyZ z;p%Z2buMb8#5cGR5i0#GR9gKb6Z61e;p3>uw$3L{imadJpV?3O$G91!^Lw@qTgz8} zWhvZN)g<2ZjFYWO?a~p;R+Sc6&>uiaO}QmQKM&FPaxWG>%$+08Js%%LGi5g6hrrqD?WS~>F7Ons!#AEb^ zNPLH^5#5aaF9rDF=PRD}Aycf;yA&~`kk{BnuY7Px&MpN$R9lTf+uG$Uj&@k3jQeQq5 zj>1=*VOU$#E-(-O<5~GqUDK^&)%M@Sp)MQOe^^68L7o(jxG#y5QN7QS4#RUyUehhE zIR`UfysABoHOn%o`~%%4%xKDidoaj_L-AvjO;Cz}_rT$DeXH;MRzAUiyf*X7z*Pox6Fj)wwvN(D3 z7G`Wyixev!y?9akr}+ZEw~XU9J#m4YQswRb0{Y2r1n~-@&G+rjJZZLBi5pcp@R z&y)Qa#S6dGf^2;b#CK5G7+-pED+^hXEL=?18{67q@q_j{-S(N_mB_`fTp(n%1we`- zDQ_G}+pg9^xOng+@*ycFH@vuxqQl?gY>n*Et8Y$ zfL;3*FUp(++GFJTs@!NG*(@>&mBJ2E?^QQe^M5kCMy@Y26}DWvsA|{KE>Q zNAdmr^a^n&Upvj8KvK#gToshmu{+4W5c4=SMiz%Mo9cMA8GuqMtJuczxz>>xO}^o- z+vD>TQT7yZ7szloaSR6R1E4piwm-m&I(OZ_ZMZzeBh%II6Ela9B_S7hA?X4-j3(|m z-N1$9l_^gMq^QnTgaa*OEfTUmW81dYmP=uvy?h|B>=+7JK0Hn7HQ`6y>|3+~ck!QJ z`z0TwjqDRSSM-|Hr!&G%l>VJUBOd<;=kuU_g4Igpk|3PelB}4v2_y2OaJY1nR9iUa zD->B0Yx|IfaLs0R*cIwiU?>APE=hQF0l!*?Ob-P-9dll9Y145^(^z#GGj|#1xYo$N z8_d-4i)dxXqHpZexQx z0VoNb#;W^%?GHypn;$v&9cdTp7tWV~G8wb5Km}5<=f&nrs;4hP`CFFpO;QY+F^MTS z#5D5GeTE8g^F=bZE6&Dqx zYsW1*tT*@jTGc>km?Vjb2|XR28C`-I7B)Qql<#}tVYYRurxqSPJ^wC84pY|I>!1`0*)Lc#i0FWNmw zH*{*NR*XsFc$f@X%>)ZDImq)QQ)E}SAgtXEy{0@ibd3XxMLZowb({xJsSO7fKLd6l zSiGNDm0$NVxo=gTc}Iw>u2_;8m7#xCp>hOXazAlPUGtd1xL}y?-zs{_^Z&@8G6bNx z`h^8@uyk0v>uZr@vm7&vyq!<@%ux^M@N!(3vN$!(dW+PBOoc*v)wi*n8*L|)ZR)8x zFRnRq^-~)Y`VdYUMjJJ*#ByG7WaNO@$b-ySqxn(*wqw~5xwF&huD?K7NsP*Zgw1dS zV5TN@y(Kgu2^pb5z8eth4En?egoimefa2&rf06%<$?PGZ8Tw3eOlwGCNwt+C zf7BE?v`dp}ztUI9ReqVNxzG@Jg|1x1Ry1Em(r?qKKZc7unA|{yGY_5o#rJ`UnYLe} zv8`?Ctxa;JPLmj4Ld+wIbS}{&Qw(2lIVEPZ^&_d$*T-SH$)Q;k#(H13Rgsvag$x;v zcyh*!hGz+x!pSK{m{m22Rt{t~uC6nNYaNBAs8W0|yI0QATP&y?@6GKcSRDVQU4w}QJbP~^{B+6HUAjMSP>^)gRSP}%ak3M24o%^K~GTA8*p0HHIk zu_YX(*z@|GwiC3rmMn;$9uFbYE_lfY*Z^_Z|7E-LxdpF+bo2Tzhfx zC~rQCE^;{J-e=_*}77Cdl-rWARq4d2Yn8`=T^;0 zZ%EJ^N-#c&+tVr#9eryrLOmXG4OntTy}eiKo8X0%<(4YChV-gYUkPXOG1j|Js49PD zLLEr782^l1zKg!F~VJ%Mvfc2UDem-QSk?GkBH^#giCg~Z8dOhg< zqst6Uu`#t>6e#kic_vD}#OXfgQ5pVY@}R0CE{YLjPfz5y&{$eLjIp<%a|DMSz^hk) zzhu#T#gWWEAge+o^%yyY?LPCsTo{gROz*#l>9=$;Zf@tJ3w!UUSWSCCr5%MotM!zM zRvx6c7|Q=LgkfcVP+<598L50K?9C{4n$k0RAIwVH48qGjK<3C%B$6*4uQ?CJn@~}q z%mv4CGN^cA0bYa{Cco))eX;kkrnOPlO8DkXg_aPe*t$eU3qdE)ckY+I>h*6S5M7*O z6sAuQ^w|(@?_{sPLhUytBribE(9QP)bC{-Eyl8<~9#P?LH$~lQ z!IIed^7iPqJLnP4tD4iz>|z$tqm=dzApgBd0dV-Y!|e&xUfZRUWoo!FXk;;{o0DNc zKzij-PdOrb8NBI_`{X#M9Lg}%U%;34v90Y5+!PKH@rzO(c~PUTF3DmsDDVD=vM8(cWOUINccJg3QZXz#Ikbs5z$PfS0~H{cYjwhO;!bFt~e;`7?EUA)D(Nazau z$6U1zHK)%mg!fO``q9Lt)L=RILO$$RJ}-RvgHf_3b^oYwz2yh3Zt5p9PM3}Holxa` zXJYawQZteKSXM}YGmvVS@a6kVF`p@0!ridln{m4UVCWZ!!)FRXg*U(mt= zA2{_TVK0Wg9>?~@DFA3h7th<3R$2LB?fk64a%0`<*tx71@dXo$1CZ*Lsju13Ujw3^ z2gSY8zusN3S^uQz@Q2?AanamCJHWYsvgzt}P9#OM=c-PTFEXKsq}SeNu^_4dlzAZh z>-%3{gC5Ktf?XI{>m1p^b$j4P-n}zCB@j${oEg{T^$T@1-AKYOxUbZ0ogmB)9#cLQ;H}Nvnqc zV7A_$qP4Z7;K;~x8AsnqIoym35aCR;O04?h!IJ`#)Yl~K5v_zymmZ!2&$?77 zXOctWQ>$t#Y2$pwd;Enu10NinZZ^LRKxs7f)$p0Zr#JelRyS*y)HqNZCLre~m62)# z`t}KIZVQ-z&N^rd9A3VM&9flB+M zgH_1StT2%&&Yt}ld5i^@Xl4~u5V#Wh%pWF%(-pJCkG#H)tebVqrBz76h3@hL>h0^0 zx{@*erec*u3Jq{y}~FYZOGHcXGZm?s=gm)5xX`&%y5yBX62 zZ)7dTynlb+^XA-_m{=en2#pa5X?K?btPWIu2;Sss03|QiU`g0Jbu|de38m}M+JAt~ zZMHUm3;YqS0(%V$5|?k>fH3oyVP{L*KMXiDY=QhHaQuVdY*VE?1Ad&+cr@JmyK&@t z`iykO_Gx%G4@aBlebM70e#&^_^FCVto(b*6VEr;KtE${$76C+LqUX~4yDkv0;iq#) zD8Q(~2o62Fdho70c|HUqAM$`z+a1ue%WmbusQZ4W+fG*pz9H-+o;XV?fFsPj!g*p%S zy*G3R6O#SuQe}#CJktG+E=7)wEh3K`j`c?Er?4woaUDB1T)rWkwCJT|j?-t%(jP^b z834WkqzOQQ!Fh9qUNNY1jo&8plZ|icYt|_0v0#MC-}5r%Ip5k3>W4jpIWIzF6LQSB zewAtAe$jj!JJM=csAhI|Ni?oT9r`7voSA@8^R=!t19hvUx}WkC{LeDpXIHVEX@r$3 z>eK&4gUYb{4Pte3c(+wcRdjiie+6)$1xWRb`?M$G1$?QYw5bu2QLE&wM*=o1>rlYuYsjG--8w z{6J{~WsHx&&1~Zx)2c}!V+#MeydyL|92ZYA9Fk9i(hG7PC@PXPCZQrhL1Q0RtIg?4 zHkwR#e5$9_DbnI(O%D!XL3gqE{vNeh+r<_-umUwTUr$#o6WdN#kdg9{1*t1<_5zuP zqv;nb_I~a*&F1epmnqtm!Ij31lUis?@Q0iZgcH?MC4K{CO#&cx>ATNto*gDH3KjY% zC^E!QUM*qxTyM9F^Zr!a)A+r3>q~#LRj&N0+Kq4aqq@p9vTczKoV zSmNfLdc6U|Q)xHLfrUl(OO?7=*g!TrQ<9yKOAO`)LKiU6_@wR}2q z%8+|=`(ww$viiMyt=Cty86_=LpW@pLXq#ksv+P+ym1(XevtL5r4|$tFGrJi@=_@U( zU^sI;ORFJZggi7;U5SHoOpQNJZSz7{@*|lYIzG!*tvYPxMgYQ#9Xqpx;q`jdew?C8 zVtY*WOdvIr1rJTIX3bd3+UbcYPlcjB!CIT0=7DyBRw|s`>^SiC&tk>UZ(Pd zc)8uijb`CVpg*z`!NuKtStapf--G1Tuf2M2!OZnHu5-gDn+~-kKJ4I@iWz)pNdyrl z5UB)d8x`9ud>enfTb7=?WFH9HzyeA+^FU^ z*WmO3O*Q@nL>3i%w+@ zdCZHG6t83lhqiNS5blro2{25@*YlGz17m!5XiD{GxDlr+`Od&Y>HT|Df|HlvE69=@ZAWRA!_(nn<}^Ab$mAc>i}2~ ziXE!>3yqGh4~w`wzw>DZ%Hs?{^gVWP$MbY84I>wKH)-IcW<}d$V*)38QHo8J{0hO> z*VzSC@1FHLw#m{}p@%#HDi@GO-vV6hC}8z2Q<5(JJ0PDCh@y|1ByD~+g!cJqAt^hJsPWw{Jo1IQ@g$7D%SPj9!e z#la!@sH+v$eKeRt1tWwl4jnX{Eds5=ptL`R4*4x9rtMKY~e4rXmrsmW9QY0rE( zP>_|+d{+1aJ@=}hn2%5m*wz2MzUH&$({ZW_e+Vb3m@fV)UfmIX9QMAn=2d}wH7}#4 za*{doBFIR}sZ_&!|8nOO;{DB~DJGZ`#SDcJensIvYSCI-2-svatdakM2sY*+sM6P0 z>Pjq%e9o-Rkk{wz1({AXwx@}+N~y4{-*yzTo2YVMDPVe4gaVb90)8T3hA^#;5-%?( z`hA&!jw;n#X*+9YXP?l(Bt$=i;ZfBYU&L%mof5V*U0U6oxWojD1z_n{Q@DJ-F`2@a zdXFhf5=k|cNsL4}W>JtZ5>ssp<67>bl|j#Q&Ab$Xr;J$NVwcoGV-c=xTuHvUHn(XcEl% z9L*lo)n^D=Y}-rG#dld1`ev`a!G9&o2cUt2?{>=B)doM%$44y56XhQ)UQ9at)x6<9 z=vmZ-Yv_9}A2e*2v2t@&Q0mp&_p10`V0~Yvf4C;^hs7Xo*|f5SC|6}TPjZW$N2UjbNgM$A6|-+ zKXGoP$r;m#fcExS9gBaNFVh~OB!x2!^|tNpAzfSq!i5|Fh1tVxu#m?l$Q>unYu!o& zhbujCBgdJiQ+?gt56nw*Q?Nvl_KX+i+2bs#lbL#E^4mPe@nu~?-&8T7lN;{?W^q|< z+TW&6bhY-cO`AgU&hsH&v?NA~FzUns(kwX&)%6>!fBrcGt8xVbdfIJhkJC>#N02xmWq< zIb+EHpLHg~Y-Pi94#xI`2*K{mzcjf)_J8N`J~gotJR7)DbsF1OF?SA3wXw-6N$qMc zXUQvLPEL73w1h;=bj3b`u*l6Mo{-M$4)f{`d+lXs!8i5W6|-)Zseu6OLW(}fONFAI zx10^rB@DsrD^aKg@jgB57}I~H_qgcD`K+rSAY~*m^Ft3 zp2F&4A*A`kmJeV~xJ1Z0GhaLg@3tL2DD7TL z&Wh%5wUSUzvD+9{17~wCgfVL_7{>YX{_S~|KYz(CDM{GdH%mx$b_sT#FF~YU`7tVs zdIeMOXM&Lhl%Qt`;v1wXWUMFjD|O!W4U5hEw$NY4@5t}Icd;h9PHpj%5^ayCF?wNz z5h)iu^Eo2*&wa<);_hq3wdjtUdUznglIz*eywViMOOxr>5JmEyX=pT`=m*Tj*A$Ch zS~xIxPG*(FL^Gs@L%$A}07NGGpkqgrxp28wXEv64CH@+Rm$t}i|+pL*+R z-H*ejOEH=%Z@qi=+V=21b-W}^1gM5IkJWP2MJXs%K=Z8ydp9ZXImvil2kc~+UXh0x z|7x`r*F>(-gGGR&aU`M}A`xh!Bx%L|87$a^hK!eRJjw+K)%$2Yl@=;pvGIe*dH7JE zKWmj?Ww*C?Htg>|db>7&!=^V`$0SUff5oIuiH3TD07yAom8oOjV`bXJoBa@>PrrkW zwbNVQek}|f&m*6K$?<4dn6NOb?N0j*4WaaVOiSxjs`L2!`9^tfffC~iwu4Rxh*fa9 zx@RoPJIFm+(6VFemwf?w{4K@ehE+(o6=e6*rP69G%ELN7MD3Jxr5TJLH^S_7X8UGS z_;$JfGtuAgA8weDrdB!_p=_idwd*m^Mfhg~a{4(vT)12~!m%=Fc8^+~-*3C$>=6Up zI0%r#jbU_f+qwW?%|_d6_ZOyk_v- zcDZ?~Ov`J@XaJ4d=YHLv=EhP|uQXRm9%~yBaUlQ#<9W`!hb9XF7It@W;3~2EK8^_x zDcyIUcJ9raNLS^JY;+ZCipS#Tm|AG2?&xS79xE~v!T@L?CX2jlFgrTJ02wCm5gRyx zM98E>3>DI9W_UrbJ~}l8C_gn9ckv8vSLt7&~N#94n~wWW?PPPGv~UM>0Qq0q-GB}Ow2HRKis@BYp8-s4?> zZ~J)IjgqeTZbhG*PWEVsqr&Q=6{Ut9Il@ z=oKYxn8j^WeQ@5jzwl;szM`eK`VZbn{}s2k^O}aH;nv!K`S`vDeJ69(UxP1$kN!^k zEwtSn)wt$_#Ay*xRwl2jBVyc}?Ol=k4%H7E+0-WF9kEaietV`X2nj}z84hkz4RIu? zBytHQKsIxrsW{E^K$8wGumTe?cf{XXIPl|vTVQUJ%|8t7C555#c`t4<#Bgl}usr|+ zG(Ek+Ke&WaxgU(s&`K9ACDR2@LPcMmC6pqA_N>JY^i64J~qQD(Z z1cnT9b91nYppto9G+G z1R%|H<)`@^O zh+bTou{Z_eb4iFF>e^Iza?5cthSDHC%Q3Rw9j!M2+E=~}dVYOSH%kE|w{Dr27gGtD zq}LZyoXa(Et>NaYHve0JI@@zpX_+TXgrxbhz*7dw&tt!K8^ikC%#yMT3cur$m(TlT z!fE2EH>y4W+N~2@#eZy(^1Fp-wb$$Nur;nblbBY__QhbOH05su+Uf5> zW$~CcEsTrvJZ`R_oUPmKIob6Fb4ts{LXLoG`AFq8ENGK9P#+NooQ(ked#)wE-I?Y# z-Wf6Ub?cg5CZQY^(Pu49QoA&=;~`KB}v;AZ*XG{_H(9gK028K)GE1E224FdS%D3b$EzM3IEooUl2`Z-Hp zyBhT)6C0Y`hOAQT?WWgu^~w_86XkNnzqyG`X#y-GFO~P`Uo$GEJiyN^2!ua%w1S3m zqIzDXT36M9E~1&ox{G4W8?(DDRLV(&RkTHhe3n``)orvt?5D;iwYFasCw9~%74Lx{ zE$5upxJWdU8e)zN?<^Dpbl+Ro}XW;c^FZSE! zTCN}7(`$7zz`Anq(G~pqpdhuYtBw1A4V3==eh>H>oesK5E4+^S z1&#*KF^*b6el;K%P~D*YUcB&AXx!^o&GhE^{#KBQHhOGK(yc;zjyR87gp426=|@)c2XVtcf6m6nmL+6D z9?j3!*7TQgw8u#cQto!?JI}G@^?%q-N%~X9`Fvp~J@S4z4(0k5N$p~b72?#cq<75H zWQ!@FSYukm3nH4-E@8HYbTIdf^S+u%B`;oBI(<}?X#RMrhOWXk6mE*=^#Uivz8Kw@ z+>{lFqEUjxsM471|$OSRq#Uw-hVP(qR^BHc9>-W9g}MX*sZHX$ ziN8O(&7>=PBjn@IYA=zYK!9x>QcUmrC&~gohq)<$r8_IXy&wmZtQcVWYkF4*_%^|~ z)ETT@1SgFzBNR+#eV|Vh0`4|2GrGtdoqc&4Ln;@STCmd3_%Z~@;DNTY^vPF@nZE9v zfU3rS0Q|gQh+2fg_s_`L!f9F810u3|s@dlxRPty$vmmKPwW( zAxsYVX|_H-z$<`BT2b5Cx`+4gqgD7`QYb3sy{WbmxH%J*h!xo`ozSVIsiB(n`~r|W znTWs`RapDs0GFY+-49&EVAbly@jSSwMgQKjLYQlwT(zPi*2iwt6V-$u z!oT{ixOMx>`v=UsjfWJ(?^m;4n*Ak^0j5YAEmP47n&GpK(+b8Y@~^&jr4LMd8f{P8 zIF!3xam_&4+|1)wbZ%QSBJg|P<>|apcH)H*(9%|Z+~tCy@N|!*?=WRi+JPwFnI-A~ zz2D9}>)x6j5DsWtClOAc+h2Z2WEHM(HVZju0Qb#cNgrd!v0TD4pp>_N3WGq@W5-V} zLn(*u_Vsq-RwNX(PuNoT2G%eq%XWJJ2`o2Vvxx%6yNf%u2))`ud!IF|gga2j^{u=| z6Gc&igE9a5HzS$cP}sL5_QEBgMQ1#$^S#}_ZT;ZUemSd(ABXQdWuU!sNBjA#JkdMI zrL^mv_b`g$Z+W{LXt$_=1%UeG*VzMjmS~WpKo~Y@bjMv&r@$fjAS0vg!F(O4$sef% z0qrsJqW%%UHoz<@A(CVjuW;>C{Fmp+x-VXwi_$)|m=#Vp6nNg`Ht*P&RPbBGU|k|r zWc||#J-szAaLjE+9Xk0Q=3V*z*qQ6`DXX>Boo%5zO?iCV`?}x0n$3!1;{`W0YJwC^ z6kdK=3E_Jl{KK5w&RHtuf$@di-AwvqUT?ZM7{T34mHxVSG0OPn)#UzPE>_2Bv_<7Y zedq0VnRnxP16o-|n3i8}_!Ld()wySm8@1Lt)>;k@G~jf)OQS#S^hi$^??~Yky}x4! z_p7{ylDn8SM}7tHLjz}F{JsEVNOBQJYF#QYFxWFazz(h3cKylN%JkE^Nm1FB!LpX+ zl#dtR?zOQjCgkg+kr8q zE#9tPP@ND^^$Q}~tajkc^;o`>x#GGjw%OIj!aiYFpwziaZV$}&;A=RGhdy^&u1SC_Q#rvN*G zCWR$&V7Z&i-f=D#XZs&)5rH1oifEKGTS0Vy0`nEM;pi{@@*>%NU@I4*LfKzFJ&hlt~gH|mS z#rp8qzosPsmxlEyVnmb&kAJ`;CbEk?sKwO)IPxU4lbI&wXEw`|_D=vD3>{YHY-;X4 z|FKLsxK*Cm=kn^vK}qmy%BN?V%=;HsiqG}P2G^g?=!Zhz2atls>g>Ag!TH>b?c0HS zImhsPSHb!156|Q-!5Aqz>Wk7XaRw>6f;x@^@+kAI^@z>GHr+rjBq07PI2YH})Yn!; zGz!Jpjwtw!V%^oub;5rmzmNd3WA-QOT|?;tQv&Qy?J_5S9SEc*J+#(@$Qu69EndUz z{|?F%&~n(t)?xMa?6-2sA zTDrSax;v!1yE~Nb?vxfO>6Y$pknU1a1f=dhKJPc*ojY^i8Acri8UAOVwSKkMHvKB4 zla*yvx*Kj%r9yDR7iE#PtvLz4qPLd?9LG;VZwkR&nz1EyX#Tr*?~#$j83@TiF6Go- z2vC*7BeWHgv-`h4zFxhO^wnN)1y;yXhYmU4>AHY<5&!8r;Q&D6w*ej?0c)Ki<&}JM zxqrojbE`VWKt{$w=B6;B4)U;N56wf4<>F_ZkJHoLAmbGFg6H)-ni?%u zg~5hNhCYy~x>43+B#G|Wz`_YU+tp^{PmPY|rgg6$o^JRYpC4B)fIabE9Viw>V*3eiRGkD{HDPsRl463~LSAYe+8y z{Z~+LC?RrTpV)}zItX5_;ENd;{8|8mJ-~j`{N9cPVsZ>eCZ?P^mYJ+tLbpXv58swQ zV_dc5w=*PbE?IxnEw>scZ#9S79Xt5GZ&fGohSEhbU+Js9O}X9%^M{Yjiflp-lqM~@ zf3PXq*CebwGSsZA;A^Ii4uLJ@-9c%hJ6I+#xv<8ikXPaBOtKj`dGK|ej{z{9c5~z6 zjk9f!U^(gXmy70G9#ymIR2ZLV1|b|=lIVXZI0++3<|xO!%)!XPIMX-tx{%PD%e!pV zk?4hkZBkk$?8FQu#t+9o3e_Ex?bP(C*%4Z*OB)^Sjc(eq$?9RzRVRJ)8e{T1rX9@0(aKQ=@Bv5H6?% zsQ7yx9e^K#;vSghq!$gCG*D;0IT%#V9j|vJl}$Q z09ggYUbRId(sviTNgwDVe`mS!#z9;MpvXqu?lCWyJDc z6nP!MiGfRyOdd^r4RjV>{LKp^;)fyzs1W3>HmN-a1zaWk;|3*0MSMtaHex+@!pc0$ zyJjPm67|cIy@lP%k1<3x;{gZ6#go0*h~iA}(6wEZV>WPD3C)wLcnz@9Mc!>F>qP{D z_O4a&-_oTaG)cw}>~JwwJFnb3esY6}Ge$=)+3#R5dZ2$)qp;6r)_U~(6>J7g5`}hs zt0xYa?4ae)ceU5}?%rBlS~{vmF*bJOGT!L&6}?SvgG3T4MW!DWcW^)~qF0LCESV!( zOsu6>N{rs*)UYW}}TEWjVl(#e@0O?% zOuY6OMO7S3cd@>|FDRb4#14!?_Dhaq1+@9@n_bWlVgU*&&c$J2fJBRKH!v8$_=GXg z=Ci%6g}@e@fUOt@ez3mFO<(Kyl@VL*@~id7Q$DZ)N>o<+oPZ#D`#^}e3)196aDZOL z6&}U3{&74@aUjE@O8;=&W_U=dy;X53&Thrs7=h{r`V2=l)Ntp)rr{hZ%))5tr>-7WmE=FeqmSb5It;EGG! zVLa>T%=G(}yS})L!$1~es)J`shR981a!-m+2B%M=E2YU81+|FkYmXf4BkFh>a;3i) zyo8I9jYA;UMfNrumyFy5%H6gwM3XG0XgO{D#;q||e_iNnz`Qz#KvYr2(dp5Fi$b10 zd!lt~dHL}T|Hi>R*7KP25zq1;#fwVqIibx&p06}Vfh4ejB%B}!gAOf>3Z1Y>|3NLO zb+oc!DV^b!n&ub7fD*NZ1lXu%%BrRp*><#d-cg;}l|NgvIeWJ5>T&64(M&?_U{DT{ z(X>=<>FDUtT8Lrsd1TB8*)w^kU5Z(sS5aY&1<-g4;QPC0Zmq3$2tFPX^iQaYP^ta- z+Yp()_{!#Y-LHMTCnM!v1Kd)|7=>ic`>ZT=8|Qci_uyE4x(FgS-nVC`)R+S9u7^sh zssu=wWw#eX&o1!#4w%Ko6hMoPBEI>_a-e5IlOeY?LqVsIN7Q#To91*;fHgnA=Xt-v z=d}5rj#2m9Ws$yB%5oG!*Vh~ClZxKn z|KY$&i8pp)dD$kAK5yq~J@V!wM%CLGr1tkJ)aka?D*HJ$mW*h*v&(M8K1|EkSfbqQ ziEptJuFfi#E0&x^)Q%cTmsHw~UBZT)&`2eJ}n!oCY7y`l^Q~cPJon7_(Eciu@~L$bKsMU$H_2 z*(U+}yvjX!+@&WP4#W6N_PNDbM;h>o3s=Cvk-|Yv!4f+*_IA6D31uKPhWPHag!n}4 zr>?QYZ4ECk8e*1SV+&1wq^P_tUBZ5$B!_+{(twN%Elu={zU_o18~RZ1hTGq*tuo5& zttuHby2E>;;$_u}Xq*JOvV+GGw?5Te@M%#|oEWW>4D_boEmj)sg0yoYCiisdt-Wf< zd?rZU@$sb2#cciH)pv&sFGfZq2=%JszZ_{OE5igCdDWPF=ghrINfC=%hNe=PHu;by zSe=c;1qF^mWmC!4h1d(jh>un`_Acv@A_oUJPJezvE9BsTms9uSD3*vxAv)Mo<^KEH zt+1&HN$9rw46H|D5-tAPOBS~pMJD+Nr{9AvL24Vpz!Qc_QNM?6(ig93{YUPJytW5v zf|u`kkYd*_WMEGbiKr&gE@st(@Ra7%Mga1p(6gjxhw|^=?At>Lk02qK^?7>k!24=J zjGQ%&?!(Xa_m`_J($KHisF|4hCvqg7Zf9m^!+)(H%x+ytz=a(!^BiIE$RMM%F$w!DJrU2vP8bYElev#)zC7MrA!kK1N$wpdGF#g~`E6VmC?D7-nZg1eL{%KI~G z+%CRq=PEBG#8X?WK@G7vJ6wgj)x08=MCA*q%)oUdO;ER%GGVl^v5YZW{Ap9q&b{+} z#fDH_(E_yThDGsUz|oToB{(;zVl2XeQvb?FRhFTn#wO7q+*>v@VK&*mxSl|cF04B( za*ilCLKUkeA|o#ajFVr6!6LdIdj$XwSj_Gd&cB{0*ALH^g-bbog;& z!>&j+ivce*a+||rS61a+HwOosb-uX2zRK+nmsst;XUrhKkB#?#^J#kP=hp^IGoYxA zNfmzt1!8Mj@|h3;0gnIoRL<>O>ADvCglm}^d>sEw9OPe*N`*p#-tf6}NaIUz^M@5m zc1D4hQt0_kbn0lgWxdFa44k&>Mak)n0PN1c^WtNZOxu4}_#AhK{8xP(P>zpjT{SDeJP+sh z(Y14Zlg-pZiMUT2HX-5aqlT-XE|?J^Up-~6Sa<$OMe-q~9CqwgTL+pcL~@H!~} zT?gfUHs!VV+h~c`uDoyMNJ0aon`JJvhRY_uYpg`K;Y?#6D)VScHtk zV8T?Y?^-s!No8jZW<(`-CWm#x)Or_1@RlxuFlPc4Ja+K36Ni5qOD_Bz4=38Qv{h44 zz2XILe(}J;3nvsxst#P@8xq{z?LIo%k*U=R5gi?g-$QHVM(muJk8X_MjB)u8j zGNSreygm4Muk%@HZr?L%abPMQ17d@#mclqaJ&@DVjyQro_xEqB)8UkU0_^Ghhp-E- zfGd6p3EkVxH$Gqm>5Xt@)#%oO10y)929L*Z{8wXHp2uZEgL)pnMy@ICxCIR`!%&1` zJ^4Q!ycrri^C-}dd9&UNE`MuC6C{`Q?30IsTXVqmgH?SQ!CnpBdcVS>E zAdS)CI}c18RbXu`dVPbH*Qec2P?d+rGt(q5n@>`YtcWEf*B-o_eOF@=&~VzQMQlVNCv9*v=|*8@v5v`=&Qr?qOay)*msltl6)bGw?po4jVDEcNxZ)zD~+^ zoH4YdroI8}204#uBueVhzsi3bd_D_B8hLjFeaK1C%nbS$HMtj5vQd;avsUOCgK~0O z;e+?a=Jt%C?+rD`lT8~q8auxo5GjheM!#J8TZc@m&d`a%{IXbqN{6(HzTPNePje!J zl}sjUE5yqG8Sz=Wv3WN$6Fvf0UNdeCb}pE7G&B_NZxx!2M0zkL;=~2o`p>q>`I(S= z#v9#ZFZ);b}V$*2w(5pY6xvHwG7ec0mK=cX9jM2ecb$3rDU#o}){ zvBr$QXyvPxjrASCBk0Lc$Ty(d9B6L~YdG5{4~VcVO5}%2AMQ45iIj|^@?^?I7Pw)M zMMgD564*6<9C{fV0aYCMpbJi`2o4E|i-nQ(4N~#uyyGV5rkIG;W>^g8z-t+(m|l93 zB>l2OAGuKZWlTvd^jj|2C>&xUcVo{bn#iWy+&^R~GWiu1(3DBW((P^^(ufENwP|ll z!5MeD{;EgrPw>|1U5X3?n$WtlEJE@~5310s)tj4#JLzmezqg?Ny%-o2P%1k9TiwucW^O6_u(S<<|jnNezdfi-96+QBHVb`@7x)t3Wypcex?R& z*Px2aV)opVl-u`~B{?l^`}SfICwl3|8#ct;>3EJLmRKkZNI#$CG-AGg*W>p7{Q{Zj zC;j0S$neVW{ZJ@cBWKXm3@`lt9Uefq{HCUcP3X0(5az%vzQI;zj=kQY@F)*zlULuX z7zrC47H3KD$`^)+&a39QS4gh0I?wI~JzmH=KgSo*XN; z2W%&7yBebKx!SmEL4RGu|FlLVv+-u@T4K{N`1UMkv>z@uWP3a@(N3xSWM*3R?E!R- z0&+v<{nL>v>ld}`!}Lr)F_tdzHm8lZ?oZAwBEGv>qgdOM4r7m~Lw#*dq!Nr(vegzF z#eeHn;XJBFuf3w-PJ-=Y<#Z36ohD*?!dWR_p>nEd_4%nLMT$+G3~d{~0+?rZRuB=% zEI1DQp0HD*Kn1iHeR6MGdkv#|cPLsqD_AkGv`5zooIjsDe4=o&#$XD;`q*1GlDiqZoo(r z({|0Ee-QXbGSBnwESC3Ki3ug(|uPUH*}IP&N!0vzthE81ROr1pDo-Nn!>Y&aH~ z(AqkZi8mLnd&y0}=WI#-cxJfIfUczp=P!pprxOlUqz>;CCDsUYLbU5G+sa4k2orb= zE4+kyeQGSFR$Zg%4Fj48DcV~$T)f8m*>7s$t(oyNM~DngzoAocRNyxhtsd2jzcL-} zVAgnjJ8R!ya?du6P@q4OJ}$~!i%GmLvlb5}s0gF@=|F?opjP+}oUvMw|KQ)yyHWWN z^Q^uGu%c)7bU2HPZR(8(Vv|@o`#L_hThJJ>Qt82GkhF%}cW^sRwS}V-eOCwTEU0 z0}S@eo|reenU`C?kA$-Y!C?Ic0a*CgBhSSFwmP>toplJ5^YTCaT}(S~s1^tV059PB z!}Dw6$HQM1_C zqv7bLqZxiB>SX&lOWaMCtUbhrhJCzy*SJ+ zE-bgcY>sWc1!`nQbA0$!zwZh(HBqUC=N2?BuX!|F=B$e+*_79HwtO1U!6yr|U(yG5 z%f)=aJs9^7eQc?p&{3(4i95!Y^tLc=*GhI46-7#xIn52l4sQVH{c?J(M?aW(D_X$3 zT2?%{p&>D<` z`jn+$G`dgbQUKifqaiQgFjL!=08?~(4H$&=Il+mHI!AuhJ~ z`OA+Y$_SN>M0iLTYzxBG4yf#v$G0X@-`_=#n@oHfTb|y7H}PF%h-{nOKOG8o3n55L zJL}t#Ub20eaG1~{7#q`)7EY957}z4)&}0)O6YVN6HbxJIBinA38LNdA<1*sH*V>xk zwC%PciC>;-`#VmhVhigJbbWk{gv8-F$k*z)sMmH5TB%mjRWvAVA3D8Xbv|8Fv_C&K zZ3a9|zJb@q^)BSUo;$m^u6}+MC+Lj}Rwl22O2}j3yBc)U`Aj@LQvliHv=KRDW@p$H z`1IrghV+DbPGSm5OVK1_e-1*Stk&;+r;89nFD$eNEO|yD5kppNx1*zy+wn7&&kbin z+c;i)?sG_0qN=Lk3z84RNP*%sveg|WCB6kGJC~O#)F}<^Y@}_B=5hG=DdG$w;r-j~ zhBJVK93ftj%7l?Yw+Xyx;u}K|PfNB9k{}COUX90=T-^c5i(?baW&&Nw-XVL zZu#-2LVrbP!gz*zd5#T`QX*ge4_>1+#o%Ezg3Z!4dnH-T)k^*(URiZu@|EYENsgs< zO1}@-Q1a!==lwS|tZZxuzC{%qlk$?aub8t^F$YR5vQo`i#%);>v#P3hZlwQc=6@Mq zfnk6ngxel43=}d-Q2HwXAF^*)_nMh43GJz7zvLV95PVpVh|%|eG;<3Rt5SU8vqNfE zZ`Zb7-~9U8S~-9jvk8|wrkCCyoFP$SX39qq>J|*#pMS%+x{7+yS0Fh-80iveZ8sl( zZWIF;C!o@3;+?EUWdJq(TDb-k1pL~vzUyWL;4nZ_TZP}&PGK{%)WJN1{i>e_mwiWr z-#F5g8f{44!>&Bo9RCahY63_j5OjA3>ES=%?{Wz}9uc1dvjY*(51)&c$+e7=@nQTb zU8l{Vguxn%xVMTzkHZB5apdUI?N5KH|K3k-?+!<$XX*6)YVrV|^Voc|p4wIib$F!U5GHQzc~Y0SyEcYy_On@v5eb zBwmbBHI3AWRf=(QipRzz#O^ZH-s=i&oo5f(&1}JTpB)@O*xn}1-!1b%ZR$Fyf7SjzFll`! z=QtWF7$rbKNsw!h$Vu+{+oZvkk&`ELKBl&{Rm2qLoh#TA|LkNX`ty5w-`BqD-g#lR zdoqk47TMG-elt4}=hbj=Q1AD3N9~QT&=;=CLsT-B1HjP=U;VG?7FZhfvu=@RoL@LA z&zFn)sK{|RG3Z7G70$jD<8E&cDs;70=3TR7X5aNQF=7yr%wizG>wM0x>aJ9}BZ*&ntqfuOGrX{j5J_OPH<0A%$0`d3fB=>62Z+pkyT>AFRDcu)&R*T5`8xeAEJOj~lAavz=K{ ztg)>hJt1atE1Y@xYYTkDq93yhMhy2O&Q^TO!Hqq<3~goe*Wv;EI%SL#1hgRy3|4tC znk}3Y=yAb$P%XXaHfBH>L02?~?qF-Tg2zzx?ofsf+TP6uYeQ=#PsAJWk)+3V?E?Z6JoKsi*90b}Ila z7Jw)Z1CLb?0I7f_5Ay^Zdn5olVhQh2?OTeya+LADqz^QHAerF4b?P?0ct@mIP+t!n6Cu6d^Wc#$Iu% zWte#rJuvWWjDf2HX+)S?i!6v46}$}YJKHVu$KHZHS>hgbyClXoBm{C;tw~js^{
ECyI1`hpR5& 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�OP^; z*;&d6V%Fie!L0QJ-GNgSozK=%dd4`DGnaq=rsL!!pcHofywsPFraVI$-gelV#8JTF za>An&RW)^6|3y}*wD_}GJIccNMffJK^u5+cnGy3bPEJlkW%~8R1&SN#CziYxz4%Xh zA|s0}1U-*m8Z;qlPKo2fk=%#0Fr z`c1>mKFF|kc6|Kt=TB-B6qMEJdUoxyCqWlyM;qrE25ho`=5?EgzffYHE>KKffQ0vR zp>i6B$w!3q*3|92-`^x{ZCS?34Q=+%nF>SJ6{kNN@QE-nVZfvz8rPkLG^pHoBi?evB~Q9oa6Jo!QCEe9|T7!&NF$BN7MJem??-FRheDiZol&O z-22AA`lEydq$LQZol+3qRf2trC6Srb%T$GRs%0G%Ex@} z9?iN5xU3W1zkgpTp1O+zgI2fY)jjt^?9K>wF_S7sU3I+H*4Ev%qO5hL&ZKD!a|yd> z(^}`R<{K%BgXb3)LsjOorADoHA`1&IL{r+HVupGlJgO*nW2pF9d;d6CC z0#DMS@NnrZx7GJ{A0Gh$0a9KcTs9hR9-dK#wQ0J-VKQ-X@kk26TkV&pCH*I`@Xr)Z z3IhX!gGqGiZW`|TbU_O0d#f>2oX~vTH;qm!xlStsDZDmG-Sshyw{8-%=px_($ET-e z9sbv2tDme|DZyB zsHaEv^lJ)=y}dmeI=cDg`N_F9A$F$;2-xay0hWlUXqEfH^RhwcIzSB#5BCRqEq1a* zSTrMn(t83qV25= z%7Xr?X=;AX`dMd3F66w5pr)p7IbAP#S6qyet!Mlsw@1@BvVz^Az;p%HNi>){0SGRW&*%{^|lvH#0k@1-76cv@6mzCGJa z!pX^5Szj+}VZl)MVipr2G)*D-_pz);g0PAEmWbJ`y;Bb zlvGi(cSjbZ1in4z2_RPynTMcLr7RvHeMW?Sm%gQm6-XYrX7^zXCO zbzQDF9POE5QgoqRW(|#vyDL0>GItY9zoqhqMn?xnL|_GDllj+J4PJZpLZ>!L@y8H2 zA_cwmzt+!e2(hc~rE+}6%iS_sCGF-q&53lJ{h{6SA+aZEtB&ykzjlBuxWMAaohw9{ z(>iA&%fC1=xR6n{@l(&8?HVhdqoh`*DAN*!6NE-Y&~@dZ`{_vR~ zjBtxnN*7Su*}y4aTuW20D<~*{|6^tzDxvsC1;_WdZ)>GMTF?S&)J z>Ss^>(g%N$2Sq&DZ`hHEBz*+W+Y1ItPE(V}M|^5uI*p3lQT5d1xfiXJT6aT(KtOqY zZQIM&qJMkom;U_f%zyu0A@6I0jcg268J&$v=K6L8FBkpi!==J>Z;gR0an+gG*&n|P zJYmM@qt9lXuXnphgCDi0?n~HKw7xGXp=bFL-_jx?mH|T%67gt**Ao8jB9F%3-@o_r;!NJulveQ7 zADXc6@P+nq?WZn-IlO;)N4-hId8h7`&)xS)onkfI!jRR{x?NRMLvQSJ!Q1!k8)F*3 z{auNiSWPXhHCw0sZ;~TU&!cAahp+h2Y$%Oa6^xVZZajn#MFG4@FL*x;1ef(NgE~A; z+sSWoBiyF{DC?|K_3z9450g%8Udx9r@vU`4w{L&Qw;E)$ z*j=EMQLJHI&v6txjkFQmU$ehIP2{xBk{rx@F!p4c-0MFYEY&u3`e3R}!%bYdN91%r zM0v8@!Fr-PQ%hSresk0I@03kN9PDHBYnMs09jh=__4M-UD>rPGQ&GVMeu22WiAi?& z3x{Xq$?u!(r&KwWkiP7+_Ga*LXKK>yWAV^J56&La;PnvKtmMB}Q|k?Ne``sa?d-fU zaFq`}KiNoUJ;f0i75$lXie8)8W8gACytPtN(WU^wu_^|w#jj667KfXYQgm_nZf