diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..aa856075bd9afab12099a4ac7ed40fa4f7976f84 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode/arduino.json +.vscode/c_cpp_properties.json diff --git a/Khomi-auto-4/.vscode/arduino.json b/Khomi-auto-4/.vscode/arduino.json new file mode 100644 index 0000000000000000000000000000000000000000..f6350b005c346579dd126d24603f1f81fdff8464 --- /dev/null +++ b/Khomi-auto-4/.vscode/arduino.json @@ -0,0 +1,5 @@ +{ + "board": "arduino:avr:uno", + "port": "COM3", + "sketch": "Khomi-auto-4.ino" +} \ No newline at end of file diff --git a/Khomi-auto-4/.vscode/c_cpp_properties.json b/Khomi-auto-4/.vscode/c_cpp_properties.json new file mode 100644 index 0000000000000000000000000000000000000000..c7bc7535bf5a80fd700ed3a393c818784b51c523 --- /dev/null +++ b/Khomi-auto-4/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "C:\\Program Files (x86)\\Arduino\\tools\\**", + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**" + ], + "forcedInclude": [ + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h" + ], + "intelliSenseMode": "msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Khomi-auto-4.ino b/Khomi-auto-4/Khomi-auto-4.ino similarity index 94% rename from Khomi-auto-4.ino rename to Khomi-auto-4/Khomi-auto-4.ino index 00ba6305f5a4b19c836de537779a2e4c9c717a1c..67a31a0b26c1ed8e86de70f78bb1dbd9fe27a53d 100644 --- a/Khomi-auto-4.ino +++ b/Khomi-auto-4/Khomi-auto-4.ino @@ -7,11 +7,13 @@ #include #include "RTClib.h" -#include +#include #include #include SoftwareSerial * gsm; +RTC_DS1307 rtc; + // Definition des pins des capteurs et actionneurs #define capteur_hum_sol A1 //capteur humidite sol a connecter sur le A0 #define pin_hum_sol 2 //connecter le + du capteur humidite sol @@ -32,7 +34,6 @@ byte etat = 0; bool etat_switch = false; -RTC_DS1307 rtc; char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7); // 0x27 is the I2C bus address for an unmodified backpack @@ -101,11 +102,11 @@ void setup () if (! rtc.isrunning()) { - //Serial.print("RTC is NOT running!"); + Serial.print("RTC is NOT running!"); } rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//auto update from computer time - //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// configurer manuellement l'heure + rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// configurer manuellement l'heure //////////////////////////////////////////////////////////////////////////////////////////////////////// } @@ -116,7 +117,7 @@ void loop () DateTime now = rtc.now(); //on lance le debug pour verifier si il ya pas de probleme - // Debug(); + Debug(); control(); affiche_lcd(); @@ -204,17 +205,17 @@ void arroser () { } } - while ((valeur_hum_sol > 500 ) && (reservoir_test() == true)); // tant que le sol est sec on arrose + while ((valeur_hum_sol > 500 ) && (reservoir_test() == true)); // tant que le sol est sec, on arrose - sms("Arrosage terminer avec succes"); + sms("Arrosage terminé avec succès"); } - if ((valeur_hum_sol < 500 ) || (reservoir_test() == false)) // si le sol est mouille + if ((valeur_hum_sol < 500 ) || (reservoir_test() == false)) // si le sol est mouillé { - digitalWrite(electrovanne, LOW); // on eteind l'electrovanne - digitalWrite(pompe, LOW); // on eteind la pompe - digitalWrite(pin_hum_sol, LOW); // on eteind le capteur + digitalWrite(electrovanne, LOW); // on éteint l'electrovanne + digitalWrite(pompe, LOW); // on éteint la pompe + digitalWrite(pin_hum_sol, LOW); // on éteint le capteur } @@ -356,4 +357,3 @@ void Debug() delay(1000); } - diff --git a/Libs/NewLiquidCrystal_lib/.hg/00changelog.i b/Libs/NewLiquidCrystal_lib/.hg/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..d3a8311050e54c57c5be7cfe169e60a95768812c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/00changelog.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/branch b/Libs/NewLiquidCrystal_lib/.hg/branch new file mode 100644 index 0000000000000000000000000000000000000000..d7025695e2fde1248b773bf4ba8e0a8862b18176 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/branch @@ -0,0 +1 @@ +release diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-base b/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-base new file mode 100644 index 0000000000000000000000000000000000000000..78ee4c1da9d7fab2f826d7e80f1ecbeb4aa0c228 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-base @@ -0,0 +1,7 @@ +15b98509b065b6630c997662c1b5816276a00de9 213 +714b1c6c35a1dc4507e6548185fafe30574ccd7e c 1wire +03bb450754353f6b46e6c323a012ec6be3d6756e c V 1.2.0 preparation +e2217964d397e3413a374affc22a45924c243972 o attiny85 +d6123d225ca2af9f7c0a8be3e7fe3ab768149bb6 o default +15b98509b065b6630c997662c1b5816276a00de9 o default +8d7b663c3bf3b5306cfc9d63b61347e3495a70ae c fastIO diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-served b/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-served new file mode 100644 index 0000000000000000000000000000000000000000..7115bbe303bf3fb557fef81aa6ff2ebaa58326bd --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/branch2-served @@ -0,0 +1,11 @@ +397a6f70352b85d1c85d64d6984f1c8e6dca1942 251 +714b1c6c35a1dc4507e6548185fafe30574ccd7e c 1wire +03bb450754353f6b46e6c323a012ec6be3d6756e c V 1.2.0 preparation +e2217964d397e3413a374affc22a45924c243972 o attiny85 +2e5fa69795e5cda21a055b6a03a384ff768ae940 c default +1c6123e9ee8b8eb29bd080738b69e9c0a0e54dff c default +377c6fb6374fe01a4fb791fa5b03a481bb041536 o esp32_support +8d7b663c3bf3b5306cfc9d63b61347e3495a70ae c fastIO +53cc92a7baa17c8153ef159ef9151055055729f6 o gpl_v3 +a82c858a30ea917a4d8f661e0e49d3cf3a146846 o integration +397a6f70352b85d1c85d64d6984f1c8e6dca1942 o release diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/checkisexec b/Libs/NewLiquidCrystal_lib/.hg/cache/checkisexec new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/checklink b/Libs/NewLiquidCrystal_lib/.hg/cache/checklink new file mode 100644 index 0000000000000000000000000000000000000000..326d735163a5b783fc939bb8f8a0031711158392 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/checklink @@ -0,0 +1 @@ +checklink-target \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/checklink-target b/Libs/NewLiquidCrystal_lib/.hg/cache/checklink-target new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/checknoexec b/Libs/NewLiquidCrystal_lib/.hg/cache/checknoexec new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/hgtagsfnodes1 b/Libs/NewLiquidCrystal_lib/.hg/cache/hgtagsfnodes1 new file mode 100644 index 0000000000000000000000000000000000000000..8cd73e492a0057454bbd2b8e8a62dfd4405166a6 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/hgtagsfnodes1 @@ -0,0 +1 @@ +{f8vhφ9a-x<=6VϨr_CFSkJsa-x<=6VϨr_CFS-a-x<=6VϨr_CFS,a-x<=6VϨr_CFS/.a-x<=6VϨr_CFS9zop2[^CaUF \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-names-v1 b/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-names-v1 new file mode 100644 index 0000000000000000000000000000000000000000..d01156ade8af4232d8184128fda2ba303435b983 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-names-v1 differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-revs-v1 b/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-revs-v1 new file mode 100644 index 0000000000000000000000000000000000000000..d89006c688b25c27e63021de91efec1b2f57b7cc Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/cache/rbc-revs-v1 differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/tags2 b/Libs/NewLiquidCrystal_lib/.hg/cache/tags2 new file mode 100644 index 0000000000000000000000000000000000000000..4011870b48c82f3ac5f53286dfbfcaeacf348bf1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/tags2 @@ -0,0 +1,45 @@ +243 5d9bf39daee07949f55b7ededc6b46093ca8d059 +2d9f7ad2f01edb29979f30b78add486b66b4112d 1.4.1 +66821a8054ea8dfacdad6c19397dbf93f6bd7fa5 V 1.0.2_RC1 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.0.7_RC1 +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +c57fe4cf1b3544f590ffb1cce38a1af03148cd89 V 1.1.3 +b0a1d4a24de12d4a323b3a8f7564ae282f1f9209 V 1.1.4 +070f1d90be5f7bd513a4c5663f429c39077c06ab V 1.1.5 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +82f18d4b8ebca14c59e0f8fc2fef075abb9a5d50 V 1.1.6 +981e5559fab2205d613d3c192a322e16f9a20fb2 V 1.1.7 +df4563d57b5cb8a6f534564f10a5d65935d8ef71 V 1.1.7 +1cf625ca9242d298a480c655d38ad964cd61ae61 V 1.2.0 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.2.0_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +9a1bd27980a539427b876c5bc9cf76a6e679df25 V 1.2.0_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +cdf9b4eb0556635c20da8273dfc1f3204864c0a0 V 1.2.0_RC1 +eac3d34ed9dd1bd80f57098ee563f57fa5df1586 V 1.2.1 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2299ac1b335bb99702ee345ea82f9fe8cbd809ef V 1.2.1_RC1 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2bbd1aad67c3ee1bda2fb8637618514100f49c7c V 1.2.1_RC1 +f3f7c8436a62c7f3d50ba8f7d5790cd4ede94210 V 1.2.1_RC2 +c5879ff3f2e5e0d2a0755022781406bc8045567a V 1.2.1_RC2 +488875877f5714d1e286d9a331e40abe57103efe V 1.2.1_RC3 +a4eb104f6dffbe58fc3fd96a5ef9736be5bd07a4 V 1.2.1_RC3 +83bc88dc5c5637bf982c9d8d3dee1e6d57d13bc4 V 1.2.1_RC4 +2e6269d8b2695bd8d33941c3afe09c61b555a26b V 1.2.1_RC4 +c0432608719bae3cdf60b0cb428181d36b25b945 V 1.2.2 +eab837be9770f9d3e004f26d299578d8cff9215b V 1.3.0 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +6e2da8cb3ba943fb281e6b9c2d18cf9ddd307c7d V 1.3.2 +59c60fbefe8d447b4ca705fff75a4a1894b1433a V 1.3.3 +144fddd7979d950c8aa34a15807265c5a69e34b1 V 1.3.4 +a68432d580ee2dc3f19bf1f8ae1b20afcb187b98 V 1.3.5 +e8a17589cb2fb187020fc92d38c377e4568c28a3 V-1.3.6 +5c7ee821a426e32c1505b4b071bd642fce15a7ea V-1.4.0 +a0910a053530c0a19bfbaa1144d1d3b90fcb5e3b V_1.2.1_RC5 diff --git a/Libs/NewLiquidCrystal_lib/.hg/cache/tags2-visible b/Libs/NewLiquidCrystal_lib/.hg/cache/tags2-visible new file mode 100644 index 0000000000000000000000000000000000000000..1a1e41318f6861c07270809c13c5f50a12c4c266 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/cache/tags2-visible @@ -0,0 +1,47 @@ +251 397a6f70352b85d1c85d64d6984f1c8e6dca1942 +2d9f7ad2f01edb29979f30b78add486b66b4112d 1.4.1 +fa4e70e2c290f994190e0ec901595ae1a8cc92cf 1.5.0 +bf2f2ee962645ac5ba6061a910f0d9f4ece926ba 1.5.1 +66821a8054ea8dfacdad6c19397dbf93f6bd7fa5 V 1.0.2_RC1 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.0.7_RC1 +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +c57fe4cf1b3544f590ffb1cce38a1af03148cd89 V 1.1.3 +b0a1d4a24de12d4a323b3a8f7564ae282f1f9209 V 1.1.4 +070f1d90be5f7bd513a4c5663f429c39077c06ab V 1.1.5 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +82f18d4b8ebca14c59e0f8fc2fef075abb9a5d50 V 1.1.6 +981e5559fab2205d613d3c192a322e16f9a20fb2 V 1.1.7 +df4563d57b5cb8a6f534564f10a5d65935d8ef71 V 1.1.7 +1cf625ca9242d298a480c655d38ad964cd61ae61 V 1.2.0 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.2.0_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +9a1bd27980a539427b876c5bc9cf76a6e679df25 V 1.2.0_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +cdf9b4eb0556635c20da8273dfc1f3204864c0a0 V 1.2.0_RC1 +eac3d34ed9dd1bd80f57098ee563f57fa5df1586 V 1.2.1 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2299ac1b335bb99702ee345ea82f9fe8cbd809ef V 1.2.1_RC1 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2bbd1aad67c3ee1bda2fb8637618514100f49c7c V 1.2.1_RC1 +f3f7c8436a62c7f3d50ba8f7d5790cd4ede94210 V 1.2.1_RC2 +c5879ff3f2e5e0d2a0755022781406bc8045567a V 1.2.1_RC2 +488875877f5714d1e286d9a331e40abe57103efe V 1.2.1_RC3 +a4eb104f6dffbe58fc3fd96a5ef9736be5bd07a4 V 1.2.1_RC3 +83bc88dc5c5637bf982c9d8d3dee1e6d57d13bc4 V 1.2.1_RC4 +2e6269d8b2695bd8d33941c3afe09c61b555a26b V 1.2.1_RC4 +c0432608719bae3cdf60b0cb428181d36b25b945 V 1.2.2 +eab837be9770f9d3e004f26d299578d8cff9215b V 1.3.0 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +6e2da8cb3ba943fb281e6b9c2d18cf9ddd307c7d V 1.3.2 +59c60fbefe8d447b4ca705fff75a4a1894b1433a V 1.3.3 +144fddd7979d950c8aa34a15807265c5a69e34b1 V 1.3.4 +a68432d580ee2dc3f19bf1f8ae1b20afcb187b98 V 1.3.5 +e8a17589cb2fb187020fc92d38c377e4568c28a3 V-1.3.6 +5c7ee821a426e32c1505b4b071bd642fce15a7ea V-1.4.0 +a0910a053530c0a19bfbaa1144d1d3b90fcb5e3b V_1.2.1_RC5 diff --git a/Libs/NewLiquidCrystal_lib/.hg/dirstate b/Libs/NewLiquidCrystal_lib/.hg/dirstate new file mode 100644 index 0000000000000000000000000000000000000000..d5a6cf7d154f490b672ad855a9ca1b2b60a41e85 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/dirstate differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/hgrc b/Libs/NewLiquidCrystal_lib/.hg/hgrc new file mode 100644 index 0000000000000000000000000000000000000000..45ff646b013197c07422ded1a5f7e6ef612c0f88 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/hgrc @@ -0,0 +1,14 @@ +# example repository config (see 'hg help config' for more info) +[paths] +default = https://fmalpartida@bitbucket.org/fmalpartida/new-liquidcrystal + +# path aliases to other clones of this repo in URLs or filesystem paths +# (see 'hg help config.paths' for more info) +# +# default:pushurl = ssh://jdoe@example.net/hg/jdoes-fork +# my-fork = ssh://jdoe@example.net/hg/jdoes-fork +# my-clone = /home/jdoe/jdoes-clone + +[ui] +# name and email (local to this repository, optional), e.g. +# username = Jane Doe diff --git a/Libs/NewLiquidCrystal_lib/.hg/last-message.txt b/Libs/NewLiquidCrystal_lib/.hg/last-message.txt new file mode 100644 index 0000000000000000000000000000000000000000..338aa3b81168999a2a13e20b8e6018eee5044762 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/last-message.txt @@ -0,0 +1 @@ +Added tag 1.5.1 for changeset bf2f2ee96264 \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/.hg/requires b/Libs/NewLiquidCrystal_lib/.hg/requires new file mode 100644 index 0000000000000000000000000000000000000000..64bcea1349a1b899fa9d7f5d234adcafd786fdb5 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/requires @@ -0,0 +1,5 @@ +dotencode +fncache +generaldelta +revlogv1 +store diff --git a/Libs/NewLiquidCrystal_lib/.hg/sourcetreeconfig b/Libs/NewLiquidCrystal_lib/.hg/sourcetreeconfig new file mode 100644 index 0000000000000000000000000000000000000000..89aa0b7e6c1d66096a9c7f2fa862690b46daf016 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/sourcetreeconfig @@ -0,0 +1,8 @@ +autorefresh=1 +savedIncoming=0 +lastUsedView=1 +savedOutgoing=0 +showBuildStatus=1 +disablerecursiveoperations=0 +lastCheckedRemotes=2019-04-28 18:31:22 +0000 +autorefreshremotes=1 diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/00changelog.i b/Libs/NewLiquidCrystal_lib/.hg/store/00changelog.i new file mode 100644 index 0000000000000000000000000000000000000000..d139c8058119bae8a4f2714254d060c464efe82d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/00changelog.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.d b/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.d new file mode 100644 index 0000000000000000000000000000000000000000..8d01e503fa61bfc8a92bf3e56f58115ab0e59282 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.d differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.i b/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.i new file mode 100644 index 0000000000000000000000000000000000000000..e170b398b993e7084953cf45801ac382223074bb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/00manifest.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..b568ac55e2f7bb8d7ee43f35238aad867ba002d5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.h.i new file mode 100644 index 0000000000000000000000000000000000000000..203c11358c100b03f539d9beb65c251b87e90191 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_fast_i_o.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..bad7170993c6aef04a05cce99858aa2052618dc1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.h.i new file mode 100644 index 0000000000000000000000000000000000000000..a1f215c40415189ef2d372f9af0d68c7936eff93 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_i2_c_i_o.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..2c7bd8de236803ae132dd768e5dd3c4208bf5856 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2c77039c73721ba0b3673316fbd882c693df8462 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_c_d.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_i_c_e_n_s_e.webarchive.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_i_c_e_n_s_e.webarchive.i new file mode 100644 index 0000000000000000000000000000000000000000..698c7361fc4d818d750b43459d711f9132c4d443 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_l_i_c_e_n_s_e.webarchive.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..67ee872b41831522e692a097e245c9362ac817b2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0d199d7504c3af51482602e85de0e1850beda6cf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..88cae3c63b2a96de8eee881786379812b31f9c09 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.h.i new file mode 100644 index 0000000000000000000000000000000000000000..adb8eb4c02e0390faa2e1106d9f3a5ab5f8e87ff Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal__4bit.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..ac55b62545409bdd000329ef1b552fb7db6b3772 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ac455f083f12bcab0d66315ebb8cdc92cea8ca73 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..69f13e93e439f1aa113ffe60da2c43db9874cb20 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4f9467b8e2540ceac2c7fb762705502312d087d8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___i2_c___by_vac.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..35f9bdf8bc6e078a5127318566e95a3164561d47 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.h.i new file mode 100644 index 0000000000000000000000000000000000000000..0e8e72d2ea0589fb3a1c8d611bde51d4b33a7a4c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_i2_c.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3f6043f60d5c5857fd78e87a759265e933e1f8d4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.h.i new file mode 100644 index 0000000000000000000000000000000000000000..6f2a3bcf6dc290cb93773d5fcee9eb9edba499a0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3fdaa04f4b6ca43674b0dd077c78a039116dd51f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.h.i new file mode 100644 index 0000000000000000000000000000000000000000..920dcbf9effb6f3867b57e0fdc0311ffa588f0e6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.sch.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.sch.i new file mode 100644 index 0000000000000000000000000000000000000000..b99110d53575c0ac77c6f9689ff8fcd229101bcf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1.sch.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3de48d599d986b75241e45159a1caa9d6a11648f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.h.i new file mode 100644 index 0000000000000000000000000000000000000000..53b5b72d62b528ce4afafdc9d56ee7d61eb2b495 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r1_w.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..10193864ffa5b7262a080f3910f2706c854523cf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.h.i new file mode 100644 index 0000000000000000000000000000000000000000..1f788ef39167947c6c30e500f6f20b3bd79d6d77 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r2_w.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..dd15ce7b29199a8f78445d3e6d5b2386edc47a57 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.h.i new file mode 100644 index 0000000000000000000000000000000000000000..358478f5b1e8aa3d012702ccaccb1193694a3337 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r3_w.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3b990961e0a820b79e06aacd054a1dde931034b9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.h.i new file mode 100644 index 0000000000000000000000000000000000000000..577b3c9c22865f3890865c9e1362e98848da3f36 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_liquid_crystal___s_r___l_c_d3.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_r_e_a_d_m_e.md.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_r_e_a_d_m_e.md.i new file mode 100644 index 0000000000000000000000000000000000000000..1c03685e9476db2205569199d50227b96ceb1db6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_r_e_a_d_m_e.md.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..18cd3188b5388b6bc09913047770d37c400c6c05 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.h.i new file mode 100644 index 0000000000000000000000000000000000000000..acef49f7f42c7503640a94eb57d8792774c001af Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_s_i2_c_i_o.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..0d778204653cd7ac1893db036e7c727c43e68b0e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.h.i new file mode 100644 index 0000000000000000000000000000000000000000..036d94b586f8b3ee565c816c5d153261a53021dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/_soft_i2_c_master.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/bitbucket-pipelines.yml.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/bitbucket-pipelines.yml.i new file mode 100644 index 0000000000000000000000000000000000000000..7790857488f0920ec975af4b778ba992a3854033 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/bitbucket-pipelines.yml.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/def/doxygen.def.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/def/doxygen.def.i new file mode 100644 index 0000000000000000000000000000000000000000..09b3ebe183c61eb9069e5be96beace6a08dce5f2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/def/doxygen.def.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/delay__x.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/delay__x.h.i new file mode 100644 index 0000000000000000000000000000000000000000..ddf587a7a7f7515f467811fdbd7702861991887d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/delay__x.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..de5b60e82291f9375251659bb79fd88f31d345dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c45911a54f2eaa4c0b9d98e3a7614107962f808c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8c00815f187eb5eacd5d016873b767ab4edf86c7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9c8750c790c305ac1052b6202600010617183dd8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__fast__i__o__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f6b46c6b0ee04423ed3ce57932f198a49c7a8429 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d16ffe54f6db839e080ffbbb1cc2454dd6ae3d7e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c0d279762af30b9fc2aa3f6e3483c078cc7f42d0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a89aec009d9c506e3b5659f55ce1387ed87d4a67 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__i2__c__i__o__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..75282a6c3a40517d62e5cb1edd20fa99aa2b11d3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..76ed6ebe82eb398335cd58f425a5d2fcc1c57f59 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f361aa369b2538cdf4297ae102fd07ae386d2788 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..11aa5de2029c907dc4f4b89760689ae532f6a24c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__l__c__d__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cd29ee26cd0155e72b47b783affbd011604ac52c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a583ee7844368c70b60713f604acd61c1855476f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5571665fa5cb36abbf2b3763c9980b892547afff Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ffec51666515f5bdd0c3f0aa0acbbdd5b1b545c7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7f83adf8caa2c752e53fd067bfc45ee4d9a7e569 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b9636785f65ef64ceac4269aec309e5dfd7e3060 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5908d3515b65e416d0206e54a520acc903e45813 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9735dff1ef9d96119a9caa28adcf8aa001c6533d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______i2__c__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2866f56c4eeb5b683cd63c41bc67872ee698d0a4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7ba723d50e808255760810593d109efdaab1c391 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..19860f42078ae4b4434f18bf65aa85141d071d4e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..be4879372927e2b99269b942c3f403bcc5f2990a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1c77a7097ed17d4c7ccd253af2f2e1a746c8d913 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4fc49c6ab2e26ea0e864da3d0a7607d4adf7055a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bf12b4617b68de8a1f9a2a8439a0086f6d5bdb59 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..12b02d45a2b11e80222420b25ce7b55a6c2014f8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..64916dede8345e08421e38defb2b20815d2209be Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5a68170ce1068b4567408b748193dd55ab499e15 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0754283eedb12d094a4eedc2b324ef823498a76a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3a12c4fdcb2d5616bb53ee229129c5e49ebc3199 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b7f39fdd71df41513d3707ed8d4685c26ee7d9e4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..820e481843e2fdb06ee4a6aff06c65d2d2688f15 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..66c02e2975ef611a01e54801f1cbcee51809e9f3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5ef2542d3c059a4655bb91cf7529cfd7bd1ec726 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/annotated.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/annotated.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ceaf6cb9182f612353a8ef8b66bae8b34c0aa25c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/annotated.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/bc__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/bc__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cfed1f81187b83661d4874207217187a383d42eb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/bc__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..80b13cd934ad72908c8bf3b59a2024c3045d395a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fdaeceb7bc325fef85b4518e324db84b42949d52 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__i2__c__i__o.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..45a658130cfe386678f9accd175faa8111a15c57 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d5aa6661af942d4fe939ccf857277802c8a4b2d9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.png.i new file mode 100644 index 0000000000000000000000000000000000000000..72aa1818effe3d57c01387a6dedc136a6bd7880b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__l__c__d.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c51b6c083f8c3cfef188b4e16d873197c53ef2b4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2e53731ee79349f7e36212ddb170cc1ad432434c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.png.i new file mode 100644 index 0000000000000000000000000000000000000000..03336a34450a3e5e6951e8adbee93865632ddf8b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8eab3a28a8e86b5d5d8df9c6f4546eaa0bd513ce Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9041a6f0e4851987a0a486eb5b8235279ffcc1dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i new file mode 100644 index 0000000000000000000000000000000000000000..fe8f2cb1c06f348989aefb6e50d92f4926689ce6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______i2__c.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b88270fd7f5e7fce18b95c9aaf96e24bc1bccfe0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5b58dfa3957ba949f54a8f2e0ad129d62243c018 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9cf3c3dcb0a054203ca5217b0c9dd20ee3227787 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..006d3e7440cb360a005e1db713352d25c70c1dd1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a296d6acf4f8faa51a6db4ebb9e94d14ac9f0dee Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cfd11c6ce1eb27c3a733671da96c077d45191697 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r2__w.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..480c51b9b7e387541071d33b40e5e56e39872a00 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..af6ce1bda90dc8a4bf9587a904f630ccab254026 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..48c9b79047586c9c356d5e3fcbb072ddcebca3c4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r3__w.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..99ad6e30aadfff01b84304d6ec289e9e5093737c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..aec6ae6e55df6cfc454c494cb18d2ff44569f59d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4bae70a415ab56bf76987f6712b5ec62c9f7d356 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/classes.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/classes.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e3dd0ce8bf59e994f2e88d9db9e95693150d4342 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/classes.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/closed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/closed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..326a3af2087e5335926795b008d6f99450bfb4d7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/closed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.css.i new file mode 100644 index 0000000000000000000000000000000000000000..9f5b197e77f82b5fae07c8e8fb2ea43b6ab07d61 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..7260e4b0105941c9ea16ff3c6e9e7d7fef2b633b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/doxygen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/files.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/files.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5d1c60fccb12f60c468d3c2c7ca123b0f312cac1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/files.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8282a0c118cfe04d72015b678bb879a1d33705dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__func.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a8d9cb7e2946fda6bf0b9726b472b9b799df7b17 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__func.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__vars.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__vars.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a489b66a1db3a3c4fbd234dd3779375581738c15 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/functions__vars.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8f4996520b56ca4a5abcbcb57a5596b236317d0c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__defs.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__defs.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e6d03e8c3821e24f8c94342c37ad4f6e53e8400f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__defs.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__enum.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__enum.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8b71a2516699f3faf10f79bbb7e501b68feee847 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__enum.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__eval.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__eval.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3adb60ccf4b2bf7c4982556c83f5ffdfb21b58aa Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__eval.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__func.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c512e9e84de2eb94b0ae81c17a42dad43721d856 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__func.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__type.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__type.html.i new file mode 100644 index 0000000000000000000000000000000000000000..dceadb64f5095351e05e753c39ce3251226c935c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/globals__type.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/hierarchy.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/hierarchy.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5b2685af06b0259fa71378dfac5f42c5061fb3d6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/hierarchy.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/index.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/index.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7994e4a2c726fd0abae848197f1086bc776995ea Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/index.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/installdox.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/installdox.i new file mode 100644 index 0000000000000000000000000000000000000000..39fac9132a657ce476436c9669f9a504e9e351c0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/installdox.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/jquery.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/jquery.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f1cfc8bfbde3f7e522ca10fcbed4cca6f1df9c74 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/jquery.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/logo_google.jpg.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/logo_google.jpg.i new file mode 100644 index 0000000000000000000000000000000000000000..98fd1cbb4eacc653afbd5093be45e2da174a9fbb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/logo_google.jpg.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__f.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__f.png.i new file mode 100644 index 0000000000000000000000000000000000000000..a193b56250ea1fecbdea97015a0b9c6081794fb7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__f.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e5d3c5599fc88604832d6345a488cc4e88c4726d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/nav__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/open.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/open.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b40b815e6c5e6f27e51f0d91a643a0c29ff03a80 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/open.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2c2075494c6ba4384a30bdfa67cdef105be369e0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3baec47ad64485bb01b9278549203eeeade360f4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bb60a796059f54d0f9025b5fc5d3d68b22b4c003 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..85f8208354bff718f5c3562b14d884ffaef8414b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5101b4522c5108ba9dc0dbb390189d4e6afc8ea9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f72538f423c3ae68c04861f1a75fc496546a7869 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..83953c05c4c10881839168b995a7870fa1a2dc8c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ffae34c6ae3c5a1da9c5a61c84693d82dd0edd4f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c698655f1f58a8b8df2d51e9cb877567546956d3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b5394b28b60dfd8dff113e1a406be6347892964c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..dfc8e01564bf8962bab369482d152dfc816ff775 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d2678a070d0437dcdbd6100038a17e469ca95bd4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..337bb5b60b421d9c474a1f9e44e8a9865dbc1cb2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__6f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..817a19424eeebe4d29d5e3bf867c9b7aecb2756a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..19b16ac61603d345244227ae41a86823f9b8afd9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1c610bda60679db33c2eb80523ca507daa487d82 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e996fc0d02df4a45154ea91b45a551d6a720fb70 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__77.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8aa929b69c1a8ac9128119c18e988471f2e02078 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/all__77.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..128ccd8fe6fbe81651d5ace4b680b48d58f1f756 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0659fadcd4f24674cdde5ba43bcbf67444a39638 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/classes__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/close.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/close.png.i new file mode 100644 index 0000000000000000000000000000000000000000..2ba7296411a3279f19d1ebc3821e9c734490eac1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/close.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d7b33d1ba21633e33b33643dbd2d11d43bb6129c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..104a6b8d0fbf804ef043ffa4d327e3a358635731 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..eeed10190781a4d11427a08400998a859679b4c6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..967d51a75eed95f556c4e21860e4e3393c66b92e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bd4d80584df61efe0e9ff32c45859444a165fa07 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f72538f423c3ae68c04861f1a75fc496546a7869 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..49f21ac90e2614199b3cec1b8ecf9203582e00f6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f0cfac3d8b2915e505bcae07b61a285719357e98 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4d00f989a4862e3b4876c322c5165bedec931dc4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fb07b95849470dfd30b7a3d0ae82a4f16add7e77 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bde0fa47e0743149517d4f0809c1823a12383a84 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..12f15a2a31ef9b2e6486e725da1250b664adce12 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/defines__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enums__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enums__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6404dd23d6062aba487f9a47d7106fd325567070 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enums__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2935bcce0d1fac313ab29b59ffadf2a136241b7d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3582258be5d899e3501fa901cc79010ac681f381 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/enumvalues__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5de3399f70d33fc3e5cd1628f9355c51a695a7db Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c6a9feda8395bf0f6c1cb7611758eee05c02cf28 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..51b957d7ffb106341e64d8cd2712cf3815e5a4be Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/files__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..aa04b9de5d61d0bea744a50aad7a29232ec7cb43 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c233f28254386647ce6af20257d8de1fc67804a1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7e766348f11287f54eef440121b4cac58c6cd2a7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d5bde82a40f25b15a893f144fcd95aaa7d314dfa Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c656c06533b51eba4e7e42232c93336adbc30eee Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fa47ca22d13f8cdd14a4c23ba5d5239ffb21c84b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..404f577cfb6f4e9e7515f59ec05fb3e915908267 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9d523bfe0145ee3d131c5027146bdbc825aa8977 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..09c6c38360da72ade08871b77741ae8de1dde2f7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..dfc8e01564bf8962bab369482d152dfc816ff775 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e0fb269043539c57b7b0b2663fef557df2147ad7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..337bb5b60b421d9c474a1f9e44e8a9865dbc1cb2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__6f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..233de5e3500d5b6b4e7bce318135ab3e0c1ca4e1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9f7658841cfb8315e4ad020bd3f1f5bdad2a7cef Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7df9b7b5dc6e7f91192629d662daf9a65b1beee1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__77.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8aa929b69c1a8ac9128119c18e988471f2e02078 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/functions__77.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/mag__sel.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/mag__sel.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9d02941b4249fc6dd94c09356d620e31960f5b80 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/mag__sel.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/nomatches.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/nomatches.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c5af58357b2b396e9df998af998e4e19bdf5c9d9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/nomatches.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.css.i new file mode 100644 index 0000000000000000000000000000000000000000..8455a9f7c5ff941e6f421d3e04aa9c594716b54c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.js.i new file mode 100644 index 0000000000000000000000000000000000000000..db903e81969541509a3bb817aefd54b4f2b52b4f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__l.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__l.png.i new file mode 100644 index 0000000000000000000000000000000000000000..783cf28aaaf19de626634019be70debf4c96d045 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__l.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__m.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__m.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0b773014510afd6d715e27d2f5aa7908398e4675 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__m.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__r.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..6609ebcf7d25df4eab177da0748963647312175c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/search__r.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/typedefs__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/typedefs__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..779e4dbfd1a537ee0a8375b8ced39b9edd335c25 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/typedefs__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/variables__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/variables__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..312d4bbeb26ebfa2f9a9187884590c2ed7a22ba6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/search/variables__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__a.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__a.png.i new file mode 100644 index 0000000000000000000000000000000000000000..ea93a872d8c98b8bd5902da3b33fed2b54a8accd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__a.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__b.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__b.png.i new file mode 100644 index 0000000000000000000000000000000000000000..93af5020580e866ed355395ea7e3db154a33a073 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__b.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..51944b7578f64dd53b6f358f2ad95fac05c4f220 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0ab6af81d2ba31ad55fde39d38bc3e245931550e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tab__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tabs.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tabs.css.i new file mode 100644 index 0000000000000000000000000000000000000000..665399a5e9a1f16d0ea57192013678d8bdfb25d8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/docs/html/tabs.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.d b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.d new file mode 100644 index 0000000000000000000000000000000000000000..a3ac6db5212dca7bca87dbc2ac940f787a722172 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.d differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.i new file mode 100644 index 0000000000000000000000000000000000000000..6b6d1325d688b01e0e664655b9891c5444f49de0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__entrydb__2806.tmp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__objdb__2806.tmp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__objdb__2806.tmp.i new file mode 100644 index 0000000000000000000000000000000000000000..d7be4b37715c2602365a37693f03c5744db97fd9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/doxygen__objdb__2806.tmp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..6674ea6b67bb936e3fdceccd3223057b2753490d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..aec17fb4f4a1c5ab32c143b376925014e1e133b8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__4bit/_hello_world__4bit.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..4f774a13ad6a685a0d0dd2a86c20ba0710515053 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..e504e465908c1366ae19376fff274162d9bf9bac Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r/_hello_world___s_r.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..0433b036aeda67e2e35dcbb356259060457929cb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..b546e2a386f6ab1ad24acec2653dc98c404c7f05 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world___s_r1/_hello_world___s_r1.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..d12b5be8f715be5e361c06f82ff58901d07d7388 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__by_vac/_hello_world__by_vac.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..848e67fe2027d09883a8099b94267717a9e77d7d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..d2ccc3500224a3bc5a882a16ea956c2009ce2b80 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__i2c/_hello_world__i2c.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__si2c/_hello_world__si2c.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__si2c/_hello_world__si2c.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..b241153ceaa19ee0cecf7460087bff3d1504c7a6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_hello_world__si2c/_hello_world__si2c.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..25318cb00e87bf1fd4ca79ee58f0368bf3844976 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e6c7f20fcd20eefe0f6e8e0b4efb5cf4d2847fb8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_l_c_di_speed/_l_c_di_speed.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..5a5dd20915de0518e5a4671e9d744ee3a6adba1e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..ef99e9cb1c77ab4c33aa365be30c675515f2c290 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/_serial_display/_serial_display.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..25650cf8e198af250cfa69be746e9b93c2b902d9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..9f5f609cc632504902eaa40c9cb8ccbbc6f51ceb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o/i2c_l_c_dextra_i_o.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..dc0b1a03ad52a6c7f0b4d35732b662074c9a70d0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/i2c_l_c_dextra_i_o__temp_leonardo/i2c_l_c_dextra_i_o__temp_leonardo.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..d1e953438e2c76c5f7a0d2843e811308a16452a9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..13e0391e9751f0a1dd38b36816134fbd06d64766 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/examples/performance_l_c_d/performance_l_c_d.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowdown.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowdown.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cc5ddccf6af6fd895610548b9abaafaa322f4230 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowdown.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowright.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowright.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9c93064bf2ae0086ce561efa9cd4a1505f781841 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/arrowright.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bc__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bc__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..1ee660715131c43e29e498ee54475354aa17d211 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bc__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bdwn.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bdwn.png.i new file mode 100644 index 0000000000000000000000000000000000000000..fe32dcc52abd6c69ba27edf1f5536bf7248ba291 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/bdwn.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/closed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/closed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..941a67c5c1d79ebaf4e65c063a68ff5e38ee04b3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/closed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doc.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doc.png.i new file mode 100644 index 0000000000000000000000000000000000000000..a5097cb46b4bb91e7679868b4bae09c5d5cbcf00 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doc.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.css.i new file mode 100644 index 0000000000000000000000000000000000000000..83d0b6dc2613ef02d2c631b82a2b3ef91303779e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..68da246730849ae9161af9c79c65b6336245b06b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/doxygen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/dynsections.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/dynsections.js.i new file mode 100644 index 0000000000000000000000000000000000000000..17322d54ad24b8cc31ccbe25b2ec968c4d5c2f75 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/dynsections.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderclosed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderclosed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..8783cdae66b5b288d028576d69533d78847b46ae Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderclosed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderopen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderopen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..bc53166a69d0e12237812e1ad74c041d3f8ee4fa Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/folderopen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/index.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/index.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3a7a4919afd567a90e43e3d8335fb252baad69f1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/index.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/jquery.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/jquery.js.i new file mode 100644 index 0000000000000000000000000000000000000000..2d52d40b9e63bcd5951b0c84bf2ce752408d00f2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/jquery.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__f.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__f.png.i new file mode 100644 index 0000000000000000000000000000000000000000..da93ec2d2a40f0fdfb523cebb155c08e1dbf96f9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__f.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__g.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__g.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e45e6bb1900640797d292e6ebe9f0797f93f94b3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__g.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..6b86086a579087ad2ac729b6661c489838b78500 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/nav__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/open.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/open.png.i new file mode 100644 index 0000000000000000000000000000000000000000..fce394b70a5fb57a3b8e8f6fa75170edd0cb4dd0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/open.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/close.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/close.png.i new file mode 100644 index 0000000000000000000000000000000000000000..9167af0d18f2d4198af50ce6b62226e067db2590 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/close.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/mag__sel.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/mag__sel.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d37110f284a3038e18289fc87b9b3cba5c40e7da Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/mag__sel.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/nomatches.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/nomatches.html.i new file mode 100644 index 0000000000000000000000000000000000000000..10326fdd56884408f6dc20254e9a8e3282bd831b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/nomatches.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.css.i new file mode 100644 index 0000000000000000000000000000000000000000..99c9af31e6bfdef64117e4d782ca44ea572b787c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f94b221166da79b19cd1cf851c8246e65f30afca Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__l.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__l.png.i new file mode 100644 index 0000000000000000000000000000000000000000..5c792c77331b7db853b375d892aa81cf9c7b2498 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__l.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__m.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__m.png.i new file mode 100644 index 0000000000000000000000000000000000000000..314867df95fe3597f5d10d2fab039069aa740162 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__m.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__r.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b33226d6362a1a111fef1a28ada00a3892797744 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/search__r.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/searchdata.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/searchdata.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d2ecec48d4159ad01fe7021c22fba1afed83db4a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/search/searchdata.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/splitbar.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/splitbar.png.i new file mode 100644 index 0000000000000000000000000000000000000000..f0fceabe705571bb1c7dd7030b09658926bf2946 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/splitbar.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__off.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__off.png.i new file mode 100644 index 0000000000000000000000000000000000000000..cb3d14ebcf0edd10dd17d422fc379fb66a14fe94 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__off.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__on.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__on.png.i new file mode 100644 index 0000000000000000000000000000000000000000..25161f0a8477e24513f767d8f65ed4d54254df1e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/sync__on.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__a.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__a.png.i new file mode 100644 index 0000000000000000000000000000000000000000..99433525aeb3b3f12346cc915d5180a9a4407d48 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__a.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__b.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__b.png.i new file mode 100644 index 0000000000000000000000000000000000000000..c923ade1efa24a6e885e504f39e43e7232c1178b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__b.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e83866b8f510f814661cfd5e070305082aa48d83 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..c6ae5ad7fa8202d5d99a2ed7334382a3f6c25239 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tab__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tabs.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tabs.css.i new file mode 100644 index 0000000000000000000000000000000000000000..2757843fd3e04a05cd0b9f49290108e0799b5deb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/html/tabs.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/keywords.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/keywords.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..ce54d45747825b3737385048463d7b4d586d1108 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/keywords.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/library.json.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/library.json.i new file mode 100644 index 0000000000000000000000000000000000000000..c9d4f0737b28d087c071bc3d25fd80bfe57cccf0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/library.json.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i new file mode 100644 index 0000000000000000000000000000000000000000..a1901cef9c15279501be32443d7e1781934498f9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_r_e_a_d_m_e.md.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..0d778204653cd7ac1893db036e7c727c43e68b0e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.h.i new file mode 100644 index 0000000000000000000000000000000000000000..9947e1f4a70e8f5b34be807bddcbfeb5d702cfca Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..9fed756d96274480126865d46c7773e62388b30c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..bbfad1502f4a1a87e65047b3a12ab308f8dd2708 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_b_m_a020_soft/_b_m_a020_soft.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_eeprom24_a_a1024_soft/_eeprom24_a_a1024_soft.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_eeprom24_a_a1024_soft/_eeprom24_a_a1024_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..e6188889c18d270bac9cca4e149fbd41d11fa3c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_eeprom24_a_a1024_soft/_eeprom24_a_a1024_soft.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..b2964af77e600b165207fa9bc3cfc8b4dabf9f63 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_i2_c_scan_soft/_i2_c_scan_soft.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..a11e23c60fe2797c6ca6bc57354e31be0c7a305f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_m_l_x90614_soft/_m_l_x90614_soft.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.h.i new file mode 100644 index 0000000000000000000000000000000000000000..884f6a41fd2c74335d8e1fd768f4d748f57a2eb8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..6d1df66ebb56e5ab4a974b00db50b48bd90b5284 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/_t_s_l2561_soft/_t_s_l2561_soft.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/stretch_test/stretch_test.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/stretch_test/stretch_test.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..9f78fa0296ef71178e9f42494e1f8c7d0051928d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/examples/stretch_test/stretch_test.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/license.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/license.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..cf72932cced7e552b0d6cd4324f83808dc90ffef Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master/license.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..b26de50fcbaa7661d72a920f606961791e4a753f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i new file mode 100644 index 0000000000000000000000000000000000000000..4589f9eea3dfeaca5b771ce99080b3478be3e1e7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..b9e49665f1bbf512ddf35277255bac11e96d9c7c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_soft_i2_c_master__/_soft_i2_c_master___l_i_c_e_n_s_e.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_r_e_a_d_m_e.md.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_r_e_a_d_m_e.md.i new file mode 100644 index 0000000000000000000000000000000000000000..8a97a6591cfc7de2e348cc1291a2b4d3130a6a68 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_r_e_a_d_m_e.md.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..3163cea9cb3662fb6d703bb8f7ce5de85bfb4645 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.h.i new file mode 100644 index 0000000000000000000000000000000000000000..2499ad1005c6980d5d8d95fa05c1549844514d6f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_tiny_wire_m.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.cpp.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.cpp.i new file mode 100644 index 0000000000000000000000000000000000000000..b625dcfed6dba902a45eb5113de699188baf970d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.cpp.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.h.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.h.i new file mode 100644 index 0000000000000000000000000000000000000000..26a2a1e085d96f4538354c79a987790a1db60098 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/_u_s_i___t_w_i___master.h.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_a_t24___e_e_p_r_o_m/_a_t24___e_e_p_r_o_m.ino.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_a_t24___e_e_p_r_o_m/_a_t24___e_e_p_r_o_m.ino.i new file mode 100644 index 0000000000000000000000000000000000000000..9e05d103a6d8beff51120567d1883f338c1624fe Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_a_t24___e_e_p_r_o_m/_a_t24___e_e_p_r_o_m.ino.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp/_tiny85___temp.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp/_tiny85___temp.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..039a67325e4f75a3c8286427a9a408f595ec6495 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp/_tiny85___temp.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d/_tiny85___temp___l_c_d.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d/_tiny85___temp___l_c_d.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..8800aa7218285b3821c53ff9ab5c0bd577eb99c5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d/_tiny85___temp___l_c_d.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d___r_t_c/_tiny85___temp___l_c_d___r_t_c.pde.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d___r_t_c/_tiny85___temp___l_c_d___r_t_c.pde.i new file mode 100644 index 0000000000000000000000000000000000000000..1916b62988fc2fbd7d1ff0d6bf7fe76b479357f7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/examples/_tiny85___temp___l_c_d___r_t_c/_tiny85___temp___l_c_d___r_t_c.pde.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/keywords.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/keywords.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..e3374c35f06c4758779e244d9ddc266f4c01e0d3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/keywords.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/library.properties.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/library.properties.i new file mode 100644 index 0000000000000000000000000000000000000000..b2cd08791b358fa462c0c352dfcee58e211ec702 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/thirdparty libraries/_tiny_wire_m/library.properties.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/_doxyfile.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/_doxyfile.i new file mode 100644 index 0000000000000000000000000000000000000000..7f41efb97424800887cc61096df7e00855165a57 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/_doxyfile.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.i new file mode 100644 index 0000000000000000000000000000000000000000..ca809d73ad3fe8f82ab4d4c6853464d433f4fed7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.txt.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.txt.i new file mode 100644 index 0000000000000000000000000000000000000000..394d0bf61b0e87dbe26e065f58b8658b6a79e0a3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/def/doxygen.def.txt.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0668768c2ecaddf344e0731faaf1c70659d5b594 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e282b9d2997cc8eece66e42d49e8ff6986923ea6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f2ca5f7812073949d08406c77a16816654902923 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f72748e0526be20afdb990654b82d8044e3e7f34 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__fast__i__o__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..28f64e698d3f4ad7d73d76e95617c973471903cd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..16c4cb5b284c5460f677ed5b782e106a11385cbc Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..11492ce3bfe10ea28ca66166d6d7c4bf5b49bcf0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f6f5fac8db20b4509706aec162a44323f80231d0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__i2__c__i__o__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..088db6f7bc34888b65845521c3284c627ba852ce Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..96f9a151fea49b8c364fe47ef9d283a7c4e91340 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a74e1e50e6ac992232132b3b332bf8786689e087 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..40071958c14d35075857e37818191e3456181984 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__l__c__d__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b41b227432e2789b500603b15a1fa6d5dd9637eb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b0d469ae7960ca222a2dc90a4f0004c37d42ba2e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6ac02d0c585f7e1042e864b9b9c8d245b2b7c1e7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6aa7bd8cdf82e6d0c391713513bb337ba1223739 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0ede3337f6bf0fcdfb1cb163f135e7ab451efd0e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..228db6f1b3e1da38621d8d155db155b2a2524289 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..46f229541d270a15e6c43ee8f039bf5f87df13d6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0fc300f49c1289998b6a2c79177280ea2c8d0ca9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..49ebf79b019589df6b140ce31a90aef66eec182a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f429dfd8d2b5c0354ba9032b436e15af7533526b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..583c39328ab2f0155b5e43e0e7d1cc2313bd6c15 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fe9571ca196465ee9139012c567ceee3655503fe Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______i2__c______by__vac__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..be5fdb1ec39e65f3870ed532123ecce1b492023a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__i2__c__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..205f0a57117233a8e779da16eb05b9c98bfb209e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c504c9a9b18cf12fb3fb9991b0b2be48766c60a0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..da7d5d7f86b847c614269931d12ce9f1bc5623bb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6cd4b04cb68a26e464ae1719fc08fd86d16e1b2b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r1__w__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ba9a3660a68101f9252258dc7aa29053462fd8d4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..afab2f964841b12c104dd0d4e5e80e1d45f60be2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ef3ae0fa78e5c9f9f912c201ede6e30844f89fd7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..efc9095f8aefc5a4617f966d3744b24be68d46c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r2__w__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2110ad10aaff9fc62ade7a00c076780447a4e6c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8352829ed4111055769af21c82307bf817342375 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..12a854c6588fe29eb1613f6f79854befd38a3cdb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2488eff884ccfad2bb0003b76837dbd93ee00e8d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r3__w__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..27de2bc21920840a9cec18403578efde4e80d925 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7549564dd52f2c95a0536ee18e99585cd62e3b7c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fd14a0ca06edb0ac222d3a72b5e31df57534f8f9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..03852b2ca841b523c2b2296503c012b611d5e3e6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3c8ef11bdfa9797ac950a5fc3ed7b660f4f9d620 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1cdecec118cbbf73483736195e286c102b97e956 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8cpp__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6167d4644a898054402278b4df9ca68dcc337bc3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a578a5da71511ad11a83f507c473ed70764f32dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__liquid__crystal______s__r______l__c__d3__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..59a1129e49ce6806c062578629a69e45e5b72896 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__s__i2__c__i__o__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1e1197b4b6167c4d30c03f6db9339c824284ea27 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/__soft__i2__c__master__8h__source.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fb728a843b872ef4479fcf997e87bc7e3026239d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated__dup.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated__dup.js.i new file mode 100644 index 0000000000000000000000000000000000000000..001a1b42bbd029fd74c0e785f538b860b2621bf7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/annotated__dup.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowdown.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowdown.png.i new file mode 100644 index 0000000000000000000000000000000000000000..2b0e68a7b6b3ef7e5a5ffa7769e37b1099ea9d1d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowdown.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowright.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowright.png.i new file mode 100644 index 0000000000000000000000000000000000000000..f486d9df7b2e37bc7280cb08123e774cb387f772 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/arrowright.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bc__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bc__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..aba9565be22005acc814dd1e78dfb2207d2f286c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bc__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bdwn.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bdwn.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0e1ace8f3dd2696e5de1aacf5dbc5237ab68b4e3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/bdwn.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ee5d31984e64ca3ddbbf70cf26542e8e3caecd69 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b2641c6fd9c5f80fcb32bb2787a294f71fc31806 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.js.i new file mode 100644 index 0000000000000000000000000000000000000000..adbcc2037da3b967eae266442c3718dc3e606771 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__i2__c__i__o.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cd0eeab9d83c74349481b26397ba0c60a945fc32 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f4055b511b22a51bf44f5798e75e2089294ed180 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..242ce2212fbd3d9c61d2e0920c2df3c039420731 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e708d598865df6a50b7ae63f91e077625aee3711 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__l__c__d.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..85041fadbfce629459370b0b2d9450757b139da3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d4d1e9f9bc229b532dddad7038fd2afc13ba3d4e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.js.i new file mode 100644 index 0000000000000000000000000000000000000000..474d49f744f2de29c5c903d1645e2420aa85d7a7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i new file mode 100644 index 0000000000000000000000000000000000000000..eb2494dd189e4699584ca6a6779370ffec3c2970 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d54f166162d8df04775b75cb6a8b7bc359784bc4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5980160d1da611ad08d8df287e82329d80e29f97 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..b6b18138dfdec1aa2f94ef728b61602eb17f5af9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i new file mode 100644 index 0000000000000000000000000000000000000000..7baefe909f9155c348499727f5925447e1b29bf5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8e54bca210cce9e02c592950501c04994ac61a24 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3abc4c91ac0d21a4c12e18417f3eabdb454bd73e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i new file mode 100644 index 0000000000000000000000000000000000000000..efda4b63bae8d2664dd0c8594518b396dd9b645b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i new file mode 100644 index 0000000000000000000000000000000000000000..c12eb1abcab0a4de9d620a4c6b3124b28449e09d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______i2__c______by__vac.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5e85aa62fd3503f6d5c26d249b4cbea9b7c8e004 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..00ae106ae80962f2184df61fcc661084fc27cf4a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..fb6e9259b265f68b43e108bd77ac85ce478faa40 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.png.i new file mode 100644 index 0000000000000000000000000000000000000000..f550077b2012a3ccafe3fa99ed5c6b1d836a5fc1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__i2__c.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..42ad6d29839fe58ef7e1e0e4e72c3c3fa1785f73 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4508fac4bbb752bf7a523aa71241d1e944fee404 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.js.i new file mode 100644 index 0000000000000000000000000000000000000000..2abdf071ce04f57bb82b8291b85a2934ae01788b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..02d3e446e91ef53ff71d7af50bb624bfe863f6d1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5faa7ebcfe1fa00de940d6faa45bb70209f21d02 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..efaf7e62185e89dab04b1acca13c1140c7cec315 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.js.i new file mode 100644 index 0000000000000000000000000000000000000000..61fe031978afb5b2682a10881d2ad3352f464d67 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..28c1136d7c80e6c4758a8022d9eab3a8e0ac9ca2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r1__w.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7f9efd5dfbcdaf716de89b915fcd779f20977585 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b8c61b352f5fd599c810c19c0ce0aff5e3a51646 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i new file mode 100644 index 0000000000000000000000000000000000000000..67c7ab71acbe1db17ad8f8e0ce2de86fe6121016 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..5ae5c2b98caf9f9d2d69752ea9fcdc2eaf6f2609 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r2__w.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f86df0bc0ad85f46e928565b95905ec52d869e54 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3aa4352fbc6279684bdc1b314d10e44286ab9570 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i new file mode 100644 index 0000000000000000000000000000000000000000..46275284a88aab91cc595cac6017f49574509e34 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i new file mode 100644 index 0000000000000000000000000000000000000000..539e2143497dd9b6cc825430cdf002d20793b571 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r3__w.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d63b7d897d3a9da0e8245e69626e44db6a53a744 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1b37a471a831152d5119eb7759ed9f29494ff9bb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b3aa8f2bb7f8748190077cd68d55306fe2a5ade8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__liquid__crystal______s__r______l__c__d3.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f8e8ccee478c7325896d35b4a3f51d0ad6f34835 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6d1a49bb23713090674dbf8924ed8b05eef0d451 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i new file mode 100644 index 0000000000000000000000000000000000000000..097bcde7b8546272e8cfefa61d60915f19ea130b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__s__i2__c__i__o.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2fb71d864c36e867889548584062577564738397 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master-members.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8f6308f878d38ded73b8537e800df3a1b59360a3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.js.i new file mode 100644 index 0000000000000000000000000000000000000000..be48ecb1d248466a026599d17ffdb9da47595592 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/class__soft__i2__c__master.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/classes.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/classes.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6ba43c4cc1d0c9ea6b2434f1b2894e6e6aaa052a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/classes.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/closed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/closed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..f9eb72d2dc3447493489c59698e360fc84beb0b4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/closed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doc.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doc.png.i new file mode 100644 index 0000000000000000000000000000000000000000..bb36a17bd46511073f47229a686279c6dc9083d1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doc.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.css.i new file mode 100644 index 0000000000000000000000000000000000000000..f38e85403e46d70541f234149838622fe05b2f2b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b2e40e2d5f4b4d14739f81b5fca691db8b8250ca Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/doxygen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/dynsections.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/dynsections.js.i new file mode 100644 index 0000000000000000000000000000000000000000..bd737c47bf130f8a6fb8a93227d1850206129e5a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/dynsections.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0603f8b27d8dc98566550fc704b48ba44823ea91 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.js.i new file mode 100644 index 0000000000000000000000000000000000000000..db8c65b1942830d669ec4739bb7032f7160d8c57 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/files.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderclosed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderclosed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..1da0237fb0203f58bacd525bc2fb441d0be72431 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderclosed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderopen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderopen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..69d65934c1e2f79ac0d091784cddb0f0ecc104c2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/folderopen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2blank.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2blank.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0777593c06650ab9ef1105b13c84402c26800d8e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2blank.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2doc.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2doc.png.i new file mode 100644 index 0000000000000000000000000000000000000000..58d84664d2856cd584657d32457b472e592919f4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2doc.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderclosed.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderclosed.png.i new file mode 100644 index 0000000000000000000000000000000000000000..f365af55514c6b39012e015ad448190b1eb26a74 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderclosed.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderopen.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderopen.png.i new file mode 100644 index 0000000000000000000000000000000000000000..160a730087dc63828603ccc7f71cb0c45f2b2f78 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2folderopen.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2lastnode.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2lastnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0777593c06650ab9ef1105b13c84402c26800d8e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2lastnode.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2link.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2link.png.i new file mode 100644 index 0000000000000000000000000000000000000000..58d84664d2856cd584657d32457b472e592919f4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2link.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mlastnode.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mlastnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b6eee9ae16eaa7d775f80e27a0aa5a2ec5cc5d74 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mlastnode.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mnode.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b6eee9ae16eaa7d775f80e27a0aa5a2ec5cc5d74 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2mnode.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2node.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2node.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0777593c06650ab9ef1105b13c84402c26800d8e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2node.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2plastnode.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2plastnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d0bb5cc1b84a98cf93e9cf14e45b18e63790dcaa Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2plastnode.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2pnode.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2pnode.png.i new file mode 100644 index 0000000000000000000000000000000000000000..d0bb5cc1b84a98cf93e9cf14e45b18e63790dcaa Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2pnode.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2splitbar.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2splitbar.png.i new file mode 100644 index 0000000000000000000000000000000000000000..2a88c165a85eba353a43a7d0bd700f4e3195fcc2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2splitbar.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2vertline.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2vertline.png.i new file mode 100644 index 0000000000000000000000000000000000000000..0777593c06650ab9ef1105b13c84402c26800d8e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/ftv2vertline.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bdbd34756e1a088159cf723da93e613573408df0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__func.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fb13f1f7f12747fbcf1b03c7035c0cae76c10d75 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__func.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__vars.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__vars.html.i new file mode 100644 index 0000000000000000000000000000000000000000..910a574f24af3fb1dfcd5c6e6861996809c05108 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/functions__vars.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c2d7507776b001e3bb7b5a2c476806e07ada58b1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__defs.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__defs.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f400ebafa76f35d02489e9bc31243ac74142fd5b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__defs.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__enum.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__enum.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fa9ca329124505ec493757868227d2d72ed8132e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__enum.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__eval.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__eval.html.i new file mode 100644 index 0000000000000000000000000000000000000000..0c9d4287bbd3a0ef3a76101176a221b0cba10951 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__eval.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__func.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__func.html.i new file mode 100644 index 0000000000000000000000000000000000000000..392eecda6a4a84792358b00bfe6382d5debdb65b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__func.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__type.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__type.html.i new file mode 100644 index 0000000000000000000000000000000000000000..99d05249d19e6a15bb864a266365659d76f33ec0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/globals__type.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a393d7035e04c5b99f3543799b1f2afa5b21243c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.js.i new file mode 100644 index 0000000000000000000000000000000000000000..ec259315a1b9c558da895179fbb25f65d3861cbf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/hierarchy.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/index.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/index.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b873c63ecaacf0eddca44697b15ccd3c50c7bd23 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/index.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/installdox.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/installdox.i new file mode 100644 index 0000000000000000000000000000000000000000..5941b610a7454b745c30fbff1482fb5a1aac0fdf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/installdox.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/jquery.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/jquery.js.i new file mode 100644 index 0000000000000000000000000000000000000000..412981c7a0a9ba8f6b199c9817a859c1fc8bb8f6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/jquery.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/logo_google.jpg.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/logo_google.jpg.i new file mode 100644 index 0000000000000000000000000000000000000000..3b18358445d6057be074c64bcc94ac97ee46cba6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/logo_google.jpg.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__f.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__f.png.i new file mode 100644 index 0000000000000000000000000000000000000000..742e1c1e36a2561fe840966bbca8cc2dbe7a4b76 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__f.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__g.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__g.png.i new file mode 100644 index 0000000000000000000000000000000000000000..62343dbcc7acc6c76ab80c67549b6a876650359d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__g.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..031399281a3695e3dbb68ca2fc5319040d636515 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/nav__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.css.i new file mode 100644 index 0000000000000000000000000000000000000000..f47c585531f9aafe13befecfe82334fefe36ce50 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.js.i new file mode 100644 index 0000000000000000000000000000000000000000..2648654b8103e09c9031ebd51260de7c830c2a3e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtree.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreedata.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreedata.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f5a544f891e4f5802873e68236655ae5a1c3b1f4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreedata.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreeindex0.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreeindex0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d0cd4e11471adf874f4ce87c51531b0fdd708bf9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/navtreeindex0.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/open.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/open.png.i new file mode 100644 index 0000000000000000000000000000000000000000..aae5c095c696428c59dcb947484aca66e6da6a9a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/open.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/pages.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/pages.html.i new file mode 100644 index 0000000000000000000000000000000000000000..345c7cfc4cb4f34247c971361f5e99d335a331fb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/pages.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/resize.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/resize.js.i new file mode 100644 index 0000000000000000000000000000000000000000..635b6c93352ebb13a1e0e35f05adf9ba1d5ff565 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/resize.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.html.i new file mode 100644 index 0000000000000000000000000000000000000000..eb001d4e9ebf487e8716d78a2ad73944170990e7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..5fdf4ed12354139ac0108a40077c0b13b6d5deb1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__0.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8aa034cc9c10d234c0de7a4e163ef071756f1259 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.js.i new file mode 100644 index 0000000000000000000000000000000000000000..e0cde56bd94595fdb5a8c872c0e06041318a4158 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__1.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3550042c8036a47fcbd465d340f8337bce096a1d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f358054ee1928b640d4e9b66b15a6d16703013b7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__2.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c2b6cf4eb0c9490e7b06c9d643259c95b93abac8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.js.i new file mode 100644 index 0000000000000000000000000000000000000000..bfc60739b29ce2b22b4efc1b1b1877935e8715cd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__3.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d13a55d9ab420ab49f8fe818b90af920c6af0073 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.js.i new file mode 100644 index 0000000000000000000000000000000000000000..145705abf0a7ccf28d9fdb015d983075e6c29ab2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__4.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a343661ccaaa416445d1b8517bc7edbdaa2bf312 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d9f9e620f47ad7b14398e6b25693570da2c22788 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e7910e5443b7aacb9081bf393dc0b0ca38b319ef Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6750dcb19061d54efafcd3f1c487a78d6857dba9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.js.i new file mode 100644 index 0000000000000000000000000000000000000000..dfff55e3a895c7b275f9726b02112a3223735895 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f04476e92acb0da80216bbb836e69397f73637fd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a7f76db68996ea8212f784246821745b20a4741c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c452c1a961146d6f72b0d8dffc5e753dfd56a2a0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ce2cb6b9fbd232da6ef405baca4f38ba4e2fe9e2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3351889d18a90e718eb498b3b3aa86c14ea0f3dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2a9df7030a6d47156507d106ae75453ff52bc18e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2034a5021b8a9e8cd35c05bfe7851a91f02f3dcb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2806dcc3a6a0b1b18ce93756d040c330461531d1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f36fcf8c6cbc7b7548da15061cf0b2abe373b5f7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2a7afb438ca81ef9f9874ebf026e7a4709e4d9c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..91179377dbcddfc309149a4f3a770ef0670975c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cc1344c433708089ac9f74350e5824f041cf19e8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__6f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c178d4e4a291ac744f3d85144ca136995a02a16d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.js.i new file mode 100644 index 0000000000000000000000000000000000000000..fe06c0a63779f6f6f0d35b71d1f06931b912d976 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__7.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..330cacf9e4fcdf1904a75c09d1ce095009aae406 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..b70672181373d2084039a29fb3069db193c1e218 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2f55cea66c83c09218c9448d06c1ff66d980f676 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f8e021dfa7beef4684005e4fc21cb5e415a84dde Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__77.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6d0d29b8c273d8182b15af2967975872976a303c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__77.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a9a75a21b842604364ddf1302e1ef0dca5d01003 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d2edb894b15868e9c3986d43933be4fef35fc4e9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__8.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1bd1918b08b710efeb0d20dd79d4f4af64550a36 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.js.i new file mode 100644 index 0000000000000000000000000000000000000000..3587cdd3d7e06604174fb3840d35a6aed79b7a64 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__9.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ecbac9fb0be746bfdf1f1a8ee6f929b1df40df5b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.js.i new file mode 100644 index 0000000000000000000000000000000000000000..6e8845067a255e6243a889d2338b263cc1452d89 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__a.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.html.i new file mode 100644 index 0000000000000000000000000000000000000000..5fa19b592e0c5eb5388753c984fac6b1d162b3e6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.js.i new file mode 100644 index 0000000000000000000000000000000000000000..0d17bbb70c9516c904aed3bb76b4a5771f8094c2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__b.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..38a679c2d92e545435fd49bda81860b18af5c6eb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..c1e92eebbe98b14f670df7facb0105c80144a399 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__c.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cfd5f34a5a3341647b0ea06c6bc226ee2d858abc Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..76a6dc22208aab9de087b1a47bfa6aafb3a213df Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/all__d.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c573459a440cbab361ee11ee83e12604cfb75039 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..73187501086197210c3155a25c694889a55af91c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__0.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8b8961cfa7273469a410210de2793a83125579e7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.js.i new file mode 100644 index 0000000000000000000000000000000000000000..c34a02af171751a4ac3800a8720259f233499449 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__1.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.html.i new file mode 100644 index 0000000000000000000000000000000000000000..aae726bb209d87d3dd6e405c1a360ade7828ebbd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.js.i new file mode 100644 index 0000000000000000000000000000000000000000..9b5e90df64e2a9632e70ea425af33c8def8c684e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__2.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cc5c0515f60f17bc3acfa877e847a239d3d5f60e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..21c8a6bfa431f84077819c68dd515faa96719c3f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/classes__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/close.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/close.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b9862cdbea2923149817ec60d8962fa88f0e3610 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/close.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d0fa08e0567022f04b604ff5ed8aca6908c9bc61 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9ec023f8a7d0ba096004a54122e28099955b2010 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..be4021a876e5cbc8674673179a20390291132acf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a2966353e60bc56dc445aa9b17d723571ccf4a95 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6bea64f14f150d287cb24bfe5bd239e163f1b6ad Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3351889d18a90e718eb498b3b3aa86c14ea0f3dd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..4e49c7922962b036a0075ec71c02da3fb2089028 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..95f0d2d9169a8763b5026e60168de3692f70ee9a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..891bd00f5bfe0179012e09a46162678fe23999f9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..99930f67c227339716174bcd955d01c62906c850 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..32de6bb1b909ebfed7828a9fb907037cf3054baf Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8db3743181ea63803ca62d7701e98141c4440e6a Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/defines__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enums__74.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enums__74.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ccfaac9879dc26f4496805aa432219d71d58cd37 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enums__74.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f46d89fc2698864e1d1a3ddd2e657e0e80fc82ab Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9c6614f01d79627ef3e38ed51bbfe17189e69051 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..bfdcf7b6edea3ab6af33556554d090fc4f8518f6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..12069df02d2be6c6fe464e2700b844ece63601e0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/enumvalues__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..64632e90b8046acb7ddb32aa485093810c86a6e0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ae23190c56d4afe2daf840d8753c138defb9880c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..76f088cf78be942161eaa5754e7674ba4d7e3d55 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/files__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.html.i new file mode 100644 index 0000000000000000000000000000000000000000..e339bfe7c5216aca65debeaa2f647030e7b758f3 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..5fdf4ed12354139ac0108a40077c0b13b6d5deb1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__0.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.html.i new file mode 100644 index 0000000000000000000000000000000000000000..63f9aa8c730cac9daec17dc82a6810ab83d5f1d0 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.js.i new file mode 100644 index 0000000000000000000000000000000000000000..e0cde56bd94595fdb5a8c872c0e06041318a4158 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__1.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d0459c0fa0073ddc87f4c5e5e448eed9aafb1d51 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.js.i new file mode 100644 index 0000000000000000000000000000000000000000..f358054ee1928b640d4e9b66b15a6d16703013b7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__2.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6de6ee8aedc6c073ddcbe3771e0dc6a22e55ba12 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.js.i new file mode 100644 index 0000000000000000000000000000000000000000..bfc60739b29ce2b22b4efc1b1b1877935e8715cd Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__3.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.html.i new file mode 100644 index 0000000000000000000000000000000000000000..555a63efbad4f7430a9ef9642b7aca2e13040e9b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.js.i new file mode 100644 index 0000000000000000000000000000000000000000..145705abf0a7ccf28d9fdb015d983075e6c29ab2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__4.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.html.i new file mode 100644 index 0000000000000000000000000000000000000000..79df44828eb2035f7d72a36b3c818a7b30262ded Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.js.i new file mode 100644 index 0000000000000000000000000000000000000000..fbb1a7f97452d5a9cd91fa4de17d38e0d4bccc99 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__5.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1ed1223d9124eb1f0b429b9914fa6666c46c18f6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.js.i new file mode 100644 index 0000000000000000000000000000000000000000..028bf4b763c48c77f20ab6938c2405fb9ab56f31 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__61.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__61.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d03732f34d389e1ccc2f0944500356e970f4df98 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__61.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__62.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__62.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d4d2cce565e0b5bbcf9d828c486cce0c1f6946ab Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__62.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__63.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__63.html.i new file mode 100644 index 0000000000000000000000000000000000000000..296ecef65596aa88c46252ed1fe62a796af44a29 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__63.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__64.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__64.html.i new file mode 100644 index 0000000000000000000000000000000000000000..7f1b2e09e5204af59be5f1e2456b4918a00b78d9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__64.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__65.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__65.html.i new file mode 100644 index 0000000000000000000000000000000000000000..14efadc711897344bc39d74dd2852327df790a2d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__65.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..790d3a4df6fa3b9725251b3036b96b07c47893f5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__68.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__68.html.i new file mode 100644 index 0000000000000000000000000000000000000000..d8c31d2dd53a6075cff9dd0396f7fa2970838f35 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__68.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__69.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__69.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a632ef754049bef686582c0d7faa4f0295977859 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__69.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..9cb9abeae20d67e683bd666295aaa5184f202203 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2a7afb438ca81ef9f9874ebf026e7a4709e4d9c9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6e.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6e.html.i new file mode 100644 index 0000000000000000000000000000000000000000..3c4b4d4e4e24c84cc123c05176b7b6780be36e79 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6e.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..cc1344c433708089ac9f74350e5824f041cf19e8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__6f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.html.i new file mode 100644 index 0000000000000000000000000000000000000000..918e7274e0a33baed507f9a8eaa6b46fe5a3e913 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.js.i new file mode 100644 index 0000000000000000000000000000000000000000..fe06c0a63779f6f6f0d35b71d1f06931b912d976 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__7.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__70.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__70.html.i new file mode 100644 index 0000000000000000000000000000000000000000..1dad2a55a6adbab5b65f3ec4ff7f82e1f9b1950e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__70.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__72.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__72.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c2cda85c5b9eb16f121ca4ba8f3d106d7974a7db Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__72.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__73.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__73.html.i new file mode 100644 index 0000000000000000000000000000000000000000..641442302c89c0d09f914a40e656ff56386078ae Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__73.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__77.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__77.html.i new file mode 100644 index 0000000000000000000000000000000000000000..6d0d29b8c273d8182b15af2967975872976a303c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__77.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.html.i new file mode 100644 index 0000000000000000000000000000000000000000..a7f5c2a1cea1a9f0a0d7b4a46cb782c666003be6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d2edb894b15868e9c3986d43933be4fef35fc4e9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__8.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c55a6003c0059f42bc47bfce00ac96657a7ec55e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.js.i new file mode 100644 index 0000000000000000000000000000000000000000..3587cdd3d7e06604174fb3840d35a6aed79b7a64 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__9.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.html.i new file mode 100644 index 0000000000000000000000000000000000000000..fa81b65957fc9946946c39d31ca5c324361c1f94 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.js.i new file mode 100644 index 0000000000000000000000000000000000000000..6e8845067a255e6243a889d2338b263cc1452d89 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__a.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.html.i new file mode 100644 index 0000000000000000000000000000000000000000..c7946dae61d8de62ff457aa2ea2e5f85f3a1cfce Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.js.i new file mode 100644 index 0000000000000000000000000000000000000000..41096c7866089d93a4116ff9d1829e286e285562 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__b.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.html.i new file mode 100644 index 0000000000000000000000000000000000000000..f0a7addba1e0a8a18a5af6661fc4c98ed6b04fc6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.js.i new file mode 100644 index 0000000000000000000000000000000000000000..fb5f30e5f19fc13548d465d9ee5b6571fa13e90c Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__c.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.html.i new file mode 100644 index 0000000000000000000000000000000000000000..ce3f97065aac74a1741cedac237a195d419d70be Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.js.i new file mode 100644 index 0000000000000000000000000000000000000000..76a6dc22208aab9de087b1a47bfa6aafb3a213df Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/functions__d.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/mag__sel.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/mag__sel.png.i new file mode 100644 index 0000000000000000000000000000000000000000..088852a95e63aa10c4a3ebb441f560e62bc0a05e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/mag__sel.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/nomatches.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/nomatches.html.i new file mode 100644 index 0000000000000000000000000000000000000000..89e507ed02fa9aaf01018fbad448ed2fc8740100 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/nomatches.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.html.i new file mode 100644 index 0000000000000000000000000000000000000000..8a3fa070f82abc4feba3d739a6137e4a6d2c3fc7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.js.i new file mode 100644 index 0000000000000000000000000000000000000000..e60d7791a053cb0ce6cf65c477d33789439e1392 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/pages__0.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.css.i new file mode 100644 index 0000000000000000000000000000000000000000..c6f24fbe98bcead779a42056b43885f3630d8230 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.js.i new file mode 100644 index 0000000000000000000000000000000000000000..13aed6f82513eef8a184408f585392b76b9cc90d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__l.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__l.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4074fd9414166cfa6c9736dc3849315a21bc7c01 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__l.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__m.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__m.png.i new file mode 100644 index 0000000000000000000000000000000000000000..7de8219d7b65ad8d25eb268e183230aba4b80c0e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__m.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__r.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__r.png.i new file mode 100644 index 0000000000000000000000000000000000000000..789f3bb9422650a9c1a48ec4f661e354cada0edb Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/search__r.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/searchdata.js.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/searchdata.js.i new file mode 100644 index 0000000000000000000000000000000000000000..d0de08d0772165a1e491ef93ce9e281a5c3d5db5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/searchdata.js.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/typedefs__66.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/typedefs__66.html.i new file mode 100644 index 0000000000000000000000000000000000000000..45964810ac704372932ca7e7f25475bd593b7366 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/typedefs__66.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/variables__5f.html.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/variables__5f.html.i new file mode 100644 index 0000000000000000000000000000000000000000..2513e937930a953d48dd67988f61f189b624f882 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/search/variables__5f.html.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/splitbar.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/splitbar.png.i new file mode 100644 index 0000000000000000000000000000000000000000..b707f94e7b9d791da373674b9a2130dd3c3c457b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/splitbar.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__off.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__off.png.i new file mode 100644 index 0000000000000000000000000000000000000000..6dba90b24dc5eda8467e4e5ca58aba3d0496d8ac Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__off.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__on.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__on.png.i new file mode 100644 index 0000000000000000000000000000000000000000..db85fe7758df438e936fd48b51604752df72ff7f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/sync__on.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__a.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__a.png.i new file mode 100644 index 0000000000000000000000000000000000000000..29084b7408e18e6c9263fa23158a9102ef2470d7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__a.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__b.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__b.png.i new file mode 100644 index 0000000000000000000000000000000000000000..4e1806f4c2dccacf805ba16cf4cd9085fcd98824 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__b.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__h.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__h.png.i new file mode 100644 index 0000000000000000000000000000000000000000..35b700cb23ebd37bc62aab22529fde37a043fb2f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__h.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__s.png.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__s.png.i new file mode 100644 index 0000000000000000000000000000000000000000..e48937c33974310221f7fcc9ecd41c124361d3ed Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tab__s.png.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tabs.css.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tabs.css.i new file mode 100644 index 0000000000000000000000000000000000000000..2ad7c79ac7a4477523d896b48abea495ae8c655d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/utility/docs/html/tabs.css.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgignore.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgignore.i new file mode 100644 index 0000000000000000000000000000000000000000..96d865a980807a6afe73955a7c8a1b20efa01fb8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgignore.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub.i new file mode 100644 index 0000000000000000000000000000000000000000..885ad3b70fd2bbef5c74236f3dac88942d22e558 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub__.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub__.i new file mode 100644 index 0000000000000000000000000000000000000000..fe28e43e8cd3b6c34bfc09200c18c747d4ea88b8 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsub__.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsubstate.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsubstate.i new file mode 100644 index 0000000000000000000000000000000000000000..d31ab299b0ee3ca1d593b256c08cc927f1cc80d4 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgsubstate.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgtags.i b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgtags.i new file mode 100644 index 0000000000000000000000000000000000000000..c6692cf145fa1249ae3bac3f67e764cef8feec03 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/data/~2ehgtags.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r345ccf7c8245a311d6d2cb0f3e99d656a10044f6.i b/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r345ccf7c8245a311d6d2cb0f3e99d656a10044f6.i new file mode 100644 index 0000000000000000000000000000000000000000..177e260b207af36661b359348e664be90daf0ad9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r345ccf7c8245a311d6d2cb0f3e99d656a10044f6.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i b/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i new file mode 100644 index 0000000000000000000000000000000000000000..49cf8ca8e65e027cbc565ad7859e700e95e35ae7 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/dh/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_r945e6cf0c5a25adbd13121dc8faf9920ab60c890.i differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/fncache b/Libs/NewLiquidCrystal_lib/.hg/store/fncache new file mode 100644 index 0000000000000000000000000000000000000000..922b66ab34559886cd953e7df25b8883cc963236 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/store/fncache @@ -0,0 +1,572 @@ +data/docs/html/_liquid_crystal___s_r_8h_source.html.i +data/docs/html/search/defines_68.html.i +data/utility/docs/def/doxygen.def.i +data/utility/docs/html/navtreeindex0.js.i +data/utility/docs/html/search/all_61.html.i +data/utility/docs/html/search/all_68.html.i +data/utility/docs/html/hierarchy.js.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.js.i +data/docs/html/search/search_l.png.i +data/docs/html/class_liquid_crystal___s_r.png.i +data/utility/docs/html/folderopen.png.i +data/docs/html/globals_eval.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html.i +data/LiquidCrystal.h.i +data/LCD.h.i +data/utility/docs/html/class_liquid_crystal___s_r2_w-members.html.i +data/utility/docs/html/search/classes_69.html.i +data/utility/docs/html/ftv2mnode.png.i +data/docs/html/_i2_c_i_o_8h.html.i +data/LiquidCrystal_SI2C.h.i +data/docs/html/search/search.css.i +data/examples/performanceLCD/performanceLCD.pde.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster_LICENSE.txt.i +data/utility/docs/html/search/functions_65.html.i +data/utility/docs/html/search/functions_6c.html.i +data/docs/html/search/functions_65.html.i +data/utility/docs/html/doc.png.i +data/docs/html/annotated.html.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3.html.i +data/.hgtags.i +data/utility/docs/html/functions_vars.html.i +data/html/open.png.i +data/utility/docs/html/search/defines_68.html.i +data/docs/html/class_i2_c_i_o.html.i +data/utility/docs/html/ftv2folderclosed.png.i +data/utility/docs/html/search/defines_65.html.i +data/utility/docs/html/search/all_6f.html.i +data/utility/docs/html/search/all_73.html.i +data/docs/html/search/search_m.png.i +data/utility/docs/html/search/functions_8.js.i +data/utility/docs/html/search/all_7.js.i +data/docs/html/_l_c_d_8cpp_source.html.i +data/docs/html/_liquid_crystal___s_r_8cpp_source.html.i +data/utility/docs/html/search/all_64.html.i +data/utility/docs/html/search/enumvalues_68.html.i +data/utility/docs/html/nav_h.png.i +data/utility/docs/html/globals.html.i +data/utility/docs/html/search/variables_5f.html.i +data/docs/html/tab_h.png.i +data/utility/docs/html/arrowright.png.i +data/utility/docs/html/search/functions_c.js.i +data/utility/docs/html/search/files_6c.html.i +data/utility/docs/html/search/all_6e.html.i +data/utility/docs/html/search/classes_2.js.i +data/utility/docs/html/search/all_62.html.i +data/utility/docs/html/classes.html.i +data/html/tab_s.png.i +data/docs/html/tabs.css.i +data/utility/docs/html/class_liquid_crystal___s_r.js.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html.i +data/examples/SerialDisplay/SerialDisplay.pde.i +data/utility/docs/html/arrowdown.png.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.html.i +data/docs/html/class_liquid_crystal.png.i +data/utility/docs/html/search/all_8.js.i +data/utility/docs/html/search/enumvalues_70.html.i +data/utility/docs/html/class_liquid_crystal-members.html.i +data/docs/html/search/defines_61.html.i +data/utility/docs/html/_liquid_crystal_8cpp_source.html.i +data/LiquidCrystal_SR_LCD3.cpp.i +data/utility/docs/html/search/classes_0.html.i +data/docs/html/class_l_c_d.png.i +data/docs/html/search/all_5f.html.i +data/utility/docs/html/class_l_c_d.png.i +data/utility/docs/html/search/all_4.html.i +data/utility/docs/html/class_l_c_d-members.html.i +data/html/search/search_r.png.i +data/utility/docs/html/tabs.css.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html.i +data/utility/docs/html/class_liquid_crystal.png.i +data/examples/HelloWorld_4bit/HelloWorld_4bit.ino.i +data/docs/html/search/all_72.html.i +data/utility/docs/html/search/pages_0.html.i +data/docs/html/search/nomatches.html.i +data/docs/html/search/all_61.html.i +data/html/nav_g.png.i +data/utility/docs/html/search/all_63.html.i +data/docs/html/_liquid_crystal___s_r2_w_8cpp.html.i +data/LiquidCrystal_SR1W.cpp.i +data/delay_x.h.i +data/LiquidCrystal_I2C_ByVac.h.i +data/utility/docs/html/class_s_i2_c_i_o.js.i +data/docs/html/doxygen.png.i +data/utility/docs/html/class_i2_c_i_o-members.html.i +data/docs/html/_liquid_crystal___s_r2_w_8h_source.html.i +data/docs/html/search/all_74.html.i +data/html/search/close.png.i +data/utility/docs/html/_fast_i_o_8h_source.html.i +data/docs/html/search/functions_77.html.i +data/LiquidCrystal_SR.cpp.i +data/docs/html/_liquid_crystal___s_r2_w_8h.html.i +data/def/doxygen.def.i +data/utility/docs/html/search/all_3.html.i +data/docs/html/search/defines_73.html.i +data/docs/html/search/functions_70.html.i +data/html/doxygen.png.i +data/utility/docs/html/_l_c_d_8h.html.i +data/docs/html/search/defines_74.html.i +data/utility/docs/html/search/functions_68.html.i +data/docs/html/search/functions_61.html.i +data/utility/docs/html/search/functions_d.html.i +data/docs/html/search/files_66.html.i +data/utility/docs/html/search/functions_3.js.i +data/docs/html/tab_s.png.i +data/docs/html/search/functions_6e.html.i +data/docs/html/search/files_6c.html.i +data/utility/docs/html/pages.html.i +data/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h.i +data/docs/html/_l_c_d_8cpp.html.i +data/utility/docs/html/search/functions_4.html.i +data/utility/docs/html/tab_a.png.i +data/utility/docs/html/search/all_d.js.i +data/LiquidCrystal_SR_LCD3.h.i +data/utility/docs/html/resize.js.i +data/utility/docs/html/class_i2_c_i_o.html.i +data/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino.i +data/utility/docs/html/globals_type.html.i +data/examples/HelloWorld_si2c/HelloWorld_si2c.ino.i +data/utility/docs/html/_liquid_crystal_8h.html.i +data/utility/docs/html/class_soft_i2_c_master-members.html.i +data/docs/html/search/search.js.i +data/docs/html/_liquid_crystal___s_r3_w_8h_source.html.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html.i +data/docs/html/search/variables_5f.html.i +data/docs/html/search/all_77.html.i +data/utility/docs/html/globals_func.html.i +data/utility/docs/html/search/functions_69.html.i +data/utility/docs/html/hierarchy.html.i +data/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_repos__s_w__newliquid_crystal__r_e_a_d_m_e.html.i +data/docs/html/search/all_6d.html.i +data/docs/html/search/all_62.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html.i +data/utility/docs/html/search/functions_6f.html.i +data/LiquidCrystal_SR1.sch.i +data/docs/html/search/all_63.html.i +data/docs/html/class_liquid_crystal___s_r.html.i +data/docs/html/search/functions_62.html.i +data/utility/docs/html/search/functions_66.html.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3.png.i +data/utility/docs/html/search/functions_c.html.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp/Tiny85_Temp.pde.i +data/LiquidCrystal_I2C_ByVac.cpp.i +data/thirdparty libraries/TinyWireM/USI_TWI_Master.h.i +data/utility/docs/html/search/all_5.html.i +data/utility/docs/html/doxygen.css.i +data/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html.i +data/utility/docs/html/class_liquid_crystal___i2_c.html.i +data/utility/docs/html/ftv2node.png.i +data/utility/docs/html/search/all_6.js.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html.i +data/utility/docs/html/ftv2folderopen.png.i +data/docs/html/_liquid_crystal___i2_c_8cpp.html.i +data/utility/docs/html/folderclosed.png.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.png.i +data/docs/html/search/functions_63.html.i +data/utility/docs/html/search/defines_66.html.i +data/utility/docs/html/class_soft_i2_c_master.html.i +data/utility/docs/html/search/functions_6e.html.i +data/utility/docs/html/_soft_i2_c_master_8h_source.html.i +data/LiquidCrystal_SR3W.h.i +data/utility/docs/html/_l_c_d_8h_source.html.i +data/docs/html/tab_a.png.i +data/utility/docs/html/closed.png.i +data/utility/docs/html/search/all_77.html.i +data/LICENSE.webarchive.i +data/thirdparty libraries/TinyWireM/library.properties.i +data/docs/html/class_liquid_crystal___s_r2_w.png.i +data/docs/html/globals.html.i +data/docs/html/logoGoogle.jpg.i +data/utility/docs/html/_liquid_crystal_8cpp.html.i +data/docs/html/class_liquid_crystal___i2_c.png.i +data/utility/docs/html/search/all_2.html.i +data/LiquidCrystal_4bit.cpp.i +data/docs/html/functions_func.html.i +data/utility/docs/html/dynsections.js.i +data/I2CIO.h.i +data/utility/docs/html/sync_off.png.i +data/utility/docs/html/search/search.css.i +data/utility/docs/html/files.js.i +data/utility/docs/html/search/all_66.html.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.png.i +data/examples/LCDiSpeed/LCDiSpeed.pde.i +data/examples/performanceLCD/performanceLCD.ino.i +data/thirdparty libraries/TinyWireM/USI_TWI_Master.cpp.i +data/html/closed.png.i +data/utility/docs/html/search/defines_64.html.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.cpp.i +data/utility/docs/html/search/functions_7.html.i +data/docs/html/_fast_i_o_8h_source.html.i +data/utility/docs/html/ftv2link.png.i +data/docs/html/search/all_64.html.i +data/utility/docs/html/search/functions_a.html.i +data/library.json.i +data/utility/docs/html/search/functions_77.html.i +data/docs/html/search/functions_6f.html.i +data/examples/HelloWorld_4bit/HelloWorld_4bit.pde.i +data/docs/html/class_liquid_crystal___i2_c.html.i +data/html/search/search_m.png.i +data/LiquidCrystal_I2C.cpp.i +data/utility/docs/html/class_liquid_crystal___s_r.png.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp_LCD_RTC/Tiny85_Temp_LCD_RTC.pde.i +data/html/search/nomatches.html.i +data/html/bdwn.png.i +data/keywords.txt.i +data/utility/docs/html/search/functions_9.html.i +data/docs/html/search/defines_63.html.i +data/docs/html/_fast_i_o_8h.html.i +data/docs/html/search/defines_64.html.i +data/utility/docs/html/index.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w-members.html.i +data/thirdparty libraries/SoftI2CMaster/license.txt.i +data/html/tab_a.png.i +data/utility/docs/html/_liquid_crystal___s_r_8h.html.i +data/html/index.html.i +data/utility/docs/html/navtree.js.i +data/bitbucket-pipelines.yml.i +data/utility/docs/html/search/functions_0.html.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.js.i +data/docs/html/installdox.i +data/utility/docs/html/class_i2_c_i_o.js.i +data/.hgsub.i +data/LiquidCrystal_4bit.h.i +data/docs/html/search/all_70.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html.i +data/html/tabs.css.i +data/utility/docs/html/_liquid_crystal___i2_c_8cpp.html.i +data/html/tab_b.png.i +data/utility/docs/html/search/all_5f.html.i +data/utility/docs/def/doxygen.def.txt.i +data/.hgsubstate.i +data/utility/docs/html/splitbar.png.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html.i +data/thirdparty libraries/TinyWireM/README.md.i +data/utility/docs/html/search/functions_0.js.i +data/utility/docs/html/search/classes_2.html.i +data/docs/html/search/defines_6c.html.i +data/examples/HelloWorld_byVac/HelloWorld_byVac.ino.i +data/docs/html/_l_c_d_8h_source.html.i +data/utility/docs/html/files.html.i +data/docs/html/open.png.i +data/docs/html/class_liquid_crystal___s_r-members.html.i +data/docs/html/_liquid_crystal_8cpp.html.i +data/utility/docs/html/search/enums_74.html.i +data/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html.i +data/utility/docs/html/class_liquid_crystal___i2_c-members.html.i +data/utility/docs/html/search/functions_72.html.i +data/docs/html/class_liquid_crystal___s_r3_w.html.i +data/utility/docs/html/search/defines_61.html.i +data/docs/html/class_liquid_crystal___s_r2_w-members.html.i +data/LiquidCrystal_SR.h.i +data/thirdparty libraries/TinyWireM/TinyWireM.h.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp_LCD/Tiny85_Temp_LCD.pde.i +data/docs/html/_liquid_crystal___i2_c_8h_source.html.i +data/utility/docs/html/search/all_74.html.i +data/utility/docs/html/search/all_1.js.i +data/docs/html/search/defines_5f.html.i +data/SI2CIO.cpp.i +data/html/sync_on.png.i +data/docs/html/search/all_6c.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html.i +data/docs/html/_liquid_crystal_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html.i +data/docs/html/search/functions_66.html.i +data/utility/docs/html/search/functions_62.html.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8h.html.i +data/docs/html/files.html.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html.i +data/docs/html/tab_b.png.i +data/docs/html/functions.html.i +data/utility/docs/html/search/all_70.html.i +data/utility/docs/html/search/all_2.js.i +data/utility/docs/html/search/functions_3.html.i +data/docs/html/index.html.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html.i +data/utility/docs/html/ftv2mlastnode.png.i +data/utility/docs/html/search/defines_62.html.i +data/LCD.cpp.i +data/utility/docs/html/ftv2pnode.png.i +data/docs/html/bc_s.png.i +data/examples/i2cLCDextraIO/i2cLCDextraIO.ino.i +data/docs/html/search/all_66.html.i +data/utility/docs/html/ftv2splitbar.png.i +data/utility/docs/html/logoGoogle.jpg.i +data/docs/html/globals_enum.html.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp.i +data/html/doc.png.i +data/docs/html/globals_defs.html.i +data/.hgsub_.i +data/utility/docs/html/search/defines_73.html.i +data/utility/docs/html/class_liquid_crystal___s_r.html.i +data/utility/docs/html/search/all_4.js.i +data/utility/docs/html/search/all_b.js.i +data/examples/HelloWorld_i2c/HelloWorld_i2c.pde.i +data/utility/docs/html/search/pages_0.js.i +data/docs/html/class_liquid_crystal-members.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js.i +data/utility/docs/html/search/functions_d.js.i +data/utility/docs/html/search/files_69.html.i +data/utility/docs/html/_i2_c_i_o_8h.html.i +data/docs/html/class_liquid_crystal___s_r2_w.html.i +data/html/doxygen.css.i +data/SoftI2CMaster.cpp.i +data/utility/docs/html/search/functions_2.js.i +data/utility/docs/html/functions_func.html.i +data/utility/docs/html/search/all_65.html.i +data/utility/docs/html/search/all_9.js.i +data/utility/docs/html/search/enumvalues_6e.html.i +data/utility/docs/html/search/close.png.i +data/utility/docs/html/search/all_b.html.i +data/examples/LCDiSpeed/LCDiSpeed.txt.i +data/utility/docs/html/nav_g.png.i +data/utility/docs/html/_l_c_d_8cpp_source.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png.i +data/docs/html/class_l_c_d-members.html.i +data/docs/html/_liquid_crystal___s_r_8cpp.html.i +data/doxygen_entrydb_2806.tmp.i +data/utility/docs/html/ftv2lastnode.png.i +data/utility/docs/html/class_l_c_d.html.i +data/utility/docs/html/search/all_1.html.i +data/doxygen_entrydb_2806.tmp.d +data/docs/html/search/all_65.html.i +data/utility/docs/html/class_liquid_crystal.js.i +data/docs/html/search/search_r.png.i +data/utility/docs/html/search/functions_63.html.i +data/docs/html/search/all_6e.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.js.i +data/thirdparty libraries/TinyWireM/TinyWireM.cpp.i +data/html/nav_f.png.i +data/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino.i +data/LiquidCrystal_SR1.h.i +data/docs/html/_liquid_crystal_8h.html.i +data/docs/html/_liquid_crystal___s_r_8h.html.i +data/docs/html/jquery.js.i +data/docs/html/globals_type.html.i +data/utility/docs/html/search/all_8.html.i +data/html/arrowdown.png.i +data/utility/docs/html/search/functions_7.js.i +data/utility/docs/html/search/all_72.html.i +data/utility/docs/html/navtree.css.i +data/docs/html/search/all_73.html.i +data/html/splitbar.png.i +data/utility/docs/html/search/functions_6d.html.i +data/utility/docs/html/search/functions_8.html.i +data/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html.i +data/utility/docs/html/search/functions_a.js.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html.i +data/docs/html/search/functions_64.html.i +data/docs/html/_fast_i_o_8cpp.html.i +data/FastIO.h.i +data/utility/docs/html/search/all_3.js.i +data/utility/docs/html/search/classes_1.html.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h.i +data/docs/html/search/functions_73.html.i +data/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino.i +data/docs/html/_liquid_crystal_8h_source.html.i +data/docs/html/search/defines_72.html.i +data/utility/docs/html/search/classes_6c.html.i +data/docs/html/search/enums_74.html.i +data/utility/docs/Doxyfile.i +data/.hgignore.i +data/utility/docs/html/search/all_6c.html.i +data/html/search/search.js.i +data/docs/html/search/classes_6c.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8h.html.i +data/docs/html/class_liquid_crystal___s_r3_w.png.i +data/utility/docs/html/search/all_c.html.i +data/utility/docs/html/class_liquid_crystal___s_r3_w-members.html.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html.i +data/docs/html/_i2_c_i_o_8cpp.html.i +data/docs/html/search/enumvalues_6e.html.i +data/README.md.i +data/utility/docs/html/search/functions_b.js.i +data/html/search/mag_sel.png.i +data/utility/docs/html/search/all_a.js.i +data/docs/html/search/functions_68.html.i +data/utility/docs/html/_i2_c_i_o_8h_source.html.i +data/utility/docs/html/search/all_d.html.i +data/utility/docs/html/_liquid_crystal___i2_c_8h.html.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8h.html.i +data/utility/docs/html/search/functions_6.js.i +data/docs/html/_i2_c_i_o_8cpp_source.html.i +data/docs/html/search/all_68.html.i +data/html/bc_s.png.i +data/docs/html/globals_func.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html.i +data/docs/html/search/all_6f.html.i +data/SI2CIO.h.i +data/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html.i +data/docs/html/_i2_c_i_o_8h_source.html.i +data/utility/docs/html/class_liquid_crystal.html.i +data/docs/html/search/files_69.html.i +data/utility/docs/html/search/functions_6.html.i +data/html/nav_h.png.i +data/docs/html/search/defines_66.html.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html.i +data/utility/docs/html/jquery.js.i +data/docs/html/search/mag_sel.png.i +data/docs/html/search/classes_69.html.i +data/utility/docs/html/search/classes_0.js.i +data/utility/docs/html/search/functions_1.html.i +data/utility/docs/html/search/functions_73.html.i +data/thirdparty libraries/TinyWireM/keywords.txt.i +data/utility/docs/html/annotated_dup.js.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.html.i +data/utility/docs/html/ftv2blank.png.i +data/html/search/search_l.png.i +data/docs/html/search/defines_65.html.i +data/utility/docs/html/search/searchdata.js.i +data/html/arrowright.png.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt.i +data/utility/docs/html/search/search_m.png.i +data/utility/docs/html/search/functions_b.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html.i +data/docs/html/search/functions_69.html.i +data/utility/docs/html/search/functions_64.html.i +data/utility/docs/html/search/functions_9.js.i +data/docs/html/class_liquid_crystal___i2_c-members.html.i +data/utility/docs/html/class_s_i2_c_i_o.html.i +data/utility/docs/html/search/functions_4.js.i +data/LiquidCrystal_SI2C.cpp.i +data/utility/docs/html/search/functions_2.html.i +data/docs/html/hierarchy.html.i +data/utility/docs/html/search/all_9.html.i +data/docs/html/_liquid_crystal___s_r3_w_8cpp.html.i +data/docs/html/classes.html.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.png.i +data/docs/html/nav_h.png.i +data/docs/html/nav_f.png.i +data/docs/html/search/functions_6c.html.i +data/docs/html/class_l_c_d.html.i +data/utility/docs/html/search/nomatches.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html.i +data/utility/docs/html/search/all_c.js.i +data/utility/docs/html/_s_i2_c_i_o_8h_source.html.i +data/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino.i +data/utility/docs/html/sync_on.png.i +data/utility/docs/html/class_liquid_crystal___i2_c.png.i +data/utility/docs/html/globals_eval.html.i +data/utility/docs/html/ftv2plastnode.png.i +data/utility/docs/html/bdwn.png.i +data/utility/docs/html/_fast_i_o_8cpp.html.i +data/LiquidCrystal_SR2W.cpp.i +data/examples/i2cLCDextraIO/i2cLCDextraIO.pde.i +data/utility/docs/html/functions.html.i +data/utility/docs/html/search/enumvalues_73.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.html.i +data/docs/html/_liquid_crystal___i2_c_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___i2_c_8h_source.html.i +data/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino.i +data/html/tab_h.png.i +data/utility/docs/html/doxygen.png.i +data/examples/HelloWorld_SR/HelloWorld_SR.ino.i +data/LiquidCrystal_SR2W.h.i +data/docs/html/search/all_69.html.i +data/utility/docs/html/search/all_5.js.i +data/docs/html/class_liquid_crystal.html.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html.i +data/html/search/search.css.i +data/utility/docs/html/search/functions_1.js.i +data/utility/docs/html/_i2_c_i_o_8cpp_source.html.i +data/docs/html/search/functions_6d.html.i +data/utility/docs/html/installdox.i +data/utility/docs/html/bc_s.png.i +data/examples/HelloWorld_SR/HelloWorld_SR.pde.i +data/utility/docs/html/ftv2doc.png.i +data/examples/HelloWorld_i2c/HelloWorld_i2c.ino.i +data/utility/docs/html/search/all_69.html.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.png.i +data/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino.i +data/utility/docs/html/search/functions_70.html.i +data/utility/docs/html/navtreedata.js.i +data/I2CIO.cpp.i +data/LiquidCrystal_SR3W.cpp.i +data/docs/html/search/close.png.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html.i +data/utility/docs/html/class_liquid_crystal___i2_c.js.i +data/utility/docs/html/search/defines_5f.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html.i +data/docs/html/_liquid_crystal___i2_c_8h.html.i +data/utility/docs/html/ftv2vertline.png.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.js.i +data/docs/html/functions_vars.html.i +data/docs/html/search/typedefs_66.html.i +data/html/folderclosed.png.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html.i +data/html/jquery.js.i +data/thirdparty libraries/TinyWireM/examples/AT24_EEPROM/AT24_EEPROM.ino.i +data/LiquidCrystal_SR1W.h.i +data/utility/docs/html/_fast_i_o_8h.html.i +data/utility/docs/html/class_liquid_crystal___s_i2_c-members.html.i +data/docs/html/_fast_i_o_8cpp_source.html.i +data/utility/docs/html/search/all_a.html.i +data/docs/html/search/defines_62.html.i +data/utility/docs/html/search/all_0.js.i +data/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino.i +data/utility/docs/html/search/search_r.png.i +data/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html.i +data/utility/docs/html/_i2_c_i_o_8cpp.html.i +data/FastIO.cpp.i +data/doxygen_objdb_2806.tmp.i +data/docs/html/search/functions_72.html.i +data/utility/docs/html/_liquid_crystal___s_r_8h_source.html.i +data/html/folderopen.png.i +data/utility/docs/html/globals_enum.html.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html.i +data/utility/docs/html/search/classes_1.js.i +data/utility/docs/html/_fast_i_o_8cpp_source.html.i +data/examples/SerialDisplay/SerialDisplay.ino.i +data/utility/docs/html/search/typedefs_66.html.i +data/html/search/searchdata.js.i +data/utility/docs/html/search/defines_6c.html.i +data/docs/html/class_liquid_crystal___s_r3_w-members.html.i +data/docs/html/closed.png.i +data/docs/html/_liquid_crystal___s_r3_w_8h.html.i +data/utility/docs/html/search/functions_5.js.i +data/utility/docs/html/class_l_c_d.js.i +data/examples/HelloWorld_SR1/HelloWorld_SR1.ino.i +data/html/sync_off.png.i +data/utility/docs/html/tab_h.png.i +data/utility/docs/html/class_liquid_crystal___s_r-members.html.i +data/utility/docs/html/search/all_6d.html.i +data/utility/docs/html/annotated.html.i +data/utility/docs/html/search/search.js.i +data/docs/html/doxygen.css.i +data/utility/docs/html/search/all_7.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html.i +data/utility/docs/html/search/defines_63.html.i +data/utility/docs/html/search/all_6.html.i +data/utility/docs/html/_liquid_crystal_8h_source.html.i +data/utility/docs/html/search/defines_72.html.i +data/utility/docs/html/search/all_0.html.i +data/SoftI2CMaster.h.i +data/examples/HelloWorld_SR1/HelloWorld_SR1.pde.i +data/utility/docs/html/_l_c_d_8cpp.html.i +data/utility/docs/html/search/files_66.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.png.i +data/LiquidCrystal_SR1.cpp.i +data/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_repos__s_w__new_liquid_crystal_lib__r_e_a_d_m_e.html.i +data/utility/docs/html/globals_defs.html.i +data/utility/docs/html/search/defines_74.html.i +data/utility/docs/html/open.png.i +data/thirdparty libraries/SoftI2CMaster/README.md.i +data/utility/docs/html/search/functions_61.html.i +data/utility/docs/html/search/mag_sel.png.i +data/docs/html/class_i2_c_i_o-members.html.i +data/utility/docs/html/search/functions_5.html.i +data/utility/docs/html/class_soft_i2_c_master.js.i +data/utility/docs/html/nav_f.png.i +data/utility/docs/html/class_s_i2_c_i_o-members.html.i +data/utility/docs/html/_liquid_crystal___s_r_8cpp.html.i +data/LiquidCrystal.cpp.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.html.i +data/utility/docs/html/tab_b.png.i +data/docs/html/search/enumvalues_70.html.i +data/utility/docs/html/tab_s.png.i +data/utility/docs/html/search/search_l.png.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html.i +data/docs/html/_l_c_d_8h.html.i +data/LiquidCrystal_I2C.h.i +data/html/dynsections.js.i diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/phaseroots b/Libs/NewLiquidCrystal_lib/.hg/store/phaseroots new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/undo b/Libs/NewLiquidCrystal_lib/.hg/store/undo new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.fncache b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.fncache new file mode 100644 index 0000000000000000000000000000000000000000..5988e52c57dc11d9843bb32b5c747cbe703eeb8e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.fncache @@ -0,0 +1,537 @@ +data/docs/html/_liquid_crystal___s_r_8h_source.html.i +data/docs/html/search/defines_68.html.i +data/utility/docs/def/doxygen.def.i +data/utility/docs/html/class_s_i2_c_i_o.js.i +data/utility/docs/html/search/all_61.html.i +data/utility/docs/html/search/all_68.html.i +data/utility/docs/html/hierarchy.js.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.js.i +data/docs/html/search/search_l.png.i +data/docs/html/class_liquid_crystal___s_r.png.i +data/utility/docs/html/folderopen.png.i +data/docs/html/globals_eval.html.i +data/utility/docs/html/search/all_2.js.i +data/utility/docs/html/class_liquid_crystal-members.html.i +data/LCD.h.i +data/utility/docs/html/class_liquid_crystal___s_r2_w-members.html.i +data/utility/docs/html/search/classes_69.html.i +data/utility/docs/html/ftv2mnode.png.i +data/docs/html/_i2_c_i_o_8h.html.i +data/LiquidCrystal_SI2C.h.i +data/docs/html/search/search.css.i +data/examples/performanceLCD/performanceLCD.pde.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster_LICENSE.txt.i +data/utility/docs/html/_i2_c_i_o_8cpp_source.html.i +data/docs/html/search/functions_65.html.i +data/utility/docs/html/doc.png.i +data/docs/html/annotated.html.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3.html.i +data/.hgtags.i +data/utility/docs/html/functions_vars.html.i +data/utility/docs/html/search/defines_68.html.i +data/docs/html/class_i2_c_i_o.html.i +data/utility/docs/html/ftv2folderclosed.png.i +data/utility/docs/html/search/defines_65.html.i +data/utility/docs/html/ftv2pnode.png.i +data/utility/docs/html/search/classes_2.html.i +data/docs/html/search/search_m.png.i +data/utility/docs/html/search/functions_8.js.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8cpp_source.html.i +data/docs/html/_l_c_d_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html.i +data/utility/docs/html/search/all_64.html.i +data/utility/docs/html/search/enumvalues_68.html.i +data/utility/docs/html/nav_h.png.i +data/utility/docs/html/globals.html.i +data/docs/html/class_l_c_d.html.i +data/utility/docs/html/search/variables_5f.html.i +data/docs/html/tab_h.png.i +data/utility/docs/html/arrowright.png.i +data/utility/docs/html/search/functions_c.js.i +data/utility/docs/html/search/files_6c.html.i +data/utility/docs/html/search/all_6e.html.i +data/utility/docs/html/search/classes_2.js.i +data/utility/docs/html/search/all_62.html.i +data/utility/docs/html/classes.html.i +data/docs/html/tabs.css.i +data/utility/docs/html/class_liquid_crystal___s_r.js.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html.i +data/examples/SerialDisplay/SerialDisplay.pde.i +data/utility/docs/html/arrowdown.png.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.html.i +data/docs/html/class_liquid_crystal.png.i +data/utility/docs/html/search/all_8.js.i +data/utility/docs/html/search/enumvalues_70.html.i +data/LiquidCrystal.h.i +data/docs/html/search/defines_61.html.i +data/utility/docs/html/_liquid_crystal_8cpp_source.html.i +data/LiquidCrystal_SR_LCD3.cpp.i +data/utility/docs/html/search/classes_0.html.i +data/docs/html/class_l_c_d.png.i +data/docs/html/search/all_5f.html.i +data/utility/docs/html/class_l_c_d.png.i +data/utility/docs/html/search/all_4.html.i +data/utility/docs/html/class_l_c_d-members.html.i +data/utility/docs/html/tabs.css.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html.i +data/utility/docs/html/class_liquid_crystal.png.i +data/docs/html/search/all_72.html.i +data/utility/docs/html/search/pages_0.html.i +data/docs/html/search/nomatches.html.i +data/docs/html/search/all_61.html.i +data/docs/html/_liquid_crystal___s_r2_w_8cpp.html.i +data/LiquidCrystal_SR1W.cpp.i +data/LiquidCrystal_I2C_ByVac.h.i +data/utility/docs/html/navtreeindex0.js.i +data/docs/html/doxygen.png.i +data/utility/docs/html/class_i2_c_i_o-members.html.i +data/LiquidCrystal_I2C.cpp.i +data/docs/html/_liquid_crystal___s_r2_w_8h_source.html.i +data/docs/html/search/all_74.html.i +data/utility/docs/html/_fast_i_o_8h_source.html.i +data/docs/html/search/functions_77.html.i +data/LiquidCrystal_SR.cpp.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8h.html.i +data/def/doxygen.def.i +data/utility/docs/html/search/all_3.html.i +data/docs/html/search/defines_73.html.i +data/docs/html/search/functions_70.html.i +data/utility/docs/html/_l_c_d_8h.html.i +data/docs/html/search/defines_74.html.i +data/utility/docs/html/search/functions_68.html.i +data/utility/docs/html/search/functions_d.html.i +data/docs/html/search/files_66.html.i +data/utility/docs/html/search/functions_3.js.i +data/docs/html/tab_s.png.i +data/docs/html/search/functions_6e.html.i +data/docs/html/search/files_6c.html.i +data/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.h.i +data/docs/html/_l_c_d_8cpp.html.i +data/utility/docs/html/search/functions_4.html.i +data/utility/docs/html/search/all_4.js.i +data/utility/docs/html/search/all_d.js.i +data/utility/docs/html/search/functions_63.html.i +data/LiquidCrystal_SR_LCD3.h.i +data/utility/docs/html/resize.js.i +data/docs/html/logoGoogle.jpg.i +data/thirdparty libraries/SoftI2CMaster/examples/Eeprom24AA1024Soft/Eeprom24AA1024Soft.ino.i +data/utility/docs/html/globals_type.html.i +data/examples/HelloWorld_si2c/HelloWorld_si2c.ino.i +data/utility/docs/html/_liquid_crystal_8h.html.i +data/utility/docs/html/hierarchy.html.i +data/docs/html/search/functions_6f.html.i +data/docs/html/search/search.js.i +data/docs/html/_liquid_crystal___s_r3_w_8h_source.html.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html.i +data/docs/html/search/variables_5f.html.i +data/docs/html/search/all_77.html.i +data/utility/docs/html/globals_func.html.i +data/utility/docs/html/search/functions_69.html.i +data/docs/html/globals_func.html.i +data/docs/html/search/all_6d.html.i +data/docs/html/search/all_62.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html.i +data/utility/docs/html/search/functions_6f.html.i +data/LiquidCrystal_SR1.sch.i +data/docs/html/search/all_63.html.i +data/docs/html/class_liquid_crystal___s_r.html.i +data/docs/html/search/functions_62.html.i +data/utility/docs/html/search/functions_66.html.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.h.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3.png.i +data/utility/docs/html/search/functions_c.html.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.js.i +data/LiquidCrystal_I2C_ByVac.cpp.i +data/thirdparty libraries/TinyWireM/USI_TWI_Master.h.i +data/utility/docs/html/search/all_5.html.i +data/doxygen_objdb_2806.tmp.i +data/utility/docs/html/doxygen.css.i +data/utility/docs/html/_liquid_crystal___s_r_8cpp_source.html.i +data/utility/docs/html/class_liquid_crystal___i2_c.html.i +data/utility/docs/html/ftv2node.png.i +data/utility/docs/html/search/all_6.js.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.html.i +data/docs/html/search/typedefs_66.html.i +data/docs/html/_liquid_crystal___i2_c_8cpp.html.i +data/utility/docs/html/folderclosed.png.i +data/utility/docs/html/class_liquid_crystal___s_r2_w.png.i +data/docs/html/search/functions_63.html.i +data/utility/docs/html/search/defines_66.html.i +data/utility/docs/html/class_soft_i2_c_master.html.i +data/utility/docs/html/search/functions_6e.html.i +data/utility/docs/html/_soft_i2_c_master_8h_source.html.i +data/LiquidCrystal_SR3W.h.i +data/utility/docs/html/_l_c_d_8h_source.html.i +data/docs/html/tab_a.png.i +data/utility/docs/html/closed.png.i +data/utility/docs/html/search/all_77.html.i +data/LICENSE.webarchive.i +data/thirdparty libraries/TinyWireM/library.properties.i +data/docs/html/class_liquid_crystal___s_r2_w.png.i +data/docs/html/globals.html.i +data/utility/docs/html/class_i2_c_i_o.html.i +data/utility/docs/html/_liquid_crystal_8cpp.html.i +data/docs/html/class_liquid_crystal___i2_c.png.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.js.i +data/LiquidCrystal_4bit.cpp.i +data/docs/html/functions_func.html.i +data/utility/docs/html/dynsections.js.i +data/I2CIO.h.i +data/utility/docs/html/sync_off.png.i +data/utility/docs/html/_liquid_crystal___s_r1_w_8cpp.html.i +data/utility/docs/html/search/search.css.i +data/utility/docs/html/files.js.i +data/utility/docs/html/search/all_66.html.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.png.i +data/examples/LCDiSpeed/LCDiSpeed.pde.i +data/examples/performanceLCD/performanceLCD.ino.i +data/thirdparty libraries/TinyWireM/USI_TWI_Master.cpp.i +data/utility/docs/html/search/defines_64.html.i +data/thirdparty libraries/SoftI2CMaster/SoftI2CMaster.cpp.i +data/utility/docs/html/search/functions_7.html.i +data/docs/html/_fast_i_o_8h_source.html.i +data/utility/docs/html/ftv2link.png.i +data/docs/html/search/all_64.html.i +data/utility/docs/html/search/functions_a.html.i +data/library.json.i +data/utility/docs/html/class_soft_i2_c_master-members.html.i +data/examples/HelloWorld_4bit/HelloWorld_4bit.pde.i +data/docs/html/class_liquid_crystal___i2_c.html.i +data/docs/html/search/functions_61.html.i +data/utility/docs/html/class_liquid_crystal___s_r.png.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp/Tiny85_Temp.pde.i +data/keywords.txt.i +data/utility/docs/html/search/functions_9.html.i +data/docs/html/search/defines_63.html.i +data/docs/html/_fast_i_o_8h.html.i +data/docs/html/search/defines_64.html.i +data/utility/docs/html/index.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w-members.html.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp_LCD/Tiny85_Temp_LCD.pde.i +data/thirdparty libraries/TinyWireM/keywords.txt.i +data/utility/docs/html/_liquid_crystal___s_r_8h.html.i +data/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html.i +data/utility/docs/html/navtree.js.i +data/bitbucket-pipelines.yml.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.js.i +data/docs/html/installdox.i +data/utility/docs/html/class_i2_c_i_o.js.i +data/.hgsub.i +data/LiquidCrystal_4bit.h.i +data/docs/html/search/all_70.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html.i +data/thirdparty libraries/TinyWireM/examples/Tiny85_Temp_LCD_RTC/Tiny85_Temp_LCD_RTC.pde.i +data/utility/docs/html/_liquid_crystal___i2_c_8cpp.html.i +data/utility/docs/html/search/all_5f.html.i +data/utility/docs/def/doxygen.def.txt.i +data/.hgsubstate.i +data/utility/docs/html/splitbar.png.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html.i +data/docs/html/class_l_c_d-members.html.i +data/utility/docs/html/search/functions_0.js.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp_source.html.i +data/docs/html/search/defines_6c.html.i +data/examples/HelloWorld_byVac/HelloWorld_byVac.ino.i +data/docs/html/_l_c_d_8h_source.html.i +data/utility/docs/html/search/all_73.html.i +data/docs/html/open.png.i +data/docs/html/class_liquid_crystal___s_r-members.html.i +data/docs/html/_liquid_crystal_8cpp.html.i +data/utility/docs/html/search/enums_74.html.i +data/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html.i +data/docs/html/search/all_68.html.i +data/utility/docs/html/class_liquid_crystal___i2_c-members.html.i +data/utility/docs/html/search/functions_72.html.i +data/docs/html/class_liquid_crystal___s_r3_w.html.i +data/utility/docs/html/search/defines_61.html.i +data/docs/html/class_liquid_crystal___s_r2_w-members.html.i +data/docs/html/search/functions_72.html.i +data/LiquidCrystal_SR.h.i +data/thirdparty libraries/TinyWireM/TinyWireM.h.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8h.html.i +data/docs/html/_liquid_crystal___i2_c_8h_source.html.i +data/utility/docs/html/search/all_74.html.i +data/utility/docs/html/search/all_1.js.i +data/docs/html/search/defines_5f.html.i +data/SI2CIO.cpp.i +data/docs/html/search/all_6c.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html.i +data/docs/html/_liquid_crystal_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8cpp.html.i +data/docs/html/search/functions_66.html.i +data/utility/docs/html/search/functions_62.html.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8h.html.i +data/docs/html/files.html.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8cpp_source.html.i +data/docs/html/tab_b.png.i +data/docs/html/functions.html.i +data/utility/docs/html/search/all_70.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html.i +data/docs/html/index.html.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html.i +data/utility/docs/html/ftv2mlastnode.png.i +data/utility/docs/html/search/defines_62.html.i +data/LCD.cpp.i +data/utility/docs/html/search/all_6f.html.i +data/docs/html/bc_s.png.i +data/examples/i2cLCDextraIO/i2cLCDextraIO.ino.i +data/docs/html/search/all_66.html.i +data/utility/docs/html/ftv2splitbar.png.i +data/utility/docs/html/logoGoogle.jpg.i +data/docs/html/globals_enum.html.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.cpp.i +data/docs/html/globals_defs.html.i +data/.hgsub_.i +data/utility/docs/html/search/defines_73.html.i +data/utility/docs/html/class_liquid_crystal___s_r.html.i +data/utility/docs/html/tab_a.png.i +data/utility/docs/html/class_l_c_d.html.i +data/examples/HelloWorld_i2c/HelloWorld_i2c.pde.i +data/utility/docs/html/search/pages_0.js.i +data/docs/html/class_liquid_crystal-members.html.i +data/utility/docs/html/search/all_2.html.i +data/utility/docs/html/search/functions_d.js.i +data/utility/docs/html/search/files_69.html.i +data/docs/html/class_liquid_crystal___s_r2_w.html.i +data/SoftI2CMaster.cpp.i +data/utility/docs/html/search/functions_2.js.i +data/utility/docs/html/functions_func.html.i +data/utility/docs/html/search/all_65.html.i +data/utility/docs/html/search/all_9.js.i +data/utility/docs/html/search/enumvalues_6e.html.i +data/utility/docs/html/search/close.png.i +data/utility/docs/html/search/all_b.html.i +data/examples/LCDiSpeed/LCDiSpeed.txt.i +data/utility/docs/html/nav_g.png.i +data/utility/docs/html/_l_c_d_8cpp_source.html.i +data/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png.i +data/thirdparty libraries/TinyWireM/README.md.i +data/docs/html/_liquid_crystal___s_r_8cpp.html.i +data/doxygen_entrydb_2806.tmp.i +data/utility/docs/html/ftv2lastnode.png.i +data/utility/docs/html/search/all_b.js.i +data/utility/docs/html/search/all_1.html.i +data/doxygen_entrydb_2806.tmp.d +data/docs/html/search/all_65.html.i +data/utility/docs/html/class_liquid_crystal.js.i +data/docs/html/search/search_r.png.i +data/utility/docs/html/search/functions_0.html.i +data/docs/html/search/all_6e.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.js.i +data/docs/html/_liquid_crystal_8h_source.html.i +data/thirdparty libraries/TinyWireM/TinyWireM.cpp.i +data/thirdparty libraries/SoftI2CMaster/examples/I2CScanSoft/I2CScanSoft.ino.i +data/LiquidCrystal_SR1.h.i +data/docs/html/_liquid_crystal_8h.html.i +data/docs/html/_liquid_crystal___s_r_8h.html.i +data/docs/html/jquery.js.i +data/docs/html/globals_type.html.i +data/utility/docs/html/search/all_8.html.i +data/utility/docs/html/search/functions_7.js.i +data/utility/docs/html/search/all_72.html.i +data/utility/docs/html/navtree.css.i +data/docs/html/search/all_73.html.i +data/utility/docs/html/search/functions_6d.html.i +data/utility/docs/html/search/functions_8.html.i +data/docs/html/_liquid_crystal___s_r3_w_8cpp_source.html.i +data/utility/docs/html/search/functions_a.js.i +data/utility/docs/html/_liquid_crystal___s_r2_w_8cpp.html.i +data/docs/html/search/functions_64.html.i +data/docs/html/_fast_i_o_8cpp.html.i +data/FastIO.h.i +data/utility/docs/html/search/all_3.js.i +data/utility/docs/html/search/classes_1.html.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster.h.i +data/docs/html/search/functions_73.html.i +data/thirdparty libraries/SoftI2CMaster/examples/BMA020Soft/BMA020Soft.ino.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.png.i +data/docs/html/search/defines_72.html.i +data/utility/docs/html/search/classes_6c.html.i +data/docs/html/search/enums_74.html.i +data/utility/docs/Doxyfile.i +data/.hgignore.i +data/thirdparty libraries/SoftI2CMaster_/SoftI2CMaster_LICENSE.txt.i +data/utility/docs/html/search/all_6c.html.i +data/docs/html/search/classes_6c.html.i +data/utility/docs/html/_liquid_crystal___s_r3_w_8h.html.i +data/docs/html/class_liquid_crystal___s_r3_w.png.i +data/utility/docs/html/search/all_c.html.i +data/utility/docs/html/class_liquid_crystal___s_r3_w-members.html.i +data/utility/docs/html/search/all_7.js.i +data/docs/html/_liquid_crystal___s_r_8cpp_source.html.i +data/docs/html/_i2_c_i_o_8cpp.html.i +data/docs/html/search/enumvalues_6e.html.i +data/README.md.i +data/utility/docs/html/search/functions_b.js.i +data/utility/docs/html/search/all_a.js.i +data/docs/html/search/functions_68.html.i +data/utility/docs/html/_i2_c_i_o_8h_source.html.i +data/utility/docs/html/search/all_d.html.i +data/utility/docs/html/_liquid_crystal___i2_c_8h.html.i +data/docs/html/_liquid_crystal___s_r2_w_8h.html.i +data/utility/docs/html/search/all_0.html.i +data/utility/docs/html/search/functions_6.js.i +data/docs/html/_i2_c_i_o_8cpp_source.html.i +data/utility/docs/html/search/functions_65.html.i +data/utility/docs/html/md___users_fmalpartida__documents_development_mercurial_repos__s_w__newliquid_crystal__r_e_a_d_m_e.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8h_source.html.i +data/docs/html/search/all_6f.html.i +data/SI2CIO.h.i +data/utility/docs/html/_liquid_crystal___i2_c_8cpp_source.html.i +data/docs/html/_i2_c_i_o_8h_source.html.i +data/utility/docs/html/class_liquid_crystal.html.i +data/examples/HelloWorld_SR1/HelloWorld_SR1.pde.i +data/docs/html/search/files_69.html.i +data/utility/docs/html/search/functions_6.html.i +data/docs/html/search/defines_66.html.i +data/examples/HelloWorld_4bit/HelloWorld_4bit.ino.i +data/utility/docs/html/jquery.js.i +data/utility/docs/html/_l_c_d_8cpp.html.i +data/utility/docs/html/search/classes_0.js.i +data/utility/docs/html/search/functions_1.html.i +data/utility/docs/html/search/functions_73.html.i +data/thirdparty libraries/SoftI2CMaster/license.txt.i +data/utility/docs/html/annotated_dup.js.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.html.i +data/LiquidCrystal_SR1.cpp.i +data/docs/html/search/defines_65.html.i +data/utility/docs/html/search/searchdata.js.i +data/docs/html/search/classes_69.html.i +data/utility/docs/html/search/search_m.png.i +data/utility/docs/html/search/functions_b.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp.html.i +data/docs/html/search/functions_69.html.i +data/utility/docs/html/search/functions_64.html.i +data/docs/html/search/functions_6c.html.i +data/docs/html/class_liquid_crystal___i2_c-members.html.i +data/utility/docs/html/class_s_i2_c_i_o.html.i +data/utility/docs/html/search/functions_4.js.i +data/LiquidCrystal_SI2C.cpp.i +data/utility/docs/html/search/functions_2.html.i +data/docs/html/hierarchy.html.i +data/docs/html/_liquid_crystal___s_r3_w_8cpp.html.i +data/docs/html/classes.html.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3.png.i +data/docs/html/nav_h.png.i +data/docs/html/nav_f.png.i +data/utility/docs/html/search/functions_9.js.i +data/utility/docs/html/class_liquid_crystal___s_r3_w.png.i +data/utility/docs/html/search/nomatches.html.i +data/utility/docs/html/search/all_9.html.i +data/utility/docs/html/search/all_c.js.i +data/utility/docs/html/_s_i2_c_i_o_8h_source.html.i +data/thirdparty libraries/SoftI2CMaster/examples/TSL2561Soft/TSL2561Soft.ino.i +data/utility/docs/html/sync_on.png.i +data/utility/docs/html/class_liquid_crystal___i2_c.png.i +data/utility/docs/html/globals_eval.html.i +data/utility/docs/html/ftv2plastnode.png.i +data/utility/docs/html/bdwn.png.i +data/utility/docs/html/_fast_i_o_8cpp.html.i +data/LiquidCrystal_SR2W.cpp.i +data/examples/i2cLCDextraIO/i2cLCDextraIO.pde.i +data/utility/docs/html/functions.html.i +data/utility/docs/html/search/enumvalues_73.html.i +data/utility/docs/html/class_liquid_crystal___s_r1_w.html.i +data/docs/html/_liquid_crystal___i2_c_8cpp_source.html.i +data/utility/docs/html/_liquid_crystal___i2_c_8h_source.html.i +data/thirdparty libraries/SoftI2CMaster/examples/MLX90614Soft/MLX90614Soft.ino.i +data/utility/docs/html/doxygen.png.i +data/examples/HelloWorld_SR/HelloWorld_SR.ino.i +data/LiquidCrystal_SR2W.h.i +data/docs/html/search/all_69.html.i +data/utility/docs/html/search/all_5.js.i +data/docs/html/class_liquid_crystal.html.i +data/utility/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html.i +data/utility/docs/html/search/functions_1.js.i +data/utility/docs/html/search/functions_6c.html.i +data/docs/html/search/functions_6d.html.i +data/utility/docs/html/installdox.i +data/utility/docs/html/bc_s.png.i +data/examples/HelloWorld_SR/HelloWorld_SR.pde.i +data/utility/docs/html/ftv2doc.png.i +data/examples/HelloWorld_i2c/HelloWorld_i2c.ino.i +data/utility/docs/html/search/all_69.html.i +data/docs/html/doxygen.css.i +data/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino.i +data/utility/docs/html/search/functions_70.html.i +data/utility/docs/html/navtreedata.js.i +data/I2CIO.cpp.i +data/LiquidCrystal_SR3W.cpp.i +data/docs/html/search/close.png.i +data/docs/html/class_liquid_crystal___s_r___l_c_d3-members.html.i +data/utility/docs/html/class_liquid_crystal___i2_c.js.i +data/utility/docs/html/search/defines_5f.html.i +data/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html.i +data/docs/html/_liquid_crystal___i2_c_8h.html.i +data/utility/docs/html/ftv2vertline.png.i +data/utility/docs/html/search/functions_77.html.i +data/docs/html/functions_vars.html.i +data/utility/docs/html/ftv2folderopen.png.i +data/utility/docs/html/_liquid_crystal___s_r___l_c_d3_8cpp_source.html.i +data/thirdparty libraries/TinyWireM/examples/AT24_EEPROM/AT24_EEPROM.ino.i +data/LiquidCrystal_SR1W.h.i +data/utility/docs/html/_fast_i_o_8h.html.i +data/utility/docs/html/class_liquid_crystal___s_i2_c-members.html.i +data/docs/html/_fast_i_o_8cpp_source.html.i +data/utility/docs/html/search/all_a.html.i +data/docs/html/search/defines_62.html.i +data/utility/docs/html/search/all_0.js.i +data/thirdparty libraries/SoftI2CMaster/examples/stretchTest/stretchTest.ino.i +data/utility/docs/html/search/search_r.png.i +data/docs/html/_liquid_crystal___s_r3_w_8h.html.i +data/utility/docs/html/_i2_c_i_o_8cpp.html.i +data/FastIO.cpp.i +data/utility/docs/html/pages.html.i +data/utility/docs/html/files.html.i +data/utility/docs/html/_liquid_crystal___s_r_8h_source.html.i +data/utility/docs/html/globals_enum.html.i +data/delay_x.h.i +data/utility/docs/html/search/classes_1.js.i +data/utility/docs/html/_fast_i_o_8cpp_source.html.i +data/examples/SerialDisplay/SerialDisplay.ino.i +data/utility/docs/html/search/typedefs_66.html.i +data/utility/docs/html/search/defines_6c.html.i +data/docs/html/class_liquid_crystal___s_r3_w-members.html.i +data/docs/html/closed.png.i +data/utility/docs/html/_i2_c_i_o_8h.html.i +data/utility/docs/html/search/functions_5.js.i +data/utility/docs/html/class_l_c_d.js.i +data/examples/HelloWorld_SR1/HelloWorld_SR1.ino.i +data/utility/docs/html/tab_h.png.i +data/utility/docs/html/class_liquid_crystal___s_r-members.html.i +data/utility/docs/html/search/all_6d.html.i +data/utility/docs/html/annotated.html.i +data/utility/docs/html/search/search.js.i +data/utility/docs/html/search/all_7.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8cpp.html.i +data/utility/docs/html/search/defines_63.html.i +data/utility/docs/html/search/all_6.html.i +data/utility/docs/html/_liquid_crystal_8h_source.html.i +data/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h.html.i +data/utility/docs/html/search/functions_3.html.i +data/SoftI2CMaster.h.i +data/utility/docs/html/search/all_63.html.i +data/docs/html/search/mag_sel.png.i +data/utility/docs/html/search/files_66.html.i +data/utility/docs/html/ftv2blank.png.i +data/utility/docs/html/globals_defs.html.i +data/utility/docs/html/search/defines_74.html.i +data/utility/docs/html/open.png.i +data/thirdparty libraries/SoftI2CMaster/README.md.i +data/utility/docs/html/search/functions_61.html.i +data/utility/docs/html/search/mag_sel.png.i +data/docs/html/class_i2_c_i_o-members.html.i +data/utility/docs/html/search/functions_5.html.i +data/utility/docs/html/class_soft_i2_c_master.js.i +data/utility/docs/html/nav_f.png.i +data/utility/docs/html/class_s_i2_c_i_o-members.html.i +data/utility/docs/html/_liquid_crystal___s_r_8cpp.html.i +data/LiquidCrystal.cpp.i +data/utility/docs/html/class_liquid_crystal___s_i2_c.html.i +data/utility/docs/html/tab_b.png.i +data/docs/html/search/enumvalues_70.html.i +data/utility/docs/html/tab_s.png.i +data/utility/docs/html/search/search_l.png.i +data/utility/docs/html/search/defines_72.html.i +data/docs/html/_l_c_d_8h.html.i +data/LiquidCrystal_I2C.h.i diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.phaseroots b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.phaseroots new file mode 100644 index 0000000000000000000000000000000000000000..41e1c4ea7810e51b53d6b0d3eea56e5884c5a9ff --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backup.phaseroots @@ -0,0 +1 @@ +1 bf2f2ee962645ac5ba6061a910f0d9f4ece926ba diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/undo.backupfiles b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backupfiles new file mode 100644 index 0000000000000000000000000000000000000000..ccd1f3be0c8e2e9f3ccfe1205183f825728149ff Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/store/undo.backupfiles differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/store/undo.phaseroots b/Libs/NewLiquidCrystal_lib/.hg/store/undo.phaseroots new file mode 100644 index 0000000000000000000000000000000000000000..41e1c4ea7810e51b53d6b0d3eea56e5884c5a9ff --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/store/undo.phaseroots @@ -0,0 +1 @@ +1 bf2f2ee962645ac5ba6061a910f0d9f4ece926ba diff --git a/Libs/NewLiquidCrystal_lib/.hg/undo.backup.dirstate b/Libs/NewLiquidCrystal_lib/.hg/undo.backup.dirstate new file mode 100644 index 0000000000000000000000000000000000000000..83de7100708c921c381098990b1a006da817b2af Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/undo.backup.dirstate differ diff --git a/Libs/NewLiquidCrystal_lib/.hg/undo.bookmarks b/Libs/NewLiquidCrystal_lib/.hg/undo.bookmarks new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hg/undo.branch b/Libs/NewLiquidCrystal_lib/.hg/undo.branch new file mode 100644 index 0000000000000000000000000000000000000000..30b81dbfd01ac895ffcf3c85207ad6cb21ad34a7 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/undo.branch @@ -0,0 +1 @@ +release \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/.hg/undo.desc b/Libs/NewLiquidCrystal_lib/.hg/undo.desc new file mode 100644 index 0000000000000000000000000000000000000000..89e7686b63e1c1388fddd2c6ae9f3e4e33cb6a52 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hg/undo.desc @@ -0,0 +1,3 @@ +252 +push-response +https://fmalpartida@bitbucket.org/fmalpartida/new-liquidcrystal diff --git a/Libs/NewLiquidCrystal_lib/.hg/undo.dirstate b/Libs/NewLiquidCrystal_lib/.hg/undo.dirstate new file mode 100644 index 0000000000000000000000000000000000000000..d5a6cf7d154f490b672ad855a9ca1b2b60a41e85 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/.hg/undo.dirstate differ diff --git a/Libs/NewLiquidCrystal_lib/.hgignore b/Libs/NewLiquidCrystal_lib/.hgignore new file mode 100644 index 0000000000000000000000000000000000000000..7611a1b1f72724504073e575972b29ada7e8fca8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hgignore @@ -0,0 +1,14 @@ +syntax: glob +.DS_Store +delay_x.h +thirdparty libraries/TinyWireM_/keywords.txt +thirdparty libraries/TinyWireM_/library.properties +thirdparty libraries/TinyWireM_/README.md +thirdparty libraries/TinyWireM_/TinyWireM.cpp +thirdparty libraries/TinyWireM_/TinyWireM.h +thirdparty libraries/TinyWireM_/USI_TWI_Master.cpp +thirdparty libraries/TinyWireM_/USI_TWI_Master.h +thirdparty libraries/TinyWireM_/examples/AT24_EEPROM/AT24_EEPROM.ino +thirdparty libraries/TinyWireM_/examples/Tiny85_Temp/Tiny85_Temp.pde +thirdparty libraries/TinyWireM_/examples/Tiny85_Temp_LCD/Tiny85_Temp_LCD.pde +thirdparty libraries/TinyWireM_/examples/Tiny85_Temp_LCD_RTC/Tiny85_Temp_LCD_RTC.pde \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/.hgsub_ b/Libs/NewLiquidCrystal_lib/.hgsub_ new file mode 100644 index 0000000000000000000000000000000000000000..bad6fe8e1cd73bdc8ec4058629ce6774cc69a38c --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hgsub_ @@ -0,0 +1 @@ +thirdparty libraries/TinyWireM = [git]https://github.com/SpenceKonde/TinyWireM.git diff --git a/Libs/NewLiquidCrystal_lib/.hgsubstate b/Libs/NewLiquidCrystal_lib/.hgsubstate new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/.hgtags b/Libs/NewLiquidCrystal_lib/.hgtags new file mode 100644 index 0000000000000000000000000000000000000000..86000c25ed74c84884e514fa21953623f0ed5d79 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/.hgtags @@ -0,0 +1,46 @@ +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +350358815c25656fde83ab5c636511e16f2d1b93 V 1.1.2 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +3afcaba7f807357817b0deedec59a6dc0452d291 V 1.1.3 +c57fe4cf1b3544f590ffb1cce38a1af03148cd89 V 1.1.3 +b0a1d4a24de12d4a323b3a8f7564ae282f1f9209 V 1.1.4 +070f1d90be5f7bd513a4c5663f429c39077c06ab V 1.1.5 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +cb271438ac1fa67906296cd2c821da61814be2ea V 1.1.6 +82f18d4b8ebca14c59e0f8fc2fef075abb9a5d50 V 1.1.6 +981e5559fab2205d613d3c192a322e16f9a20fb2 V 1.1.7 +df4563d57b5cb8a6f534564f10a5d65935d8ef71 V 1.1.7 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.0.7_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +2ec4883f118bb66655dbb4012df70df0a4f75b9b V 1.2.0_RC1 +66821a8054ea8dfacdad6c19397dbf93f6bd7fa5 V 1.0.2_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +9a1bd27980a539427b876c5bc9cf76a6e679df25 V 1.2.0_RC1 +e1485608a8fcda9e6d3a52380e558005283e2619 V 1.2.0_RC1 +cdf9b4eb0556635c20da8273dfc1f3204864c0a0 V 1.2.0_RC1 +1cf625ca9242d298a480c655d38ad964cd61ae61 V 1.2.0 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2299ac1b335bb99702ee345ea82f9fe8cbd809ef V 1.2.1_RC1 +5dc9d6595d270ea757ef0ea9eae017b8f89732f3 V 1.2.1_RC1 +2bbd1aad67c3ee1bda2fb8637618514100f49c7c V 1.2.1_RC1 +f3f7c8436a62c7f3d50ba8f7d5790cd4ede94210 V 1.2.1_RC2 +c5879ff3f2e5e0d2a0755022781406bc8045567a V 1.2.1_RC2 +488875877f5714d1e286d9a331e40abe57103efe V 1.2.1_RC3 +a4eb104f6dffbe58fc3fd96a5ef9736be5bd07a4 V 1.2.1_RC3 +83bc88dc5c5637bf982c9d8d3dee1e6d57d13bc4 V 1.2.1_RC4 +2e6269d8b2695bd8d33941c3afe09c61b555a26b V 1.2.1_RC4 +a0910a053530c0a19bfbaa1144d1d3b90fcb5e3b V_1.2.1_RC5 +eac3d34ed9dd1bd80f57098ee563f57fa5df1586 V 1.2.1 +c0432608719bae3cdf60b0cb428181d36b25b945 V 1.2.2 +eab837be9770f9d3e004f26d299578d8cff9215b V 1.3.0 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +fc43ac91ab9c004ec2b8c89f8c6e477fce624af9 V 1.3.1 +6e2da8cb3ba943fb281e6b9c2d18cf9ddd307c7d V 1.3.2 +59c60fbefe8d447b4ca705fff75a4a1894b1433a V 1.3.3 +144fddd7979d950c8aa34a15807265c5a69e34b1 V 1.3.4 +a68432d580ee2dc3f19bf1f8ae1b20afcb187b98 V 1.3.5 +e8a17589cb2fb187020fc92d38c377e4568c28a3 V-1.3.6 +5c7ee821a426e32c1505b4b071bd642fce15a7ea V-1.4.0 +2d9f7ad2f01edb29979f30b78add486b66b4112d 1.4.1 +fa4e70e2c290f994190e0ec901595ae1a8cc92cf 1.5.0 +bf2f2ee962645ac5ba6061a910f0d9f4ece926ba 1.5.1 diff --git a/Libs/NewLiquidCrystal_lib/FastIO.cpp b/Libs/NewLiquidCrystal_lib/FastIO.cpp new file mode 100644 index 0000000000000000000000000000000000000000..00c15e12459445a33ad6b6f9a3056ca95bbd9eb4 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/FastIO.cpp @@ -0,0 +1,278 @@ +// --------------------------------------------------------------------------- +// Created by Florian Fida on 20/01/12 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black +// (http://www.romanblack.com/shift1.htm) +// +// Thread Safe: No +// Extendable: Yes +// +// @file FastIO.h +// This file implements basic fast IO routines. +// +// @brief +// +// @version API 1.0.0 +// +// @author Florian Fida - +// +// 2012-03-16 bperrybap updated fio_shiftout() to be smaller & faster +// +// @todo: +// support chipkit: +// (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/ +// cores/pic32/wiring_digital.c) +// --------------------------------------------------------------------------- +#include "FastIO.h" + + +fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state) +{ + pinMode(pin, OUTPUT); + + if(initial_state != SKIP) + { + digitalWrite(pin, initial_state); // also turns off pwm timer + } +#ifdef FIO_FALLBACK + // just wasting memory if not using fast io... + return 0; +#else + return portOutputRegister(digitalPinToPort(pin)); +#endif +} + + +fio_register fio_pinToInputRegister(uint8_t pin) +{ + pinMode(pin, INPUT); + digitalWrite(pin, LOW); // also turns off pwm timer and pullup +#ifdef FIO_FALLBACK + // just wasting memory if not using fast io... + return 0; +#else + return portInputRegister(digitalPinToPort(pin)); +#endif +} + + +fio_bit fio_pinToBit(uint8_t pin) +{ +#ifdef FIO_FALLBACK + // (ab)use the bit variable to store the pin + return pin; +#else + return digitalPinToBitMask(pin); +#endif +} + + +void fio_digitalWrite(fio_register pinRegister, fio_bit pinBit, uint8_t value) +{ +#ifdef FIO_FALLBACK + digitalWrite(pinBit, value); +#else + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value == LOW) + { + fio_digitalWrite_LOW(pinRegister,pinBit); + } + else + { + fio_digitalWrite_HIGH(pinRegister,pinBit); + } + } +#endif +} + +int fio_digitalRead(fio_register pinRegister, uint8_t pinBit) +{ +#ifdef FIO_FALLBACK + return digitalRead (pinBit); +#else + if (*pinRegister & pinBit) + { + return HIGH; + } + return LOW; +#endif +} + +void fio_shiftOut (fio_register dataRegister, fio_bit dataBit, + fio_register clockRegister, fio_bit clockBit, + uint8_t value, uint8_t bitOrder) +{ + // # disable interrupts + int8_t i; + + if(bitOrder == LSBFIRST) + { + for(i = 0; i < 8; i++) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value & 1) + { + fio_digitalWrite_HIGH(dataRegister, dataBit); + } + else + { + fio_digitalWrite_LOW(dataRegister, dataBit); + } + value >>= 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + + } + else + { + for(i = 0; i < 8; i++) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + if(value & 0x80) + { + fio_digitalWrite_HIGH(dataRegister, dataBit); + } + else + { + fio_digitalWrite_LOW(dataRegister, dataBit); + } + value <<= 1; + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_LOW (clockRegister,clockBit); + } + } + } +} + + +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, + fio_register clockRegister, fio_bit clockBit) +{ + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // shift out 0x0 (B00000000) fast, byte order is irrelevant + fio_digitalWrite_LOW (dataRegister, dataBit); + + for(uint8_t i = 0; i<8; ++i) + { + fio_digitalWrite_HIGH (clockRegister, clockBit); + fio_digitalWrite_SWITCH (clockRegister, clockBit); + } + } +} + + +void fio_shiftOut1_init(uint8_t pin) +{ + fio_shiftOut1_init(fio_pinToOutputRegister(pin,HIGH),fio_pinToBit(pin)); +} + +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit) +{ + // Make sure that capacitors are charged + // 300us is an educated guess... + fio_digitalWrite(shift1Register,shift1Bit,HIGH); + delayMicroseconds(300); +} + + +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, + boolean noLatch) +{ + /* + * this function are based on Shif1 protocol developed by Roman Black + * (http://www.romanblack.com/shift1.htm) + * + * test sketches: + * http://pastebin.com/raw.php?i=2hnC9v2Z + * http://pastebin.com/raw.php?i=bGg4DhXQ + * http://pastebin.com/raw.php?i=tg1ZFiM5 + * http://pastebin.com/raw.php?i=93ExPDD3 - cascading + * tested with: + * TPIC6595N - seems to work fine (circuit: http://www.3guys1laser.com/ + * arduino-one-wire-shift-register-prototype) + * 7HC595N + */ + + // iterate but ignore last bit (is it correct now?) + for(int8_t i = 7; i>=0; --i) + { + + // assume that pin is HIGH (smokin' pot all day... :) - requires + // initialization + if(value & _BV(i)) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // HIGH = 1 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + //hold pin LOW for 1us - done! :) + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + //hold pin HIGH for 15us + delayMicroseconds(15); + } + else + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // LOW = 0 Bit + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + // hold pin LOW for 15us + delayMicroseconds(15); + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,HIGH); + } // end critical section + + // hold pin HIGH for 30us + delayMicroseconds(30); + } + if(!noLatch && i==1) + { + break; + } + } + + if(!noLatch) + { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // send last bit (=LOW) and Latch command + fio_digitalWrite_SWITCHTO(shift1Register,shift1Bit,LOW); + } // end critical section + delayMicroseconds(199); // Hold pin low for 200us + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(shift1Register,shift1Bit); + } // end critical section + delayMicroseconds(299); // Hold pin high for 300us and leave it that + // way - using explicit HIGH here, just in case. + } +} + +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch) +{ + fio_shiftOut1(fio_pinToOutputRegister(pin, SKIP),fio_pinToBit(pin),value, noLatch); +} diff --git a/Libs/NewLiquidCrystal_lib/FastIO.h b/Libs/NewLiquidCrystal_lib/FastIO.h new file mode 100644 index 0000000000000000000000000000000000000000..b5832842bbd6a8e017d61524ce020e5132bce174 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/FastIO.h @@ -0,0 +1,242 @@ +// --------------------------------------------------------------------------- +// Created by Florian Fida on 20/01/12 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black +// (http://www.romanblack.com/shift1.htm) +// +// Thread Safe: No +// Extendable: Yes +// +// @file FastIO.h +// This file implements basic fast IO routines. +// +// @brief +// +// @version API 1.0.0 +// +// @author Florian Fida - +// 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino +// support chipkit: +// (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/ +// cores/pic32/wiring_digital.c) +// --------------------------------------------------------------------------- +#ifndef _FAST_IO_H_ +#define _FAST_IO_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include // pleasing sanguino core +#include + + +#define SKIP 0x23 + +#if defined (__AVR__) +#include // for critical section management +typedef uint8_t fio_bit; +typedef volatile uint8_t *fio_register; +// __AVR__ processor end + +#elif defined(__PIC32MX__) +typedef uint32_t fio_bit; +typedef volatile uint32_t *fio_register; +// __PIC32MX__ processor end + +#else +// fallback to Arduino standard digital i/o routines +#define FIO_FALLBACK +#define ATOMIC_BLOCK(dummy) if(true) +#define ATOMIC_RESTORESTATE +typedef uint8_t fio_bit; +typedef uint8_t fio_register; +#endif // Processor dependent fast IO definition + + + +#if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK) +/* + * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type + * Using the portable Arduino interrupts() and noInterrupts() + */ +#define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet. +#define ATOMIC_FORCEON uint8_t sreg_save \ + __attribute__((__cleanup__(__iSeiParam))) = 0 + +static __inline__ uint8_t __iCliRetVal(void) +{ + noInterrupts(); + return(1); +} +static __inline__ void __iSeiParam(const uint8_t *__s) +{ + interrupts(); +} +#define ATOMIC_BLOCK(type) for(type, __Todo = __iCliRetVal(); __Todo; __Todo = 0) + +#endif // end of block to create compatible ATOMIC_BLOCK() + +/*! + @defined + @abstract Performs a bitwise shift. + @discussion Defines _BV bit shift which is very dependent macro defined by + Atmel. + + \note The bit shift is performed by the compiler which then inserts the + result into the code. Thus, there is no run-time overhead when using + _BV(). +*/ +#ifndef _BV +#define _BV(bit) (1 << (bit)) +#endif + +/*! + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW); + +/*! + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register + */ +fio_register fio_pinToInputRegister(uint8_t pin); + +/*! + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit + */ +fio_bit fio_pinToBit(uint8_t pin); + + +/*! + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output + */ +// __attribute__ ((always_inline)) /* let the optimizer decide that for now */ +void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value ); + +/** + * This is where the magic happens that makes things fast. + * Implemented as preprocessor directives to force inlining + * SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. + */ + +#ifndef FIO_FALLBACK +#define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit +#define fio_digitalWrite_HIGH(reg,bit) *reg |= bit +#define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit +#define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit) +#else +// reg -> dummy NULL, bit -> pin +#define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH) +#define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW) +#define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit)) +#define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val); +#endif + +/*! + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin + */ +int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit ); + +/*! + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order + */ +void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, + fio_bit clockBit, uint8_t value, uint8_t bitOrder ); + +/*! + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + */ +void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit); + +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract one wire shift out + * @discussion protocol needs initialisation (fio_shiftOut1_init) + * @param pin[in] digital pin + * @param value[in] value to shift out, last byte is ignored and always shifted out LOW + */ +void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param shift1Register[in] pins register + * @param shift1Bit[in] pins bit + */ +void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit); +/*! + * @method + * @abstract initializes one wire shift out protocol + * @discussion Puts pin to HIGH state and delays until Capacitors are charged. + * @param pin[in] digital pin + */ +void fio_shiftOut1_init(uint8_t pin); + +#endif // FAST_IO_H diff --git a/Libs/NewLiquidCrystal_lib/I2CIO.cpp b/Libs/NewLiquidCrystal_lib/I2CIO.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fd23e101e74a68a5f3b077a3924c7b1ce6bcde7b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/I2CIO.cpp @@ -0,0 +1,248 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) + #include +#else + #include +#endif + +#if defined(__AVR_ATtiny84__) || (__AVR_ATtiny2313__) || defined (__AVR_ATtiny85__) +#include "TinyWireM.h" // include this if ATtiny84 or ATtiny85 or ATtiny2313 + +#define Wire TinyWireM +#else + +#if (ARDUINO < 10000) + #include <../Wire/Wire.h> +#else + #include +#endif + +#endif + +#include + +#include "I2CIO.h" + + + +// CLASS VARIABLES +// --------------------------------------------------------------------------- + + +// CONSTRUCTOR +// --------------------------------------------------------------------------- +I2CIO::I2CIO ( ) +{ + _i2cAddr = 0x0; + _dirMask = 0xFF; // mark all as INPUTs + _shadow = 0x0; // no values set + _initialised = false; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +// +// begin +int I2CIO::begin ( uint8_t i2cAddr ) +{ + _i2cAddr = i2cAddr; + + Wire.begin ( ); + + _initialised = isAvailable ( _i2cAddr ); + + if (_initialised) + { +#if (ARDUINO < 100) + _shadow = Wire.receive (); +#else + _shadow = Wire.read (); // Remove the byte read don't need it. +#endif + } + return ( _initialised ); +} + +// +// pinMode +void I2CIO::pinMode ( uint8_t pin, uint8_t dir ) +{ + if ( _initialised ) + { + if ( OUTPUT == dir ) + { + _dirMask &= ~( 1 << pin ); + } + else + { + _dirMask |= ( 1 << pin ); + } + } +} + +// +// portMode +void I2CIO::portMode ( uint8_t dir ) +{ + + if ( _initialised ) + { + if ( dir == INPUT ) + { + _dirMask = 0xFF; + } + else + { + _dirMask = 0x00; + } + } +} + +// +// read +uint8_t I2CIO::read ( void ) +{ + uint8_t retVal = 0; + + if ( _initialised ) + { + Wire.requestFrom ( _i2cAddr, (uint8_t)1 ); +#if (ARDUINO < 100) + retVal = ( _dirMask & Wire.receive ( ) ); +#else + retVal = ( _dirMask & Wire.read ( ) ); +#endif + + } + return ( retVal ); +} + +// +// write +int I2CIO::write ( uint8_t value ) +{ + int status = 0; + + if ( _initialised ) + { + // Only write HIGH the values of the ports that have been initialised as + // outputs updating the output shadow of the device + + // + // 15-FEB-2018 - fix, all I/Os initialized as input must be written as HIGH + // _shadow = ( value & ~(_dirMask) ); + _shadow = ( value | _dirMask ); + + Wire.beginTransmission ( _i2cAddr ); +#if (ARDUINO < 100) + Wire.send ( _shadow ); +#else + Wire.write ( _shadow ); +#endif + status = Wire.endTransmission (); + } + return ( (status == 0) ); +} + +// +// digitalRead +uint8_t I2CIO::digitalRead ( uint8_t pin ) +{ + uint8_t pinVal = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Remove the values which are not inputs and get the value of the pin + pinVal = this->read() & _dirMask; + pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value + } + return (pinVal); +} + +// +// digitalWrite +int I2CIO::digitalWrite ( uint8_t pin, uint8_t level ) +{ + uint8_t writeVal; + int status = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Only write to HIGH the port if the port has been configured as + // an OUTPUT pin. Add the new state of the pin to the shadow + writeVal = ( 1 << pin ) & ~_dirMask; + + if ( level == HIGH ) + { + _shadow |= writeVal; + + } + else + { + _shadow &= ~writeVal; + } + status = this->write ( _shadow ); + } + return ( status ); +} + +// +// PRIVATE METHODS +// --------------------------------------------------------------------------- +bool I2CIO::isAvailable (uint8_t i2cAddr) +{ + int error; + + Wire.beginTransmission( i2cAddr ); + error = Wire.endTransmission(); + if (error==0) + { + return true; + } + else //Some error occured + { + return false; + } +} diff --git a/Libs/NewLiquidCrystal_lib/I2CIO.h b/Libs/NewLiquidCrystal_lib/I2CIO.h new file mode 100644 index 0000000000000000000000000000000000000000..75bd2a91ffa8c566229c66d22777be5e60c88552 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/I2CIO.h @@ -0,0 +1,173 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file I2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- + +#ifndef _I2CIO_H_ +#define _I2CIO_H_ + +#include + +#define _I2CIO_VERSION "1.0.0" + +/*! + @class + @abstract I2CIO + @discussion Library driver to control PCF8574 based ASICs. Implementing + library calls to set/get port through I2C bus. + */ + +class I2CIO +{ +public: + /*! + @method + @abstract Constructor method + @discussion Class constructor constructor. + */ + I2CIO ( ); + + /*! + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise + */ + int begin ( uint8_t i2cAddr ); + + /*! + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). + */ + void pinMode ( uint8_t pin, uint8_t dir ); + + /*! + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). + */ + void portMode ( uint8_t dir ); + + /*! + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none + */ + uint8_t read ( void ); + + /*! + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. + */ + uint8_t digitalRead ( uint8_t pin ); + + /*! + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise + */ + int write ( uint8_t value ); + + /*! + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. + */ + int digitalWrite ( uint8_t pin, uint8_t level ); + + + +private: + uint8_t _shadow; // Shadow output + uint8_t _dirMask; // Direction mask + uint8_t _i2cAddr; // I2C address + bool _initialised; // Initialised object + + /*! + @method + @abstract Check if I2C device is available. + @discussion Checks to see if an I2C device is available at address i2cAddr. + + @param i2cAddr[in] I2C address to check availability + @result true if available, false otherwise. + */ + bool isAvailable (uint8_t i2cAddr); + +}; + +#endif \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/LCD.cpp b/Libs/NewLiquidCrystal_lib/LCD.cpp new file mode 100644 index 0000000000000000000000000000000000000000..462c91057cbf148edcef80ccb6d94108764b82a9 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LCD.cpp @@ -0,0 +1,384 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the HD44780 library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, ... +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// +// @version API 1.1.0 +// +// 2012.03.29 bperrybap - changed comparision to use LCD_5x8DOTS rather than 0 +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +//extern "C" void __cxa_pure_virtual() { while (1); } +#include "LCD.h" + + +// CLASS CONSTRUCTORS +// --------------------------------------------------------------------------- +// Constructor +LCD::LCD () +{ + +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- +// When the display powers up, it is configured as follows: +// 0. LCD starts in 8 bit mode +// 1. Display clear +// 2. Function set: +// DL = 1; 8-bit interface data +// N = 0; 1-line display +// F = 0; 5x8 dot character font +// 3. Display on/off control: +// D = 0; Display off +// C = 0; Cursor off +// B = 0; Blinking off +// 4. Entry mode set: +// I/D = 1; Increment by 1 +// S = 0; No shift +// +// Note, however, that resetting the Arduino doesn't reset the LCD, so we +// can't assume that its in that state when a application starts (and the +// LiquidCrystal constructor is called). +// A call to begin() will reinitialize the LCD. +// +void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + if (lines > 1) + { + _displayfunction |= LCD_2LINE; + } + _numlines = lines; + _cols = cols; + + // for some 1 line displays you can select a 10 pixel high font + // ------------------------------------------------------------ + if ((dotsize != LCD_5x8DOTS) && (lines == 1)) + { + _displayfunction |= LCD_5x10DOTS; + } + + // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! + // according to datasheet, we need at least 40ms after power rises above 2.7V + // before sending commands. Arduino can turn on way before 4.5V so we'll wait + // 50 + // --------------------------------------------------------------------------- + delay (100); // 100ms delay + + //put the LCD into 4 bit or 8 bit mode + // ------------------------------------- + if (! (_displayfunction & LCD_8BITMODE)) + { + // this is according to the hitachi HD44780 datasheet + // figure 24, pg 46 + + // we start in 8bit mode, try to set 4 bit mode + // Special case of "Function Set" + send(0x03, FOUR_BITS); + delayMicroseconds(4500); // wait min 4.1ms + + // second try + send ( 0x03, FOUR_BITS ); + delayMicroseconds(150); // wait min 100us + + // third go! + send( 0x03, FOUR_BITS ); + delayMicroseconds(150); // wait min of 100us + + // finally, set to 4-bit interface + send ( 0x02, FOUR_BITS ); + delayMicroseconds(150); // wait min of 100us + + } + else + { + // this is according to the hitachi HD44780 datasheet + // page 45 figure 23 + + // Send function set command sequence + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(4500); // wait more than 4.1ms + + // second try + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(150); + + // third go + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds(150); + + } + + // finally, set # lines, font size, etc. + command(LCD_FUNCTIONSET | _displayfunction); + delayMicroseconds ( 60 ); // wait more + + // turn the display on with no cursor or blinking default + _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; + display(); + + // clear the LCD + clear(); + + // Initialize to default text direction (for romance languages) + _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; + // set the entry mode + command(LCD_ENTRYMODESET | _displaymode); + + backlight(); + +} + +// Common LCD Commands +// --------------------------------------------------------------------------- +void LCD::clear() +{ + command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // this command is time consuming +} + +void LCD::home() +{ + command(LCD_RETURNHOME); // set cursor position to zero + delayMicroseconds(HOME_CLEAR_EXEC); // This command is time consuming +} + +void LCD::setCursor(uint8_t col, uint8_t row) +{ + const byte row_offsetsDef[] = { 0x00, 0x40, 0x14, 0x54 }; // For regular LCDs + const byte row_offsetsLarge[] = { 0x00, 0x40, 0x10, 0x50 }; // For 16x4 LCDs + + if ( row >= _numlines ) + { + row = _numlines-1; // rows start at 0 + } + + // 16x4 LCDs have special memory map layout + // ---------------------------------------- + if ( _cols == 16 && _numlines == 4 ) + { + command(LCD_SETDDRAMADDR | (col + row_offsetsLarge[row])); + } + else + { + command(LCD_SETDDRAMADDR | (col + row_offsetsDef[row])); + } + +} + +// Turn the display on/off +void LCD::noDisplay() +{ + _displaycontrol &= ~LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::display() +{ + _displaycontrol |= LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns the underline cursor on/off +void LCD::noCursor() +{ + _displaycontrol &= ~LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LCD::cursor() +{ + _displaycontrol |= LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns on/off the blinking cursor +void LCD::noBlink() +{ + _displaycontrol &= ~LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +void LCD::blink() +{ + _displaycontrol |= LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// These commands scroll the display without changing the RAM +void LCD::scrollDisplayLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); +} + +void LCD::scrollDisplayRight(void) +{ + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); +} + +// This is for text that flows Left to Right +void LCD::leftToRight(void) +{ + _displaymode |= LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This is for text that flows Right to Left +void LCD::rightToLeft(void) +{ + _displaymode &= ~LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This method moves the cursor one space to the right +void LCD::moveCursorRight(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVERIGHT); +} + +// This method moves the cursor one space to the left +void LCD::moveCursorLeft(void) +{ + command(LCD_CURSORSHIFT | LCD_CURSORMOVE | LCD_MOVELEFT); +} + + +// This will 'right justify' text from the cursor +void LCD::autoscroll(void) +{ + _displaymode |= LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'left justify' text from the cursor +void LCD::noAutoscroll(void) +{ + _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// Write to CGRAM of new characters +void LCD::createChar(uint8_t location, uint8_t charmap[]) +{ + location &= 0x7; // we only have 8 locations 0-7 + + command(LCD_SETCGRAMADDR | (location << 3)); + delayMicroseconds(30); + + for (uint8_t i = 0; i < 8; i++) + { + write(charmap[i]); // call the virtual write method + delayMicroseconds(40); + } +} + +#ifdef __AVR__ +void LCD::createChar(uint8_t location, const char *charmap) +{ + location &= 0x7; // we only have 8 memory locations 0-7 + + command(LCD_SETCGRAMADDR | (location << 3)); + delayMicroseconds(30); + + for (uint8_t i = 0; i < 8; i++) + { + write(pgm_read_byte_near(charmap++)); + delayMicroseconds(40); + } +} +#endif // __AVR__ + +// +// Switch on the backlight +void LCD::backlight ( void ) +{ + setBacklight(255); +} + +// +// Switch off the backlight +void LCD::noBacklight ( void ) +{ + setBacklight(0); +} + +// +// Switch fully on the LCD (backlight and LCD) +void LCD::on ( void ) +{ + display(); + backlight(); +} + +// +// Switch fully off the LCD (backlight and LCD) +void LCD::off ( void ) +{ + noBacklight(); + noDisplay(); +} + +// General LCD commands - generic methods used by the rest of the commands +// --------------------------------------------------------------------------- +void LCD::command(uint8_t value) +{ + send(value, COMMAND); +} + +#if (ARDUINO < 100) +void LCD::write(uint8_t value) +{ + send(value, LCD_DATA); +} +#else +size_t LCD::write(uint8_t value) +{ + send(value, LCD_DATA); + return 1; // assume OK +} +#endif diff --git a/Libs/NewLiquidCrystal_lib/LCD.h b/Libs/NewLiquidCrystal_lib/LCD.h new file mode 100644 index 0000000000000000000000000000000000000000..6a25529a0aa8c85ba195efdb6d6db5fb2ee64fcd --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LCD.h @@ -0,0 +1,590 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LCD.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. This library is a refactored version of the one supplied +// in the Arduino SDK in such a way that it simplifies its extension +// to support other mechanism to communicate to LCDs such as I2C, Serial, SR, +// The original library has been reworked in such a way that this will be +// the base class implementing all generic methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets. +// +// This base class is a pure abstract class and needs to be extended. As reference, +// it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension +// backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @version API 1.1.0 +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LCD_H_ +#define _LCD_H_ + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#ifdef __AVR__ +#include +#endif + +#include +#include + + +/*! + @defined + @abstract Performs a bitwise shift. + @discussion Defines _BV bit shift which is very dependent macro defined by + Atmel. + + \note The bit shift is performed by the compiler which then inserts the + result into the code. Thus, there is no run-time overhead when using + _BV(). +*/ +#ifndef _BV +#define _BV(bit) (1 << (bit)) +#endif + +/*! + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + */ +#ifdef __AVR__ +#define FAST_MODE +#endif + +/*! + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None + */ +inline static void waitUsec ( uint16_t uSec ) +{ +#ifndef FAST_MODE + delayMicroseconds ( uSec ); +#endif // FAST_MODE +} + + +/*! + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. + */ +// LCD Commands +// --------------------------------------------------------------------------- +#define LCD_CLEARDISPLAY 0x01 +#define LCD_RETURNHOME 0x02 +#define LCD_ENTRYMODESET 0x04 +#define LCD_DISPLAYCONTROL 0x08 +#define LCD_CURSORSHIFT 0x10 +#define LCD_FUNCTIONSET 0x20 +#define LCD_SETCGRAMADDR 0x40 +#define LCD_SETDDRAMADDR 0x80 + +// flags for display entry mode +// --------------------------------------------------------------------------- +#define LCD_ENTRYRIGHT 0x00 +#define LCD_ENTRYLEFT 0x02 +#define LCD_ENTRYSHIFTINCREMENT 0x01 +#define LCD_ENTRYSHIFTDECREMENT 0x00 + +// flags for display on/off and cursor control +// --------------------------------------------------------------------------- +#define LCD_DISPLAYON 0x04 +#define LCD_DISPLAYOFF 0x00 +#define LCD_CURSORON 0x02 +#define LCD_CURSOROFF 0x00 +#define LCD_BLINKON 0x01 +#define LCD_BLINKOFF 0x00 + +// flags for display/cursor shift +// --------------------------------------------------------------------------- +#define LCD_DISPLAYMOVE 0x08 +#define LCD_CURSORMOVE 0x00 +#define LCD_MOVERIGHT 0x04 +#define LCD_MOVELEFT 0x00 + +// flags for function set +// --------------------------------------------------------------------------- +#define LCD_8BITMODE 0x10 +#define LCD_4BITMODE 0x00 +#define LCD_2LINE 0x08 +#define LCD_1LINE 0x00 +#define LCD_5x10DOTS 0x04 +#define LCD_5x8DOTS 0x00 + + +// Define COMMAND and DATA LCD Rs (used by send method). +// --------------------------------------------------------------------------- +#define COMMAND 0 +#define LCD_DATA 1 +#define FOUR_BITS 2 + + +/*! + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. + */ +#define HOME_CLEAR_EXEC 2000 + +/*! + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +*/ +#define BACKLIGHT_OFF 0 + +/*! + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight + */ +#define BACKLIGHT_ON 255 + + +/*! + @typedef + @abstract Define backlight control polarity + @discussion Backlight control polarity. @see setBacklightPin. + */ +typedef enum { POSITIVE, NEGATIVE } t_backlightPol; + +class LCD : public Print +{ +public: + + /*! + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. + */ + LCD ( ); + + /*! + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none + */ + void clear(); + + /*! + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none + */ + void home(); + + /*! + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none + */ + void noDisplay(); + + /*! + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none + */ + void display(); + + /*! + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none + */ + void noBlink(); + + /*! + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none + */ + void blink(); + + /*! + @function + @abstract Hides the LCD cursor. + + @param none + */ + void noCursor(); + + /*! + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none + */ + void cursor(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none + */ + void scrollDisplayLeft(); + + /*! + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none + */ + void scrollDisplayRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none + */ + void leftToRight(); + + /*! + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none + */ + void rightToLeft(); + + /*! + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none + */ + void moveCursorLeft(); + + + /*! + @function + @abstract Moves the cursor one space to the right. + + @param none + */ + void moveCursorRight(); + + /*! + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none + */ + void autoscroll(); + + /*! + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none + */ + void noAutoscroll(); + + /*! + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. + */ + void createChar(uint8_t location, uint8_t charmap[]); + +#ifdef __AVR__ + /*! + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on t{he LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + This method take the character defined in program memory. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. + Usage for flash defined characters: + const char str_pstr[] PROGMEM = {0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0}; + */ + void createChar(uint8_t location, const char *charmap); +#endif // __AVR__ + + /*! + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. + */ + void setCursor(uint8_t col, uint8_t row); + + /*! + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void backlight ( void ); + + /*! + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + */ + void noBacklight ( void ); + + /*! + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight + */ + void on ( void ); + + /*! + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight + */ + void off ( void ); + + // + // virtual class methods + // -------------------------------------------------------------------------- + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) + */ + virtual void setBacklightPin ( uint8_t value, t_backlightPol pol ) { }; + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. + */ + virtual void setBacklight ( uint8_t value ) { }; + + /*! + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. + */ +#if (ARDUINO < 100) + virtual void write(uint8_t value); +#else + virtual size_t write(uint8_t value); +#endif + +#if (ARDUINO < 100) + using Print::write; +#else + using Print::write; +#endif + +protected: + // Internal LCD variables to control the LCD shared between all derived + // classes. + uint8_t _displayfunction; // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or + // LCD_8BITMODE, LCD_1LINE or LCD_2LINE + uint8_t _displaycontrol; // LCD base control command LCD on/off, blink, cursor + // all commands are "ored" to its contents. + uint8_t _displaymode; // Text entry mode to the LCD + uint8_t _numlines; // Number of lines of the LCD, initialized with begin() + uint8_t _cols; // Number of columns in the LCD + t_backlightPol _polarity; // Backlight polarity + +private: + /*! + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). + */ + void command(uint8_t value); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ +#if (ARDUINO < 100) + virtual void send(uint8_t value, uint8_t mode) { }; +#else + virtual void send(uint8_t value, uint8_t mode) = 0; +#endif + +}; + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LICENSE.webarchive b/Libs/NewLiquidCrystal_lib/LICENSE.webarchive new file mode 100644 index 0000000000000000000000000000000000000000..1960ee0f44effce7dfdbc9881c83933c078f2d0f Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/LICENSE.webarchive differ diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f66c7505d5019f31c8d8e2626d69bb20273262d2 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal.cpp @@ -0,0 +1,333 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.cpp +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- +#define LCD_NOBACKLIGHT 0xFF + +// LCD driver configuration (4bit or 8bit driver control) +#define LCD_4BIT 1 +#define LCD_8BIT 0 + +// STATIC helper functions +// --------------------------------------------------------------------------- + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); +} + +// Contructors with backlight control +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlightPol pol) +{ + init(LCD_8BIT, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlightPol pol) +{ + init(LCD_8BIT, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlightPol pol) +{ + init(LCD_4BIT, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlightPol pol) +{ + init(LCD_4BIT, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); + setBacklightPin ( backlightPin, pol ); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal::send(uint8_t value, uint8_t mode) +{ + // Only interested in COMMAND or DATA + digitalWrite( _rs_pin, ( mode == LCD_DATA ) ); + + // if there is a RW pin indicated, set it low to Write + // --------------------------------------------------- + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + if ( mode != FOUR_BITS ) + { + if ( (_displayfunction & LCD_8BITMODE ) ) + { + writeNbits(value, 8); + } + else + { + writeNbits ( value >> 4, 4 ); + writeNbits ( value, 4 ); + } + } + else + { + writeNbits ( value, 4 ); + } + waitUsec ( EXEC_TIME ); // wait for the command to execute by the LCD +} + +// +// setBacklightPin +void LiquidCrystal::setBacklightPin ( uint8_t pin, t_backlightPol pol ) +{ + pinMode ( pin, OUTPUT ); // Difine the backlight pin as output + _backlightPin = pin; + _polarity = pol; + setBacklight(BACKLIGHT_OFF); // Set the backlight low by default +} + +// +// ESP32 complains if not included +#if defined(ARDUINO_ARCH_ESP32) +void LiquidCrystal::analogWrite( uint8_t channel, uint32_t value, uint32_t valueMax = 255 ) { + // calculate duty, 8191 from 2 ^ 13 - 1 + uint32_t duty = ( 8191 / valueMax) * min(value, valueMax ); + + // write duty to LEDC + ledcWrite( channel, duty ); +} +#endif + +// +// setBackligh +void LiquidCrystal::setBacklight ( uint8_t value ) +{ + // Check if there is a pin assigned to the backlight + // --------------------------------------------------- + if ( _backlightPin != LCD_NOBACKLIGHT ) + { + + // Check if the pin is associated to a timer, i.e. PWM + // We dont need to use != NOT_ON_TIMER hack to detect PWM and + // 1.5x Arduino and above has a macro to check for PWM capability + // on a pin. + // --------------------------------------------------- +#if digitalPinHasPWM + if(digitalPinHasPWM(_backlightPin)) +#elif digitalPinToTimer + // On older 1.x Arduino have to check using hack + if(digitalPinToTimer(_backlightPin) != NOT_ON_TIMER) +#else + if(false) // if neither of the above we assume no PWM +#endif + { + // Check for control polarity inversion + // --------------------------------------------------- + if ( _polarity == POSITIVE ) + { + analogWrite ( _backlightPin, value ); + } + else + { + analogWrite ( _backlightPin, 255 - value ); + } + } + // Not a PWM pin, set the backlight pin for POSI or NEG + // polarity + // -------------------------------------------------------- + else if (((value > 0) && (_polarity == POSITIVE)) || + ((value == 0) && (_polarity == NEGATIVE))) + { + digitalWrite( _backlightPin, HIGH); + } + else + { + digitalWrite( _backlightPin, LOW); + } + } +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + + +// init +void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + uint8_t i; + + // Initialize the IO pins + // ----------------------- + + _rs_pin = rs; + _rw_pin = rw; + _enable_pin = enable; + + _data_pins[0] = d0; + _data_pins[1] = d1; + _data_pins[2] = d2; + _data_pins[3] = d3; + _data_pins[4] = d4; + _data_pins[5] = d5; + _data_pins[6] = d6; + _data_pins[7] = d7; + + // Initialize the IO port direction to OUTPUT + // ------------------------------------------ + + for ( i = 0; i < 4; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + + // Initialize the rest of the ports if it is an 8bit controlled LCD + // ---------------------------------------------------------------- + + if ( !fourbitmode ) + { + for ( i = 4; i < 8; i++ ) + { + pinMode ( _data_pins[i], OUTPUT ); + } + } + pinMode(_rs_pin, OUTPUT); + + // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# + if (_rw_pin != 255) + { + pinMode(_rw_pin, OUTPUT); + } + + pinMode(_enable_pin, OUTPUT); + + // Initialise displaymode functions to defaults: LCD_1LINE and LCD_5x8DOTS + // ------------------------------------------------------------------------- + if (fourbitmode) + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + else + _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; + + // Now we pull both RS and R/W low to begin commands + digitalWrite(_rs_pin, LOW); + digitalWrite(_enable_pin, LOW); + + if (_rw_pin != 255) + { + digitalWrite(_rw_pin, LOW); + } + + // Initialise the backlight pin no nothing + _backlightPin = LCD_NOBACKLIGHT; + _polarity = POSITIVE; +} + +// +// pulseEnable +void LiquidCrystal::pulseEnable(void) +{ + // There is no need for the delays, since the digitalWrite operation + // takes longer. + digitalWrite(_enable_pin, HIGH); + waitUsec(1); // enable pulse must be > 450ns + digitalWrite(_enable_pin, LOW); +} + +// +// write4bits +void LiquidCrystal::writeNbits(uint8_t value, uint8_t numBits) +{ + for (uint8_t i = 0; i < numBits; i++) + { + digitalWrite(_data_pins[i], (value >> i) & 0x01); + } + pulseEnable(); +} + diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal.h new file mode 100644 index 0000000000000000000000000000000000000000..87827764b15e3d78950ddfa0bda59db4ffdd300a --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal.h @@ -0,0 +1,188 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using the parallel port of +// the LCD (4 bit and 8 bit). +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_4bit_h +#define LiquidCrystal_4bit_h + +#include + +#include "LCD.h" +#include "FastIO.h" + + +/*! + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. + */ +#define EXEC_TIME 37 + +class LiquidCrystal : public LCD +{ +public: + /*! + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlightPol pol); + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlightPin, t_backlightPol pol); + /*! + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. + */ + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); + + // Constructors with backlight control + LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlightPol pol); + LiquidCrystal(uint8_t rs, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t backlightPin, t_backlightPol pol); + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). + */ + void setBacklightPin ( uint8_t pin, t_backlightPol pol ); + +#if defined(ARDUINO_ARCH_ESP32) + /*! + @function + @abstract Wrapper around ESP32-hal-ledcWrite. + @discussion The ESP32 MCU does not have the analogWrite() function. + This wrapper converts the analogWrite() function to the ledcWrite() + on an ESP32 MCU. + + @param channel: analog pin + @param value: from 0 to valueMax + @param valueMax: default: 255, Max: 1023 + */ + void analogWrite( uint8_t channel, uint32_t value, uint32_t valueMax ); +#endif + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. + */ + void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, + uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. + */ + void writeNbits(uint8_t value, uint8_t numBits); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(); + + uint8_t _rs_pin; // LOW: command. HIGH: character. + uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. + uint8_t _enable_pin; // activated by a HIGH pulse. + uint8_t _data_pins[8]; // Data pins. + uint8_t _backlightPin; // Pin associated to control the LCD backlight +}; + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cd8c044dcc60ef2a08a35d1219e673ef318df574 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.cpp @@ -0,0 +1,303 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "I2CIO.h" +#include "LiquidCrystal_I2C.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- + +// flags for backlight control +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable + */ +#define EN 6 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin + */ +#define RS 4 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_I2C::LiquidCrystal_I2C( uint8_t lcd_Addr ) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); +} + + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, + t_backlightPol pol = POSITIVE) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t backlighPin, + t_backlightPol pol = POSITIVE) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7 ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); +} + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7, uint8_t backlighPin, + t_backlightPol pol = POSITIVE ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); + setBacklightPin(backlighPin, pol); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + + init(); // Initialise the I2C expander interface + LCD::begin ( cols, lines, dotsize ); +} + + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the (optional) backlight off/on + +// +// setBacklightPin +void LiquidCrystal_I2C::setBacklightPin ( uint8_t value, t_backlightPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _polarity = pol; + setBacklight(BACKLIGHT_OFF); +} + +// +// setBacklight +void LiquidCrystal_I2C::setBacklight( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + _i2cio.write( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_I2C::init() +{ + int status = 0; + + // initialize the backpack IO expander + // and display functions. + // ------------------------------------------------------------------------ + if ( _i2cio.begin ( _Addr ) == 1 ) + { + _i2cio.portMode ( OUTPUT ); // Set the entire IO extender to OUTPUT + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + status = 1; + _i2cio.write(0); // Set the entire port to LOW + } + return ( status ); +} + +// +// config +void LiquidCrystal_I2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + _Addr = lcd_Addr; + + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); +} + + + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) +{ + // No need to use the delay routines since the time taken to write takes + // longer that what is needed both for toggling and enable pin an to execute + // the command. + + if ( mode == FOUR_BITS ) + { + write4bits( (value & 0x0F), COMMAND ); + } + else + { + write4bits( (value >> 4), mode ); + write4bits( (value & 0x0F), mode); + } +} + +// +// write4bits +void LiquidCrystal_I2C::write4bits ( uint8_t value, uint8_t mode ) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + if ( mode == LCD_DATA ) + { + mode = _Rs; + } + + pinMapValue |= mode | _backlightStsMask; + pulseEnable ( pinMapValue ); +} + +// +// pulseEnable +void LiquidCrystal_I2C::pulseEnable (uint8_t data) +{ + _i2cio.write (data | _En); // En HIGH + _i2cio.write (data & ~_En); // En LOW +} \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.h new file mode 100644 index 0000000000000000000000000000000000000000..e30370dbdde51f8728f4d724407cbf0d1e45e417 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C.h @@ -0,0 +1,217 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_I2C_h +#define LiquidCrystal_I2C_h +#include +#include + +#include "I2CIO.h" +#include "LCD.h" + + +class LiquidCrystal_I2C : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + */ + LiquidCrystal_I2C (uint8_t lcd_Addr); + // Constructor with backlight control + LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + */ + LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t backlighPin, t_backlightPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlightPol pol); + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlightPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + Making config public would enable to inherit and overload the methdo by a custom one. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(uint8_t); + + + uint8_t _Addr; // I2C Address of the IO expander + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + I2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + +}; + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.cpp new file mode 100644 index 0000000000000000000000000000000000000000..89579c222b0b7c4982fea6a55033299fc9f85ba7 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.cpp @@ -0,0 +1,117 @@ +// --------------------------------------------------------------------------- +// Created by GHPS on 5/06/2012. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C_ByVac.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpack BV4218 from ByVac. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @author GHPS - ghps@users.sourceforge.net +// --------------------------------------------------------------------------- +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "LiquidCrystal_I2C_ByVac.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac( uint8_t lcd_Addr ) +{ + _Addr = lcd_Addr; + _polarity = NEGATIVE; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_I2C_ByVac::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + Wire.begin(); + LCD::begin ( cols, lines, dotsize ); +} + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the integrated backlight off/on + +// setBacklight +void LiquidCrystal_I2C_ByVac::setBacklight( uint8_t value ) +{ + Wire.beginTransmission(_Addr); + Wire.write(0x03); // ByVac command code 0x03 for backlight + if (value==0) Wire.write(1); else Wire.write((byte)0); // 1 for off since polarity is NEGATIVE + Wire.endTransmission(); +} + +// Turn the contrast off/on + +// setContrast +void LiquidCrystal_I2C_ByVac::setContrast( uint8_t value ) +{ + Wire.beginTransmission(_Addr); + Wire.write(0x05); // ByVac command code 0x05 for contrast + if (value==0) Wire.write((byte)0); else Wire.write(1); + Wire.endTransmission(); +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_I2C_ByVac::init() +{ + int status = 0; + + // ByVac backpack initialized by onboard firmware + // ------------------------------------------------------------------------ + status=1; + return ( status ); +} + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_I2C_ByVac::send(uint8_t value, uint8_t mode) +{ + Wire.beginTransmission(_Addr); + Wire.write(mode+1); // map COMMAND (0) -> ByVac command code 0x01/ DATA (1) -> ByVac command code 0x02 + Wire.write(value); + Wire.endTransmission(); +} diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h new file mode 100644 index 0000000000000000000000000000000000000000..f2f7431e0ca0bc88066012da8b856a7bf9c76c8b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h @@ -0,0 +1,153 @@ +// --------------------------------------------------------------------------- +// Created by GHPS on 5/06/2012. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C_ByVac.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpack BV4218 from ByVac. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// @author GHPS - ghps-et-users-sourceforge-net +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_I2C_ByVac_h +#define LiquidCrystal_I2C_ByVac_h +#include +#include + +#if defined(__AVR_ATtiny84__) || (__AVR_ATtiny2313__) || defined (__AVR_ATtiny85__) + +#include "TinyWireM.h" // include this if ATtiny84 or ATtiny85 or ATtiny2313 + +#define Wire TinyWireM + +#else + +#if (ARDUINO < 10000) + #include <../Wire/Wire.h> +#else + #include +#endif + +#endif + +#include "LCD.h" + + +class LiquidCrystal_I2C_ByVac : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands (to be implemented). + */ + LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr); + + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + + /*! + @function + @abstract Switch-on/off the LCD contrast. + @discussion Switch-on/off the LCD contrast. + + + @param value: contrast mode (HIGH|LOW) + */ + void setContrast ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands. + */ + + uint8_t _Addr; // I2C Address of the IO expander + +}; + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0971013bfd42e0e1f0ffc924ba53e85249aa025f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.cpp @@ -0,0 +1,311 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SI2C.c +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board and software I2C. +// It will use digital pins 6 and 7 for SCL and SDA, but it can be changed +// in SI2CIO.cpp to use other pins if needed. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- + +#if defined (__AVR__) + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include +#include "SI2CIO.h" +#include "LiquidCrystal_SI2C.h" + +// CONSTANT definitions +// --------------------------------------------------------------------------- + +// flags for backlight control +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable + */ +#define EN 6 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin + */ +#define RS 4 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +LiquidCrystal_SI2C::LiquidCrystal_SI2C( uint8_t lcd_Addr ) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); +} + + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t backlighPin, + t_backlightPol pol = POSITIVE) +{ + config(lcd_Addr, EN, RW, RS, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t backlighPin, + t_backlightPol pol = POSITIVE) +{ + config(lcd_Addr, En, Rw, Rs, D4, D5, D6, D7); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7 ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); +} + +LiquidCrystal_SI2C::LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, + uint8_t Rs, uint8_t d4, uint8_t d5, + uint8_t d6, uint8_t d7, uint8_t backlighPin, + t_backlightPol pol = POSITIVE ) +{ + config(lcd_Addr, En, Rw, Rs, d4, d5, d6, d7); + setBacklightPin(backlighPin, pol); +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +void LiquidCrystal_SI2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) +{ + + init(); // Initialise the I2C expander interface + LCD::begin ( cols, lines, dotsize ); +} + + +// User commands - users can expand this section +//---------------------------------------------------------------------------- +// Turn the (optional) backlight off/on + +// +// setBacklightPin +void LiquidCrystal_SI2C::setBacklightPin ( uint8_t value, t_backlightPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _polarity = pol; + setBacklight(BACKLIGHT_OFF); +} + +// +// setBacklight +void LiquidCrystal_SI2C::setBacklight( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + _si2cio.write( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +int LiquidCrystal_SI2C::init() +{ + int status = 0; + + // initialize the backpack IO expander + // and display functions. + // ------------------------------------------------------------------------ + if ( _si2cio.begin ( _Addr ) == 1 ) + { + _si2cio.portMode ( OUTPUT ); // Set the entire IO extender to OUTPUT + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + status = 1; + _si2cio.write(0); // Set the entire port to LOW + } + return ( status ); +} + +// +// config +void LiquidCrystal_SI2C::config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + _Addr = lcd_Addr; + + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); +} + + + +// low level data pushing commands +//---------------------------------------------------------------------------- + +// +// send - write either command or data +void LiquidCrystal_SI2C::send(uint8_t value, uint8_t mode) +{ + // No need to use the delay routines since the time taken to write takes + // longer that what is needed both for toggling and enable pin an to execute + // the command. + + if ( mode == FOUR_BITS ) + { + write4bits( (value & 0x0F), COMMAND ); + } + else + { + write4bits( (value >> 4), mode ); + write4bits( (value & 0x0F), mode); + } +} + +// +// write4bits +void LiquidCrystal_SI2C::write4bits ( uint8_t value, uint8_t mode ) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + if ( mode == LCD_DATA ) + { + mode = _Rs; + } + + pinMapValue |= mode | _backlightStsMask; + pulseEnable ( pinMapValue ); +} + +// +// pulseEnable +void LiquidCrystal_SI2C::pulseEnable (uint8_t data) +{ + _si2cio.write (data | _En); // En HIGH + _si2cio.write (data & ~_En); // En LOW +} + +#endif // defined (__AVR__) diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.h new file mode 100644 index 0000000000000000000000000000000000000000..83c0c4ff95a3b530df520bb707c18cb410a372e6 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SI2C.h @@ -0,0 +1,228 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_I2C.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using an I2C IO extension board and software I2C. +// It will use digital pins 6 and 7 for SCL and SDA, but it can be changed +// in SI2CIO.cpp to use other pins if needed. + +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using I2C extension +// backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- +#ifndef LiquidCrystal_SI2C_h +#define LiquidCrystal_SI2C_h + +#if defined (__AVR__) + +#include +#include + +#include "SI2CIO.h" +#include "LCD.h" + + +class LiquidCrystal_SI2C : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + */ + LiquidCrystal_SI2C (uint8_t lcd_Addr); + // Constructor with backlight control + LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + */ + LiquidCrystal_SI2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs); + // Constructor with backlight control + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t backlighPin, t_backlightPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlightPol pol); + /*! + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. + */ + virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. + */ + void setBacklightPin ( uint8_t value, t_backlightPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + + /*! + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + Making config public would enable to inherit and overload the methdo by a custom one. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module + */ + void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(); + + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. + */ + void pulseEnable(uint8_t); + + + uint8_t _Addr; // I2C Address of the IO expander + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + SI2CIO _si2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + +}; + +#else +#error "ONLY SUPPORTED ON AVR PROCESSORS" +#endif // defined (__AVR__) + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5b57bef564544527b954765665d46359db3cde1a --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.cpp @@ -0,0 +1,221 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin is used for the enable signal by defining +// the same pin for Enable as for Data. Data and Clock outputs/pins goes to +// the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - Added delays for faster fio shiftout (it got too fast) +// AVR needed delay. cmd/write delays are based on CPU speed so it works on pic32. +// Added code to support indicating two wire mode by using enable=data pin +// (documentation indicated this as working) +// Fixed incorrect use of 5x10 for default font - now matches original LQ library. +// can now eliminate enable pin in constructor for two wire mode. +// 2012.01.16 Florian Fida - faster digitalWrite/shiftOut +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduino +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR.h" + +#include "FastIO.h" + + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, + uint8_t enable ) +{ + init ( srdata, srclock, enable, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR::init(uint8_t srdata, uint8_t srclock, uint8_t enable, + uint8_t lines, uint8_t font) +{ + // Initialise private variables + _two_wire = 0; + + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataBit = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockBit = fio_pinToBit(srclock); + + if ((enable == TWO_WIRE) || (enable == srdata)) + { + _two_wire = 1; + _srEnableRegister = _srDataRegister; + _srEnableBit = _srDataBit; + } + else + { + _srEnableRegister = fio_pinToOutputRegister(enable); + _srEnableBit = fio_pinToBit(enable); + } + + // Configure control pins as outputs + // ------------------------------------------------------------------------ + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; +} + +// +// shiftIt +void LiquidCrystal_SR::shiftIt(uint8_t val) +{ + if (_two_wire) + { + // Clear to get Enable LOW + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit); + } + fio_shiftOut(_srDataRegister, _srDataBit, _srClockRegister, _srClockBit, val, MSBFIRST); + + // LCD ENABLE PULSE + // + // While this library is written with a shift register without an output + // latch in mind, it can work in 3-wire mode with a shiftregister with a + // latch. The shiftregister latch pin (STR, RCL or similar) is then + // connected to the LCD enable pin. The LCD is (very likely) slower + // to read the Enable pulse, and then reads the new contents of the SR. + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srEnableRegister, _srEnableBit); + delayMicroseconds (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srEnableRegister, _srEnableBit, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR::send(uint8_t value, uint8_t mode) +{ + // Divide byte in two nibbles include the RS signal + // and format it for shiftregister output wiring to the LCD + // We are only interested in my COMMAND or DATA for myMode + uint8_t myMode = ( mode == LCD_DATA ) ? SR_RS_BIT : 0; // RS bit; LOW: command. HIGH: character. + + if ( mode != FOUR_BITS ) + { + shiftIt(myMode | SR_EN_BIT | ((value >> 1) & 0x78)); // upper nibble + } + + shiftIt(myMode | SR_EN_BIT | ((value << 3) & 0x78)); // lower nibble + /* + * Add some delay since this code is so fast it needs some added delay + * even on AVRs because the shiftout is shorter than the LCD command execution time. + */ +#if (F_CPU <= 16000000) + if(_two_wire) + delayMicroseconds ( 10 ); + else + delayMicroseconds ( 17 ); // 3 wire mode is faster so it must delay longer +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + +// +// setBacklightPin +void LiquidCrystal_SR::setBacklightPin ( uint8_t pin, t_backlightPol pol ) +{ } + +// +// setBacklight +void LiquidCrystal_SR::setBacklight ( uint8_t mode ) +{ } + diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.h new file mode 100644 index 0000000000000000000000000000000000000000..2afe9ece24193b180e2a3d3dc9b3a3ac50265a96 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR.h @@ -0,0 +1,188 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR.h +// Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit +// ShiftRegister (SR from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// +// Modified to work serially with the shiftOut() function, an 8-bit +// unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// I used 74LS164, for the reason that's what I had at hand. +// +// Connection description: +// +// SR output: +// Bit #0 - N/C - not connected, used to hold a zero +// Bit #1 - N/C +// Bit #2 - connects to RS (Register Select) on the LCD +// Bits #3-6 - connects to LCD data inputs D4 - D7. +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable +// If not using Enable, the Data pin will be used for the enable signal. +// 2 wire mode can be indicated by: +// - ommitting the enable pin in constructor +// - defining the same pin for Enable as for Data in constructor +// - by using the token TWO_WIRE for the enable pin. +// +// Data and Clock outputs/pins goes to the shiftregister. +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// +// History +// 2012.03.29 bperrybap - can now eliminate enable pin in constructor for two wire mode. +// 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy. +// 2011.07.02 Fixed a minor flaw in setCursor function. No functional change, +// just a bit more memory efficient. +// Thanks to CapnBry (from google code and github) who noticed it. +// URL to his version of shiftregLCD: +// https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1 +// 2009.07.30 raron - minor corrections to the comments. +// Fixed timing to datasheet safe. Fixed keyword highlights. +// 2009.07.28 Mircho / raron - a new modification to the schematics, and a +// more streamlined interface +// 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduiono +// playgrond forum, the number of wires now required is only two! +// 2009.07.25 raron - Fixed comments. I really messed up the comments before +// posting this, so I had to fix it. +// Renamed a function, but no improvements or functional changes. +// 2009.07.23 Incorporated some proper initialization routines +// inspired (lets say copy-paste-tweaked) from LiquidCrystal +// library improvements from LadyAda. +// 2009.05.23 raron - first version, but based mostly (as in almost verbatim) +// on the "official" LiquidCrystal library. +// +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR_ +#define _LIQUIDCRYSTAL_SR_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire indicator constant +// --------------------------------------------------------------------------- +#define TWO_WIRE 204 +#define SR_RS_BIT 0x04 +#define SR_EN_BIT 0x80 + +class LiquidCrystal_SR : public LCD +{ +public: + /*! + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD + */ + LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE ); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity + */ + void setBacklightPin ( uint8_t pin, t_backlightPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, + uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void shiftIt (uint8_t val); + + uint8_t _enable_pin; // Enable Pin + uint8_t _two_wire; // two wire mode + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataBit; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockBit; + fio_register _srEnableRegister; // Enable Pin + fio_bit _srEnableBit; + +}; + +#endif + diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.cpp new file mode 100644 index 0000000000000000000000000000000000000000..19ea5992906773d06c72719e01628b92a841dabf --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.cpp @@ -0,0 +1,266 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Stephen Erisman 2013-07-06 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR1W.cpp +// Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching +// ShiftRegister (SR1W from now on). +// +// @brief +// This is an optimized implementation of the 1-wire shift concept developed by +// Roman Black (http://www.romanblack.com/shift1.htm) that also makes use of +// (and merges) the diode-resistor AND "gate" concept (http://www.rentron.com/Myke1.htm) +// as well as introducing some new and original ideas (particularly how HW_CLEAR works). +// +// +// See the corresponding SR1W header file for full details. +// +// History +// 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations +// 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit +// 2013.07.09 serisman - added an even faster version that performs the clear in hardware +// 2013.07.08 serisman - changed code to shift data MSB first to match SR2W +// 2013.07.07 serisman - major speed optimization +// 2013.07.06 serisman - created/modified from SR2W and FastIO sources to create SR1W +// @author S. Erisman - arduino@serisman.com +// --------------------------------------------------------------------------- + +#if defined (__AVR__) +#include "LiquidCrystal_SR1W.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR1W::LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, t_backlightPol blpol) +{ + init ( srdata, circuitType, blpol, 1, 0 ); +} + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR1W::init(uint8_t srdata, t_sr1w_circuitType circuitType, t_backlightPol blpol, uint8_t lines, uint8_t font) +{ + _srRegister = fio_pinToOutputRegister(srdata); + _srMask = fio_pinToBit(srdata); + + _circuitType = circuitType; + + _blPolarity = blpol; + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + clearSR(); + + backlight(); // set default backlight state to on +} + +// +// clearSR +uint8_t LiquidCrystal_SR1W::clearSR() +{ + uint8_t numDelays = 0; + + // Store these as local variables for extra performance (and smaller compiled sketch size) + fio_register srRegister = _srRegister; + fio_bit srMask = _srMask; + + // Set the Serial PIN to a LOW state + SR1W_ATOMIC_WRITE_LOW(srRegister, srMask); + + // We need to delay to make sure the Data and Latch/EN capacitors are fully discharged + // This also triggers the EN pin because of the falling edge. + SR1W_DELAY(); + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // Pre-calculate these values for extra performance and to make sure the clock pulse is as quick as possible + fio_bit reg_val = *srRegister; + fio_bit bit_low = reg_val & ~srMask; + fio_bit bit_high = reg_val | srMask; + + // Clear the shift register (without triggering the Latch/EN pins) + // We only need to shift 7 bits here because the subsequent HIGH transistion will also shift a '0' in. + for (int8_t i = 6; i>=0; i--) + { + // Shift in a '0' (NOTE: This clock pulse needs to execute as quickly as possible) + *srRegister = bit_high; + *srRegister = bit_low; + } + + // Set the Serial PIN to a HIGH state so the next nibble/byte can be loaded + // This also shifts the 8th '0' bit in. + *srRegister = bit_high; + } + + // Give the Data capacitor a chance to fully charge + SR1W_DELAY(); + + return numDelays; +} + +// +// loadSR +uint8_t LiquidCrystal_SR1W::loadSR(uint8_t val) +{ + uint8_t numDelays = 0; + + // Store these as local variables for extra performance (and smaller compiled sketch size) + fio_register srRegister = _srRegister; + fio_bit srMask = _srMask; + + // NOTE: This assumes the Serial PIN is already HIGH and the Data capacitor is fully charged + uint8_t previousBit = 1; + + // Send the data to the shift register (MSB first) + for (int8_t i = 7; i>=0; i--) + { + if (val & 0x80) + { + if (previousBit == 0) + { + // We need to make sure the Data capacitor has fully recharged + SR1W_DELAY(); + } + + previousBit = 1; + + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + // Pre-calculate these values to make sure the clock pulse is as quick as possible + fio_bit reg_val = *srRegister; + fio_bit bit_low = reg_val & ~srMask; + fio_bit bit_high = reg_val | srMask; + + // Shift in a '1' (NOTE: This clock pulse needs to execute as quickly as possible) + *srRegister = bit_low; + *srRegister = bit_high; + } + } + else + { + // Shift in a '0' + SR1W_ATOMIC_WRITE_LOW(srRegister, srMask); + + // We need to make sure the Data capacitor has fully discharged + SR1W_DELAY(); + + previousBit = 0; + + SR1W_ATOMIC_WRITE_HIGH(srRegister, srMask); + } + val <<= 1; + } + + // NOTE: Serial PIN is currently HIGH + + // For SW_CLEAR, we need to delay to make sure the Latch/EN capacitor is fully charged. + // This triggers the Latch pin because of the rising edge. + // For HW_CLEAR, we need to delay to give the hardware time to perform the clear. + // This also gives the Data capacitor a chance to fully charge + SR1W_DELAY(); + + if (_circuitType == SW_CLEAR) + { + // Clear the shift register to get ready for the next nibble/byte + // This also discharges the Latch/EN capacitor which finally triggers the EN pin because of the falling edge. + numDelays += clearSR(); + } + else + { + // For some reason HW_CLEAR isn't totally stable unless we delay a little bit more. + // TODO... figure this out... + SR1W_DELAY(); + } + + return numDelays; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR1W::send(uint8_t value, uint8_t mode) +{ + uint8_t numDelays = 0; + + uint8_t data; + + if ( mode != FOUR_BITS ) + { + // upper nibble + data = ( mode == LCD_DATA ) ? SR1W_RS_MASK : 0; + data |= SR1W_EN_MASK | SR1W_UNUSED_MASK; + data |= _blMask; + + if (value & _BV(4)) data |= SR1W_D4_MASK; + if (value & _BV(5)) data |= SR1W_D5_MASK; + if (value & _BV(6)) data |= SR1W_D6_MASK; + if (value & _BV(7)) data |= SR1W_D7_MASK; + + numDelays += loadSR(data); + } + + // lower nibble + data = ( mode == LCD_DATA ) ? SR1W_RS_MASK : 0; + data |= SR1W_EN_MASK | SR1W_UNUSED_MASK; + data |= _blMask; + + if (value & _BV(0)) data |= SR1W_D4_MASK; + if (value & _BV(1)) data |= SR1W_D5_MASK; + if (value & _BV(2)) data |= SR1W_D6_MASK; + if (value & _BV(3)) data |= SR1W_D7_MASK; + + numDelays += loadSR(data); + + // Make sure we wait at least 40 uS between bytes. + unsigned int totalDelay = numDelays * SR1W_DELAY_US; + if (totalDelay < 40) + delayMicroseconds(40 - totalDelay); +} + +// +// setBacklight +void LiquidCrystal_SR1W::setBacklight ( uint8_t value ) +{ + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if ( ((_blPolarity == POSITIVE) && (value > 0)) || + ((_blPolarity == NEGATIVE ) && ( value == 0 )) ) + { + _blMask = SR1W_BL_MASK; + } + else + { + _blMask = 0; + } + + // Send a dummy (non-existant) command to allow the backlight PIN to be latched. + // The seems to be safe because the LCD appears to treat this as a NOP. + send(0, COMMAND); +} +#endif // defined (__AVR__) diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.h new file mode 100644 index 0000000000000000000000000000000000000000..49b676fc6fdac0eace2f23126715b1ca01334fdc --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR1W.h @@ -0,0 +1,391 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Stephen Erisman 2013-07-06 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// @file LiquidCrystal_SR1W.h +// Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching +// ShiftRegister (SR1W from now on). +// +// @brief +// This is the 1 wire shift register interface class for the LCD library +// +// The functionality provided by this class and its base class is a superset of +// the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// See the LCD class for a full description of the API functions available. +// +// It works with a 8-bit latched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register, and an hd44780 LCD in 4-bit mode. +// The 74HC595 shift register has been tested. +// +// +// 1 Pin required from the Arduino: +// - Serial PIN: +// The Serial PIN is wired directly to the shift register's Clock PIN and its +// unaltered signal directly triggers the Clock on every LOW to HIGH transition. +// +// Additionally, the Serial PIN is wired through a resistor capacitor (RC) filter to +// the shift register's Data PIN. During a quick transition of the Serial PIN the +// RC filter will maintain the Data PIN's previous value because the capacitor isn't +// given enough time to charge (or discharge) to the alternate state. If the transition +// is held for enough time, however, the RC capacitor will charge (or discharge) and the +// value seen by the Data PIN will have changed state. +// +// There are two circuit versions that behave differently for Latch, Enable, and Clear: +// +// HW_CLEAR version: +// In this version the shift register's Latch and LCD's Enable PINs are wired directly to +// the shift register's Q'H output. The shift register's /Clear PIN is then wired up +// through two logic "gates": first QH and Q'H are AND'd together with a diode-resistor +// "gate" the output of which is NAND'd with VCC using a resistor-NPN-resistor "gate". +// So, /CLR = ((QH AND Q'H) NAND VCC). We also put a capacitor on the NPN base to GND +// to delay the signal a bit and allow the Latch and EN signals some extra time to trigger. +// +// This all fits together as follows: +// 1. We shift in a '1'. +// 2. Ws shift in the other 7 bits. +// 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH. +// 4. When Q'H is HIGH it causes Latch and EN to also go HIGH. +// 5. When Latch transitions to HIGH it changes the shift register outputs to the bits +// that were shifted in. +// 6. This causes QH to go HIGH (if it wasn't already). +// 7. Now that QH AND Q'H are both HIGH they causes the base capacitor to start charging. +// 8. When the capacitor has charged enough the transistor brings /CLR LOW. +// 8. This will cause /CLR to trigger and the shift register will be cleared +// (NOTE: This doesn't change the latched outputs) +// 9. The clearing of the shift register causes Q'H to go LOW. +// 9. When Q'H is LOW it causes Latch and EN to also go LOW. +// 10. When EN transitions to LOW the LCD reads in the bits on the shift register pins +// and does it's thing. +// 11. Now that Q'H is LOW the base capacitor starts discharging. +// 12. When the capacitor has discharged enough the transistor will stop sinking /CLR. +// 13. This will cause /CLR to be pulled back up to HIGH by the VCC pullup resistor +// (it will stay that way until our next nibble/byte has been shifted in) +// 14. We are now ready for our next nibble/byte. +// +// +// SW_CLEAR version: +// In this version the Serial PIN is wired to the shift register's Latch and LCD's Enable +// PINs through another RC filter. These PINs are also wired through a diode (AND "gate") +// tied to the shift register's Q'H output. This combination means that the Latch and +// Enable PINs will be held LOW as long as EITHER the Q'H or RC output is LOW. +// +// This all fits together as follows: +// 1. We shift in a '1'. +// 2. We shift in the other 7 bits. (NOTE: We leave Serial PIN HIGH at the end of this) +// 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH. +// (NOTE: Up until this time Q'H has been LOW so the attached diode has been keeping +// the Latch/EN pins LOW.) +// 4. Now that Q'H is HIGH it causes the attached diode to stop discharging the Latch/EN +// capacitor. We delay here for a while to make sure it is fully charged. +// 5. When the capacitor has charged enough Latch/EN will be HIGH +// 5. When Latch transitions to HIGH it changes the shift register outputs to what was +// shifted in. +// 6. We now bring the Serial PIN LOW and wait for the Latch/EN capacitor to discharge. +// 7. When the capacitor has discharged enough Latch/EN will be LOW +// 8. When EN transitions to LOW the LCD reads in the bits on the shift register pins +// and does it's thing. +// 9. We now shift in '0' 8 times (as quickly as possible). +// 10. If we keep the LOW to HIGH to LOW pulses short enough while shifting in the '0's +// the Latch/EN capacitor won't have time to charge to a point where it will re-trigger +// the Latch/EN pins. +// 11. Now Q'H will be LOW and the shift register has been cleared (NOTE: This doesn't +// change the latched outputs.) +// 12. We now bring the Serial PIN HIGH again and wait for the Data capacitor to recharge. +// 13. When the Data capacitor has fully charged we are ready for our next nibble/byte. +// +// +// These designs incorporate (and merge) ideas originally found here (1-wire concept): +// http://www.romanblack.com/shift1.htm +// and here (diode-resistor AND "gate" EN control): +// http://www.rentron.com/Myke1.htm +// as well as introducing some new and original ideas (particularly how HW_CLEAR works). +// +// Because of its use of the diode AND "gate", the SW_CLEAR design allows for faster sending +// of data to the LCD compared to Roman's original design. With the proposed 5uS delay (see +// notes below), a byte can be sent to the LCD in as little as 30 uS (plus overhead) when +// sending all 1's. This increases to as much as 190 uS (plus overhead) when sending all 0's. +// This is in comparison to Roman's estimate of around 3-4 mS to send a byte. So this +// implementation is 15-133 times faster for the cost of a single (1N4148 or similar) diode. +// +// The HW_CLEAR version is even faster as it can completely eliminate the clearSR() call as +// well as the delays that are needed to latch the data in the SW_CLEAR version. +// +// +// Default Shift Register Bits - Shifted MSB first: +// Bit #0 (QA) - not used +// Bit #1 (QB) - connects to LCD data input D7 +// Bit #2 (QC) - connects to LCD data input D6 +// Bit #3 (QD) - connects to LCD data input D5 +// Bit #4 (QE) - connects to LCD data input D4 +// Bit #5 (QF) - optional backlight control +// Bit #6 (QG) - connects to RS (Register Select) on the LCD +// Bit #7 (QH) - used for /CLR on the HW_CLEAR version (cannot be changed) +// (Q'H) - used for Latch/EN (via the diode AND "gate") (cannot be changed) +// +// NOTE: Any of these can be changed around as needed EXCEPT Bit #7 (QH and Q'H). +// +// +// Circuit Types (for the 74HC595) +// ------------------------------- +// The 74HC595 is a latching shift register. See the explanations above for how these circuits +// work. +// +// +// HW_CLEAR version: (Faster but higher part count) +// ------------------------------------------------ +// +// 74HC595 (VCC) +// +----u----+ | 2.2nF +// (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND) +// (LCD D6)------------2-|QC QA|-15 | +// (LCD D5)------------3-|QD SER|-14-------+--[ Resistor ]--+ +// (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k | +// (BL Circuit)--------5-|QF RCK|-12-----+ | +// | | \ | +// (LCD RS)------------6-|QG SCK|-11-------)----------------+--(Serial PIN) +// | | | +// +-------7-|QH /CLR|-10-------)--+--[ Resistor ]--(VCC) +// | | | / | 1k +// | +--8-|GND Q'H|--9-----+ | +// | | +---------+ | | (GND)--(LCD RW) +// | | 0.1uF | \ +// | (GND)-----||----(VCC) +------)--------------(LCD EN) +// | | / +// |----|<|----+--[ Resistor ]--| | +// diode | 1k C +// | | +// +-------------+---B-|> (NPN) +// | | +// (2.2nF) = E +// | | +// (GND) (GND) +// +// +// SW_CLEAR version: (Lower part count but slower) +// ----------------------------------------------- +// +// 74HC595 (VCC) +// +----u----+ | 2.2nF +// (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND) +// (LCD D6)------------2-|QC QA|-15 | +// (LCD D5)------------3-|QD SER|-14---------+--[ Resistor ]--+ +// (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k | +// (BL Circuit)--------5-|QF RCK|-12---------+ | +// | | \ | +// (LCD RS)------------6-|QG SCK|-11-----------)--------------+--(Serial PIN) +// 7-|QH /CLR|-10--(VCC) / | +// +--8-|GND Q'H|--9---|<|---+--[ Resistor ]--+ +// | +---------+ diode | 1.5k +// | | +// | 0.1uF | +// (GND)-----||----(VCC) +----||----(GND) +// | 2.2nF +// (LCD EN)-------------------------------------+ +// (LCD RW)--(GND) +// +// +// In either case the LCD RW pin is hardwired to GND meaning we will only be able to write +// to the LCD. +// Therefore, the Busy Flag (BF, data bit D7) is not able to be read and we have to make use +// of the minimum delay time constraints. This isn't really a problem because it usually +// takes us longer to shift and latch the data than the minimum delay anyway. For now, we +// simply keep track of our delays and add more delay at the end to get to at least 37 uS. +// +// +// Backlight Control Circuit +// ------------------------- +// Since we are using the latching nature of the shift resiter we don't need the extra +// backlight circuitry that SR2W uses. Keeping it around, however, would still work because +// the circuit just slows down the transitions to the mosfet a bit. +// +// Here are two more optimized versions that can be used. +// +// +// NPN Transistor version: (Cheaper but more power draw and higher part count) +// --------------------------------------------------------------------------- +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(VCC) +// +// (LCD BL cathode)---------------+ +// | +// C +// | +// (BL input)--[ Resistor ]---B-|> (NPN) +// 1k | +// E +// | +// (GND) +// +// NOTE: The Bate resistor is needed because the NPN is current fed. For lower +// power draw, try a 10k resistor. +// +// +// N-CH Mosfet version: (More costly but less power draw and lower part count) +// --------------------------------------------------------------------------- +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(VCC) +// +// (LCD BL cathode)---------------+ +// | +// D +// | +// (BL input)----------------G-|-< (2N7000 FET) +// | +// S +// | +// (GND) +// +// NOTE: Gate resistor not needed because the mosfet is voltage fed and only really +// pulls current while switching. +// +// In either case, when the BL input is HIGH the LCD backlight will turn on. +// +// +// History +// 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations +// 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit +// 2013.07.09 serisman - added an even faster version that performs the clear in hardware +// 2013.07.08 serisman - changed code to shift data MSB first to match SR2W +// 2013.07.07 serisman - major speed optimization +// 2013.07.06 serisman - created/modified from SR2W source to create SR1W +// @author S. Erisman - arduino@serisman.com +// -------------------------------------------------------------------------------- + +#ifndef _LIQUIDCRYSTAL_SR1W_ +#define _LIQUIDCRYSTAL_SR1W_ + +#if defined (__AVR__) + +#include +#include "LCD.h" +#include "FastIO.h" + +// 1-wire SR timing constants +// --------------------------------------------------------------------------- + +// NOTE: +// The 1.5k resistor (1.2k - 1.8k with a 20% tolerance) +// takes between 2.376uS and 4.36uS to fully charge or discharge +// the 2.2n capacitor (1.98n - 2.42n with a 10% tolerance). +// We round this up to a 5uS delay to provide an additional safety margin. + +#define SR1W_DELAY_US 5 +#define SR1W_DELAY() { delayMicroseconds(SR1W_DELAY_US); numDelays++; } + +// 1-wire SR output bit constants +// --------------------------------------------------------------------------- + +#define SR1W_UNUSED_MASK 0x01 // Set unused bit(s) to '1' as they are slightly faster to clock in. +#define SR1W_D7_MASK 0x02 +#define SR1W_D6_MASK 0x04 +#define SR1W_D5_MASK 0x08 +#define SR1W_D4_MASK 0x10 +#define SR1W_BL_MASK 0x20 +#define SR1W_RS_MASK 0x40 +#define SR1W_EN_MASK 0x80 // This cannot be changed. It has to be the first thing shifted in. + +#define SR1W_ATOMIC_WRITE_LOW(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; } +#define SR1W_ATOMIC_WRITE_HIGH(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; } + + +typedef enum { SW_CLEAR, HW_CLEAR } t_sr1w_circuitType; + +class LiquidCrystal_SR1W : public LCD +{ +public: + /*! + @method + @abstract LCD 1 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register. + @param circuitType[in] optionally select an alternate circuit type + @param blpol[in] optional backlight polarity (default = POSITIVE) + */ + LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType, + t_backlightPol blpol = POSITIVE); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, t_sr1w_circuitType circuitType, t_backlightPol blpol, + uint8_t lines, uint8_t font ); + + /*! + @method + @abstract Clears the shift register to ensure the Latch/Enable pins aren't + triggered accidentally. + */ + uint8_t clearSR (); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + uint8_t loadSR (uint8_t val); + + fio_register _srRegister; // Serial PIN + fio_bit _srMask; + + t_sr1w_circuitType _circuitType; + + uint8_t _blPolarity; + uint8_t _blMask; +}; + +#else +#error "ONLY SUPPORTED ON AVR PROCESSORS" +#endif // defined (__AVR__) + +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e9816e7f261ca05203467c8f3f41beb24492f072 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.cpp @@ -0,0 +1,147 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR2W.cpp +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is a port of the ShiftRegLCD library from raron and ported to the +// LCD library. +// +// +// See the corresponding SR2W header file for full details. +// +// History +// 2012.03.29 bperrybap - Fixed incorrect use of 5x10 for default font +// (now matches original LQ library) +// Fixed typo in SR2W mask define names +// changed default backlight state to on +// 2012.03.16 bperrybap - created/modified from SR sources to create SR2W +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// --------------------------------------------------------------------------- + +#include "LiquidCrystal_SR2W.h" + +// CONSTRUCTORS +// --------------------------------------------------------------------------- +// Assuming 1 line 8 pixel high font +LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlightPol blpol) +{ + init ( srdata, srclock, blpol, 1, 0 ); +} + + +// PRIVATE METHODS +// --------------------------------------------------------------------------- + +// +// init +void LiquidCrystal_SR2W::init(uint8_t srdata, uint8_t srclock, t_backlightPol blpol, uint8_t lines, uint8_t font) +{ + _srDataRegister = fio_pinToOutputRegister(srdata); + _srDataMask = fio_pinToBit(srdata); + _srClockRegister = fio_pinToOutputRegister(srclock); + _srClockMask = fio_pinToBit(srclock); + + _blPolarity = blpol; + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + backlight(); // set default backlight state to on +} + +// +// loadSR +void LiquidCrystal_SR2W::loadSR(uint8_t val) +{ + // Clear to keep Enable LOW while clocking in new bits + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask); + + + // clock out SR data byte + fio_shiftOut(_srDataRegister, _srDataMask, _srClockRegister, _srClockMask, val, MSBFIRST); + + + // strobe LCD enable which can now be toggled by the data line + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_srDataRegister, _srDataMask); + waitUsec (1); // enable pulse must be >450ns + fio_digitalWrite_SWITCHTO(_srDataRegister, _srDataMask, LOW); + } // end critical section +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + + +/************ low level data pushing commands **********/ +// +// send +void LiquidCrystal_SR2W::send(uint8_t value, uint8_t mode) +{ + uint8_t myMode = ( mode == LCD_DATA ) ? SR2W_RS_MASK : 0; + + myMode = myMode | SR2W_EN_MASK | _blMask; + + if ( mode != FOUR_BITS ) + { + loadSR(myMode | ((value >> 1) & SR2W_DATA_MASK)); // upper nibble + } + + loadSR(myMode | ((value << 3) & SR2W_DATA_MASK)); // lower nibble + + /* + * Don't call waitUsec() + * do our own delay optmization since this code is so fast it needs some added delay + * even on slower AVRs. + */ +#if (F_CPU <= 16000000) + delayMicroseconds ( 10 ); // commands & data writes need > 37us to complete +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif +} + +// +// setBacklight +void LiquidCrystal_SR2W::setBacklight ( uint8_t value ) +{ + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if ( ((_blPolarity == POSITIVE) && (value > 0)) || + ((_blPolarity == NEGATIVE ) && ( value == 0 )) ) + { + _blMask = SR2W_BL_MASK; + } + else + { + _blMask = 0; + } + + // send dummy data of blMask to set BL pin + // Note: loadSR() will strobe the data line trying to pulse EN + // but E will not strobe because the EN output bit is not set. + loadSR(_blMask); +} diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h new file mode 100644 index 0000000000000000000000000000000000000000..5fe56d38ce458ac3b7085d7168df8aa77bd4a91f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h @@ -0,0 +1,214 @@ +// --------------------------------------------------------------------------- +// Created/Adapted by Bill Perry 2012-03-16 +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// @file LiquidCrystal_SR2W.h +// Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit +// ShiftRegister (SR2W from now on). +// +// @brief +// This is the 2 wire shift register interface class for the LCD library +// +// The functionality provided by this class and its base class is a superset of +// the original functionality of the Arduino LiquidCrystal library and can +// be used as such. +// See the LCD class for a full description of the API functions available. +// +// It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out) +// shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode. +// Any such shift register should do (pref. 74LS family IC's for 2-wire). +// 74LS164 and 74HC595 have been exstensively tested. +// +// +// 2 Pins required from the Arduino: +// - Data/Enable +// - Clock +// The Data pin is also used to control the enable signal +// LCD RW-pin hardwired to LOW (only writing to LCD). +// Busy Flag (BF, data bit D7) is not read. +// +// Original project homepage: http://code.google.com/p/arduinoshiftreglcd/ +// +// Shift register bits +// Bit #0 - (cannot be used on 74HC595) +// Bit #1 - optional backlight control +// Bit #2 - connects to RS (Register Select) on the LCD +// Bit #3 - connects to LCD data inputs D4 +// Bit #4 - connects to LCD data inputs D5 +// Bit #5 - connects to LCD data inputs D6 +// Bit #6 - connects to LCD data inputs D7 +// Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate") +// +// Wiring for a 74LS164 +// --------------------- +// 1k/4.7k +// +--------[ Resistor ]--------+---(LCD Enable) +// | | +// | 74LS164 (VCC) | +// | +----u----+ | _V_ diode +// (data pin)---+---+--1-|A VCC|-14-+ | +// | | | | +// +--2-|B Q7|-13------+ +// 3-|Q0 Q6|-12--(LCD D7) +// (BL Circuit)--------4-|Q1 Q5|-11--(LCD D6) +// (LCD RS)------------5-|Q2 Q4|-10--(LCD D5) +// (LCD D4)------------6-|Q3 /MR|--9--(VCC) +// +-7-|GND CP|--8--(clock pin) +// | +---------+ +// | 0.1uf +// (gnd)-----||----(vcc) +// +// Wiring for a 74HC595 +// -------------------- +// NOTE: the 74HC595 is a latching shift register. In order to get it to operate +// in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this +// is that the latched output is one clock behind behind the internal shift register bits. +// To compensate for this the wiring is offset by one bit position lower. +// For example, while the backlight is hooked to Q0 it is still using bit 1 of +// of the shift register because the outputs are 1 clock behind the real internal shift +// register. +// +// 74HC595 (VCC) +// +----u----+ | +-----------------------(BL circuit) +// (LCD RS)------------1-|Q1 VCC|-16-+ | +--------------------(data pin) +// (LCD D4)------------2-|Q2 Q0|-15----+ | 1k/4.7k +// (LCD D5)------------3-|Q3 SER|-14-------+---[ Resistor ]--+--(LCD Enable) +// (LCD D6)------------4-|Q4 /OE|-13--(gnd) | +// (LCD D7)------------5-|Q5 RCLK|-12-------+ | +// | | | | +// +------6-|Q6 SCLK|-11-------+--(clock pin) | +// | 7-|Q7 /MR|-10--(VCC) | +// | +-8-|GND Q6'|--9 | +// | | +---------+ diode _V_ +// | | 0.1uf | +// | (gnd)-----||----(vcc) | +// +-----------------------------------------------+ +// +// +// Backlight Control circuit +// ------------------------- +// Because the shift resiter is not latching the outputs, the backlight circuitry +// will "see" the output bits as they are shifted into the shift register which +// can cause the backlight to flicker rather than remain constantly on/off. +// The circuit below slows down the transitions to the transistor to remove +// the visible flicker. When the BL input is HIGH the LCD backlight will turn on. +// +// (value depends on LCD, 100ohm is usually safe) +// (LCD BL anode)---[ resistor ]---(vcc) +// +// (LCD BL cathode)-------------------------------+ +// | +// D +// | +// (BL input)----[ 4.7k Resistor ]----+-------G-|-< (2N7000 FET) +// | | +// (0.1uf) = S +// | | +// (gnd) (gnd) +// +// +// +// +// History +// 2012.03.16 bperrybap - creation/adaption from SR header to create SR2W header. +// Fixed typo in SR2W mask define names +// @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com +// -------------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR2W_ +#define _LIQUIDCRYSTAL_SR2W_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +// two-wire SR output bit constants +// --------------------------------------------------------------------------- + +#define SR2W_BL_MASK 0x02 +#define SR2W_RS_MASK 0x04 +#define SR2W_DATA_MASK 0x78 // data bits are hard coded to be SR bits 6,5,4,3 +#define SR2W_EN_MASK 0x80 // cannot ever be changed + +class LiquidCrystal_SR2W : public LCD +{ +public: + /*! + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) + */ + LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlightPol blpol = POSITIVE); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) + */ + void setBacklight ( uint8_t mode ); + +private: + + /*! + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. + */ + void init ( uint8_t srdata, uint8_t srclock, t_backlightPol blpol, uint8_t lines, uint8_t font ); + + /*! + * @method + * @abstract takes care of shifting and the enable pulse + */ + void loadSR (uint8_t val); + + fio_register _srDataRegister; // Serial Data pin + fio_bit _srDataMask; + fio_register _srClockRegister; // Clock Pin + fio_bit _srClockMask; + + uint8_t _blPolarity; + uint8_t _blMask; +}; +#endif diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.cpp b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2bab7f41795ce891c3805bb61027f3746b107440 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.cpp @@ -0,0 +1,298 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// This software is furnished "as is", without technical support, and with no +// warranty, express or implied, as to its usefulness for any purpose. +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SRG.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// History +// 2012.03.29 bperrybap - fixed constructors not properly using Rs +// Fixed incorrect use of 5x10 for default font +// - now matches original LQ library. +// moved delay to send() so it is per cmd/write vs shiftout() +// NOTE: delay is on hairy edge of working when FAST_MODE is on. +// because of waitUsec(). +// There is margin at 16Mhz AVR but might fail on 20Mhz AVRs. +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +// flags for backlight control +#include +#include +#include + +#if (ARDUINO < 100) +#include +#else +#include +#endif +#include "LiquidCrystal_SR3W.h" + +#include "FastIO.h" + +/*! + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK + */ +#define LCD_NOBACKLIGHT 0x00 + +/*! + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on + */ +#define LCD_BACKLIGHT 0xFF + + +// Default library configuration parameters used by class constructor with +// only the I2C address field. +// --------------------------------------------------------------------------- +/*! + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable + */ +#define EN 4 // Enable bit + +/*! + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin + */ +#define RW 5 // Read/Write bit + +/*! + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin + */ +#define RS 6 // Register select bit + +/*! + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module + */ +#define D4 0 +#define D5 1 +#define D6 2 +#define D7 3 + + + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlightPol pol) +{ + init( data, clk, strobe, RS, RW, EN, D4, D5, D6, D7 ); + setBacklightPin(backlighPin, pol); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); +} + +LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlightPol pol) +{ + init( data, clk, strobe, Rs, Rw, En, d4, d5, d6, d7 ); + setBacklightPin(backlighPin, pol); +} + + +void LiquidCrystal_SR3W::send(uint8_t value, uint8_t mode) +{ + + if ( mode != FOUR_BITS ) + { + write4bits( (value >> 4), mode ); // upper nibble + } + write4bits( (value & 0x0F), mode); // lower nibble + + +#if (F_CPU <= 16000000) + // No need to use the delay routines on AVR since the time taken to write + // on AVR with SR pin mapping even with fio is longer than LCD command execution. + waitUsec(37); //goes away on AVRs +#else + delayMicroseconds ( 37 ); // commands & data writes need > 37us to complete +#endif + +} + + +void LiquidCrystal_SR3W::setBacklightPin ( uint8_t value, t_backlightPol pol = POSITIVE ) +{ + _backlightPinMask = ( 1 << value ); + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = pol; + setBacklight (BACKLIGHT_OFF); // Set backlight to off as initial setup +} + +void LiquidCrystal_SR3W::setBacklight ( uint8_t value ) +{ + // Check if backlight is available + // ---------------------------------------------------- + if ( _backlightPinMask != 0x0 ) + { + // Check for polarity to configure mask accordingly + // ---------------------------------------------------------- + if (((_polarity == POSITIVE) && (value > 0)) || + ((_polarity == NEGATIVE ) && ( value == 0 ))) + { + _backlightStsMask = _backlightPinMask & LCD_BACKLIGHT; + } + else + { + _backlightStsMask = _backlightPinMask & LCD_NOBACKLIGHT; + } + loadSR( _backlightStsMask ); + } +} + + +// PRIVATE METHODS +// ----------------------------------------------------------------------------- + +int LiquidCrystal_SR3W::init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) +{ + _data = fio_pinToBit(data); + _clk = fio_pinToBit(clk); + _strobe = fio_pinToBit(strobe); + _data_reg = fio_pinToOutputRegister(data); + _clk_reg = fio_pinToOutputRegister(clk); + _strobe_reg = fio_pinToOutputRegister(strobe); + + // LCD pin mapping + _backlightPinMask = 0; + _backlightStsMask = LCD_NOBACKLIGHT; + _polarity = POSITIVE; + + _En = ( 1 << En ); + _Rw = ( 1 << Rw ); + _Rs = ( 1 << Rs ); + + // Initialise pin mapping + _data_pins[0] = ( 1 << d4 ); + _data_pins[1] = ( 1 << d5 ); + _data_pins[2] = ( 1 << d6 ); + _data_pins[3] = ( 1 << d7 ); + + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + + return (1); +} + +void LiquidCrystal_SR3W::write4bits(uint8_t value, uint8_t mode) +{ + uint8_t pinMapValue = 0; + + // Map the value to LCD pin mapping + // -------------------------------- + for ( uint8_t i = 0; i < 4; i++ ) + { + if ( ( value & 0x1 ) == 1 ) + { + pinMapValue |= _data_pins[i]; + } + value = ( value >> 1 ); + } + + // Is it a command or data + // ----------------------- + mode = ( mode == LCD_DATA ) ? _Rs : 0; + + pinMapValue |= mode | _backlightStsMask; + loadSR ( pinMapValue | _En ); // Send with enable high + loadSR ( pinMapValue); // Send with enable low +} + + +void LiquidCrystal_SR3W::loadSR(uint8_t value) +{ + // Load the shift register with information + fio_shiftOut(_data_reg, _data, _clk_reg, _clk, value, MSBFIRST); + + // Strobe the data into the latch + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) + { + fio_digitalWrite_HIGH(_strobe_reg, _strobe); + fio_digitalWrite_SWITCHTO(_strobe_reg, _strobe, LOW); + } +} diff --git a/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h new file mode 100644 index 0000000000000000000000000000000000000000..cfae4a5d40a0acff8feed9de16614bfa3cf34a8c --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h @@ -0,0 +1,216 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 7.3.2012. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file LiquidCrystal_SR3W.h +// This file implements a basic liquid crystal library that comes as standard +// in the Arduino SDK but using a generic SHIFT REGISTER extension board. +// +// @brief +// This is a basic implementation of the LiquidCrystal library of the +// Arduino SDK. The original library has been reworked in such a way that +// this class implements the all methods to command an LCD based +// on the Hitachi HD44780 and compatible chipsets using a 3 wire latching +// shift register. While it has been tested with a 74HC595N shift register +// it should also work with other latching shift registers such as the MC14094 +// and the HEF4094 +// +// This particular driver has been created as generic as possible to enable +// users to configure and connect their LCDs using just 3 digital IOs from the +// AVR or Arduino, and connect the LCD to the outputs of the shiftregister +// in any configuration. The library is configured by passing the IO pins +// that control the strobe, data and clock of the shift register and a map +// of how the shiftregister is connected to the LCD. +// +// +// +--------------------------------------------+ +// | MCU | +// | IO1 IO2 IO3 | +// +----+-------------+-------------+-----------+ +// | | | +// | | | +// +----+-------------+-------------+-----------+ +// | Strobe Data Clock | +// | 8-bit shift/latch register | 74HC595N +// | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 | +// +----+----+----+----+----+----+----+----+----+ +// | | | | | | | +// |11 |12 |13 |14 |6 |5 |4 (LCD pins) +// +----+----+----+----+----+----+----+----+----+ +// | DB4 DB5 DB6 DB7 E Rw RS | +// | LCD Module | +// +// NOTE: Rw is not used by the driver so it can be connected to GND. +// +// The functionality provided by this class and its base class is identical +// to the original functionality of the Arduino LiquidCrystal library. +// +// +// @author F. Malpartida - fmalpartida@gmail.com +// --------------------------------------------------------------------------- +#ifndef _LIQUIDCRYSTAL_SR3W_H_ +#define _LIQUIDCRYSTAL_SR3W_H_ + +#include +#include "LCD.h" +#include "FastIO.h" + + +class LiquidCrystal_SR3W : public LCD +{ +public: + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe); + // Constructor with backlight control + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t backlighPin, t_backlightPol pol); + + /*! + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. + */ + LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ); + // Constructor with backlight control + LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t En, uint8_t Rw, uint8_t Rs, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, + uint8_t backlighPin, t_backlightPol pol); + + /*! + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. + */ + virtual void send(uint8_t value, uint8_t mode); + + /*! + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param value: pin mapped on the 74HC595N (0, .., 7) for (Qa0, .., Qh7) + respectively. + @param pol: polarity POSITIVE|NEGATIVE. + */ + void setBacklightPin ( uint8_t value, t_backlightPol pol ); + + /*! + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) + */ + void setBacklight ( uint8_t value ); + +private: + + /*! + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. + */ + int init(uint8_t data, uint8_t clk, uint8_t strobe, + uint8_t Rs, uint8_t Rw, uint8_t En, + uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); + + /*! + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. + */ + void write4bits(uint8_t value, uint8_t mode); + + /*! + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. + */ + void loadSR(uint8_t value); + + + fio_bit _strobe; // shift register strobe pin + fio_register _strobe_reg; // SR strobe pin MCU register + fio_bit _data; // shift register data pin + fio_register _data_reg; // SR data pin MCU register + fio_bit _clk; // shift register clock pin + fio_register _clk_reg; // SR clock pin MCU register + uint8_t _En; // LCD expander word for enable pin + uint8_t _Rw; // LCD expander word for R/W pin + uint8_t _Rs; // LCD expander word for Register Select pin + uint8_t _data_pins[4]; // LCD data lines + uint8_t _backlightPinMask; // Backlight IO pin mask + uint8_t _backlightStsMask; // Backlight status mask + +}; + +#endif + diff --git a/Libs/NewLiquidCrystal_lib/README.md b/Libs/NewLiquidCrystal_lib/README.md new file mode 100644 index 0000000000000000000000000000000000000000..36a7ab56680cedb188055874cbcc65a2e0596017 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/README.md @@ -0,0 +1,64 @@ +# README # + +## Introduction ## + +![LCD library](https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/I2CLCDextraIO_assemblyProject_small.jpg) + +Welcome to the *LCD Library* for **Arduino** and **Chipkit**. It is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. It has been developed to be compatible with the current LiquidCrystal library, +its performance is almost 5 times faster and fully extendable if need be. + +It supports most ``Hitachi HD44780`` based LCDs, or compatible, connected to any project using: 4, 8 +wire parallel interface, I2C IO port expander (native I2C and bit bang) and Shift Regiter. + +It currently supports 4 types of connections: + +* 4 bit parallel LCD interface +* 8 bit parallel LCD interface +* I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC such as [I2C LCD extra IO](http://www.electrofunltd.com/2011/10/i2c-lcd-extra-io.html "I2C LCD extra IO"). +* ShiftRegister adaptor board as described [Shift Register project home](http://code.google.com/p/arduinoshiftreglcd/ "Shift Register project home") or in the HW configuration described below, 2 and 3 wire configurations supported. +* ShiftRegister 3 wire latch adaptor board as described [ShiftRegister 3 Wire Home](http://www.arduino.cc/playground/Code/LCD3wires "ShiftRegister 3 Wire Home") +* Support for 1 wire shift register [ShiftRegister 1 Wire](http://www.romanblack.com/shift1.htm "ShiftRegister 1 Wire") +* I2C bus expansion using general purpose IO lines. + +### How do I get set up? ### + +* Please refer to the project's [wiki](https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home "wiki") + + +### Contributors +The library has had the invaluable contribution of: + +* [piccaso](http://www.3guys1laser.com/blog-cheap-arduino-2-wire-lcd-display-0 "picas") - Florian Fida - Flo, thanks for testing and improving the SR library, initial version of the 1 wire interface and speed improvements. +* B. Perry - *bperrybap@opensource.billsworld.billandterrie.com*, with his thoughtful contribution, speed improvements and development support for the SR2W library. +* Adrian Piccioli, with his contribution to the i2c GPIO support. +* [todbot](https://github.com/todbot "todbot") Tod E. Kurt for the [softwarei2cmaster](https://github.com/todbot/SoftI2CMaster "softwarei2cmaster") library. +* [felias-fogg](https://github.com/felias-fogg) - Bernhard for the [softwarei2cmaster fast](https://github.com/felias-fogg/SoftI2CMaster "softwirei2cmaster") + +#### Contribution guidelines + +* Writing tests +* Code review +* Help out with bug fixing +* Setup a project logo +* Write new drivers to support more LCDs. + +### Who do I talk to? ### + +* Repo owner or admin +* For SoftI2CMaster latest versions, updates and support, please refer to [SoftI2CMaster](https://github.com/todbot/SoftI2CMaster "todbot") + +## License ## +Copyright (C) - 2018 + +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 3 of the License, or any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License v3.0 +along with this program. +If not, see [GPL V3](https://www.gnu.org/licenses/gpl-3.0.en.html). \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/SI2CIO.cpp b/Libs/NewLiquidCrystal_lib/SI2CIO.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cbe66471d0b2fb8ff82cf678440e06ef7cc1c21f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/SI2CIO.cpp @@ -0,0 +1,224 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file SI2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip, but using software I2C. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- + +#if defined (__AVR__) + +#if (ARDUINO < 100) +#include +#else +#include +#endif + +#include + +/*#define SCL_PIN 6 +#define SCL_PORT PORTD +#define SDA_PIN 7 +#define SDA_PORT PORTD*/ + +//#define I2C_FASTMODE 1 +//#define I2C_SLOWMODE 1 + +#define SCL_PIN 0 +#define SCL_PORT PORTB +#define SDA_PIN 1 +#define SDA_PORT PORTB + + +#include "SI2CIO.h" +#include "SoftI2CMaster.h" + + +// CLASS VARIABLES +// --------------------------------------------------------------------------- + + +// CONSTRUCTOR +// --------------------------------------------------------------------------- +SI2CIO::SI2CIO ( ) +{ + _i2cAddr = 0x0; + _dirMask = 0xFF; // mark all as INPUTs + _shadow = 0x0; // no values set + _initialised = false; +} + +// PUBLIC METHODS +// --------------------------------------------------------------------------- + +// +// begin +int SI2CIO::begin ( uint8_t i2cAddr ) +{ + // convert to 8 bit addresses for mapping as needed by the bitbang library + _i2cAddr = ( i2cAddr << 1 ); + + i2c_init(); + + _initialised = i2c_start(_i2cAddr | I2C_READ); + + _shadow = i2c_read(true); + + i2c_stop(); + + return ( _initialised ); +} + +// +// pinMode +void SI2CIO::pinMode ( uint8_t pin, uint8_t dir ) +{ + if ( _initialised ) + { + if ( OUTPUT == dir ) + { + _dirMask &= ~( 1 << pin ); + } + else + { + _dirMask |= ( 1 << pin ); + } + } +} + +// +// portMode +void SI2CIO::portMode ( uint8_t dir ) +{ + + if ( _initialised ) + { + if ( dir == INPUT ) + { + _dirMask = 0xFF; + } + else + { + _dirMask = 0x00; + } + } +} + +// +// read +uint8_t SI2CIO::read ( void ) +{ + uint8_t retVal = 0; + + if ( _initialised ) + { + i2c_start(_i2cAddr | I2C_READ); + + retVal = (_dirMask & i2c_read(true)); + + i2c_stop(); + } + return ( retVal ); +} + +// +// write +int SI2CIO::write ( uint8_t value ) +{ + int status = 0; + + if ( _initialised ) + { + // Only write HIGH the values of the ports that have been initialised as + // outputs updating the output shadow of the device + _shadow = ( value & ~(_dirMask) ); + + status = i2c_start(_i2cAddr | I2C_WRITE); + + status &= i2c_write(_shadow); + + i2c_stop(); + } + return ( (status == 0) ); +} + +// +// digitalRead +uint8_t SI2CIO::digitalRead ( uint8_t pin ) +{ + uint8_t pinVal = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Remove the values which are not inputs and get the value of the pin + pinVal = this->read() & _dirMask; + pinVal = ( pinVal >> pin ) & 0x01; // Get the pin value + } + return (pinVal); +} + +// +// digitalWrite +int SI2CIO::digitalWrite ( uint8_t pin, uint8_t level ) +{ + uint8_t writeVal; + int status = 0; + + // Check if initialised and that the pin is within range of the device + // ------------------------------------------------------------------- + if ( ( _initialised ) && ( pin <= 7 ) ) + { + // Only write to HIGH the port if the port has been configured as + // an OUTPUT pin. Add the new state of the pin to the shadow + writeVal = ( 1 << pin ) & ~_dirMask; + if ( level == HIGH ) + { + _shadow |= writeVal; + } + else + { + _shadow &= ~writeVal; + } + status = this->write ( _shadow ); + } + return ( status ); +} + +// +// PRIVATE METHODS +// --------------------------------------------------------------------------- +#endif // defined (__AVR__) diff --git a/Libs/NewLiquidCrystal_lib/SI2CIO.h b/Libs/NewLiquidCrystal_lib/SI2CIO.h new file mode 100644 index 0000000000000000000000000000000000000000..4c926cec3022198c8de1cbbf59c938a9a23a2ff8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/SI2CIO.h @@ -0,0 +1,167 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file SI2CIO.h +// This file implements a basic IO library using the PCF8574 I2C IO Expander +// chip, but using software I2C. +// +// @brief +// Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC. +// The library implements basic IO general methods to configure IO pin direction +// read and write uint8_t operations and basic pin level routines to set or read +// a particular IO port. +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com +// --------------------------------------------------------------------------- + +#ifndef _SI2CIO_H_ +#define _SI2CIO_H_ + +#if defined (__AVR__) + +#include + +#define _SI2CIO_VERSION "1.0.0" + +/*! + @class + @abstract SI2CIO + @discussion Library driver to control PCF8574 based ASICs. Implementing + library calls to set/get port through I2C bus. + */ + +class SI2CIO +{ +public: + /*! + @method + @abstract Constructor method + @discussion Class constructor constructor. + */ + SI2CIO ( ); + + /*! + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise + */ + int begin ( uint8_t i2cAddr ); + + /*! + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). + */ + void pinMode ( uint8_t pin, uint8_t dir ); + + /*! + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). + */ + void portMode ( uint8_t dir ); + + /*! + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none + */ + uint8_t read ( void ); + + /*! + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. + */ + uint8_t digitalRead ( uint8_t pin ); + + /*! + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise + */ + int write ( uint8_t value ); + + /*! + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. + */ + int digitalWrite ( uint8_t pin, uint8_t level ); + + + +private: + uint8_t _shadow; // Shadow output + uint8_t _dirMask; // Direction mask + uint8_t _i2cAddr; // I2C address + bool _initialised; // Initialised object + +}; + +#else +#error "ONLY SUPPORTED ON AVR PROCESSORS" +#endif // defined (__AVR__) + +#endif diff --git a/Libs/NewLiquidCrystal_lib/SoftI2CMaster.h b/Libs/NewLiquidCrystal_lib/SoftI2CMaster.h new file mode 100644 index 0000000000000000000000000000000000000000..fae5a2cf402647e89086b4f328813ae2d25bf37f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/SoftI2CMaster.h @@ -0,0 +1,515 @@ +/* Arduino SoftI2C library. + * + * This is a very fast and very light-weight software I2C-master library + * written in assembler. It is based on Peter Fleury's I2C software + * library: http://homepage.hispeed.ch/peterfleury/avr-software.html + * + * + * This Library 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 3 of the License, or + * (at your option) any later version. + * + * This Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Arduino I2cMaster Library. If not, see + * . + */ + +/* In order to use the library, you need to define SDA_PIN, SCL_PIN, + * SDA_PORT and SCL_PORT before including this file. Have a look at + * http://www.arduino.cc/en/Reference/PortManipulation for finding out + * which values to use. For example, if you use digital pin 3 for + * SDA and digital pin 13 for SCL you have to use the following + * definitions: + * #define SDA_PIN 3 + * #define SDA_PORT PORTB + * #define SCL_PIN 5 + * #define SCL_PORT PORTB + * + * You can also define the following constants (see also below): + * - I2C_CPUFREQ, when changing CPU clock frequency dynamically + * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz + * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz + * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while + * communicating (see below). This can be useful if you use the library + * for communicationg with SMbus devices, which have timeouts. + * Note, however, that interrupts are disabledfrom issuing a start condition + * until issuing a stop condition. So use this option with care! + * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions + * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout + */ + +/* Changelog: + * Version 1.1: + * - removed I2C_CLOCK_STRETCHING + * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout + * - changed i2c_init to return true iff both SDA and SCL are high + * - changed interrupt disabling so that the previous IRQ state is retored + * Version 1.0: basic functionality + */ +#include +#include + +#ifndef _SOFTI2C_H +#define _SOFTI2C_H 1 + +#if defined (__AVR__) + +// Init function. Needs to be called once in the beginning. +// Returns false if SDA or SCL are low, which probably means +// a I2C bus lockup or that the lines are not pulled up. +boolean __attribute__ ((noinline)) i2c_init(void); + +// Start transfer function: is the 8-bit I2C address (including the R/W +// bit). +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_start(uint8_t addr); + +// Similar to start function, but wait for an ACK! Be careful, this can +// result in an infinite loop! +void __attribute__ ((noinline)) i2c_start_wait(uint8_t addr); + +// Repeated start function: After having claimed the bus with a start condition, +// you can address another or the same chip again without an intervening +// stop condition. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_rep_start(uint8_t addr); + +// Issue a stop condition, freeing the bus. +void __attribute__ ((noinline)) i2c_stop(void) asm("ass_i2c_stop"); + +// Write one byte to the slave chip that had been addressed +// by the previous start call. is the byte to be sent. +// Return: true if the slave replies with an "acknowledge", false otherwise +bool __attribute__ ((noinline)) i2c_write(uint8_t value) asm("ass_i2c_write"); + +// Read one byte. If is true, we send a NAK after having received +// the byte in order to terminate the read sequence. +uint8_t __attribute__ ((noinline)) i2c_read(bool last); + +// You can set I2C_CPUFREQ independently of F_CPU if you +// change the CPU frequency on the fly. If do not define it, +// it will use the value of F_CPU +#ifndef I2C_CPUFREQ +#define I2C_CPUFREQ F_CPU +#endif + +// If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz +// is selected. Be aware that not all slave chips may be able to deal with that! +#ifndef I2C_FASTMODE +#define I2C_FASTMODE 0 +#endif + +// If I2C_FASTMODE is not defined or defined to be 0, then you can set +// I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher +// than 25KHz. This could be useful for problematic buses. +#ifndef I2C_SLOWMODE +#define I2C_SLOWMODE 0 +#endif + +// if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable. +// This is most probably only necessary if you are using a 1MHz system clock, +// you are communicating with a SMBus device, and you want to avoid timeouts. +// Be aware that the interrupt bit is enabled after each call. So the +// I2C functions should not be called in interrupt routines or critical regions. +#ifndef I2C_NOINTERRUPT +#define I2C_NOINTERRUPT 0 +#endif + +// I2C_TIMEOUT can be set to a value between 1 and 10000. +// If it is defined and nonzero, it leads to a timeout if the +// SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec +#ifndef I2C_TIMEOUT +#define I2C_TIMEOUT 0 +#else +#if I2C_TIMEOUT > 10000 +#error I2C_TIMEOUT is too large +#endif +#endif + +#define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL +#if I2C_TIMEOUT_DELAY_LOOPS < 1 +#define I2C_MAX_STRETCH 1 +#else +#if I2C_TIMEOUT_DELAY_LOOPS > 60000UL +#define I2C_MAX_STRETCH 60000UL +#else +#define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS +#endif +#endif + +#if I2C_FASTMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3) +#else +#if I2C_SLOWMODE +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3) +#else +#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3) +#endif +#endif + +// Table of I2C bus speed in kbit/sec: +// CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz +// Fast I2C mode 40 80 150 300 400 400 +// Standard I2C mode 40 80 100 100 100 100 +// Slow I2C mode 25 25 25 25 25 25 + +// constants for reading & writing +#define I2C_READ 1 +#define I2C_WRITE 0 + +// map the IO register back into the IO address space +#define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1) +#define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1) +#define SDA_OUT _SFR_IO_ADDR(SDA_PORT) +#define SCL_OUT _SFR_IO_ADDR(SCL_PORT) +#define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2) +#define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2) + +#ifndef __tmp_reg__ +#define __tmp_reg__ 0 +#endif + + +// Internal delay functions. +void __attribute__ ((noinline)) i2c_delay_half(void) asm("ass_i2c_delay_half"); +void __attribute__ ((noinline)) i2c_wait_scl_high(void) asm("ass_i2c_wait_scl_high"); + +void i2c_delay_half(void) +{ // function call 3 cycles => 3C +#if I2C_DELAY_COUNTER < 1 + __asm__ __volatile__ (" ret"); + // 7 cycles for call and return +#else + __asm__ __volatile__ + ( + " ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t" + "_Lidelay: \n\t" + " dec r25 ;decrement counter ;; 4C+xC \n\t" + " brne _Lidelay ;;5C+(x-1)2C+xC\n\t" + " ret ;; 9C+(x-1)2C+xC = 7C+xC" + : : [DELAY] "M" I2C_DELAY_COUNTER : "r25"); + // 7 cycles + 3 times x cycles +#endif +} + +void i2c_wait_scl_high(void) +{ +#if I2C_TIMEOUT <= 0 + __asm__ __volatile__ + ("_Li2c_wait_stretch: \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t" + " rjmp _Li2c_wait_stretch \n\t" + " cln ;signal: no timeout \n\t" + " ret " + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN)); +#else + __asm__ __volatile__ + ( " ldi r27, %[HISTRETCH] ;load delay counter \n\t" + " ldi r26, %[LOSTRETCH] \n\t" + "_Lwait_stretch: \n\t" + " clr __tmp_reg__ ;do next loop 255 times \n\t" + "_Lwait_stretch_inner_loop: \n\t" + " rcall _Lcheck_scl_level ;call check function ;; 12C \n\t" + " brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t" + " dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t" + " brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t" + " sbiw r26,1 ;dec outer loop counter \n\t" + " brne _Lwait_stretch ;continue with outer loop \n\t" + " sen ;timeout -> set N-bit=1 \n\t" + " rjmp _Lwait_return ;and return with N=1\n\t" + "_Lstretch_done: ;SCL=1 sensed \n\t" + " cln ;OK -> clear N-bit \n\t" + " rjmp _Lwait_return ; and return with N=0 \n\t" + + "_Lcheck_scl_level: ;; call = 3C\n\t" + " cln ;; +1C = 4C \n\t" + " sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t" + " rjmp _Lscl_high ;; +0C = 6C \n\t" + " sen ;; +1 = 7C\n\t " + "_Lscl_high: " + " nop ;; +1C = 8C \n\t" + " ret ;return N-Bit=1 if low ;; +4 = 12C\n\t" + + "_Lwait_return:" + : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN), + [HISTRETCH] "M" (I2C_MAX_STRETCH>>8), + [LOSTRETCH] "M" (I2C_MAX_STRETCH&0xFF) + : "r26", "r27"); +#endif +} + + +boolean i2c_init(void) +{ + __asm__ __volatile__ + (" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t" + " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t" + " clr r24 ;set return value to false \n\t" + " clr r25 ;set return value to false \n\t" + " sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t" + " ret ;if low return with false \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t" + " ret ;if low return with false \n\t" + " ldi r24,1 ;set return value to true \n\t" + " ret " + : : + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), + [SCLIN] "I" (SCL_IN), [SCLOUT] "I" (SCL_OUT), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SDAIN] "I" (SDA_IN), [SDAOUT] "I" (SDA_OUT)); + return true; +} + +bool i2c_start(uint8_t addr) +{ + __asm__ __volatile__ + ( +#if I2C_NOINTERRUPT + " cli ;clear IRQ bit \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;wait T/2 \n\t" + " rcall ass_i2c_write ;now write address \n\t" + " ret" + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); + return true; // we never return here! +} + +bool i2c_rep_start(uint8_t addr) +{ + __asm__ __volatile__ + + ( +#if I2C_NOINTERRUPT + " cli \n\t" +#endif + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write \n\t" + " ret" + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),[SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); + return true; // just to fool the compiler +} + +void i2c_start_wait(uint8_t addr) +{ + __asm__ __volatile__ + ( + " push r24 ;save original parameter \n\t" + "_Li2c_start_wait1: \n\t" + " pop r24 ;restore original parameter\n\t" + " push r24 ;and save again \n\t" +#if I2C_NOINTERRUPT + " cli ;disable interrupts \n\t" +#endif + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;delay T/2 \n\t" + " rcall ass_i2c_write ;write address \n\t" + " tst r24 ;if device not busy -> done \n\t" + " brne _Li2c_start_wait_done \n\t" + " rcall ass_i2c_stop ;terminate write & enable IRQ \n\t" + " rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t" + "_Li2c_start_wait_done: \n\t" + " pop __tmp_reg__ ;pop off orig argument \n\t" + " ret " + : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), + [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN)); +} + +void i2c_stop(void) +{ + __asm__ __volatile__ + ( + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t" + " rcall ass_i2c_delay_half ;T/2 delay \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t" + " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rcall ass_i2c_delay_half \n\t" +#if I2C_NOINTERRUPT + " sei ;enable interrupts again!\n\t" +#endif + : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN)); +} + +bool i2c_write(uint8_t value) +{ + __asm__ __volatile__ + ( + " sec ;set carry flag \n\t" + " rol r24 ;shift in carry and shift out MSB \n\t" + " rjmp _Li2c_write_first \n\t" + "_Li2c_write_bit:\n\t" + " lsl r24 ;left shift into carry ;; 1C\n\t" + "_Li2c_write_first:\n\t" + " breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " brcc _Li2c_write_low ;;+1/+2=5/6C\n\t" + " nop ;; +1 = 7C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;; +2 = 11C \n\t" + "_Li2c_write_low: \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t" + " rjmp _Li2c_write_high ;;+2 = 11C \n\t" + "_Li2c_write_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t" + " cln ;clear N-bit ;;+1 = 14C+X\n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t" + "_Li2c_write_return_false: \n\t" + " clr r24 ; return false because of timeout \n\t" + " rjmp _Li2c_write_return \n\t" + "_Ldelay_scl_high: \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t" +#endif + " rjmp _Li2c_write_bit \n\t" + " ;; +2 = 20C +2X for one bit-loop \n\t" + "_Li2c_get_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t" + " nop \n\t" + " nop \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t" +#endif + " clr r25 ;; 17C+2X \n\t" + " clr r24 ;return 0 ;; 14C + X \n\t" + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t" + "_Li2c_ack_wait: \n\t" + " cln ; clear N-bit ;; 10C + X\n\t" + " nop \n\t" + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_write_return_false ;; 13C + X \n\t " + " sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t" + " ldi r24,1 ;return true ;; 16C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t" +#endif + "_Li2c_write_return: \n\t" + " nop \n\t " + " nop \n\t " + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " ret \n\t" + " ;; + 4 = 17C + 2X for acknowldge bit" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN)); + return true; // fooling the compiler +} + +uint8_t i2c_read(bool last) +{ + __asm__ __volatile__ + ( + " ldi r23,0x01 \n\t" + "_Li2c_read_bit: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t" + " nop \n\t" + " nop \n\t" + " nop \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t" +#endif + " cln ; clear N-bit ;; 7C + 2X \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t" + " rcall ass_i2c_wait_scl_high \n\t" + " brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t" + " clc ;clear carry flag ;; 11C + 2X\n\t" + " sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t" + " sec ;set carry flag ;; 12C + 2X\n\t" + " rol r23 ;store bit ;; 13C + 2X\n\t" + " brcc _Li2c_read_bit ;while receiv reg not full \n\t" + " ;; 15C + 2X for one bit loop \n\t" + + "_Li2c_put_ack: \n\t" + " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t" + " cpi r24,0 ;; 3C \n\t" + " breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t" + " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t" + " rjmp _Li2c_put_ack_high \n\t" + "_Li2c_put_ack_low: ;else \n\t" + " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t" + "_Li2c_put_ack_high: \n\t" + " nop \n\t " + " nop \n\t " + " nop \n\t " +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t" +#endif + " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t" + " cln ;clear N ;; +1 = 10C\n\t" + " nop \n\t " + " nop \n\t " + " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t" + " rcall ass_i2c_wait_scl_high \n\t" +#if I2C_DELAY_COUNTER >= 1 + " rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t" +#endif + "_Li2c_read_return: \n\t" + " nop \n\t " + " nop \n\t " + "sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t" + " mov r24,r23 ;; 12C + 2X \n\t" + " clr r25 ;; 13 C + 2X\n\t" + " ret ;; 17C + X" + :: + [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN), + [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN) + ); + return ' '; // fool the compiler! +} + +#else +#error "ONLY SUPPORTED ON AVR PROCESSORS" +#endif // defined (__AVR__) + +#endif + + + diff --git a/Libs/NewLiquidCrystal_lib/bitbucket-pipelines.yml b/Libs/NewLiquidCrystal_lib/bitbucket-pipelines.yml new file mode 100644 index 0000000000000000000000000000000000000000..ce911671784d6eb1579a26300460ee511685c132 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/bitbucket-pipelines.yml @@ -0,0 +1,12 @@ +# This is a sample build configuration for all languages. +# Check our guides at https://confluence.atlassian.com/x/5Q4SMw for more examples. +# Only use spaces to indent your .yml configuration. +# ----- +# You can specify a custom docker image from Docker Hub as your build environment. +# image: docker-image:tag + +pipelines: + default: + - step: + script: + - echo "Everything is awesome!" \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/def/.DS_Store b/Libs/NewLiquidCrystal_lib/def/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/def/.DS_Store differ diff --git a/Libs/NewLiquidCrystal_lib/def/doxygen.def b/Libs/NewLiquidCrystal_lib/def/doxygen.def new file mode 100644 index 0000000000000000000000000000000000000000..427bf9d2780d801fa4c7b9769b9c09a13f310998 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/def/doxygen.def @@ -0,0 +1,8422 @@ +AutoGen Definitions dummy; +class = { + cp-id = 'class_i2_c_i_o'; + cp-name = 'I2CIO'; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a6f814653d903dc2ff6e8420eeb7954ae'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'i2cAddr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '62'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the device. + @discussion This method initializes the device allocating an I2C address. + This method is the first method that should be call prior to calling any + other method form this class. On initialization all pins are configured + as INPUT on the device. + + @param i2cAddr: I2C Address where the device is located. + @result 1 if the device was initialized correctly, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ac26221011a8b49bcea9ef62712ea88a7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalRead'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Read a pin from the device. + @discussion Reads a particular pin from the device. To read a particular + pin it has to be configured as INPUT. During initialization all pins are + configured as INPUTs by default. Please refer to pinMode or portMode. + + @param pin[in] Pin from the port to read its status. Range (0..7) + @result Returns the pin status (HIGH, LOW) if the pin is configured + as an output, reading its value will always return LOW regardless of its + real state. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a473206162522b847546777d16a7c6dcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'digitalWrite'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'level'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes a digital level to a particular pin. + @discussion Write a level to the indicated pin of the device. For this + method to have effect, the pin has to be configured as OUTPUT using the + pinMode or portMode methods. + + @param pin[in] device pin to change level. Range (0..7). + @para level[in] logic level to set the pin at (HIGH, LOW). + @result 1 on success, 0 otherwise. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a32eb7832075ad6011d67874405a0d0a6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'I2CIO'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '49'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Constructor method + @discussion Class constructor constructor. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a53b94274eb6bb68564cf5243323db887'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pinMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '73'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets the mode of a particular pin. + @discussion Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite + has no effect on pins which are not declared as output. + + @param pin[in] Pin from the I2C IO expander to be configured. Range 0..7 + @param dir[in] Pin direction (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a0341888753bc54c4384f5593a870fb34'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'portMode'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'dir'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Sets all the pins of the device in a particular direction. + @discussion This method sets all the pins of the device in a particular + direction. This method is useful to set all the pins of the device to be + either inputs or outputs. + @param dir[in] Direction of all the pins of the device (INPUT, OUTPUT). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1a7a3db7bfc15ede0ae9e8c8bd44290ef7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'read'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '94'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Reads all the pins of the device that are configured as INPUT. + @discussion Reads from the device the status of the pins that are configured + as INPUT. During initialization all pins are configured as INPUTs by default. + Please refer to pinMode or portMode. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_i2_c_i_o_1ae2063569c927d0008e2593d14504fdcd'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '123'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Write a value to the device. + @discussion Writes to a set of pins in the device. The value is the binary + representation of all the pins in device. The value written is masked with + the configuration of the direction of the pins; to change the state of + a particular pin with this method, such pin has to be configured as OUTPUT + using the portMode or pinMode methods. If no pins have been configured as + OUTPUTs this method will have no effect. + + @param value[in] value to be written to the device. + @result 1 on success, 0 otherwise +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a283a99ef1c6f58fa8a0489089cba9682'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_dirMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '142'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1ade58da873af4240a53053ef5f12a2728'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cAddr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1a8c566f3fd332eefe4db57cbe6b69337c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +bool +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_initialised'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_i2_c_i_o_1abcd6f7f5f176f965d8ae535afa9f6cec'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_shadow'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + sec-mem-desc-line = '141'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + cp-fileline = '42'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_l_c_d'; + cp-name = 'LCD'; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___i2_c___by_vac'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r1_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r2_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-ref = { + ref-type = derived; + ref-id = 'class_liquid_crystal___s_r3_w'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abb3ed88d530f6283e6159b4973e7da9e'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'autoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '358'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on automatic scrolling of the LCD. + @discussion Turns on automatic scrolling of the LCD. This causes each + character output to the display to push previous characters over by one + space. If the current text direction is left-to-right (the default), + the display scrolls to the left; if the current direction is right-to-left, + the display scrolls to the right. + This has the effect of outputting each new character to the same location on + the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aba8867fe2210cbfa8db869208709be10'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'backlight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '428'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on the LCD backlight. + @discussion Switch-on the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3f587d1cbb2d59765ef60a5216b56fea'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class. + + This method is abstract, a base implementation is available common to all LCD + drivers. Should it not be compatible with some other LCD driver, a derived + implementation should be done on the driver specif class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] character size, default==LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a878b36878fa8287093964eba83aace77'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'blink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '264'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the cursor of the LCD. + @discussion Display the blinking LCD cursor. If used in combination with + the cursor() function, the result will depend on the particular display. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1afa699e0beeeee03cce8cef87eba81c4a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clear'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '212'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Clears the LCD. + @discussion Clears the LCD screen and positions the cursor in the upper-left + corner. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a91cba8f93c692abcddf8bc3de58d2d3a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'createChar'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'location'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charmap'; + sec-mem-param-array = '[]'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '386'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Creates a custom character for use on the LCD. + @discussion Create a custom character (glyph) for use on the LCD. + Most chipsets only support up to eight characters of 5x8 pixels. Therefore, + this methods has been limited to locations (numbered 0 to 7). + + The appearance of each custom character is specified by an array of eight + bytes, one for each row. The five least significant bits of each byte + determine the pixels in that row. To display a custom character on screen, + write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7. + + @param location[in] LCD memory location of the character to create + (0 to 7) + @param charmap[in] the bitmap array representing each row of the character. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a194814f64dfa50a90e07e0fe0d361620'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'cursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '282'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Display the LCD cursor. + @discussion Display the LCD cursor: an underscore (line) at the location + where the next character will be written. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a5b07cf05e8e5e7c53654f5ca0cf58b89'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'display'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '246'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns on the LCD display. + @discussion Turns on the LCD display, after it's been turned off with + noDisplay(). This will restore the text (and cursor location) that was on + the display prior to calling noDisplay(). + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aee45ad37f09312f5d9982257e2d37e68'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'home'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '225'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the cursor to the upper-left corner. + @discussion Positions the cursor in the upper-left of the LCD. + That is, use that location in outputting subsequent text to the display. + To also clear the display, use the clear() function instead. + + This operation is time consuming for the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a00bb2db1390721abc7b24ac4b8c276c8'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LCD'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '183'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LiquidCrystal abstract constructor. + @discussion LiquidCrystal class abstract constructor needed to create + the base abstract class. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a238e9f6476dc7df64af04eb6c87f6ac7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'leftToRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '313'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to left-to-right. + @discussion Set the direction for text written to the LCD to left-to-right. + All subsequent characters written to the display will go from left to right, + but does not affect previously-output text. + + This is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aad2abc99d1aca5403873579d9d72c2d4'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '334'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the left. + @discussion + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a09eec0c712e54b066f5894635c1fe75c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'moveCursorRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '343'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Moves the cursor one space to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a96035dde40efbf73390e00b5beb00231'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noAutoscroll'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '368'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off automatic scrolling of the LCD. + @discussion Turns off automatic scrolling of the LCD, this is the default + configuration of the LCD. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2a331b4e142734411b2f1cfaffe7a488'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '437'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-off the LCD backlight. + @discussion Switch-off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3b755c4b397b5985752be8c30ee1a9b5'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noBlink'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '254'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the blinking of the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1aec8ffaa1e69c7a6e13ac0cfbc29151d9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noCursor'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '272'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Hides the LCD cursor. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1af3974da6d988ba2d21c25135ada12108'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'noDisplay'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '235'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Turns off the LCD display. + @discussion Turns off the LCD display, without losing the text currently + being displayed on it. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a191639be183be1476c9bfe6d455d23b2'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'off'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '455'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch off the LCD module. + @discussion Switch off the LCD module, it will switch off the LCD controller + and the backlight. This method has the same effect of calling noDisplay and + noBacklight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a718da3a638deb59bd1c7a5222a52d98a'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'on'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '446'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch on the LCD module. + @discussion Switch on the LCD module, it will switch on the LCD controller + and the backlight. This method has the same effect of calling display and + backlight. @see display, @see backlight +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1ac014830eadc26bfd86308ea8734f4428'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'rightToLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '326'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Set the direction for text written to the LCD to right-to-left. + @discussion Set the direction for text written to the LCD to right-to-left. + All subsequent characters written to the display will go from right to left, + but does not affect previously-output text. + + left-to-right is the default configuration. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a6f3a503055b3b8dcf0f61b2633c584f7'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayLeft'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '291'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the left. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1abfc44b294772f09020bfa32af8a79571'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'scrollDisplayRight'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '300'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Scrolls the contents of the display (text and cursor) one space + to the right. + + @param none +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a3305570d7b37eb93f2cf840263c15828'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '489'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. The behaviour + of this method is very dependent on the device. Some controllers support + dimming some don't. Please read the actual header file for each individual + device. The setBacklightPin method has to be called before setting the backlight + or the adequate backlight control constructor. + @see setBacklightPin. + + NOTE: The prefered methods to control the backlight are "backlight" and + "noBacklight". + + @param 0..255 - the value is very dependent on the LCD. However, + BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the + backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a53f4ee9b39d9ab3d7ae4d9f8dedca3bc'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '470'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + This method is device dependent and can be programmed on each subclass. An + empty function call is provided that does nothing. + + @param value: pin associated to backlight control. + @param pol: backlight polarity control (POSITIVE, NEGATIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a48220450fd152b25994eb7d0ba340e8d'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setCursor'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'col'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'row'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '419'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Position the LCD cursor. + @discussion Sets the position of the LCD cursor. Set the location at which + subsequent text written to the LCD will be displayed. + + @param col[in] LCD column + @param row[in] LCD row - line. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a2d89cc2e62f72afb5f15a7fd812900e3'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '503'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Writes to the LCD. + @discussion This method writes character to the LCD in the current cursor + position. + + This is the virtual write method, implemented in the Print class, therefore + all Print class methods will end up calling this method. + + @param value[in] Value to write to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'protected-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a88b16ea0e5c7d1cabc5007d48bcbd2b0'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_cols'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '523'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ae47a0e2eff74431a39774b788d5761f4'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaycontrol'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '519'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1aef093ba3f8e1016267b40ac235a0fa0f'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displayfunction'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '517'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a726b9a68d091dd8683a18e83f3a8fd3c'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_displaymode'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '521'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1ac1374911fb145fea430c21092ada0c06'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_numlines'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '522'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_l_c_d_1a990338759d2abe10b0fb1743b7789566'; + sec-mem-virt = normal; + sec-mem-prot = protected; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_polarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '524'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a31a0cb42497d83cdc9cb8000828f7190'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'command'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '539'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a command to the LCD. + @discussion This method sends a command to the LCD by setting the Register + select line of the LCD. + + This command shouldn't be used to drive the LCD, only to implement any other + feature that is not available on this library. + + @param value[in] Command value to send to the LCD (COMMAND, DATA or + FOUR_BITS). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_l_c_d_1a8a5b6f6f448a6ca6eeb3466c370d47ab'; + sec-mem-virt = virtual; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + sec-mem-desc-line = '555'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD. This is a pure abstract + method, therefore, it is implementation dependent of each derived class how + to physically write to the LCD. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + cp-fileline = '174'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 5; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 6; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 2; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 3; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 4; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 8; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 7; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 9; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '2'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal'; + cp-name = 'LiquidCrystal'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a49d2bd8d26031a1c83bcbd73978a1686'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '55'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 8 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a30e3d865c4b4a003a36cb45903f93644'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '58'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae0c3c8f7661634b1400f00a1c9c02c26'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '68'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a52a4de3d866e347208a32dfc9d797729'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '86'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a0a0a8dfa7a2e775a031fd65f5c6366ec'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '76'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract 4 bit LCD constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a8b90122c67a6d14b967c8a11ba490670'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '83'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a23124e6dd5ac4a9b6147629b96e91953'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '78'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aff2330186495fde93370d46c0ca2cbf0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlightPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '64'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a56142f8b3753bedd133e4139e5eb5089'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '99'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1aa2b898366e1c656ac313b9007c98cebd'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '125'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. For dimming control of the + backlight, the configuration pin must be a PWM output pin. Dim control + is achieved by passing a value from 1 to 255 as a parameter. If the + pin configured when calling the setBacklightPin does not support PWM, + then: (0) backlight off, (1..255) backlight on. + + @param value: backlight value. 0: off, 1..255: dim control of the + backlight. For negative logic 255: off, 254..0: dim control. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a63740dc1198d8169a39d9c6daff0efc9'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '109'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + + @param pin: pin assigned to the backlight + @param pol: backlight pin control polarity (POSITIVE, NEGATIVE). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1ae45eec827b26174f73e9cf3ddda635af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'fourbitmode'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd0'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd1'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd2'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd3'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '136'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation and associated HW + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a44d84c010396c993f124d2feb9dc794d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '152'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal_1a641301bc315a4e167c5aee7ea99993fd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'writeNbits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'numBits'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '144'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes numBits bits from value value to the LCD. + @discussion Writes numBists bits (the least significant) to the LCD control + data lines. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a23a1807a1fe4210ac7cfca9b779513ea'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '158'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a0b2da39d056aed9940b0525e554668d7'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '157'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1aef7d920abae32b5faa2625ffa3879c4b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '156'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1affd20665bda00d8b0e37d5ee87543e81'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rs_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal_1a29061eaa64c2e9f3b985ff52249b62a9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_rw_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + cp-fileline = '45'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 12; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 11; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '12'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 14; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 13; + node-label = 'LiquidCrystal'; + node-link = { + node-link-id = 'class_liquid_crystal'; + }; + node-child = { + child-id = '14'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c'; + cp-name = 'LiquidCrystal_I2C'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aeee2ada537f0cfbfda8613324b57c4a6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '110'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9fc9bc519ebbf7503dadc11622e02ed6'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '53'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1add1f2da7de4ec9b9cd5c9b5fab712464'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '70'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a7d9b54d3a91fa0e0e50db27cda6b4654'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '89'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a517f8847ebf09f0eacfb9c7232975fce'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '67'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab15622287533de7a47f3e2012ebf18be'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aac537d195557e0b8afac1a71441a484c'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '51'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a8bf1fab7efe13e8b17b96c42d1f810b4'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '124'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1af11b8fa0082616e2b6e6e4238589d8a8'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a2eaf86f62d1f169b3763b03fbf88f70b'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adb997350478bdc0ab8eb5cc5623a2ad9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'config'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '172'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, + the address can be configured using the on board jumpers. + @param En[in] LCD En (Enable) pin connected to the IO extender module + @param Rw[in] LCD Rw (Read/write) pin connected to the IO extender module + @param Rs[in] LCD Rs (Reset) pin connected to the IO extender module + @param d4[in] LCD data 0 pin map on IO extender module + @param d5[in] LCD data 1 pin map on IO extender module + @param d6[in] LCD data 2 pin map on IO extender module + @param d7[in] LCD data 3 pin map on IO extender module +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a459c4fa106fb7bac5940e3c6aea736af'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a1d715dbf40f06b4c15004cd356b5a321'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'pulseEnable'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-defname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Pulse the LCD enable line (En). + @discussion Sends a pulse of 1 uS to the Enable pin to execute an command + or write operation. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a60111950cc0a47e6223c22949faa15f3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '182'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0bb3cc7ec414b373ef00e0cc6642ec88'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a9d59c16cde5c3ffb30a881e9a61c9a32'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a0eaa7c2ac1040a1786960618866c066e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a3436246b17062357066c636aa598b49d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1aa0a878e97b6111abf1bc8d767a548cf2'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1adcc89f14c444ff086f544f33fc18ca4c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +I2CIO +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_i2cio'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1ab70fc18e99a70e3293c4f6ba25c37efa'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c_1a882df32eb9ae0e7a1b74f9a8ee4bffe9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + sec-mem-desc-line = '198'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + cp-fileline = '39'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 16; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 15; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '16'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 18; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 17; + node-label = 'LiquidCrystal_I2C'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c'; + }; + node-child = { + child-id = '18'; + relation = public-inheritance; + }; /* node-child */ + node-child = { + child-id = '19'; + relation = usage; + edgelabel = <<_EnD_oF_dEf_TeXt_ +_i2cio +_EnD_oF_dEf_TeXt_; + }; /* node-child */ + }; /* node */ + node = { + node-id = 19; + node-label = 'I2CIO'; + node-link = { + node-link-id = 'class_i2_c_i_o'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___i2_c___by_vac'; + cp-name = 'LiquidCrystal_I2C_ByVac'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a34ce9cf919b9f8de59f842a4e94c1abb'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'begin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'cols'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'rows'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'charsize'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LCD_5x8DOTS +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '68'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract LCD initialization and associated HW. + @discussion Initializes the LCD to a given size (col, row). This methods + initializes the LCD, therefore, it MUST be called prior to using any other + method from this class or parent class. + + The begin method can be overloaded if necessary to initialize any HW that + is implemented by a library and can't be done during construction, here + we use the Wire class. + + @param cols[in] the number of columns that the display has + @param rows[in] the number of rows that the display has + @param charsize[in] size of the characters of the LCD: LCD_5x8DOTS or + LCD_5x10DOTS. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a29c027cc8bfa78bb8d9ff3124fe83a31'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_I2C_ByVac'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lcd_Addr'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '50'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the I2C address of the + LCD. The constructor does not initialize the LCD. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands (to be implemented). +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a9e64cc68ec5df1a0fa421a242239b1b1'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '82'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a9b16e6ce123e2ebe3a3e33b2306e66a7'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '92'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a53c79a20e8d21d2c3bc9e6d0dfc79cb4'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setContrast'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '102'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD contrast. + @discussion Switch-on/off the LCD contrast. + + @param value: contrast mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a7293d7ccd2a1f6305430f57a2023b5ef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '111'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___i2_c___by_vac_1a6989e196aecac177e2b3b06d83877079'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Addr'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Initialises class private variables + @discussion This is the class single point for initialising private variables. + + @param lcd_Addr[in] I2C address of the IO expansion module. For BV4218, + the address can be configured using the address commands. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + cp-fileline = '38'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 20; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '21'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 21; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 22; + node-label = 'LiquidCrystal_I2C_ByVac'; + node-link = { + node-link-id = 'class_liquid_crystal___i2_c___by_vac'; + }; + node-child = { + child-id = '23'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 23; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r'; + cp-name = 'LiquidCrystal_SR'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ac3fe0b48f8d4c1c941d82d1333495cfc'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +TWO_WIRE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '108'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD SHIFT REGISTER constructors. + @discussion Defines the pin assignment that the LCD will have. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] pin for shiftregister data line. + @param srclock[in] pin for shiftregister clock line. + @param enable[in] optional direct enable pin for the LCD +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a03821351a32db07cb7e42c8c11ce8d47'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '122'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @result mode LOW - write to the LCD CGRAM, HIGH - write a command to + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad9f3e3f36257984c23fb508973e14535'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '145'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a5bfc0dcc1f042bcb59992493a3a7231d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '134'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. + @warning Currently not supported + + @param mode: backlight mode (HIGH|LOW) + @param pol: backlight polarity +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a0f15bf3f5041a91469da5fd75aba5d5e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'enable'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '155'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r_1a2684630ad69618fab065f53eea543df8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'shiftIt'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '161'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1acee96e0ef397441bdde73ca921160476'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_enable_pin'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '163'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a68bffb6befc28cb716fb0c48b50f65fc'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '169'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a507726b30de4b552b4e32faf9a3aa9e3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '168'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a9984b207beddba9ff299f9356f891065'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '167'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a1e5bf3e5c6ec5b6c41f6949b6e34fd34'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '166'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1a12e3ee583d454d5f52223beca91f5bae'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableBit'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '171'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1adab0eb2bb7392a77375034530bf230eb'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srEnableRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '170'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r_1ad20f9d3282b047fdbae8e97b07d4fc89'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_two_wire'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + sec-mem-desc-line = '164'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + cp-fileline = '95'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 24; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '25'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 25; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 26; + node-label = 'LiquidCrystal_SR'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r'; + }; + node-child = { + child-id = '27'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + node = { + node-id = 27; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r1_w'; + cp-name = 'LiquidCrystal_SR1W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a33bff2c123d3dc42a829b0f8034912c9'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR1W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'circuitType'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +POSITIVE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '314'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD 1 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register. + @param circuitType[in] optionally select an alternate circuit type + @param blpol[in] optional backlight polarity (default = POSITIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a7fc0b03977907b4d526a6b9e49a331b1'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '328'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a82d844569eb258559afb40ab354eb0a5'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '340'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a69e25db9a22f6db2298a491f7ad1e584'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'clearSR'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '357'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Clears the shift register to ensure the Latch/Enable pins aren't + triggered accidentally. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a0327b271d94edec240063b64406bf0b9'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'circuitType'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '350'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1afcb233448f4cec3f4074a812554dc389'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '363'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a925c01c77c3fa96b8f9e9b0861f25ded'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '371'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1aed16f51df5f5a6aaadabdc4ccc04b998'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blPolarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '370'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a03ff5be51ff970ec73a521740d4a4d97'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +t_sr1w_circuitType +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_circuitType'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '368'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1a1a23b85dfd7f61b455959f5c43b4654c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '366'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r1_w_1ad8d5ad6e9b25dd1c86b17a73ddc61369'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + sec-mem-desc-line = '365'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + cp-fileline = '300'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 29; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 28; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '29'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 31; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 30; + node-label = 'LiquidCrystal_SR1W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r1_w'; + }; + node-child = { + child-id = '31'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r2_w'; + cp-name = 'LiquidCrystal_SR2W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1af307fdf5c8feb757e965074dcdeb1dd3'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR2W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + sec-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +POSITIVE +_EnD_oF_dEf_TeXt_; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '151'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract LCD 2 wire SHIFT REGISTER constructor. + @discussion Defines the pin assignments that connect to the shift register. + The constructor does not initialize the LCD. Assuming 1 line 8 pixel high + font. + + @param srdata[in] Arduino pin for shift register data line. + @param srclock[in] Arduino pin for shift register clock line. + @param blpol[in] optional backlight polarity (default = POSITIVE) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a65dc6f261c319be8e56f3c1f6a5c877d'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command using the shift register. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd + the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2158db27287c1564a03e7a1472beb3b6'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '177'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param mode[in] backlight mode (0 off, non-zero on) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a12c14153e7056cb4a98310529bace6a8'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srdata'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'srclock'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'blpol'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'lines'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'font'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD pin allocation + @discussion Initializes the LCD pin allocation and configuration. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ae369efcd3fca47a018a034f5f4a1679b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'val'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract takes care of shifting and the enable pulse +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a3b1dfb83ad02274c30fa940a10619737'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '200'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a906f803e1ae324b5383fa004093124f4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_blPolarity'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '199'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a27727d63c1ce0f9aada630814b8f022b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1aa36d38c009bf846e7726fc48c0067fc3'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srClockRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1ad188042fdcc7df0178248401c678eb8e'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r2_w_1a2e43c3f1d6b0e5599a1b4d14ef428077'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_srDataRegister'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + cp-fileline = '138'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 33; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 32; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '33'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 35; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 34; + node-label = 'LiquidCrystal_SR2W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r2_w'; + }; + node-child = { + child-id = '35'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +class = { + cp-id = 'class_liquid_crystal___s_r3_w'; + cp-name = 'LiquidCrystal_SR3W'; + cp-ref = { + ref-type = base; + ref-id = 'class_l_c_d'; + ref-prot = public; + ref-virt = non-virtual; + }; + cp-section = { + sec-kind = 'public-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ae1396bcd5e9c5b7ed13182c166de776b'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '90'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the IO driving the + shift register. The constructor does not initialize the LCD. + Default configuration: + Shift register LCD + QA - 0 DB4 + QB - 1 DB5 + QC - 2 DB6 + QD - 3 DB7 + QE - 4 E + QF - 5 + QG - 6 Rs + GND Rw + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to the shiftregister data pin. + @param clk[in] digital IO connected to the shiftregister clock pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a7b2f382b76bc9d88adb8d681e824b4de'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '93'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a24f051747dfeda48f7b207c3358c8015'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'backlighPin'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '119'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4fab8ff2f21bba3efd133cd8c87fffc0'; + sec-mem-virt = normal; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'LiquidCrystal_SR3W'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '114'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Class constructor. + @discussion Initializes class variables and defines the control lines of + the LCD and the shiftregister. The constructor does not initialize the LCD. + + @param strobe[in] digital IO connected to shiftregister strobe pin. + @param data[in] digital IO connected to shiftregister data pin. + @param clk[in] digital IO connected to shiftregister clock pin. + @param En[in] LCD En (Enable) pin connected to SR output pin. + @param Rw[in] LCD Rw (Read/write) pin connected to SR output pin. + @param Rs[in] LCD Rs (Reg Select) pin connected to SR output pin. + @param d4[in] LCD data 4 pin map to the SR output pin. + @param d5[in] LCD data 5 pin map to the SR output pin. + @param d6[in] LCD data 6 pin map to the SR output pin. + @param d7[in] LCD data 7 pin map to the SR output pin. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ade34af5b7fe795482f1848c2176d6e56'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +virtual void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'send'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '133'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Send a particular value to the LCD. + @discussion Sends a particular value to the LCD for writing to the LCD or + as an LCD command. + + Users should never call this method. + + @param value[in] Value to send to the LCD. + @param mode[in] DATA - write to the LCD CGRAM, COMMAND - write a + command to the LCD. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a6d0fc7907ef9fd87c408a21b9bd49295'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklight'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '154'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Switch-on/off the LCD backlight. + @discussion Switch-on/off the LCD backlight. + The setBacklightPin has to be called before setting the backlight for + this method to work. @see setBacklightPin. + + @param value: backlight mode (HIGH|LOW) +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a894d0ea8ea61c1d15acd8a26d417e477'; + sec-mem-virt = virtual; + sec-mem-prot = public; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'setBacklightPin'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +t_backlightPol +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'pol'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '143'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Sets the pin to control the backlight. + @discussion Sets the pin in the device to control the backlight. This device + doesn't support dimming backlight capability. + + @param 0: backlight off, 1..255: backlight on. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-func'; + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a45cde916021d9b52b0f769c17886b2ef'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'init'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'data'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'clk'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'strobe'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rs'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'Rw'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'En'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd4'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd5'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd6'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'd7'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '165'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Initializes the LCD class + @discussion Initializes the LCD class and IO expansion module. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a80f6e4e8b10635d9daed718f2918c1bd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'loadSR'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '183'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract load into the shift register a byte + @discussion loads into the shift register a byte + @param value[in]: value to be loaded into the shiftregister. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'function'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ac0702caa5d07ffd8e832ad8a5d0afe7c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + sec-mem-name = 'write4bits'; + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'value'; + }; /* sec-mem-param--param */ + sec-mem-param = { + sec-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-param-declname = 'mode'; + }; /* sec-mem-param--param */ + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '175'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract Writes an 4 bit value to the LCD. + @discussion Writes 4 bits (the least significant) to the LCD control data lines. + @param value[in] Value to write to the LCD + @param more[in] Value to distinguish between command and data. + COMMAND == command, DATA == data. +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-section = { + sec-kind = 'private-attrib'; + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a21ef2e5b78edd0d160d81b0c06d41440'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightPinMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '196'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1adf17379bfac4def5c780fc8ad023764c'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_backlightStsMask'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '197'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2c14746e8f626a53f777c8df68f8a92b'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '190'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1af7d09207dffb9f2fc85fc60661ffa0d4'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_clk_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '191'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1ab81049d446d2e7399ee6b20c9da4cdde'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '188'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a366adab314f5dc8b7e53298d6eccf85d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_pins'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '195'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a301acb36345c56ae336156fdeee4a783'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_data_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '189'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a4306c59b6bf3870fecad23d6b0c0aa5d'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_En'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '192'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a062da9fb985a7e88128d7d95fd8239d6'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rs'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '194'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1aef47417b089e53af1ce032e5f1b23b43'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_Rw'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '193'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a0d40b3c14c3f56fd341d41220f425925'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '186'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + sec-member = { + sec-mem-kind = 'variable'; + sec-mem-id = 'class_liquid_crystal___s_r3_w_1a2a7d9703b04a91658b7a590b926ff9cd'; + sec-mem-virt = normal; + sec-mem-prot = private; + sec-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + sec-mem-name = '_strobe_reg'; + sec-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + sec-mem-desc-line = '187'; + sec-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + sec-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* sec-member */ + }; /* cp-section */ + cp-filename = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + cp-fileline = '67'; + cp-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + cp-inheritancegraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 37; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 36; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '37'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; + cp-collaborationgraph = <<_EnD_oF_dEf_TeXt_ + node = { + node-id = 39; + node-label = 'LCD'; + node-link = { + node-link-id = 'class_l_c_d'; + }; + }; /* node */ + node = { + node-id = 38; + node-label = 'LiquidCrystal_SR3W'; + node-link = { + node-link-id = 'class_liquid_crystal___s_r3_w'; + }; + node-child = { + child-id = '39'; + relation = public-inheritance; + }; /* node-child */ + }; /* node */ + +_EnD_oF_dEf_TeXt_; +}; /* class */ +file = { + file-id = '_fast_i_o_8cpp'; + file-name = 'FastIO.cpp'; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a83fc2fdc19ab3f9aade9e1a2f39e81a6'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '96'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '77'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '66'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '53'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a04210cc785c3b4a11c86f794949c327f'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '36'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '161'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '111'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a7ac8b242e7e3cacf175e481889e047dd'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '265'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a5b4d1684030dc620938b7c2fbdf5ced8'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '192'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '182'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8cpp_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + func-mem-desc-line = '177'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_fast_i_o_8h'; + file-name = 'FastIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a04971fe5fabe4129736708c494e08e6d'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_BLOCK'; + define-mem-param = { + define-mem-def-name = 'dummy'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +if(true) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '58'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a362c18b15a09703e42e1c246c47420ef'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'ATOMIC_RESTORESTATE'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '59'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a89e1c62276052100c62b6c82a2e95622'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_HIGH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,HIGH) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '143'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + This is where the magic happens that makes things fast. + Implemented as preprocessor directives to force inlining + SWITCH is fast for FIO but probably slow for FIO_FALLBACK so SWITCHTO is recommended if the value is known. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1ac8f00a1bccb98109531b88fbb6e91478'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_LOW'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,LOW) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '144'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a6d1dffed7f0c8f28f6c88146315f7832'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit, !digitalRead(bit)) +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '145'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1accae9687fdfc5f3492fb6344d62eb190'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'fio_digitalWrite_SWITCHTO'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'bit'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'val'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +digitalWrite(bit,val); +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '146'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a32f90d0ad5c1295c97cc1e79936aadd6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FIO_FALLBACK'; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '57'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_fast_i_o_8h_1a688a4adbb87520a2b68681bd6bfb199e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SKIP'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x23 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + typedef = { + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1a0a595a88b29bcfd1540b6fac75787937'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_bit'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '60'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + typedef-member = { + typedef-mem-kind = 'typedef'; + typedef-mem-id = '_fast_i_o_8h_1ae44ea3af54ef26db03f1ae2ea62f9c1f'; + typedef-mem-virt = normal; + typedef-mem-prot = public; + typedef-mem-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + typedef-mem-name = 'fio_register'; + typedef-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + typedef-mem-desc-line = '61'; + typedef-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + typedef-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* typedef-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a197336e47e1c3f929056ce3abbbc7e8d'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +int +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalRead'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '158'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract direct digital read + @discussion without any checks + @discussion falls back to normal digitalRead if fast io is disabled + @param pinRegister[in] Register - ignored if fast io is disabled + @param pinBit[in] Bit - Pin if fast io is disabled + @result Value read from pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae91bbe682b02a5842c291055c0e998b5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_digitalWrite'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pinBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '128'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract direct digital write + @discussion without any checks + @discussion falls back to normal digitalWrite if fast io is disabled + @param pinRegister[in] Register - ignored if fast digital write is disabled + @param pinBit[in] Bit - Pin if fast digital write is disabled + @param value[in] desired output +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a07a19dfbdca1afaca5d666bdaa3be7d5'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToBit'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '115'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Find the bit which belongs to specified pin + @discussion if fast digitalWrite is disabled this function returns the pin + @param pin[in] Number of a digital pin + @result Bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1afb934fc0ded94cbb5ed8ed14e2a123ed'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToInputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '106'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the input register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a385ae40d960c1a57e86818332476a802'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_pinToOutputRegister'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'initial_state'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +LOW +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '97'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @function + @abstract Get the output register for specified pin. + @discussion if fast digital IO is disabled this function returns NULL + @param pin[in] Number of a digital pin + @result Register +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a5d8d5977294d614d15bda19f75d6b787'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '184'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out clear + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a56c72b9f00680662229895ab22aaa743'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'dataBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockRegister'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'clockBit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'bitOrder'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '172'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract faster shift out + @discussion using fast digital write + @discussion falls back to normal digitalWrite if fastio is disabled + @param dataRegister[in] Register of data pin - ignored if fast digital write is disabled + @param dataBit[in] Bit of data pin - Pin if fast digital write is disabled + @param clockRegister[in] Register of data pin - ignored if fast digital write is disabled + @param clockBit[in] Bit of data pin - Pin if fast digital write is disabled + @param bitOrder[in] bit order +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a33ce251dcd6b448185cda415a99001cf'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '194'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1af2aac35d9a8ab7a2c87672f2c7cbbafb'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'value'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +boolean +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'noLatch'; + func-mem-param-defval = <<_EnD_oF_dEf_TeXt_ +false +_EnD_oF_dEf_TeXt_; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '202'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract one wire shift out + @discussion protocol needs initialisation (fio_shiftOut1_init) + @param pin[in] digital pin + @param value[in] value to shift out, last byte is ignored and always shifted out LOW +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1a2d0e4495eb12504255bbd3f82405b17b'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_register +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Register'; + }; /* func-mem-param--param */ + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +fio_bit +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'shift1Bit'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '210'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param shift1Register[in] pins register + @param shift1Bit[in] pins bit +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_fast_i_o_8h_1ae4b2e099f8ade9ee674d1565669e870a'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'fio_shiftOut1_init'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint8_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'pin'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + func-mem-desc-line = '217'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @method + @abstract initializes one wire shift out protocol + @discussion Puts pin to HIGH state and delays until Capacitors are charged. + @param pin[in] digital pin +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/FastIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8cpp'; + file-name = 'I2CIO.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_i2_c_i_o_8h'; + file-name = 'I2CIO.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_i2_c_i_o_8h_1a218dbde2f6fda8c5825e25da10864c71'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = '_I2CIO_VERSION'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +"1.0.0" +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + define-mem-desc-line = '32'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/I2CIO.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8cpp'; + file-name = 'LCD.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_l_c_d_8h'; + file-name = 'LCD.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a0f50ae3b4bdb42dd5ad74b2c604a7515'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_OFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '155'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight off constant declaration + @discussion Used in combination with the setBacklight to swith off the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa5bad1c51f5fac029f3deacfef48c54b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'BACKLIGHT_ON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +255 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '163'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Backlight on constant declaration + @discussion Used in combination with the setBacklight to swith on the + LCD backlight. @set setBacklight +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab0d87e07831e7e4943caef187872123e'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'COMMAND'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '136'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aad9ae913bdfab20dd94ad04ee2d5b045'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'DATA'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '137'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa1e30e32b6c2cf8d90a9281328472dbe'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'FOUR_BITS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '138'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ad25b138788d83e67f840588754e2df2f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'HOME_CLEAR_EXEC'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2000 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '147'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Defines the duration of the home and clear commands + @discussion This constant defines the time it takes for the home and clear + commands in the LCD - Time in microseconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a8c85cf88d8af66a47c42249d81c94641'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_1LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '129'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a7987e93538df2819583ba43b81ddbb25'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_2LINE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '128'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab8c35d355d2372090c7a347e961c9224'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1abb3210156d88d3fe18c9352eb161fe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x10DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '130'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a9ef57e724c1b846dae0f531aff6fb464'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_5x8DOTS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '131'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a59a57ca857dae5d89eb5f2a38c4ac6f0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BITMODE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a4b28243034cec656b0ed490ba6979752'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '115'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac3b19d4e6553b9bbf18a23387e439206'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BLINKON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '114'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acc3509bc0442b41e2b816555de473ed2'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CLEARDISPLAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract All these definitions shouldn't be used unless you are writing + a driver. + @discussion All these definitions are for driver implementation only and + shouldn't be used by applications. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ac21f0302ac4136775877d5f4759e4f74'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '120'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a32b194a3adaa0a0bb69acee2e6a754fa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSOROFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '113'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab67f0adccde68de88eee0513fdfc4574'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '112'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a61f16a2b7550e4700f7898a7587c5594'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_CURSORSHIFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '96'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1adfb8b2b8b8a08d7313504d7a4f89d99f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYCONTROL'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '95'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ab2f7b67abfac33f610acfd5d7a971f40'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYMOVE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '119'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a257ebe775cac7140cf82aa40d8ce545a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYOFF'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a76236ae8317b34bbc98ea56bc0a2639c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_DISPLAYON'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '110'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1ae7c6309fce6200bd7526d090a4a84dd0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYLEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '104'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a5597e1d5819ea2f0734ad4313abf6703'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYMODESET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '94'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a43c26ba2e66880fac95ef640b56873ad'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYRIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '103'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a049ee97e98d04788c1da9a55590fbe42'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTDECREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '106'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aa2cf1d0f4a319e53c009cffe1184466c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_ENTRYSHIFTINCREMENT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '105'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aaef882ae70d1f485cd132815d9716111'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_FUNCTIONSET'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '97'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aafb86adb0dfca1e65d65b2cd1946a009'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVELEFT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '122'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1acf5999180233790bb2c9902efde58f7f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_MOVERIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '121'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a154c86a887633d0f6d9988e4dbb1f419'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_RETURNHOME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1aae6ea856879c11dee58493184582a52f'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETCGRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '98'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_l_c_d_8h_1a15008b832807a208d9d88c74e6751ebf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_SETDDRAMADDR'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + define-mem-desc-line = '99'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + enum = { + enum-member = { + enum-mem-kind = 'enum'; + enum-mem-id = '_l_c_d_8h_1aeeef728bf4726268aa5e99391a1502bc'; + enum-mem-virt = normal; + enum-mem-prot = public; + enum-mem-name = 't_backlightPol'; + enum-mem-enum = { enum-name = POSITIVE; }; + enum-mem-enum = { enum-name = NEGATIVE; }; + enum-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + enum-mem-desc-line = '171'; + enum-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + enum-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* enum-member */ + }; + func = { + func-member = { + func-mem-kind = 'function'; + func-mem-id = '_l_c_d_8h_1a6eac41e4be58d7736ac0c19de225c0dc'; + func-mem-virt = normal; + func-mem-prot = public; + func-mem-type = <<_EnD_oF_dEf_TeXt_ +static void +_EnD_oF_dEf_TeXt_; + func-mem-name = 'waitUsec'; + func-mem-param = { + func-mem-param-type = <<_EnD_oF_dEf_TeXt_ +uint16_t +_EnD_oF_dEf_TeXt_; + func-mem-param-declname = 'uSec'; + }; /* func-mem-param--param */ + func-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + func-mem-desc-line = '76'; + func-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + func-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enables disables fast waits for write operations for LCD + @discussion If defined, the library will avoid doing un-necessary waits. + this can be done, because the time taken by Arduino's slow digitalWrite + operations. If fast digitalIO operations, comment this line out or undefine + the mode. + + + @function + @abstract waits for a given time in microseconds (compilation dependent). + @discussion Waits for a given time defined in microseconds depending on + the FAST_MODE define. If the FAST_MODE is defined the call will return + inmediatelly. + @param uSec[in] time in microseconds. + @result None +_EnD_oF_dEf_TeXt_; + }; /* func-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LCD.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8cpp'; + file-name = 'LiquidCrystal.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a31e1c14e8c2845dec3301f0ebd36b43c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_4BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '45'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a57d84af8cf61ceee4eb91db77889f071'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_8BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '46'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal_8h'; + file-name = 'LiquidCrystal.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal_8h_1adebff0f00a59c9f9863bc196938d5726'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EXEC_TIME'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +37 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + define-mem-desc-line = '42'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Command execution time on the LCD. + @discussion This defines how long a command takes to execute by the LCD. + The time is expressed in micro-seconds. +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8cpp'; + file-name = 'LiquidCrystal_I2C.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '88'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '89'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '66'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '55'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '48'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion NO BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '80'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___i2_c_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + define-mem-desc-line = '73'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c_8h'; + file-name = 'LiquidCrystal_I2C.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c___by_vac_8cpp'; + file-name = 'LiquidCrystal_I2C_ByVac.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___i2_c___by_vac_8h'; + file-name = 'LiquidCrystal_I2C_ByVac.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_I2C_ByVac.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8cpp'; + file-name = 'LiquidCrystal_SR.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r_8h'; + file-name = 'LiquidCrystal_SR.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a0075b041d82abb47f279dce482e7b087'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_EN_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '92'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1afdaa2bbb2cc185700864ac8d7a570ced'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR_RS_BIT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '91'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r_8h_1a40fb1f76bc5f8ca9e6534b47bd6da27c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'TWO_WIRE'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +204 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + define-mem-desc-line = '90'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r1_w_8cpp'; + file-name = 'LiquidCrystal_SR1W.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r1_w_8h'; + file-name = 'LiquidCrystal_SR1W.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a7582c2cf6ceaeddf740f675c8f731ecf'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_ATOMIC_WRITE_HIGH'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'mask'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '294'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a895edbf1947d432e4616bc4592de8cfa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_ATOMIC_WRITE_LOW'; + define-mem-param = { + define-mem-def-name = 'reg'; + }; /* define-mem-def--param */ + define-mem-param = { + define-mem-def-name = 'mask'; + }; /* define-mem-def--param */ + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '293'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a2bfc90f6a1e21e271196273a8db741af'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_BL_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x20 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '289'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a2ee8ae46c168f471666c4aaddbca1ec0'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D4_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x10 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '288'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a159fe0dd329cef231ae7d8ad674adad3'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D5_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x08 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '287'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a5cea156a4ee75a239b094b1c24116140'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D6_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '286'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a7accf5938d87cf2edbda80b26e0e6f69'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_D7_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '285'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a645c2cb325144756182083dad23498e7'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_DELAY'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +{ delayMicroseconds(SR1W_DELAY_US); numDelays++; } +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '279'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1af142acb4543f9067f60a28d58a49f033'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_DELAY_US'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '278'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a6875204445378ad8d8a8ded846cbcbaa'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_EN_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '291'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1a874628609b122ed01ccd5e39411f86de'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_RS_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x40 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '290'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r1_w_8h_1ae4324c30e18eea1716bd2b0f60027712'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR1W_UNUSED_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x01 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + define-mem-desc-line = '284'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + enum = { + enum-member = { + enum-mem-kind = 'enum'; + enum-mem-id = '_liquid_crystal___s_r1_w_8h_1a31959259c88db00960459461ba423d99'; + enum-mem-virt = normal; + enum-mem-prot = public; + enum-mem-name = 't_sr1w_circuitType'; + enum-mem-enum = { enum-name = SW_CLEAR; }; + enum-mem-enum = { enum-name = HW_CLEAR; }; + enum-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + enum-mem-desc-line = '297'; + enum-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + enum-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* enum-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR1W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8cpp'; + file-name = 'LiquidCrystal_SR2W.cpp'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r2_w_8h'; + file-name = 'LiquidCrystal_SR2W.h'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a53e3add69865ae57ca872cb41fcae9e3'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_BL_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x02 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '132'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a7cf86f2a173473d01e02b2ac786a8690'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_DATA_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x78 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '134'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1a8d17b6abb5bcde6883dbdc86d34be9d8'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_EN_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x80 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '135'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r2_w_8h_1acce98b026d9fdcb2e126705c14af7500'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'SR2W_RS_MASK'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x04 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + define-mem-desc-line = '133'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR2W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8cpp'; + file-name = 'LiquidCrystal_SR3W.cpp'; + define = { + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a3d9bb178282c3cb69740c94ba1e48fed'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D4'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '126'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD dataline allocation this library only supports 4 bit LCD control + mode. + @discussion D4, D5, D6, D7 LCD data lines pin mapping of the extender module +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ddd4183d444d6d128cbdbd6269e4e0c'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D5'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +1 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '127'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a79a18a7f5ccf7a7ca31f302bd62527a6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D6'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +2 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '128'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a2ba78f059a7ebebc95e7beef690e88d6'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'D7'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +3 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '129'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a22e6626f2c98ed902f8ded47f6438c05'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'EN'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +4 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '104'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Enable bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Enable +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1ac059d24dfe9c1e1f7c07cb7869a1833b'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_BACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0xFF +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '93'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_BACKLIGHT + @discussion BACKLIGHT MASK used when backlight is on +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1a65fa786d6e31fe8b1aa51784a9736581'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'LCD_NOBACKLIGHT'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +0x00 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '86'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract LCD_NOBACKLIGHT + @discussion No BACKLIGHT MASK +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1af8903d8eea3868940c60af887473b152'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RS'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +6 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '118'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Register bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Register select pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + define-member = { + define-mem-kind = 'define'; + define-mem-id = '_liquid_crystal___s_r3_w_8cpp_1afc4ded33ac0ca43defcce639e965748a'; + define-mem-virt = normal; + define-mem-prot = public; + define-mem-name = 'RW'; + define-mem-initializer = <<_EnD_oF_dEf_TeXt_ +5 +_EnD_oF_dEf_TeXt_; + define-mem-desc-file = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + define-mem-desc-line = '111'; + define-mem-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + define-mem-documentation = <<_EnD_oF_dEf_TeXt_ + @defined + @abstract Read/Write bit of the LCD + @discussion Defines the IO of the expander connected to the LCD's Rw pin +_EnD_oF_dEf_TeXt_; + }; /* define-member */ + }; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.cpp'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ +file = { + file-id = '_liquid_crystal___s_r3_w_8h'; + file-name = 'LiquidCrystal_SR3W.h'; + file-full-name = '/Users/fmalpartida/development/ardWorkspace/LiquidCrystal_I2C/LiquiCrystal_I2C/LiquidCrystal_SR3W.h'; + file-first-line = '1'; + file-briefdesc = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; + file-documentation = <<_EnD_oF_dEf_TeXt_ + +_EnD_oF_dEf_TeXt_; +}; /* file */ diff --git a/Libs/NewLiquidCrystal_lib/doxygen_entrydb_2806.tmp b/Libs/NewLiquidCrystal_lib/doxygen_entrydb_2806.tmp new file mode 100644 index 0000000000000000000000000000000000000000..a9b164c26a9b638f20185ecfb216ee0de80c2f0e Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/doxygen_entrydb_2806.tmp differ diff --git a/Libs/NewLiquidCrystal_lib/doxygen_objdb_2806.tmp b/Libs/NewLiquidCrystal_lib/doxygen_objdb_2806.tmp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Libs/NewLiquidCrystal_lib/examples/HelloWorld_4bit/HelloWorld_4bit.pde b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_4bit/HelloWorld_4bit.pde new file mode 100644 index 0000000000000000000000000000000000000000..72c42cca72d2c747a7c315de58ed6aa80db72629 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_4bit/HelloWorld_4bit.pde @@ -0,0 +1,78 @@ +#include +#include + + +#define CONTRAST_PIN 9 +#define BACKLIGHT_PIN 7 +#define CONTRAST 110 +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE ); + + +// Creat a set of new characters +byte smiley[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b10001, + 0b01110, + 0b00000 +}; + +byte armsUp[8] = { + 0b00100, + 0b01010, + 0b00100, + 0b10101, + 0b01110, + 0b00100, + 0b00100, + 0b01010 +}; + +byte frownie[8] = { + 0b00000, + 0b00000, + 0b01010, + 0b00000, + 0b00000, + 0b00000, + 0b01110, + 0b10001 +}; + +void setup() +{ + Serial.begin ( 57600 ); + + // Switch on the backlight and LCD contrast levels + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite ( CONTRAST_PIN, CONTRAST ); + + //lcd.setBacklightPin ( BACKLIGHT_PIN, POSITIVE ); + //lcd.setBacklight ( HIGH ); + lcd.backlight(); + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, smiley); // load character to the LCD + lcd.createChar (1, armsUp); // load character to the LCD + lcd.createChar (2, frownie); // load character to the LCD + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); +} + +void loop() +{ + // Do a little animation by writing to the same location + lcd.setCursor ( 14, 1 ); + lcd.print (char(2)); + delay (200); + lcd.setCursor ( 14, 1 ); + lcd.print ( char(0)); + delay (200); +} diff --git a/Libs/NewLiquidCrystal_lib/examples/HelloWorld_SR/HelloWorld_SR.pde b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_SR/HelloWorld_SR.pde new file mode 100644 index 0000000000000000000000000000000000000000..00c8eeb0d16a731b975513a6ca142bea400601e1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_SR/HelloWorld_SR.pde @@ -0,0 +1,36 @@ +#include +#include + +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin + +// Creat a set of new characters +byte armsUp[8] = {0b00100,0b01010,0b00100,0b10101,0b01110,0b00100,0b00100,0b01010}; +byte armsDown[8] = {0b00100,0b01010,0b00100,0b00100,0b01110,0b10101,0b00100,0b01010}; + +void setup(){ + + lcd.begin(16,2); // initialize the lcd + + lcd.createChar (0, armsUp); // load character to the LCD + lcd.createChar (1, armsDown); // load character to the LCD + + lcd.home (); // go home + lcd.print("LiquidCrystal_SR"); +} + +void loop(){ + // Do a little animation + for(int i = 0; i <= 15; i++) showHappyGuy(i); + for(int i = 15; i >= 0; i--) showHappyGuy(i); +} + +void showHappyGuy(int pos){ + lcd.setCursor ( pos, 1 ); // go to position + lcd.print(char(random(0,2))); // show one of the two custom characters + delay(150); // wait so it can be seen + lcd.setCursor ( pos, 1 ); // go to position again + lcd.print(" "); // delete character +} \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/examples/HelloWorld_byVac/HelloWorld_byVac.ino b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_byVac/HelloWorld_byVac.ino new file mode 100644 index 0000000000000000000000000000000000000000..4133544ae5ce6e3c4fb52f4e76fc0282f7ce00a1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_byVac/HelloWorld_byVac.ino @@ -0,0 +1,72 @@ +//#include +//LiquidCrystal lcd(4, 7, 8, 9, 10, 11, 12); + +#include +//#include +//LiquidCrystal_I2C_ByVac lcd(0x21); + +//#include +//LiquidCrystal_I2C lcd_1(0x27,2,1,0,4,5,6,7,backlight_pin,POSITIVE); // DF Robots + +//#include +//LiquidCrystal_SR lcd(14,15,4); + +#include +//LiquidCrystal lcd(4, 7, 8, 9, 10, 11, 12); +LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD Shield + +uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; +uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; +uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; +uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; +uint8_t duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; +uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; +uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; +uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; + + +const byte backLightpin = 5; +//const byte backLightpin = 10; +const byte contrast_pin = 6; + +void setup () { + //lcd.begin(16,2); + lcd.begin(20,4); + lcd.clear(); + // lcd.backlight(); + // lcd.setBacklightPin(3); + // lcd.setBacklight(1); + pinMode(backLightpin, OUTPUT); + analogWrite(backLightpin, 210); + pinMode(contrast_pin, OUTPUT); + analogWrite(contrast_pin, 40); + lcd.createChar(0, bell); + lcd.createChar(1, note); + lcd.createChar(2, clock); + lcd.createChar(3, heart); + lcd.createChar(4, duck); + lcd.createChar(5, check); + lcd.createChar(6, cross); + lcd.createChar(7, retarrow); + } + +// display all keycodes +void displayKeyCodes(void) { + uint8_t i = 0; + while (1) { + lcd.clear(); + lcd.print("Codes 0x"); lcd.print(i, HEX); + lcd.print("-0x"); lcd.print(i+16, HEX); + lcd.setCursor(0, 1); + for (int j=0; j<16; j++) { + lcd.write(i+j); + } + i+=16; + + delay(10000); + }} + + +void loop () { + displayKeyCodes(); +} diff --git a/Libs/NewLiquidCrystal_lib/examples/HelloWorld_i2c/HelloWorld_i2c.pde b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_i2c/HelloWorld_i2c.pde new file mode 100644 index 0000000000000000000000000000000000000000..d0fd78cea9385d920fe44e03b8286e3c773639db --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_i2c/HelloWorld_i2c.pde @@ -0,0 +1,61 @@ +#include +#include + + + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + +//LiquidCrystal_I2C lcd(0x38, BACKLIGHT_PIN, POSITIVE); // Set the LCD I2C address + + +// Creat a set of new characters +const uint8_t charBitmap[][8] = { + { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 }, + { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 }, + { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 }, + { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 }, + { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 }, + { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 }, + { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 } + +}; + +void setup() +{ + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + // Switch on the backlight + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + lcd.begin(16,2); // initialize the lcd + + for ( int i = 0; i < charBitmapSize; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } + + lcd.home (); // go home + lcd.print("Hello, ARDUINO "); + lcd.setCursor ( 0, 1 ); // go to the next line + lcd.print (" FORUM - fm "); + delay ( 1000 ); +} + +void loop() +{ + lcd.home (); + // Do a little animation by writing to the same location + for ( int i = 0; i < 2; i++ ) + { + for ( int j = 0; j < 16; j++ ) + { + lcd.print (char(random(7))); + } + lcd.setCursor ( 0, 1 ); + } + delay (200); +} diff --git a/Libs/NewLiquidCrystal_lib/examples/HelloWorld_si2c/HelloWorld_si2c.ino b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_si2c/HelloWorld_si2c.ino new file mode 100644 index 0000000000000000000000000000000000000000..0472289336ad50ce7c3546675d665b69324464bc --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/HelloWorld_si2c/HelloWorld_si2c.ino @@ -0,0 +1,54 @@ +#include +#include + +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); + +// Creat a set of new characters +const uint8_t charBitmap[][8] = { + { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 }, + { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 }, + { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 }, + { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 }, + { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 }, + { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 }, + { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 } + +}; + +void setup() +{ + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + lcd.begin (16,2); + lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); + + for ( int i = 0; i < charBitmapSize; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } + + lcd.home (); // go home + lcd.print("Hello, Arduino "); + lcd.setCursor ( 0, 1 ); // go to the next line + for ( int i = 0; i < 8; i++ ) + lcd.print (char(i)); + delay ( 1000 ); +} + +void loop() +{ + lcd.home (); + // Do a little animation by writing to the same location + for ( int i = 0; i < 2; i++ ) + { + for ( int j = 0; j < 16; j++ ) + { + lcd.print (char(random(7))); + } + lcd.setCursor ( 0, 1 ); + } + delay (500); +} + diff --git a/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.pde b/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.pde new file mode 100644 index 0000000000000000000000000000000000000000..b4760c138f30d7d22623b939f82f3cdb63569f20 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.pde @@ -0,0 +1,294 @@ +static char dummyvar; // dummy declaration for STUPID IDE!!!! +/*---------------------------------------------------------------------------- + * vi:ts=4 + * + * LCDiSpeed - LCD Interface Speed + * + * Created by Bill Perry 2012-03-16 +// Copyright (C) - 2018 +// +// 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 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- + * + * Sketch to measure and report the speed of the interface to the LCD and + * speed of updating the LCD. + * + * It runs a Frames/Sec (FPS) test which writes a "frame" of each digit 0-9 to + * the display. + * A "frame" is a full display of characters. + * It is created by positioning the cursor to the begining of each row + * and then writing a character to every position on the row, until the + * entire display is filled. + * The FPS test does a frame of 9's then 8's, .... down to 0's + * On fast interfaces it will not normally be seen. + * + * The sketch will then calculate & report transfer speeds and + * LCD update rates to the LCD display. + * + * Reported Information: + * - Single byte transfer speed (ByteXfer) + * This is the time it takes for a single character to be sent from + * the sketch to the LCD display. + * + * - Frame/Sec (FPS) + * This is the number of times the full display can be updated + * in one second. + * + * - Frame Time (Ftime) + * This is the amount of time it takes to update the full LCD display. + * + * + * The sketch will also report "independent" FPS and Ftime values. + * These are timing values that are independent of the size of the LCD under test. + * Currently they represent the timing for a 16x2 LCD + * The value of always having numbers for a 16x2 display + * is that these numbers can be compared to each other since they are + * independent of the size of the actual LCD display that is running the test. + * + * All times & rates are measured and calculeted from what a sketch "sees" + * using the LiquidCrystal API. + * It includes any/all s/w overhead including the time to go through the + * Arduino Print class and LCD library. + * The actual low level hardware times are obviously lower. + * + * History + * 2012.03.15 bperrybap - Original creation + * + * @author Bill Perry - bperrybap@opensource.billsworld.billandterrie.com + *---------------------------------------------------------------------------- + +/* + * Define your LCD size + */ +#define LCD_COLS 16 +#define LCD_ROWS 2 + +/* + * Pick your interface. + */ + +//#define LCDIF_4BIT +//#define LCDIF_I2C +//#define LCDIF_SR2W +//#define LCDIF_SR_2W // SR in 2 wire mode +//#define LCDIF_SR_3W // SR in 3 wire mode +//#define LCDIF_SR3W +//#define LCDIF_SR1W +#define LCDIF_SI2C + +/* + * Options + */ + +#define FPS_iter 1 // number of iterations to repeat each "frame" within the test + // (current frame test is 10 full display frames, 1 for each digits 0-9) + // FPS_iter like 100 will allow the frames to be seen + // Note: the only reason other than visual to make this larger than 1 + // might be to compensate for Async serial buffering should a serial interface be tested + // even with 1 iteration, 340 bytes are written for a 16x2 display + // bytes written = FPS_iter * ((LCD_ROWS * LCD_COLS) + LCD_ROWS) * 10 + +#define iLCD // turn on code to calculate speed of "independent" sized display +#define iLCD_ROWS 2 // independent FPS row size +#define iLCD_COLS 16 // independent FPS col size + + +#define DELAY_TIME 3500 // delay time to see information on lcd + +#if defined(LCDIF_4BIT) + +// Include the Liquid Crystal library code: +#include + +// initialize the library with the numbers of the interface pins +// lcd(RS, E, d4, d5, d6, d7, bl, polarity) +#ifdef BACKLIGHT_ON +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7, 10, POSITIVE); // new constructor with backlight support +#else +LiquidCrystal lcd( 8, 9, 4, 5, 6, 7); // old style constructor w/o backlight (to test old library) +#endif + +#elif defined(LCDIF_I2C) +#include +#include + +LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address + + +#elif defined(LCDIF_SR3W) +#include + // d,clk,strb, en,rw,rs,d4,d5,d6,d7,bl,blpol +//LiquidCrystal_SR3W lcd (2, 3, 4, 6, 7, 1, 2, 3, 4, 5, 0, POSITIVE); +LiquidCrystal_SR3W lcd(3, 2, 4); + +#elif defined(LCDIF_SR2W) + +#include + // d, clk, (blPolarity optional, defaults to POSITIVE) +LiquidCrystal_SR2W lcd (2, 3); + +#elif defined(LCDIF_SR1W) + +#include +LiquidCrystal_SR1W lcd (2); + +#elif defined(LCDIF_SR_2W) + +#include + // d, clk +LiquidCrystal_SR lcd (2, 3); + +#elif defined(LCDIF_SR_3W) + +#include + // d,clk,strb +LiquidCrystal_SR lcd (2, 3, 4); + +#elif defined(LCDIF_SI2C) + +#include + +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); + +#endif + +void setup() +{ + // set up the LCD's number of columns and rows: + lcd.begin(LCD_COLS, LCD_ROWS); +lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); +#ifdef BACKLIGHT_ON + lcd.backlight(); // make sure backlight is on with new library +#endif +} + +void loop() +{ +unsigned long etime; +char buf[8]; + + lcd.clear(); + + + /* + * Time an FPS test + */ + + etime = timeFPS(FPS_iter, LCD_COLS, LCD_ROWS); + + /* + * show the average single byte xfer time during the FPS test + */ + showByteXfer(etime); + + /* + * show FPS rate and Frame update time for this display + */ + + sprintf(buf, "%dx%d", LCD_COLS, LCD_ROWS); + showFPS(etime, buf); + +#ifdef iLCD + /* + * calculate Independent FPS and Frame update time + * (rate & time for a "standard" display - default of 16x2) + * This is simply a matter of scaling the time based on the + * ratio of the display sizes. + */ + + etime = etime *iLCD_ROWS * iLCD_COLS / LCD_ROWS / LCD_COLS; + + /* + * show independent FPS rate & Frame update time + */ + sprintf(buf, "%dx%d", iLCD_COLS, iLCD_ROWS); + showFPS(etime, buf); +#endif + +} + +unsigned long timeFPS(uint8_t iter, uint8_t cols, uint8_t rows) +{ +char c; +unsigned long stime, etime; + + stime = micros(); + for(c = '9'; c >= '0'; c--) // do not change this unless you change the FPS/ByteXfer calcuations as well + { + for(uint8_t i = 0; i < iter; i++) + { + for(uint8_t row = 0; row < rows; row++) + { + lcd.setCursor(0, row); + for(uint8_t col = 0; col< cols;col++) + { + lcd.write(c); + } + } + } + } + etime = micros(); + return((etime-stime)); +} +void showFPS(unsigned long etime, const char *type) +{ +float fps; + + + /* + * calculate Frame update time and FPS rate + * The 10.0 is for the 10 frames done per iteration + * one for each digit 0-9 + */ + + fps = (10.0 * FPS_iter) * 1000000.0/(etime); + + + lcd.clear(); + lcd.print(type); + lcd.print("FPS: "); + lcd.print(fps); + + if(LCD_ROWS > 1) + { + lcd.setCursor(0,1); + } + else + { + delay(DELAY_TIME); + lcd.clear(); + } + lcd.print("Ftime: "); + lcd.print((etime)/10.0/FPS_iter/1000); + lcd.print("ms"); + + delay(DELAY_TIME); +} +void showByteXfer(unsigned long etime) +{ + lcd.clear(); + lcd.print("ByteXfer: "); + /* + * Calculate average byte xfer time from time of FPS test + * This takes into consideration the set cursor position commands which + * are single byte commands and take the same amount of time as a data byte write. + * The final result is rounded up to an integer. + */ + lcd.print((int) (etime / (FPS_iter * (10.0 * (LCD_COLS * LCD_ROWS + LCD_ROWS)))+0.5)); + lcd.print("uS"); + + delay(DELAY_TIME); +} diff --git a/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.txt b/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.txt new file mode 100644 index 0000000000000000000000000000000000000000..b59d0133aaa0ad48cdbb8dc7a787c59506e39e0d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/LCDiSpeed/LCDiSpeed.txt @@ -0,0 +1,20 @@ +16Mhz AVR +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 338uS 86.92 11.51ms (orignal Liquid Crystal) +4BIT 98uS 298.58 3.35ms +SR2W 76uS 388.62 2.57ms +SR_2W 72uS 406.90 2.46ms +SR_3W 61uS 480.03 2.08ms +SR3W 102uS 287.92 3.47ms + + +80Mhz Pic32 (ChipKit Uno32) +Interface ByteXfer 16x2FPS Ftime +---------------------------------------------- +4BIT 232uS 126.73 7.89ms (orignal mpide Liquid Crystal) +4BIT 57uS 517.41 1.93ms +SR2W 53uS 557.35 1.79ms +SR_2W 53uS 554.66 1.80ms +SR_3W 50uS 591.40 1.69ms +SR3W 56uS 524.91 1.91ms diff --git a/Libs/NewLiquidCrystal_lib/examples/SerialDisplay/SerialDisplay.pde b/Libs/NewLiquidCrystal_lib/examples/SerialDisplay/SerialDisplay.pde new file mode 100644 index 0000000000000000000000000000000000000000..ce21e1c2c90d423685f51a6dbd06f39c92777b0b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/SerialDisplay/SerialDisplay.pde @@ -0,0 +1,37 @@ +/* + * Displays text sent over the serial port (e.g. from the Serial Monitor) on + * an attached LCD. + */ +#include +#include + +#define BACKLIGHT_PIN 13 + +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x38 + +void setup() +{ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + lcd.begin (16,2); + digitalWrite ( BACKLIGHT_PIN, HIGH ); + + Serial.begin(57600); +} + +void loop() +{ + // when characters arrive over the serial port... + if (Serial.available()) + { + // wait a bit for the entire message to arrive + delay(100); + // clear the screen + lcd.clear(); + // read all the available characters + while (Serial.available() > 0) + { + // display each character to the LCD + lcd.write(Serial.read()); + } + } +} diff --git a/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO/i2cLCDextraIO.pde b/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO/i2cLCDextraIO.pde new file mode 100644 index 0000000000000000000000000000000000000000..a3bb210065e0b382cb41e19e7a6c5536bfbc1f0d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO/i2cLCDextraIO.pde @@ -0,0 +1,257 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright (C) - 2018 +// +// 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 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO.pde +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA328p temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include + +#define _LCD_I2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 7 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 334 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +#endif +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; + + + +LCD *myLCD = &lcd; + +static double tempFilter; + + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ + +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC8; // activate interal temperature sensor, + // using 1.1V ref. voltage + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, -30, 50, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +void setup () +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + analogReference ( INTERNAL ); + +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + lcd.backlight(); + digitalWrite(BACKLIGHT_PIN, HIGH); + analogWrite (CONTRAST_PIN, CONTRAST); +#else + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite(BACKLIGHT_PIN, HIGH); +#endif + + myLCD->begin ( 16, 2 ); + + // Load custom character set into CGRAM + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } + Serial.println ( freeMemory () ); + + myLCD->clear (); + myLCD->print ("Temp:"); + + tempFilter = readTemperature (); // Initialise the temperature Filter + +} + + +void loop () +{ + int temp; + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (200); +} diff --git a/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino b/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino new file mode 100644 index 0000000000000000000000000000000000000000..c6cb65d5fd87ef0b0342efcad67bd5d6eaeb514f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/i2cLCDextraIO_tempLeonardo/i2cLCDextraIO_tempLeonardo.ino @@ -0,0 +1,343 @@ +// --------------------------------------------------------------------------- +// Created by Francisco Malpartida on 1/1/12. +// Copyright (C) - 2018 +// +// 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 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file i2CLCDextraIO_tempLeonardo.ino +// Temperature logging to demonstrate the I2CLCDextraIO library. +// +// @brief This application is a demostration file for the I2CLCDextraIO library +// that reads a temperature from the internal ATMEGA32U4 temperature sensor +// and displays it on the LCD. The application also demonstrates some of the +// methods of the library, such as loading custom characters to the LCD, +// moving around the LCD, and writing to it. +// +// @author F. Malpartida +// --------------------------------------------------------------------------- +#include +#include +#include + +#define _LCD_SR3W_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + + +/*! + @defined CHAR_WIDTH + @abstract Character witdth of the display, expressed in pixeles per character. +*/ +#define CHAR_WIDTH 5 + +/*! + @defined BACKLIGHT_PIN + @abstract LCD backlight pin definition. + @discussion AVR pin used for the backlight illumintation of the LCD. +*/ +#define BACKLIGHT_PIN 12 + +/*! + @defined STATUS_PIN + @abstract Status LED indicator. + @discussion Activity LED blinking indicating that the system is up. +*/ +#define STATUS_PIN 13 + +/*! + @defined LOOP_DELAY + @abstract Main loop delay. + @discussion Main loop delay executing temperature readings and LCD updates. +*/ +#define LOOP_DELAY 300 + +/*! + @defined TEMP_CAL_OFFSET + @abstract Temperature calibration offset. + @discussion This is the offset value that has to be modified to get a + correct temperature reading from the internal temperature sensor + of your AVR. +*/ +#define TEMP_CAL_OFFSET 282 + +/*! + @defined FILTER_ALP + @abstract Low pass filter alpha value + @discussion This value defines how much does the current reading, influences + the over all value. The smaller, the less influence the current + reading has over the overall result. +*/ +#define FILTER_ALP 0.1 + +/*! + @defined MIN_TEMP + @abstract Minimum temperature range for bargraph + +*/ +#define MIN_TEMP -10 + +/*! + @defined MAX_TEMP + @abstract Maximum temperature range for bargraph + +*/ +#define MAX_TEMP 50 + +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + + +// Initialise LCD module +// ----------------------------------------------------------------------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGHT_PIN, POSITIVE); +const int CONTRAST_PIN = 9; +const int CONTRAST = 65; +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(3,2,TWO_WIRE); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +// | | +// | \-- Clock Pin +// \---- Data/Enable Pin +#endif + + +// LCD reference variable +LCD *myLCD = &lcd; + +// Temperature filter variable +static double tempFilter; + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. +*/ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 }, + { 0xe, 0x11, 0x11, 0x11, 0xe, 0, 0, 0 }, + { 0x6, 0x9, 0x9, 0x6, 0x0, 0, 0, 0} +}; + +/*! + @function + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @result Free RAM available. +*/ +static int freeMemory() +{ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} + +/*! + @function + @abstract Returns AVR328p internal temperature + @discussion Configures the ADC MUX for the temperature ADC channel and + waits for conversion and returns the value of the ADC module + @result The internal temperature reading - in degrees C +*/ + +static int readTemperature() +{ + ADMUX = 0xC7; // activate interal temperature sensor, + // using 2.56V ref. voltage + ADCSRB |= _BV(MUX5); + + ADCSRA |= _BV(ADSC); // start the conversion + while (bit_is_set(ADCSRA, ADSC)); // ADSC is cleared when the conversion + // finishes + + // combine bytes & correct for temperature offset (approximate) + return ( (ADCL | (ADCH << 8)) - TEMP_CAL_OFFSET); +} + +/*! + @function + @abstract Braws a bargraph onto the display representing the value passed. + @discussion Draws a bargraph on the specified row using barLength characters. + @param value[in] Value to represent in the bargraph + @param row[in] Row of the LCD where to display the bargraph. Range (0, 1) + for this display. + @param barlength[in] Length of the bar, expressed in display characters. + @param start[in] Start bar character + @param end [in] End bar character + + @result None +*/ +static void drawBars ( int value, uint8_t row, uint8_t barLength, char start, + char end ) +{ + int numBars; + + // Set initial titles on the display + myLCD->setCursor (0, row); + myLCD->print (start); + + // Calculate the size of the bar + value = map ( value, MIN_TEMP, MAX_TEMP, 0, ( barLength ) * CHAR_WIDTH ); + numBars = value / CHAR_WIDTH; + + // Limit the size of the bargraph to barLength + if ( numBars > barLength ) + { + numBars = barLength; + } + myLCD->setCursor ( 1, row ); + + // Draw the bars + while ( numBars-- ) + { + myLCD->print ( char( 5 ) ); + } + + // Draw the fractions + numBars = value % CHAR_WIDTH; + myLCD->print ( char(numBars) ); + myLCD->setCursor (barLength + 1, row); + myLCD->print (end); + +} + +/*! + @function + @abstract Initialise the HW + @discussion Initialise the HW used within this application: UART, LCD & IOs + @param + @result +*/ + +static void initHW ( void ) +{ + int i; + int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0])); + + Serial.begin ( 57600 ); + + // Hardware initialise + // ------------------------------------ + + //ADCSRA |= (1 << ADEN); // Initialise ADC block (no need done by env) + + // Initialise LCD HW: backlight and LCD + // ------------------------------------- +#ifdef _LCD_4BIT_ + pinMode(CONTRAST_PIN, OUTPUT); + analogWrite (CONTRAST_PIN, CONTRAST); +#endif + +#ifdef _LCD_I2C_ + pinMode ( BACKLIGHT_PIN, OUTPUT ); + digitalWrite (BACKLIGHT_PIN, HIGH); +#endif + pinMode ( STATUS_PIN, OUTPUT ); + + myLCD->begin ( 20, 2 ); + // Load custom character set into CGRAM + // -------------------------------------------------------------------- + for ( i = 0; i < charBitmapSize; i++ ) + { + myLCD->createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + +void setup () +{ + initHW(); + + Serial.println ( freeMemory () ); + myLCD->clear (); + myLCD->print ( F("Free Mem: ")); + myLCD->print ( freeMemory () ); + delay ( 2000 ); + myLCD->clear (); + myLCD->print (F("Temp:")); + myLCD->setCursor ( 8, 0 ); + + tempFilter = 0; + myLCD->print ( readTemperature() ); +} + + +void loop () +{ + int temp; + static byte status = 1; + + status ^= 1; + digitalWrite ( STATUS_PIN, status); + + temp = readTemperature(); + tempFilter = ( FILTER_ALP * temp) + (( 1.0 - FILTER_ALP ) * tempFilter); + + // Display the information to the LCD + myLCD->setCursor ( 8, 0 ); + myLCD->print (" "); + myLCD->setCursor ( 8, 0 ); + myLCD->print ( tempFilter, 1 ); + myLCD->setCursor ( 12, 0 ); + myLCD->print ( "\x07" ); + myLCD->print ("C"); + drawBars ( tempFilter, 1, 14, '-', '+' ); + + delay (LOOP_DELAY); +} \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/examples/performanceLCD/performanceLCD.pde b/Libs/NewLiquidCrystal_lib/examples/performanceLCD/performanceLCD.pde new file mode 100644 index 0000000000000000000000000000000000000000..ad549b698680b763bd6611ba2f322178977e2d7b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/examples/performanceLCD/performanceLCD.pde @@ -0,0 +1,508 @@ +// Created by Francisco Malpartida on 20/08/11. +// Copyright (C) - 2018 +// +// 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 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License v3.0 +// along with this program. +// If not, see . +// +// --------------------------------------------------------------------------- +// +// Thread Safe: No +// Extendable: Yes +// +// @file performanceLCD.h +// This sketch implements a simple benchmark for the New LiquidCrystal library. +// +// @brief +// This sketch provides a simple benchmark for the New LiquidCrystal library. It +// enables to test the varios classes provided by the library giving a performance +// reference. +// +// This library is only compatible with Arduino's SDK version 1.0 +// +// @version API 1.0.0 +// +// @author F. Malpartida - fmalpartida@gmail.com +// Contribution by flo - Florian@Fida.biz - for benchmarking SR +// --------------------------------------------------------------------------- +#include + +//#define _LCD_I2C_ +#define _LCD_SI2C_ + +#ifdef _LCD_I2C_ +#include +#endif + +#ifdef _LCD_SI2C_ +#include +#endif + +#ifdef _LCD_4BIT_ +#include +#endif + +#ifdef _LCD_SR_ +#include +#endif + +#ifdef _LCD_SR3W_ +#include +#endif + +#ifdef _LCD_SR1_ +#include +#endif + +// C runtime variables +// ------------------- +#ifdef __AVR__ +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; +#endif + +// Constants and definitions +// ------------------------- +// Definitions for compatibility with Arduino SDK prior to version 1.0 +#ifndef F +#define F(str) str +#endif + +/*! + @defined NUM_BENCHMARKS + @abstract Number of benchmarks in the project. + */ +#define NUM_BENCHMARKS 4 + +/*! + @defined ITERATIONS + @abstract Number of benchmarks iterations to perform. + */ +#define ITERATIONS 10 + +/*! + @defined LCD_ROWS + @abstract LCD rows + @discussion Defines the number of rows that the LCD has, normal LCD ranges are (1, 2, 4). + */ +#define LCD_ROWS 2 + +/*! + @defined LCD_COLUMNS + @abstract LCD available columns + @discussion Defines the number of colums that the LCD has, normal LCD ranges are (8, 16, 20). + */ +#define LCD_COLUMNS 16 + +/*! + @const Pin constant definitions + @abstract Define several constants required to manage the LCD backlight and contrast + */ +#ifdef _LCD_I2C_ +const int BACKLIGHT_PIN = 12; +const int CONTRAST_PIN = 0; // none +const int CONTRAST = 0; // none +#endif + +#ifdef _LCD_SI2C_ +const int BACKLIGHT_PIN = 3; +const int CONTRAST_PIN = 0; // none +const int CONTRAST = 0; // none +#endif + +#ifdef _LCD_4BIT_ +const int CONTRAST_PIN = 9; +const int BACKLIGHT_PIN = 7; +const int CONTRAST = 120; +#endif + +#ifdef _LCD_SR_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR1_ +const int CONTRAST_PIN = 0; // not connected +const int BACKLIGHT_PIN = 0; // none +const int CONTRAST = 0; +#endif + +#ifdef _LCD_SR3W_ +const int CONTRAST_PIN = 0; // none +const int BACKLIGHT_PIN = 5; +const int CONTRAST = 0; +#endif + +/*! + @const charBitmap + @abstract Define Character bitmap for the bargraph. + @discussion Defines a character bitmap to represent a bargraph on a text + display. The bitmap goes from a blank character to full black. + */ +const uint8_t charBitmap[][8] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0 }, + { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0 }, + { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0 }, + { 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x0 }, + { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0 } +}; + +/*! + @typedef t_benchmarkOp + @abstract Function pointer associated to each benchmark. + */ +typedef long (*t_benchmarkOp)( uint8_t ); + +/*! + @typedef t_timeBenchMarks + @abstract Structure to store results of the execution time of the benchmark. + @field benchmark: function pointer of the benchmark to be executed. + */ +typedef struct +{ + t_benchmarkOp benchmark; /**< Function pointer associated to the benchmark */ + long benchTime; /**< execution time for benchmark 1 in useconds */ + uint16_t numWrites; /**< Number of write cycles of the benchmark */ +} t_benchMarks; + + +// Main LCD objects +// ---------------- +#ifdef _LCD_I2C_ +LiquidCrystal_I2C lcd(0x38); // set the LCD address to 0x20 for a 16 chars and 2 line display +#endif + +#ifdef _LCD_SI2C_ +LiquidCrystal_SI2C lcd(0x4e,2,1,0,4,5,6,7); +#endif + +#ifdef _LCD_4BIT_ +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); +#endif + +#ifdef _LCD_SR_ +LiquidCrystal_SR lcd(8,7,TWO_WIRE); +#endif + +#ifdef _LCD_SR1_ +LiquidCrystal_SR1 lcd(2); +#endif + +#ifdef _LCD_SR3W_ +LiquidCrystal_SR3W lcd(3, 2, 4); +#endif + +// benchMarks definitions +// ---------------------- +extern long benchmark1 ( uint8_t ); +extern long benchmark2 ( uint8_t ); +extern long benchmark3 ( uint8_t ); +extern long benchmark4 ( uint8_t ); + +//! @brief benchmark structure that will be initialised and +static t_benchMarks myBenchMarks[NUM_BENCHMARKS] = +{ + { benchmark1, 0, (LCD_ROWS * LCD_COLUMNS) + 2 }, + { benchmark2, 0, LCD_ROWS * LCD_COLUMNS * 6 * 2 }, + { benchmark3, 0, 40 + 2 }, + { benchmark4, 0, 40 + 2 } +}; + +// Static methods +// -------------- +/*! + @function freeMemory + @abstract Return available RAM memory + @discussion This routine returns the ammount of RAM memory available after + initialising the C runtime. + @param + @return Free RAM available, -1 for non AVR microcontrollers + */ +static int freeMemory ( void ) +{ +#ifdef __AVR__ + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +#else + return -1; +#endif + +} + +/*! + @function LCDSetup + @abstract Initialise LCD associated pins and initialise the LCD object + with its geometry. + @discussion Initialise the LCD object and make it ready for operation by + setting up the LCD geometry, i.e. LCD character size. Initialise + and configure all associated control pins such as backlight and + contras pin if necessary. + + @param[in] charBitmapSize: contrasts pin associated to the contrast (should be an + analog pin). 0 if contrast pin is not required. + @param[in] backlight: backlight pin associated to the LCD backlight. + @param[in] cols: number of LCD columns normal values (1, 2, 4) + @param[in] rows: number of LCD rows normal values (8, 16, 20) + */ +static void LCDSetup ( uint8_t contrasPin, uint8_t backlight, uint8_t cols, uint8_t rows ) +{ + // If our setup uses a PWM to control the backlight, configure it + // -------------------------------------------------------------- + if ( contrasPin != 0 ) + { + pinMode ( contrasPin, OUTPUT ); + analogWrite ( contrasPin, CONTRAST ); + } + // Setup backlight pin + /*if ( backlight != 0 ){ + pinMode(backlight, OUTPUT); + digitalWrite(backlight, HIGH); + }*/ + + lcd.begin ( cols, rows ); + lcd.setBacklightPin(3, POSITIVE); + lcd.setBacklight(HIGH); + lcd.clear ( ); +} + + +/*! + @function LCDLoadCharacters + @abstract Loads onto the LCD the character set for the benchmark. + @discussion Loads onto the LCD the character set that will be used throughout + the benchmark. + + @param[in] charBitmapSize: number of characters to load to the LCD. + */ +static void LCDLoadCharacters ( int numChars ) +{ + // Load custom character set into CGRAM + for ( int i = 0; i < numChars; i++ ) + { + lcd.createChar ( i, (uint8_t *)charBitmap[i] ); + } +} + + +// Benchmarks +// ---------- +/*! + @function benchmark1 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + memory. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark1 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + lcd.print (char(5)); + } + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark2 + @abstract writes to the LCD a full set of characters loaded on the LCD + memory one line pixel at the time + @discussion Writes to all the positions of the LCD a fixed pattern from + memory each patern take 6 write operations to the LCD. For every + character it writes it sets the cursor possition. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS * 6. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark2 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i, j, k; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + + for ( i = 0; i < LCD_ROWS; i++ ) + { + for ( j = 0; j < LCD_COLUMNS; j++ ) + { + for ( k = 0; k <= 5; k++ ) + { + lcd.setCursor ( j, i ); + lcd.print (char(k)); + } + } + } + totalTime += ( micros() - time ); + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark3 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + RAM. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark3 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( "####################" ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +/*! + @function benchmark4 + @abstract writes to the LCD a full set of characters from memory. + @discussion Writes to all the positions of the LCD a fixed pattern from + flash. For every line it writes, it positions the cursor. + The number of writen LCD accesses is: LCD_ROW * LCD_COLUMS + 2. + It returns the cumulative time used by all the iterations. + + @param[in] iterations: number of iterations the benchmark is executed before + returning the time taken by all iterations. + @return The time take to execute iterations number of benchmarks. + */ +long benchmark4 ( uint8_t iterations ) +{ + unsigned long time, totalTime = 0; + int i; + + while ( iterations > 0 ) + { + // Clear the LCD + lcd.clear ( ); + + time = micros (); + for ( i = 0; i < LCD_ROWS; i++ ) + { + lcd.setCursor ( 0, i ); + lcd.print ( F("####################") ); + } + totalTime += ( micros() - time ); + delay ( 200 ); // it doesn't keep up with the LCD refresh rate. + iterations--; + } + return ( totalTime ); +} + +// Main system setup +// ----------------- +void setup () +{ + Serial.begin ( 57600 ); +#ifdef __AVR__ + Serial.print ( F("Free mem: ") ); + Serial.println ( freeMemory () ); +#endif + + // Initialise the LCD + LCDSetup ( CONTRAST_PIN, BACKLIGHT_PIN, LCD_COLUMNS, LCD_ROWS ); + LCDLoadCharacters ( (sizeof(charBitmap ) / sizeof (charBitmap[0])) ); +} + + +// Main system loop +// ---------------- +void loop () +{ + int i; + + lcd.setCursor ( 0, 0 ); + lcd.clear ( ); + + // Run benchmark + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + myBenchMarks[i].benchTime = + (myBenchMarks[i].benchmark (ITERATIONS))/ITERATIONS; + Serial.println (i); + } + + float fAllWrites=0.0; + + for ( i = 0; i < NUM_BENCHMARKS; i++ ) + { + Serial.print ( F("benchmark") ); + Serial.print ( i ); + Serial.print ( F(": ") ); + Serial.print ( myBenchMarks[i].benchTime ); + Serial.print ( F(" us - ") ); + Serial.print ( F(" write: ") ); + Serial.print ( myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites ); + Serial.println ( F(" us") ); + fAllWrites += myBenchMarks[i].benchTime / (float)myBenchMarks[i].numWrites; + } + Serial.print( F("avg. write: ") ); + Serial.println( fAllWrites / (float)NUM_BENCHMARKS ); + } \ No newline at end of file diff --git a/Libs/NewLiquidCrystal_lib/html/arrowdown.png b/Libs/NewLiquidCrystal_lib/html/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/arrowdown.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/arrowright.png b/Libs/NewLiquidCrystal_lib/html/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/arrowright.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/bc_s.png b/Libs/NewLiquidCrystal_lib/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/bc_s.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/bdwn.png b/Libs/NewLiquidCrystal_lib/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/bdwn.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/closed.png b/Libs/NewLiquidCrystal_lib/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/closed.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/doc.png b/Libs/NewLiquidCrystal_lib/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/doc.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/doxygen.css b/Libs/NewLiquidCrystal_lib/html/doxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..b2c94ac212bd24085366baaca1d63d5ed978724d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/html/doxygen.css @@ -0,0 +1,1454 @@ +/* The standard CSS for doxygen 1.8.10 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libs/NewLiquidCrystal_lib/html/doxygen.png b/Libs/NewLiquidCrystal_lib/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/html/doxygen.png differ diff --git a/Libs/NewLiquidCrystal_lib/html/dynsections.js b/Libs/NewLiquidCrystal_lib/html/dynsections.js new file mode 100644 index 0000000000000000000000000000000000000000..85e183690954af49931335b87a063b2c078d4546 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +New Liquid Crystal: Main Page + + + + + + + + + + +
+
+ + + + + + +
+
New Liquid Crystal +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
New Liquid Crystal Documentation
+
+
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/html/jquery.js b/Libs/NewLiquidCrystal_lib/html/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..1f4d0b47cec6c273add6041c043b156f523f3734 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/html/jquery.js @@ -0,0 +1,68 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/FastIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Florian Fida on 20/01/12
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // fio_shiftOut1 functions are based on Shif1 protocol developed by Roman Black
+
22 // (http://www.romanblack.com/shift1.htm)
+
23 //
+
24 // Thread Safe: No
+
25 // Extendable: Yes
+
26 //
+
27 // @file FastIO.h
+
28 // This file implements basic fast IO routines.
+
29 //
+
30 // @brief
+
31 //
+
32 // @version API 1.0.0
+
33 //
+
34 // @author Florian Fida -
+
35 // 2012-03-16 bperrybap mods for chipkit32 (pic32) Arduino
+
36 // support chipkit:
+
37 // (https://github.com/chipKIT32/chipKIT32-MAX/blob/master/hardware/pic32/
+
38 // cores/pic32/wiring_digital.c)
+
39 // ---------------------------------------------------------------------------
+
40 #ifndef _FAST_IO_H_
+
41 #define _FAST_IO_H_
+
42 
+
43 #if (ARDUINO < 100)
+
44 #include <WProgram.h>
+
45 #else
+
46 #include <Arduino.h>
+
47 #endif
+
48 
+
49 #include <pins_arduino.h> // pleasing sanguino core
+
50 #include <inttypes.h>
+
51 
+
52 
+
53 #define SKIP 0x23
+
54 
+
55 #if defined (__AVR__)
+
56 #include <util/atomic.h> // for critical section management
+
57 typedef uint8_t fio_bit;
+
58 typedef volatile uint8_t *fio_register;
+
59 // __AVR__ processor end
+
60 
+
61 #elif defined(__PIC32MX__)
+
62 typedef uint32_t fio_bit;
+
63 typedef volatile uint32_t *fio_register;
+
64 // __PIC32MX__ processor end
+
65 
+
66 #else
+
67 // fallback to Arduino standard digital i/o routines
+
68 #define FIO_FALLBACK
+
69 #define ATOMIC_BLOCK(dummy) if(true)
+
70 #define ATOMIC_RESTORESTATE
+
71 typedef uint8_t fio_bit;
+
72 typedef uint8_t fio_register;
+
73 #endif // Processor dependent fast IO definition
+
74 
+
75 
+
76 
+
77 #if !defined(FIO_FALLBACK) && !defined(ATOMIC_BLOCK)
+
78 /*
+
79  * Define an ATOMIC_BLOCK that implements ATOMIC_FORCEON type
+
80  * Using the portable Arduino interrupts() and noInterrupts()
+
81  */
+
82 #define ATOMIC_RESTORESTATE ATOMIC_FORCEON // sorry, no support for save/restore yet.
+
83 #define ATOMIC_FORCEON uint8_t sreg_save \
+
84  __attribute__((__cleanup__(__iSeiParam))) = 0
+
85 
+
86 static __inline__ uint8_t __iCliRetVal(void)
+
87 {
+
88  noInterrupts();
+
89  return(1);
+
90 }
+
91 static __inline__ void __iSeiParam(const uint8_t *__s)
+
92 {
+
93  interrupts();
+
94 }
+
95 #define ATOMIC_BLOCK(type) for(type, __Todo = __iCliRetVal(); __Todo; __Todo = 0)
+
96 
+
97 #endif // end of block to create compatible ATOMIC_BLOCK()
+
98 
+
109 #ifndef _BV
+
110 #define _BV(bit) (1 << (bit))
+
111 #endif
+
112 
+
120 fio_register fio_pinToOutputRegister(uint8_t pin, uint8_t initial_state = LOW);
+
121 
+
129 fio_register fio_pinToInputRegister(uint8_t pin);
+
130 
+
138 fio_bit fio_pinToBit(uint8_t pin);
+
139 
+
140 
+
150 // __attribute__ ((always_inline)) /* let the optimizer decide that for now */
+
151 void fio_digitalWrite ( fio_register pinRegister, fio_bit pinBit, uint8_t value );
+
152 
+
159 #ifndef FIO_FALLBACK
+
160 #define fio_digitalWrite_LOW(reg,bit) *reg &= ~bit
+
161 #define fio_digitalWrite_HIGH(reg,bit) *reg |= bit
+
162 #define fio_digitalWrite_SWITCH(reg,bit) *reg ^= bit
+
163 #define fio_digitalWrite_SWITCHTO(reg,bit,val) fio_digitalWrite_SWITCH(reg,bit)
+
164 #else
+
165 // reg -> dummy NULL, bit -> pin
+
166 #define fio_digitalWrite_HIGH(reg,bit) digitalWrite(bit,HIGH)
+
167 #define fio_digitalWrite_LOW(reg,bit) digitalWrite(bit,LOW)
+
168 #define fio_digitalWrite_SWITCH(reg,bit) digitalWrite(bit, !digitalRead(bit))
+
169 #define fio_digitalWrite_SWITCHTO(reg,bit,val) digitalWrite(bit,val);
+
170 #endif
+
171 
+
181 int fio_digitalRead ( fio_register pinRegister, fio_bit pinBit );
+
182 
+
194 void fio_shiftOut( fio_register dataRegister, fio_bit dataBit, fio_register clockRegister,
+
195  fio_bit clockBit, uint8_t value, uint8_t bitOrder );
+
196 
+
207 void fio_shiftOut(fio_register dataRegister, fio_bit dataBit, fio_register clockRegister, fio_bit clockBit);
+
208 
+
217 void fio_shiftOut1(fio_register shift1Register, fio_bit shift1Bit, uint8_t value, boolean noLatch = false);
+
225 void fio_shiftOut1(uint8_t pin, uint8_t value, boolean noLatch = false);
+
233 void fio_shiftOut1_init(fio_register shift1Register, fio_bit shift1Bit);
+
240 void fio_shiftOut1_init(uint8_t pin);
+
241 
+
242 #endif // FAST_IO_H
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_i2_c_i_o_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_i2_c_i_o_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..bb7ff4e0c519b5a2a44001e8b349af78827a32bb --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_i2_c_i_o_8h_source.html @@ -0,0 +1,186 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/I2CIO.h Source File + + + + + + + + + + +
+
+
+ + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/I2CIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // This software is furnished "as is", without technical support, and with no
+
22 // warranty, express or implied, as to its usefulness for any purpose.
+
23 //
+
24 // Thread Safe: No
+
25 // Extendable: Yes
+
26 //
+
27 // @file I2CIO.h
+
28 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+
29 // chip.
+
30 //
+
31 // @brief
+
32 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+
33 // The library implements basic IO general methods to configure IO pin direction
+
34 // read and write uint8_t operations and basic pin level routines to set or read
+
35 // a particular IO port.
+
36 //
+
37 // @version API 1.0.0
+
38 //
+
39 // @author F. Malpartida - fmalpartida@gmail.com
+
40 // ---------------------------------------------------------------------------
+
41 
+
42 #ifndef _I2CIO_H_
+
43 #define _I2CIO_H_
+
44 
+
45 #include <inttypes.h>
+
46 
+
47 #define _I2CIO_VERSION "1.0.0"
+
48 
+
56 class I2CIO
+
57 {
+
58 public:
+
64  I2CIO ( );
+
65 
+
77  int begin ( uint8_t i2cAddr );
+
78 
+
88  void pinMode ( uint8_t pin, uint8_t dir );
+
89 
+
98  void portMode ( uint8_t dir );
+
99 
+
109  uint8_t read ( void );
+
110 
+
123  uint8_t digitalRead ( uint8_t pin );
+
124 
+
138  int write ( uint8_t value );
+
139 
+
151  int digitalWrite ( uint8_t pin, uint8_t level );
+
152 
+
153 
+
154 
+
155 private:
+
156  uint8_t _shadow; // Shadow output
+
157  uint8_t _dirMask; // Direction mask
+
158  uint8_t _i2cAddr; // I2C address
+
159  bool _initialised; // Initialised object
+
160 
+
169  bool isAvailable (uint8_t i2cAddr);
+
170 
+
171 };
+
172 
+
173 #endif
+
Definition: I2CIO.h:56
+
void portMode(uint8_t dir)
Definition: I2CIO.cpp:123
+
int write(uint8_t value)
Definition: I2CIO.cpp:160
+
void pinMode(uint8_t pin, uint8_t dir)
Definition: I2CIO.cpp:106
+
int digitalWrite(uint8_t pin, uint8_t level)
Definition: I2CIO.cpp:204
+
uint8_t digitalRead(uint8_t pin)
Definition: I2CIO.cpp:187
+
I2CIO()
Definition: I2CIO.cpp:71
+
int begin(uint8_t i2cAddr)
Definition: I2CIO.cpp:85
+
uint8_t read(void)
Definition: I2CIO.cpp:141
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_l_c_d_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_l_c_d_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..059791aa5bd240553ec52e6af064bbdc0bc0c171 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_l_c_d_8h_source.html @@ -0,0 +1,367 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LCD.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LCD.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LCD.h
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK.
+
27 //
+
28 // @brief
+
29 // This is a basic implementation of the LiquidCrystal library of the
+
30 // Arduino SDK. This library is a refactored version of the one supplied
+
31 // in the Arduino SDK in such a way that it simplifies its extension
+
32 // to support other mechanism to communicate to LCDs such as I2C, Serial, SR,
+
33 // The original library has been reworked in such a way that this will be
+
34 // the base class implementing all generic methods to command an LCD based
+
35 // on the Hitachi HD44780 and compatible chipsets.
+
36 //
+
37 // This base class is a pure abstract class and needs to be extended. As reference,
+
38 // it has been extended to drive 4 and 8 bit mode control, LCDs and I2C extension
+
39 // backpacks such as the I2CLCDextraIO using the PCF8574* I2C IO Expander ASIC.
+
40 //
+
41 // The functionality provided by this class and its base class is identical
+
42 // to the original functionality of the Arduino LiquidCrystal library.
+
43 //
+
44 // @version API 1.1.0
+
45 //
+
46 //
+
47 // @author F. Malpartida - fmalpartida@gmail.com
+
48 // ---------------------------------------------------------------------------
+
49 #ifndef _LCD_H_
+
50 #define _LCD_H_
+
51 
+
52 #if (ARDUINO < 100)
+
53 #include <WProgram.h>
+
54 #else
+
55 #include <Arduino.h>
+
56 #endif
+
57 
+
58 #ifdef __AVR__
+
59 #include <avr/pgmspace.h>
+
60 #endif
+
61 
+
62 #include <inttypes.h>
+
63 #include <Print.h>
+
64 
+
65 
+
76 #ifndef _BV
+
77 #define _BV(bit) (1 << (bit))
+
78 #endif
+
79 
+
88 #ifdef __AVR__
+
89 #define FAST_MODE
+
90 #endif
+
91 
+
101 inline static void waitUsec ( uint16_t uSec )
+
102 {
+
103 #ifndef FAST_MODE
+
104  delayMicroseconds ( uSec );
+
105 #endif // FAST_MODE
+
106 }
+
107 
+
108 
+
116 // LCD Commands
+
117 // ---------------------------------------------------------------------------
+
118 #define LCD_CLEARDISPLAY 0x01
+
119 #define LCD_RETURNHOME 0x02
+
120 #define LCD_ENTRYMODESET 0x04
+
121 #define LCD_DISPLAYCONTROL 0x08
+
122 #define LCD_CURSORSHIFT 0x10
+
123 #define LCD_FUNCTIONSET 0x20
+
124 #define LCD_SETCGRAMADDR 0x40
+
125 #define LCD_SETDDRAMADDR 0x80
+
126 
+
127 // flags for display entry mode
+
128 // ---------------------------------------------------------------------------
+
129 #define LCD_ENTRYRIGHT 0x00
+
130 #define LCD_ENTRYLEFT 0x02
+
131 #define LCD_ENTRYSHIFTINCREMENT 0x01
+
132 #define LCD_ENTRYSHIFTDECREMENT 0x00
+
133 
+
134 // flags for display on/off and cursor control
+
135 // ---------------------------------------------------------------------------
+
136 #define LCD_DISPLAYON 0x04
+
137 #define LCD_DISPLAYOFF 0x00
+
138 #define LCD_CURSORON 0x02
+
139 #define LCD_CURSOROFF 0x00
+
140 #define LCD_BLINKON 0x01
+
141 #define LCD_BLINKOFF 0x00
+
142 
+
143 // flags for display/cursor shift
+
144 // ---------------------------------------------------------------------------
+
145 #define LCD_DISPLAYMOVE 0x08
+
146 #define LCD_CURSORMOVE 0x00
+
147 #define LCD_MOVERIGHT 0x04
+
148 #define LCD_MOVELEFT 0x00
+
149 
+
150 // flags for function set
+
151 // ---------------------------------------------------------------------------
+
152 #define LCD_8BITMODE 0x10
+
153 #define LCD_4BITMODE 0x00
+
154 #define LCD_2LINE 0x08
+
155 #define LCD_1LINE 0x00
+
156 #define LCD_5x10DOTS 0x04
+
157 #define LCD_5x8DOTS 0x00
+
158 
+
159 
+
160 // Define COMMAND and DATA LCD Rs (used by send method).
+
161 // ---------------------------------------------------------------------------
+
162 #define COMMAND 0
+
163 #define LCD_DATA 1
+
164 #define FOUR_BITS 2
+
165 
+
166 
+
173 #define HOME_CLEAR_EXEC 2000
+
174 
+
181 #define BACKLIGHT_OFF 0
+
182 
+
189 #define BACKLIGHT_ON 255
+
190 
+
191 
+
197 typedef enum { POSITIVE, NEGATIVE } t_backlightPol;
+
198 
+
199 class LCD : public Print
+
200 {
+
201 public:
+
202 
+
209  LCD ( );
+
210 
+
226  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
227 
+
238  void clear();
+
239 
+
251  void home();
+
252 
+
261  void noDisplay();
+
262 
+
272  void display();
+
273 
+
280  void noBlink();
+
281 
+
290  void blink();
+
291 
+
298  void noCursor();
+
299 
+
308  void cursor();
+
309 
+
317  void scrollDisplayLeft();
+
318 
+
326  void scrollDisplayRight();
+
327 
+
339  void leftToRight();
+
340 
+
352  void rightToLeft();
+
353 
+
360  void moveCursorLeft();
+
361 
+
362 
+
369  void moveCursorRight();
+
370 
+
384  void autoscroll();
+
385 
+
394  void noAutoscroll();
+
395 
+
412  void createChar(uint8_t location, uint8_t charmap[]);
+
413 
+
414 #ifdef __AVR__
+
415 
+
435  void createChar(uint8_t location, const char *charmap);
+
436 #endif // __AVR__
+
437 
+
447  void setCursor(uint8_t col, uint8_t row);
+
448 
+
456  void backlight ( void );
+
457 
+
465  void noBacklight ( void );
+
466 
+
474  void on ( void );
+
475 
+
483  void off ( void );
+
484 
+
485  //
+
486  // virtual class methods
+
487  // --------------------------------------------------------------------------
+
498  virtual void setBacklightPin ( uint8_t value, t_backlightPol pol ) { };
+
499 
+
517  virtual void setBacklight ( uint8_t value ) { };
+
518 
+
530 #if (ARDUINO < 100)
+
531  virtual void write(uint8_t value);
+
532 #else
+
533  virtual size_t write(uint8_t value);
+
534 #endif
+
535 
+
536 #if (ARDUINO < 100)
+
537  using Print::write;
+
538 #else
+
539  using Print::write;
+
540 #endif
+
541 
+
542 protected:
+
543  // Internal LCD variables to control the LCD shared between all derived
+
544  // classes.
+
545  uint8_t _displayfunction; // LCD_5x10DOTS or LCD_5x8DOTS, LCD_4BITMODE or
+
546  // LCD_8BITMODE, LCD_1LINE or LCD_2LINE
+
547  uint8_t _displaycontrol; // LCD base control command LCD on/off, blink, cursor
+
548  // all commands are "ored" to its contents.
+
549  uint8_t _displaymode; // Text entry mode to the LCD
+
550  uint8_t _numlines; // Number of lines of the LCD, initialized with begin()
+
551  uint8_t _cols; // Number of columns in the LCD
+
552  t_backlightPol _polarity; // Backlight polarity
+
553 
+
554 private:
+
567  void command(uint8_t value);
+
568 
+
582 #if (ARDUINO < 100)
+
583  virtual void send(uint8_t value, uint8_t mode) { };
+
584 #else
+
585  virtual void send(uint8_t value, uint8_t mode) = 0;
+
586 #endif
+
587 
+
588 };
+
589 
+
590 #endif
+
Definition: LCD.h:199
+
void createChar(uint8_t location, uint8_t charmap[])
Definition: LCD.cpp:306
+
void autoscroll()
Definition: LCD.cpp:292
+
void leftToRight()
Definition: LCD.cpp:265
+
void backlight(void)
Definition: LCD.cpp:338
+
void clear()
Definition: LCD.cpp:180
+
void on(void)
Definition: LCD.cpp:352
+
void off(void)
Definition: LCD.cpp:360
+
void noBlink()
Definition: LCD.cpp:241
+
void scrollDisplayRight()
Definition: LCD.cpp:259
+
void display()
Definition: LCD.cpp:222
+
void setCursor(uint8_t col, uint8_t row)
Definition: LCD.cpp:192
+
virtual void setBacklightPin(uint8_t value, t_backlightPol pol)
Definition: LCD.h:498
+
void rightToLeft()
Definition: LCD.cpp:272
+
void noAutoscroll()
Definition: LCD.cpp:299
+
void home()
Definition: LCD.cpp:186
+
void blink()
Definition: LCD.cpp:247
+
virtual void setBacklight(uint8_t value)
Definition: LCD.h:517
+
void moveCursorRight()
Definition: LCD.cpp:279
+
LCD()
Definition: LCD.cpp:64
+
void scrollDisplayLeft()
Definition: LCD.cpp:254
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LCD.cpp:91
+
void noDisplay()
Definition: LCD.cpp:216
+
void noBacklight(void)
Definition: LCD.cpp:345
+
void noCursor()
Definition: LCD.cpp:229
+
void moveCursorLeft()
Definition: LCD.cpp:285
+
virtual void write(uint8_t value)
Definition: LCD.cpp:374
+
void cursor()
Definition: LCD.cpp:234
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..eb7524cd84de1f978d14379e23f96477345f47f2 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal_8h_source.html @@ -0,0 +1,212 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal.h
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK.
+
27 //
+
28 // @brief
+
29 // This is a basic implementation of the LiquidCrystal library of the
+
30 // Arduino SDK. The original library has been reworked in such a way that
+
31 // this class implements the all methods to command an LCD based
+
32 // on the Hitachi HD44780 and compatible chipsets using the parallel port of
+
33 // the LCD (4 bit and 8 bit).
+
34 //
+
35 //
+
36 //
+
37 // @author F. Malpartida - fmalpartida@gmail.com
+
38 // ---------------------------------------------------------------------------
+
39 #ifndef LiquidCrystal_4bit_h
+
40 #define LiquidCrystal_4bit_h
+
41 
+
42 #include <inttypes.h>
+
43 
+
44 #include "LCD.h"
+
45 #include "FastIO.h"
+
46 
+
47 
+
54 #define EXEC_TIME 37
+
55 
+
56 class LiquidCrystal : public LCD
+
57 {
+
58 public:
+
65  LiquidCrystal(uint8_t rs, uint8_t enable,
+
66  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
67  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
68  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
69  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
70  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
71 
+
72  // Constructors with backlight control
+
73  LiquidCrystal(uint8_t rs, uint8_t enable,
+
74  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
75  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
76  uint8_t backlightPin, t_backlightPol pol);
+
77  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
78  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
79  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
80  uint8_t backlightPin, t_backlightPol pol);
+
87  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
88  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+
89  LiquidCrystal(uint8_t rs, uint8_t enable,
+
90  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
+
91 
+
92  // Constructors with backlight control
+
93  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
+
94  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
95  uint8_t backlightPin, t_backlightPol pol);
+
96  LiquidCrystal(uint8_t rs, uint8_t enable,
+
97  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
98  uint8_t backlightPin, t_backlightPol pol);
+
111  virtual void send(uint8_t value, uint8_t mode);
+
112 
+
121  void setBacklightPin ( uint8_t pin, t_backlightPol pol );
+
122 
+
123 #if defined(ARDUINO_ARCH_ESP32)
+
124 
+
135  void analogWrite( uint8_t channel, uint32_t value, uint32_t valueMax );
+
136 #endif
+
137 
+
152  void setBacklight ( uint8_t value );
+
153 
+
154 private:
+
155 
+
161  void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
+
162  uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
+
163  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
164 
+
171  void writeNbits(uint8_t value, uint8_t numBits);
+
172 
+
179  void pulseEnable();
+
180 
+
181  uint8_t _rs_pin; // LOW: command. HIGH: character.
+
182  uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD.
+
183  uint8_t _enable_pin; // activated by a HIGH pulse.
+
184  uint8_t _data_pins[8]; // Data pins.
+
185  uint8_t _backlightPin; // Pin associated to control the LCD backlight
+
186 };
+
187 
+
188 #endif
+
void setBacklightPin(uint8_t pin, t_backlightPol pol)
Definition: LiquidCrystal.cpp:167
+
Definition: LCD.h:199
+
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
Definition: LiquidCrystal.cpp:67
+
Definition: LiquidCrystal.h:56
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal.cpp:189
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal.cpp:134
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d3b98dc4cb9f630d2fefe1febed4d0d174e11ef3 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c_8h_source.html @@ -0,0 +1,206 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal_I2C.h
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK but using an I2C IO extension board.
+
27 //
+
28 // @brief
+
29 // This is a basic implementation of the LiquidCrystal library of the
+
30 // Arduino SDK. The original library has been reworked in such a way that
+
31 // this class implements the all methods to command an LCD based
+
32 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
33 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+
34 //
+
35 // The functionality provided by this class and its base class is identical
+
36 // to the original functionality of the Arduino LiquidCrystal library.
+
37 //
+
38 //
+
39 // @author F. Malpartida - fmalpartida@gmail.com
+
40 // ---------------------------------------------------------------------------
+
41 #ifndef LiquidCrystal_I2C_h
+
42 #define LiquidCrystal_I2C_h
+
43 #include <inttypes.h>
+
44 #include <Print.h>
+
45 
+
46 #include "I2CIO.h"
+
47 #include "LCD.h"
+
48 
+
49 
+
50 class LiquidCrystal_I2C : public LCD
+
51 {
+
52 public:
+
53 
+
63  LiquidCrystal_I2C (uint8_t lcd_Addr);
+
64  // Constructor with backlight control
+
65  LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol);
+
66 
+
79  LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
+
80  // Constructor with backlight control
+
81  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
82  uint8_t backlighPin, t_backlightPol pol);
+
83 
+
100  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
101  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
102  // Constructor with backlight control
+
103  LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
104  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
105  uint8_t backlighPin, t_backlightPol pol);
+
122  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
123 
+
136  virtual void send(uint8_t value, uint8_t mode);
+
137 
+
146  void setBacklightPin ( uint8_t value, t_backlightPol pol );
+
147 
+
157  void setBacklight ( uint8_t value );
+
158 
+
175  void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
176  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
177 
+
178 private:
+
179 
+
185  int init();
+
186 
+
195  void write4bits(uint8_t value, uint8_t mode);
+
196 
+
203  void pulseEnable(uint8_t);
+
204 
+
205 
+
206  uint8_t _Addr; // I2C Address of the IO expander
+
207  uint8_t _backlightPinMask; // Backlight IO pin mask
+
208  uint8_t _backlightStsMask; // Backlight status mask
+
209  I2CIO _i2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO
+
210  uint8_t _En; // LCD expander word for enable pin
+
211  uint8_t _Rw; // LCD expander word for R/W pin
+
212  uint8_t _Rs; // LCD expander word for Register Select pin
+
213  uint8_t _data_pins[4]; // LCD data lines
+
214 
+
215 };
+
216 
+
217 #endif
+
Definition: I2CIO.h:56
+
Definition: LCD.h:199
+
LiquidCrystal_I2C(uint8_t lcd_Addr)
Definition: LiquidCrystal_I2C.cpp:108
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LiquidCrystal_I2C.cpp:156
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_I2C.cpp:252
+
Definition: LiquidCrystal_I2C.h:50
+
void config(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
Definition: LiquidCrystal_I2C.cpp:225
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_I2C.cpp:179
+
void setBacklightPin(uint8_t value, t_backlightPol pol)
Definition: LiquidCrystal_I2C.cpp:170
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..7df31507e8acd8171bb146a6361dafa632bcb605 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___i2_c___by_vac_8h_source.html @@ -0,0 +1,191 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by GHPS on 5/06/2012.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal_I2C_ByVac.c
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK but using the extension board BV4218/BV4208 from ByVac.
+
27 //
+
28 // @brief
+
29 // This is a basic implementation of the LiquidCrystal library of the
+
30 // Arduino SDK. The original library has been reworked in such a way that
+
31 // this class implements the all methods to command an LCD based
+
32 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
33 // backpack BV4218 from ByVac.
+
34 //
+
35 // The functionality provided by this class and its base class is identical
+
36 // to the original functionality of the Arduino LiquidCrystal library.
+
37 //
+
38 // @author GHPS - ghps-et-users-sourceforge-net
+
39 // ---------------------------------------------------------------------------
+
40 #ifndef LiquidCrystal_I2C_ByVac_h
+
41 #define LiquidCrystal_I2C_ByVac_h
+
42 #include <inttypes.h>
+
43 #include <Print.h>
+
44 
+
45 #if defined(__AVR_ATtiny84__) || (__AVR_ATtiny2313__) || defined (__AVR_ATtiny85__)
+
46 
+
47 #include "TinyWireM.h" // include this if ATtiny84 or ATtiny85 or ATtiny2313
+
48 
+
49 #define Wire TinyWireM
+
50 
+
51 #else
+
52 
+
53 #if (ARDUINO < 10000)
+
54  #include <../Wire/Wire.h>
+
55 #else
+
56  #include <Wire.h>
+
57 #endif
+
58 
+
59 #endif
+
60 
+
61 #include "LCD.h"
+
62 
+
63 
+ +
65 {
+
66 public:
+
67 
+
77  LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr);
+
78 
+
95  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
96 
+
109  virtual void send(uint8_t value, uint8_t mode);
+
110 
+
111 
+
119  void setBacklight ( uint8_t value );
+
120 
+
129  void setContrast ( uint8_t value );
+
130 
+
131 private:
+
132 
+
138  int init();
+
139 
+
149  uint8_t _Addr; // I2C Address of the IO expander
+
150 
+
151 };
+
152 
+
153 #endif
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_I2C_ByVac.cpp:111
+
Definition: LiquidCrystal_I2C_ByVac.h:64
+
Definition: LCD.h:199
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LiquidCrystal_I2C_ByVac.cpp:61
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_I2C_ByVac.cpp:72
+
void setContrast(uint8_t value)
Definition: LiquidCrystal_I2C_ByVac.cpp:83
+
LiquidCrystal_I2C_ByVac(uint8_t lcd_Addr)
Definition: LiquidCrystal_I2C_ByVac.cpp:50
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..facac83378e7380b3f186057319d7475a39500ce --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_i2_c_8h_source.html @@ -0,0 +1,212 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SI2C.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SI2C.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal_I2C.h
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK but using an I2C IO extension board and software I2C.
+
27 // It will use digital pins 6 and 7 for SCL and SDA, but it can be changed
+
28 // in SI2CIO.cpp to use other pins if needed.
+
29 
+
30 // @brief
+
31 // This is a basic implementation of the LiquidCrystal library of the
+
32 // Arduino SDK. The original library has been reworked in such a way that
+
33 // this class implements the all methods to command an LCD based
+
34 // on the Hitachi HD44780 and compatible chipsets using I2C extension
+
35 // backpacks such as the I2CLCDextraIO with the PCF8574* I2C IO Expander ASIC.
+
36 //
+
37 // The functionality provided by this class and its base class is identical
+
38 // to the original functionality of the Arduino LiquidCrystal library.
+
39 //
+
40 //
+
41 // @author F. Malpartida - fmalpartida@gmail.com
+
42 // Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com
+
43 // ---------------------------------------------------------------------------
+
44 #ifndef LiquidCrystal_SI2C_h
+
45 #define LiquidCrystal_SI2C_h
+
46 
+
47 #if defined (__AVR__)
+
48 
+
49 #include <inttypes.h>
+
50 #include <Print.h>
+
51 
+
52 #include "SI2CIO.h"
+
53 #include "LCD.h"
+
54 
+
55 
+
56 class LiquidCrystal_SI2C : public LCD
+
57 {
+
58 public:
+
59 
+
69  LiquidCrystal_SI2C (uint8_t lcd_Addr);
+
70  // Constructor with backlight control
+
71  LiquidCrystal_SI2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol);
+
72 
+
85  LiquidCrystal_SI2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
+
86  // Constructor with backlight control
+
87  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
88  uint8_t backlighPin, t_backlightPol pol);
+
89 
+
106  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
107  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
108  // Constructor with backlight control
+
109  LiquidCrystal_SI2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
110  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
111  uint8_t backlighPin, t_backlightPol pol);
+
128  virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+
129 
+
142  virtual void send(uint8_t value, uint8_t mode);
+
143 
+
152  void setBacklightPin ( uint8_t value, t_backlightPol pol );
+
153 
+
163  void setBacklight ( uint8_t value );
+
164 
+
181  void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
+
182  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
183 
+
184 private:
+
185 
+
191  int init();
+
192 
+
193 
+
202  void write4bits(uint8_t value, uint8_t mode);
+
203 
+
210  void pulseEnable(uint8_t);
+
211 
+
212 
+
213  uint8_t _Addr; // I2C Address of the IO expander
+
214  uint8_t _backlightPinMask; // Backlight IO pin mask
+
215  uint8_t _backlightStsMask; // Backlight status mask
+
216  SI2CIO _si2cio; // I2CIO PCF8574* expansion module driver I2CLCDextraIO
+
217  uint8_t _En; // LCD expander word for enable pin
+
218  uint8_t _Rw; // LCD expander word for R/W pin
+
219  uint8_t _Rs; // LCD expander word for Register Select pin
+
220  uint8_t _data_pins[4]; // LCD data lines
+
221 
+
222 };
+
223 
+
224 #else
+
225 #error "ONLY SUPPORTED ON AVR PROCESSORS"
+
226 #endif // defined (__AVR__)
+
227 
+
228 #endif
+
Definition: LCD.h:199
+
virtual void setBacklightPin(uint8_t value, t_backlightPol pol)
Definition: LCD.h:498
+
virtual void setBacklight(uint8_t value)
Definition: LCD.h:517
+
virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition: LCD.cpp:91
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b4c991b16460287a6cddffa3509fc022b633c605 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r1_w_8h_source.html @@ -0,0 +1,444 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR1W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR1W.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created/Adapted by Stephen Erisman 2013-07-06
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // @file LiquidCrystal_SR1W.h
+
22 // Connects a hd44780 LCD using 1 pin from the Arduino, via an 8-bit Latching
+
23 // ShiftRegister (SR1W from now on).
+
24 //
+
25 // @brief
+
26 // This is the 1 wire shift register interface class for the LCD library
+
27 //
+
28 // The functionality provided by this class and its base class is a superset of
+
29 // the original functionality of the Arduino LiquidCrystal library and can
+
30 // be used as such.
+
31 // See the LCD class for a full description of the API functions available.
+
32 //
+
33 // It works with a 8-bit latched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
34 // shift register, and an hd44780 LCD in 4-bit mode.
+
35 // The 74HC595 shift register has been tested.
+
36 //
+
37 //
+
38 // 1 Pin required from the Arduino:
+
39 // - Serial PIN:
+
40 // The Serial PIN is wired directly to the shift register's Clock PIN and its
+
41 // unaltered signal directly triggers the Clock on every LOW to HIGH transition.
+
42 //
+
43 // Additionally, the Serial PIN is wired through a resistor capacitor (RC) filter to
+
44 // the shift register's Data PIN. During a quick transition of the Serial PIN the
+
45 // RC filter will maintain the Data PIN's previous value because the capacitor isn't
+
46 // given enough time to charge (or discharge) to the alternate state. If the transition
+
47 // is held for enough time, however, the RC capacitor will charge (or discharge) and the
+
48 // value seen by the Data PIN will have changed state.
+
49 //
+
50 // There are two circuit versions that behave differently for Latch, Enable, and Clear:
+
51 //
+
52 // HW_CLEAR version:
+
53 // In this version the shift register's Latch and LCD's Enable PINs are wired directly to
+
54 // the shift register's Q'H output. The shift register's /Clear PIN is then wired up
+
55 // through two logic "gates": first QH and Q'H are AND'd together with a diode-resistor
+
56 // "gate" the output of which is NAND'd with VCC using a resistor-NPN-resistor "gate".
+
57 // So, /CLR = ((QH AND Q'H) NAND VCC). We also put a capacitor on the NPN base to GND
+
58 // to delay the signal a bit and allow the Latch and EN signals some extra time to trigger.
+
59 //
+
60 // This all fits together as follows:
+
61 // 1. We shift in a '1'.
+
62 // 2. Ws shift in the other 7 bits.
+
63 // 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH.
+
64 // 4. When Q'H is HIGH it causes Latch and EN to also go HIGH.
+
65 // 5. When Latch transitions to HIGH it changes the shift register outputs to the bits
+
66 // that were shifted in.
+
67 // 6. This causes QH to go HIGH (if it wasn't already).
+
68 // 7. Now that QH AND Q'H are both HIGH they causes the base capacitor to start charging.
+
69 // 8. When the capacitor has charged enough the transistor brings /CLR LOW.
+
70 // 8. This will cause /CLR to trigger and the shift register will be cleared
+
71 // (NOTE: This doesn't change the latched outputs)
+
72 // 9. The clearing of the shift register causes Q'H to go LOW.
+
73 // 9. When Q'H is LOW it causes Latch and EN to also go LOW.
+
74 // 10. When EN transitions to LOW the LCD reads in the bits on the shift register pins
+
75 // and does it's thing.
+
76 // 11. Now that Q'H is LOW the base capacitor starts discharging.
+
77 // 12. When the capacitor has discharged enough the transistor will stop sinking /CLR.
+
78 // 13. This will cause /CLR to be pulled back up to HIGH by the VCC pullup resistor
+
79 // (it will stay that way until our next nibble/byte has been shifted in)
+
80 // 14. We are now ready for our next nibble/byte.
+
81 //
+
82 //
+
83 // SW_CLEAR version:
+
84 // In this version the Serial PIN is wired to the shift register's Latch and LCD's Enable
+
85 // PINs through another RC filter. These PINs are also wired through a diode (AND "gate")
+
86 // tied to the shift register's Q'H output. This combination means that the Latch and
+
87 // Enable PINs will be held LOW as long as EITHER the Q'H or RC output is LOW.
+
88 //
+
89 // This all fits together as follows:
+
90 // 1. We shift in a '1'.
+
91 // 2. We shift in the other 7 bits. (NOTE: We leave Serial PIN HIGH at the end of this)
+
92 // 3. At this point the first '1' has been shifted into Q'H causing it to go HIGH.
+
93 // (NOTE: Up until this time Q'H has been LOW so the attached diode has been keeping
+
94 // the Latch/EN pins LOW.)
+
95 // 4. Now that Q'H is HIGH it causes the attached diode to stop discharging the Latch/EN
+
96 // capacitor. We delay here for a while to make sure it is fully charged.
+
97 // 5. When the capacitor has charged enough Latch/EN will be HIGH
+
98 // 5. When Latch transitions to HIGH it changes the shift register outputs to what was
+
99 // shifted in.
+
100 // 6. We now bring the Serial PIN LOW and wait for the Latch/EN capacitor to discharge.
+
101 // 7. When the capacitor has discharged enough Latch/EN will be LOW
+
102 // 8. When EN transitions to LOW the LCD reads in the bits on the shift register pins
+
103 // and does it's thing.
+
104 // 9. We now shift in '0' 8 times (as quickly as possible).
+
105 // 10. If we keep the LOW to HIGH to LOW pulses short enough while shifting in the '0's
+
106 // the Latch/EN capacitor won't have time to charge to a point where it will re-trigger
+
107 // the Latch/EN pins.
+
108 // 11. Now Q'H will be LOW and the shift register has been cleared (NOTE: This doesn't
+
109 // change the latched outputs.)
+
110 // 12. We now bring the Serial PIN HIGH again and wait for the Data capacitor to recharge.
+
111 // 13. When the Data capacitor has fully charged we are ready for our next nibble/byte.
+
112 //
+
113 //
+
114 // These designs incorporate (and merge) ideas originally found here (1-wire concept):
+
115 // http://www.romanblack.com/shift1.htm
+
116 // and here (diode-resistor AND "gate" EN control):
+
117 // http://www.rentron.com/Myke1.htm
+
118 // as well as introducing some new and original ideas (particularly how HW_CLEAR works).
+
119 //
+
120 // Because of its use of the diode AND "gate", the SW_CLEAR design allows for faster sending
+
121 // of data to the LCD compared to Roman's original design. With the proposed 5uS delay (see
+
122 // notes below), a byte can be sent to the LCD in as little as 30 uS (plus overhead) when
+
123 // sending all 1's. This increases to as much as 190 uS (plus overhead) when sending all 0's.
+
124 // This is in comparison to Roman's estimate of around 3-4 mS to send a byte. So this
+
125 // implementation is 15-133 times faster for the cost of a single (1N4148 or similar) diode.
+
126 //
+
127 // The HW_CLEAR version is even faster as it can completely eliminate the clearSR() call as
+
128 // well as the delays that are needed to latch the data in the SW_CLEAR version.
+
129 //
+
130 //
+
131 // Default Shift Register Bits - Shifted MSB first:
+
132 // Bit #0 (QA) - not used
+
133 // Bit #1 (QB) - connects to LCD data input D7
+
134 // Bit #2 (QC) - connects to LCD data input D6
+
135 // Bit #3 (QD) - connects to LCD data input D5
+
136 // Bit #4 (QE) - connects to LCD data input D4
+
137 // Bit #5 (QF) - optional backlight control
+
138 // Bit #6 (QG) - connects to RS (Register Select) on the LCD
+
139 // Bit #7 (QH) - used for /CLR on the HW_CLEAR version (cannot be changed)
+
140 // (Q'H) - used for Latch/EN (via the diode AND "gate") (cannot be changed)
+
141 //
+
142 // NOTE: Any of these can be changed around as needed EXCEPT Bit #7 (QH and Q'H).
+
143 //
+
144 //
+
145 // Circuit Types (for the 74HC595)
+
146 // -------------------------------
+
147 // The 74HC595 is a latching shift register. See the explanations above for how these circuits
+
148 // work.
+
149 //
+
150 //
+
151 // HW_CLEAR version: (Faster but higher part count)
+
152 // ------------------------------------------------
+
153 //
+
154 // 74HC595 (VCC)
+
155 // +----u----+ | 2.2nF
+
156 // (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND)
+
157 // (LCD D6)------------2-|QC QA|-15 |
+
158 // (LCD D5)------------3-|QD SER|-14-------+--[ Resistor ]--+
+
159 // (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k |
+
160 // (BL Circuit)--------5-|QF RCK|-12-----+ |
+
161 // | | \ |
+
162 // (LCD RS)------------6-|QG SCK|-11-------)----------------+--(Serial PIN)
+
163 // | | |
+
164 // +-------7-|QH /CLR|-10-------)--+--[ Resistor ]--(VCC)
+
165 // | | | / | 1k
+
166 // | +--8-|GND Q'H|--9-----+ |
+
167 // | | +---------+ | | (GND)--(LCD RW)
+
168 // | | 0.1uF | \
+
169 // | (GND)-----||----(VCC) +------)--------------(LCD EN)
+
170 // | | /
+
171 // |----|<|----+--[ Resistor ]--| |
+
172 // diode | 1k C
+
173 // | |
+
174 // +-------------+---B-|> (NPN)
+
175 // | |
+
176 // (2.2nF) = E
+
177 // | |
+
178 // (GND) (GND)
+
179 //
+
180 //
+
181 // SW_CLEAR version: (Lower part count but slower)
+
182 // -----------------------------------------------
+
183 //
+
184 // 74HC595 (VCC)
+
185 // +----u----+ | 2.2nF
+
186 // (LCD D7)------------1-|QB VCC|-16--+ +----||----(GND)
+
187 // (LCD D6)------------2-|QC QA|-15 |
+
188 // (LCD D5)------------3-|QD SER|-14---------+--[ Resistor ]--+
+
189 // (LCD D4)------------4-|QE /OE|-13--(GND) 1.5k |
+
190 // (BL Circuit)--------5-|QF RCK|-12---------+ |
+
191 // | | \ |
+
192 // (LCD RS)------------6-|QG SCK|-11-----------)--------------+--(Serial PIN)
+
193 // 7-|QH /CLR|-10--(VCC) / |
+
194 // +--8-|GND Q'H|--9---|<|---+--[ Resistor ]--+
+
195 // | +---------+ diode | 1.5k
+
196 // | |
+
197 // | 0.1uF |
+
198 // (GND)-----||----(VCC) +----||----(GND)
+
199 // | 2.2nF
+
200 // (LCD EN)-------------------------------------+
+
201 // (LCD RW)--(GND)
+
202 //
+
203 //
+
204 // In either case the LCD RW pin is hardwired to GND meaning we will only be able to write
+
205 // to the LCD.
+
206 // Therefore, the Busy Flag (BF, data bit D7) is not able to be read and we have to make use
+
207 // of the minimum delay time constraints. This isn't really a problem because it usually
+
208 // takes us longer to shift and latch the data than the minimum delay anyway. For now, we
+
209 // simply keep track of our delays and add more delay at the end to get to at least 37 uS.
+
210 //
+
211 //
+
212 // Backlight Control Circuit
+
213 // -------------------------
+
214 // Since we are using the latching nature of the shift resiter we don't need the extra
+
215 // backlight circuitry that SR2W uses. Keeping it around, however, would still work because
+
216 // the circuit just slows down the transitions to the mosfet a bit.
+
217 //
+
218 // Here are two more optimized versions that can be used.
+
219 //
+
220 //
+
221 // NPN Transistor version: (Cheaper but more power draw and higher part count)
+
222 // ---------------------------------------------------------------------------
+
223 //
+
224 // (value depends on LCD, 100ohm is usually safe)
+
225 // (LCD BL anode)---[ resistor ]---(VCC)
+
226 //
+
227 // (LCD BL cathode)---------------+
+
228 // |
+
229 // C
+
230 // |
+
231 // (BL input)--[ Resistor ]---B-|> (NPN)
+
232 // 1k |
+
233 // E
+
234 // |
+
235 // (GND)
+
236 //
+
237 // NOTE: The Bate resistor is needed because the NPN is current fed. For lower
+
238 // power draw, try a 10k resistor.
+
239 //
+
240 //
+
241 // N-CH Mosfet version: (More costly but less power draw and lower part count)
+
242 // ---------------------------------------------------------------------------
+
243 //
+
244 // (value depends on LCD, 100ohm is usually safe)
+
245 // (LCD BL anode)---[ resistor ]---(VCC)
+
246 //
+
247 // (LCD BL cathode)---------------+
+
248 // |
+
249 // D
+
250 // |
+
251 // (BL input)----------------G-|-< (2N7000 FET)
+
252 // |
+
253 // S
+
254 // |
+
255 // (GND)
+
256 //
+
257 // NOTE: Gate resistor not needed because the mosfet is voltage fed and only really
+
258 // pulls current while switching.
+
259 //
+
260 // In either case, when the BL input is HIGH the LCD backlight will turn on.
+
261 //
+
262 //
+
263 // History
+
264 // 2013.07.31 serisman - fixed potential interrupt bug and made more performance optimizations
+
265 // 2013.07.10 serisman - more performance optimizations and modified the HW_CLEAR circuit a bit
+
266 // 2013.07.09 serisman - added an even faster version that performs the clear in hardware
+
267 // 2013.07.08 serisman - changed code to shift data MSB first to match SR2W
+
268 // 2013.07.07 serisman - major speed optimization
+
269 // 2013.07.06 serisman - created/modified from SR2W source to create SR1W
+
270 // @author S. Erisman - arduino@serisman.com
+
271 // --------------------------------------------------------------------------------
+
272 
+
273 #ifndef _LIQUIDCRYSTAL_SR1W_
+
274 #define _LIQUIDCRYSTAL_SR1W_
+
275 
+
276 #if defined (__AVR__)
+
277 
+
278 #include <inttypes.h>
+
279 #include "LCD.h"
+
280 #include "FastIO.h"
+
281 
+
282 // 1-wire SR timing constants
+
283 // ---------------------------------------------------------------------------
+
284 
+
285 // NOTE:
+
286 // The 1.5k resistor (1.2k - 1.8k with a 20% tolerance)
+
287 // takes between 2.376uS and 4.36uS to fully charge or discharge
+
288 // the 2.2n capacitor (1.98n - 2.42n with a 10% tolerance).
+
289 // We round this up to a 5uS delay to provide an additional safety margin.
+
290 
+
291 #define SR1W_DELAY_US 5
+
292 #define SR1W_DELAY() { delayMicroseconds(SR1W_DELAY_US); numDelays++; }
+
293 
+
294 // 1-wire SR output bit constants
+
295 // ---------------------------------------------------------------------------
+
296 
+
297 #define SR1W_UNUSED_MASK 0x01 // Set unused bit(s) to '1' as they are slightly faster to clock in.
+
298 #define SR1W_D7_MASK 0x02
+
299 #define SR1W_D6_MASK 0x04
+
300 #define SR1W_D5_MASK 0x08
+
301 #define SR1W_D4_MASK 0x10
+
302 #define SR1W_BL_MASK 0x20
+
303 #define SR1W_RS_MASK 0x40
+
304 #define SR1W_EN_MASK 0x80 // This cannot be changed. It has to be the first thing shifted in.
+
305 
+
306 #define SR1W_ATOMIC_WRITE_LOW(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg &= ~mask; }
+
307 #define SR1W_ATOMIC_WRITE_HIGH(reg, mask) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { *reg |= mask; }
+
308 
+
309 
+
310 typedef enum { SW_CLEAR, HW_CLEAR } t_sr1w_circuitType;
+
311 
+
312 class LiquidCrystal_SR1W : public LCD
+
313 {
+
314 public:
+
326  LiquidCrystal_SR1W (uint8_t srdata, t_sr1w_circuitType circuitType,
+
327  t_backlightPol blpol = POSITIVE);
+
328 
+
341  virtual void send(uint8_t value, uint8_t mode);
+
342 
+
343 
+
353  void setBacklight ( uint8_t mode );
+
354 
+
355 private:
+
356 
+
362  void init ( uint8_t srdata, t_sr1w_circuitType circuitType, t_backlightPol blpol,
+
363  uint8_t lines, uint8_t font );
+
364 
+
370  uint8_t clearSR ();
+
371 
+
376  uint8_t loadSR (uint8_t val);
+
377 
+
378  fio_register _srRegister; // Serial PIN
+
379  fio_bit _srMask;
+
380 
+
381  t_sr1w_circuitType _circuitType;
+
382 
+
383  uint8_t _blPolarity;
+
384  uint8_t _blMask;
+
385 };
+
386 
+
387 #else
+
388 #error "ONLY SUPPORTED ON AVR PROCESSORS"
+
389 #endif // defined (__AVR__)
+
390 
+
391 #endif
+
Definition: LCD.h:199
+
virtual void setBacklight(uint8_t value)
Definition: LCD.h:517
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..0ad974afae74e39f4adcd1e123f1ec01afb7373f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r2_w_8h_source.html @@ -0,0 +1,275 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created/Adapted by Bill Perry 2012-03-16
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // @file LiquidCrystal_SR2W.h
+
22 // Connects a hd44780 LCD using 2 pins from the Arduino, via an 8-bit
+
23 // ShiftRegister (SR2W from now on).
+
24 //
+
25 // @brief
+
26 // This is the 2 wire shift register interface class for the LCD library
+
27 //
+
28 // The functionality provided by this class and its base class is a superset of
+
29 // the original functionality of the Arduino LiquidCrystal library and can
+
30 // be used as such.
+
31 // See the LCD class for a full description of the API functions available.
+
32 //
+
33 // It works with a 8-bit unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
34 // shift register (IE a very simple SR), and an hd44780 LCD in 4-bit mode.
+
35 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+
36 // 74LS164 and 74HC595 have been exstensively tested.
+
37 //
+
38 //
+
39 // 2 Pins required from the Arduino:
+
40 // - Data/Enable
+
41 // - Clock
+
42 // The Data pin is also used to control the enable signal
+
43 // LCD RW-pin hardwired to LOW (only writing to LCD).
+
44 // Busy Flag (BF, data bit D7) is not read.
+
45 //
+
46 // Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+
47 //
+
48 // Shift register bits
+
49 // Bit #0 - (cannot be used on 74HC595)
+
50 // Bit #1 - optional backlight control
+
51 // Bit #2 - connects to RS (Register Select) on the LCD
+
52 // Bit #3 - connects to LCD data inputs D4
+
53 // Bit #4 - connects to LCD data inputs D5
+
54 // Bit #5 - connects to LCD data inputs D6
+
55 // Bit #6 - connects to LCD data inputs D7
+
56 // Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate")
+
57 //
+
58 // Wiring for a 74LS164
+
59 // ---------------------
+
60 // 1k/4.7k
+
61 // +--------[ Resistor ]--------+---(LCD Enable)
+
62 // | |
+
63 // | 74LS164 (VCC) |
+
64 // | +----u----+ | _V_ diode
+
65 // (data pin)---+---+--1-|A VCC|-14-+ |
+
66 // | | | |
+
67 // +--2-|B Q7|-13------+
+
68 // 3-|Q0 Q6|-12--(LCD D7)
+
69 // (BL Circuit)--------4-|Q1 Q5|-11--(LCD D6)
+
70 // (LCD RS)------------5-|Q2 Q4|-10--(LCD D5)
+
71 // (LCD D4)------------6-|Q3 /MR|--9--(VCC)
+
72 // +-7-|GND CP|--8--(clock pin)
+
73 // | +---------+
+
74 // | 0.1uf
+
75 // (gnd)-----||----(vcc)
+
76 //
+
77 // Wiring for a 74HC595
+
78 // --------------------
+
79 // NOTE: the 74HC595 is a latching shift register. In order to get it to operate
+
80 // in a "non latching" mode, RCLK and SCLK are tied together. The side effect of this
+
81 // is that the latched output is one clock behind behind the internal shift register bits.
+
82 // To compensate for this the wiring is offset by one bit position lower.
+
83 // For example, while the backlight is hooked to Q0 it is still using bit 1 of
+
84 // of the shift register because the outputs are 1 clock behind the real internal shift
+
85 // register.
+
86 //
+
87 // 74HC595 (VCC)
+
88 // +----u----+ | +-----------------------(BL circuit)
+
89 // (LCD RS)------------1-|Q1 VCC|-16-+ | +--------------------(data pin)
+
90 // (LCD D4)------------2-|Q2 Q0|-15----+ | 1k/4.7k
+
91 // (LCD D5)------------3-|Q3 SER|-14-------+---[ Resistor ]--+--(LCD Enable)
+
92 // (LCD D6)------------4-|Q4 /OE|-13--(gnd) |
+
93 // (LCD D7)------------5-|Q5 RCLK|-12-------+ |
+
94 // | | | |
+
95 // +------6-|Q6 SCLK|-11-------+--(clock pin) |
+
96 // | 7-|Q7 /MR|-10--(VCC) |
+
97 // | +-8-|GND Q6'|--9 |
+
98 // | | +---------+ diode _V_
+
99 // | | 0.1uf |
+
100 // | (gnd)-----||----(vcc) |
+
101 // +-----------------------------------------------+
+
102 //
+
103 //
+
104 // Backlight Control circuit
+
105 // -------------------------
+
106 // Because the shift resiter is not latching the outputs, the backlight circuitry
+
107 // will "see" the output bits as they are shifted into the shift register which
+
108 // can cause the backlight to flicker rather than remain constantly on/off.
+
109 // The circuit below slows down the transitions to the transistor to remove
+
110 // the visible flicker. When the BL input is HIGH the LCD backlight will turn on.
+
111 //
+
112 // (value depends on LCD, 100ohm is usually safe)
+
113 // (LCD BL anode)---[ resistor ]---(vcc)
+
114 //
+
115 // (LCD BL cathode)-------------------------------+
+
116 // |
+
117 // D
+
118 // |
+
119 // (BL input)----[ 4.7k Resistor ]----+-------G-|-< (2N7000 FET)
+
120 // | |
+
121 // (0.1uf) = S
+
122 // | |
+
123 // (gnd) (gnd)
+
124 //
+
125 //
+
126 //
+
127 //
+
128 // History
+
129 // 2012.03.16 bperrybap - creation/adaption from SR header to create SR2W header.
+
130 // Fixed typo in SR2W mask define names
+
131 // @author B. Perry - bperrybap@opensource.billsworld.billandterrie.com
+
132 // --------------------------------------------------------------------------------
+
133 #ifndef _LIQUIDCRYSTAL_SR2W_
+
134 #define _LIQUIDCRYSTAL_SR2W_
+
135 
+
136 #include <inttypes.h>
+
137 #include "LCD.h"
+
138 #include "FastIO.h"
+
139 
+
140 
+
141 // two-wire SR output bit constants
+
142 // ---------------------------------------------------------------------------
+
143 
+
144 #define SR2W_BL_MASK 0x02
+
145 #define SR2W_RS_MASK 0x04
+
146 #define SR2W_DATA_MASK 0x78 // data bits are hard coded to be SR bits 6,5,4,3
+
147 #define SR2W_EN_MASK 0x80 // cannot ever be changed
+
148 
+
149 class LiquidCrystal_SR2W : public LCD
+
150 {
+
151 public:
+
163  LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlightPol blpol = POSITIVE);
+
164 
+
177  virtual void send(uint8_t value, uint8_t mode);
+
178 
+
179 
+
189  void setBacklight ( uint8_t mode );
+
190 
+
191 private:
+
192 
+
198  void init ( uint8_t srdata, uint8_t srclock, t_backlightPol blpol, uint8_t lines, uint8_t font );
+
199 
+
204  void loadSR (uint8_t val);
+
205 
+
206  fio_register _srDataRegister; // Serial Data pin
+
207  fio_bit _srDataMask;
+
208  fio_register _srClockRegister; // Clock Pin
+
209  fio_bit _srClockMask;
+
210 
+
211  uint8_t _blPolarity;
+
212  uint8_t _blMask;
+
213 };
+
214 #endif
+
void setBacklight(uint8_t mode)
Definition: LiquidCrystal_SR2W.cpp:129
+
Definition: LiquidCrystal_SR2W.h:149
+
LiquidCrystal_SR2W(uint8_t srdata, uint8_t srclock, t_backlightPol blpol=POSITIVE)
Definition: LiquidCrystal_SR2W.cpp:49
+
Definition: LCD.h:199
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR2W.cpp:102
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e587defe3c3cd9846e2caa9f27b4e31811f24fa9 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r3_w_8h_source.html @@ -0,0 +1,232 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 7.3.2012.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal_SR3W.h
+
25 // This file implements a basic liquid crystal library that comes as standard
+
26 // in the Arduino SDK but using a generic SHIFT REGISTER extension board.
+
27 //
+
28 // @brief
+
29 // This is a basic implementation of the LiquidCrystal library of the
+
30 // Arduino SDK. The original library has been reworked in such a way that
+
31 // this class implements the all methods to command an LCD based
+
32 // on the Hitachi HD44780 and compatible chipsets using a 3 wire latching
+
33 // shift register. While it has been tested with a 74HC595N shift register
+
34 // it should also work with other latching shift registers such as the MC14094
+
35 // and the HEF4094
+
36 //
+
37 // This particular driver has been created as generic as possible to enable
+
38 // users to configure and connect their LCDs using just 3 digital IOs from the
+
39 // AVR or Arduino, and connect the LCD to the outputs of the shiftregister
+
40 // in any configuration. The library is configured by passing the IO pins
+
41 // that control the strobe, data and clock of the shift register and a map
+
42 // of how the shiftregister is connected to the LCD.
+
43 //
+
44 //
+
45 // +--------------------------------------------+
+
46 // | MCU |
+
47 // | IO1 IO2 IO3 |
+
48 // +----+-------------+-------------+-----------+
+
49 // | | |
+
50 // | | |
+
51 // +----+-------------+-------------+-----------+
+
52 // | Strobe Data Clock |
+
53 // | 8-bit shift/latch register | 74HC595N
+
54 // | Qa0 Qb1 Qc2 Qd3 Qe4 Qf5 Qg6 Qh7 |
+
55 // +----+----+----+----+----+----+----+----+----+
+
56 // | | | | | | |
+
57 // |11 |12 |13 |14 |6 |5 |4 (LCD pins)
+
58 // +----+----+----+----+----+----+----+----+----+
+
59 // | DB4 DB5 DB6 DB7 E Rw RS |
+
60 // | LCD Module |
+
61 //
+
62 // NOTE: Rw is not used by the driver so it can be connected to GND.
+
63 //
+
64 // The functionality provided by this class and its base class is identical
+
65 // to the original functionality of the Arduino LiquidCrystal library.
+
66 //
+
67 //
+
68 // @author F. Malpartida - fmalpartida@gmail.com
+
69 // ---------------------------------------------------------------------------
+
70 #ifndef _LIQUIDCRYSTAL_SR3W_H_
+
71 #define _LIQUIDCRYSTAL_SR3W_H_
+
72 
+
73 #include <inttypes.h>
+
74 #include "LCD.h"
+
75 #include "FastIO.h"
+
76 
+
77 
+
78 class LiquidCrystal_SR3W : public LCD
+
79 {
+
80 public:
+
81 
+
102  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe);
+
103  // Constructor with backlight control
+
104  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+
105  uint8_t backlighPin, t_backlightPol pol);
+
106 
+
124  LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe,
+
125  uint8_t En, uint8_t Rw, uint8_t Rs,
+
126  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
+
127  // Constructor with backlight control
+
128  LiquidCrystal_SR3W( uint8_t data, uint8_t clk, uint8_t strobe,
+
129  uint8_t En, uint8_t Rw, uint8_t Rs,
+
130  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
+
131  uint8_t backlighPin, t_backlightPol pol);
+
132 
+
145  virtual void send(uint8_t value, uint8_t mode);
+
146 
+
157  void setBacklightPin ( uint8_t value, t_backlightPol pol );
+
158 
+
168  void setBacklight ( uint8_t value );
+
169 
+
170 private:
+
171 
+
177  int init(uint8_t data, uint8_t clk, uint8_t strobe,
+
178  uint8_t Rs, uint8_t Rw, uint8_t En,
+
179  uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
+
180 
+
189  void write4bits(uint8_t value, uint8_t mode);
+
190 
+
197  void loadSR(uint8_t value);
+
198 
+
199 
+
200  fio_bit _strobe; // shift register strobe pin
+
201  fio_register _strobe_reg; // SR strobe pin MCU register
+
202  fio_bit _data; // shift register data pin
+
203  fio_register _data_reg; // SR data pin MCU register
+
204  fio_bit _clk; // shift register clock pin
+
205  fio_register _clk_reg; // SR clock pin MCU register
+
206  uint8_t _En; // LCD expander word for enable pin
+
207  uint8_t _Rw; // LCD expander word for R/W pin
+
208  uint8_t _Rs; // LCD expander word for Register Select pin
+
209  uint8_t _data_pins[4]; // LCD data lines
+
210  uint8_t _backlightPinMask; // Backlight IO pin mask
+
211  uint8_t _backlightStsMask; // Backlight status mask
+
212 
+
213 };
+
214 
+
215 #endif
+
216 
+
Definition: LiquidCrystal_SR3W.h:78
+
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)
Definition: LiquidCrystal_SR3W.cpp:148
+
Definition: LCD.h:199
+
void setBacklight(uint8_t value)
Definition: LiquidCrystal_SR3W.cpp:206
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR3W.cpp:177
+
void setBacklightPin(uint8_t value, t_backlightPol pol)
Definition: LiquidCrystal_SR3W.cpp:198
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6a456b513cafb45fa5cbe75942a3daa3b2ed13eb --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_liquid_crystal___s_r_8h_source.html @@ -0,0 +1,241 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file LiquidCrystal_SR.h
+
25 // Connects an LCD using 2 or 3 pins from the Arduino, via an 8-bit
+
26 // ShiftRegister (SR from now on).
+
27 //
+
28 // @brief
+
29 // This is a port of the ShiftRegLCD library from raron and ported to the
+
30 // LCD library.
+
31 //
+
32 // The functionality provided by this class and its base class is identical
+
33 // to the original functionality of the Arduino LiquidCrystal library and can
+
34 // be used as such.
+
35 //
+
36 // Modified to work serially with the shiftOut() function, an 8-bit
+
37 // unlatched, no-tristate, unidirectional SIPO (Serial-In-Parallel-Out)
+
38 // shift register (IE a very simple SR), and an LCD in 4-bit mode.
+
39 // Any such shift register should do (pref. 74LS family IC's for 2-wire).
+
40 // I used 74LS164, for the reason that's what I had at hand.
+
41 //
+
42 // Connection description:
+
43 //
+
44 // SR output:
+
45 // Bit #0 - N/C - not connected, used to hold a zero
+
46 // Bit #1 - N/C
+
47 // Bit #2 - connects to RS (Register Select) on the LCD
+
48 // Bits #3-6 - connects to LCD data inputs D4 - D7.
+
49 // Bit #7 - enables the LCD enable-puls (via the diode-resistor AND "gate")
+
50 //
+
51 // 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
+
52 // If not using Enable, the Data pin will be used for the enable signal.
+
53 // 2 wire mode can be indicated by:
+
54 // - ommitting the enable pin in constructor
+
55 // - defining the same pin for Enable as for Data in constructor
+
56 // - by using the token TWO_WIRE for the enable pin.
+
57 //
+
58 // Data and Clock outputs/pins goes to the shiftregister.
+
59 // LCD RW-pin hardwired to LOW (only writing to LCD).
+
60 // Busy Flag (BF, data bit D7) is not read.
+
61 //
+
62 // Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
+
63 //
+
64 //
+
65 // History
+
66 // 2012.03.29 bperrybap - can now eliminate enable pin in constructor for two wire mode.
+
67 // 2011.10.29 fmalpartida - adaption of the library to the LCD class hierarchy.
+
68 // 2011.07.02 Fixed a minor flaw in setCursor function. No functional change,
+
69 // just a bit more memory efficient.
+
70 // Thanks to CapnBry (from google code and github) who noticed it.
+
71 // URL to his version of shiftregLCD:
+
72 // https://github.com/CapnBry/HeaterMeter/commit/c6beba1b46b092ab0b33bcbd0a30a201fd1f28c1
+
73 // 2009.07.30 raron - minor corrections to the comments.
+
74 // Fixed timing to datasheet safe. Fixed keyword highlights.
+
75 // 2009.07.28 Mircho / raron - a new modification to the schematics, and a
+
76 // more streamlined interface
+
77 // 2009.07.27 Thanks to an excellent suggestion from mircho at the Arduiono
+
78 // playgrond forum, the number of wires now required is only two!
+
79 // 2009.07.25 raron - Fixed comments. I really messed up the comments before
+
80 // posting this, so I had to fix it.
+
81 // Renamed a function, but no improvements or functional changes.
+
82 // 2009.07.23 Incorporated some proper initialization routines
+
83 // inspired (lets say copy-paste-tweaked) from LiquidCrystal
+
84 // library improvements from LadyAda.
+
85 // 2009.05.23 raron - first version, but based mostly (as in almost verbatim)
+
86 // on the "official" LiquidCrystal library.
+
87 //
+
88 //
+
89 //
+
90 // @author F. Malpartida - fmalpartida@gmail.com
+
91 // ---------------------------------------------------------------------------
+
92 #ifndef _LIQUIDCRYSTAL_SR_
+
93 #define _LIQUIDCRYSTAL_SR_
+
94 
+
95 #include <inttypes.h>
+
96 #include "LCD.h"
+
97 #include "FastIO.h"
+
98 
+
99 
+
100 // two-wire indicator constant
+
101 // ---------------------------------------------------------------------------
+
102 #define TWO_WIRE 204
+
103 #define SR_RS_BIT 0x04
+
104 #define SR_EN_BIT 0x80
+
105 
+
106 class LiquidCrystal_SR : public LCD
+
107 {
+
108 public:
+
120  LiquidCrystal_SR ( uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE );
+
121 
+
134  virtual void send(uint8_t value, uint8_t mode);
+
135 
+
136 
+
146  void setBacklightPin ( uint8_t pin, t_backlightPol pol );
+
147 
+
157  void setBacklight ( uint8_t mode );
+
158 
+
159 private:
+
160 
+
166  void init ( uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines,
+
167  uint8_t font );
+
168 
+
173  void shiftIt (uint8_t val);
+
174 
+
175  uint8_t _enable_pin; // Enable Pin
+
176  uint8_t _two_wire; // two wire mode
+
177 
+
178  fio_register _srDataRegister; // Serial Data pin
+
179  fio_bit _srDataBit;
+
180  fio_register _srClockRegister; // Clock Pin
+
181  fio_bit _srClockBit;
+
182  fio_register _srEnableRegister; // Enable Pin
+
183  fio_bit _srEnableBit;
+
184 
+
185 };
+
186 
+
187 #endif
+
188 
+
Definition: LCD.h:199
+
LiquidCrystal_SR(uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)
Definition: LiquidCrystal_SR.cpp:110
+
void setBacklightPin(uint8_t pin, t_backlightPol pol)
Definition: LiquidCrystal_SR.cpp:214
+
void setBacklight(uint8_t mode)
Definition: LiquidCrystal_SR.cpp:219
+
virtual void send(uint8_t value, uint8_t mode)
Definition: LiquidCrystal_SR.cpp:184
+
Definition: LiquidCrystal_SR.h:106
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_s_i2_c_i_o_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_s_i2_c_i_o_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6fab32b4d15d41f2ba593a6ff0751b11e1ccd92c --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_s_i2_c_i_o_8h_source.html @@ -0,0 +1,179 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/SI2CIO.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/SI2CIO.h
+
+
+
1 // ---------------------------------------------------------------------------
+
2 // Created by Francisco Malpartida on 20/08/11.
+
3 // Copyright (C) - 2018
+
4 //
+
5 // This program is free software: you can redistribute it and/or modify
+
6 // it under the terms of the GNU General Public License as published by
+
7 // the Free Software Foundation, either version 3 of the License, or
+
8 // any later version.
+
9 //
+
10 // This program is distributed in the hope that it will be useful,
+
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
13 // GNU General Public License for more details.
+
14 //
+
15 // You should have received a copy of the GNU General Public License v3.0
+
16 // along with this program.
+
17 // If not, see <https://www.gnu.org/licenses/gpl-3.0.en.html>.
+
18 //
+
19 // ---------------------------------------------------------------------------
+
20 //
+
21 // Thread Safe: No
+
22 // Extendable: Yes
+
23 //
+
24 // @file SI2CIO.h
+
25 // This file implements a basic IO library using the PCF8574 I2C IO Expander
+
26 // chip, but using software I2C.
+
27 //
+
28 // @brief
+
29 // Implement a basic IO library to drive the PCF8574* I2C IO Expander ASIC.
+
30 // The library implements basic IO general methods to configure IO pin direction
+
31 // read and write uint8_t operations and basic pin level routines to set or read
+
32 // a particular IO port.
+
33 //
+
34 // @version API 1.0.0
+
35 //
+
36 // @author F. Malpartida - fmalpartida@gmail.com
+
37 // Adapted to SoftIC2 by Adrian Piccioli - adrianpiccioli@gmail.com
+
38 // ---------------------------------------------------------------------------
+
39 
+
40 #ifndef _SI2CIO_H_
+
41 #define _SI2CIO_H_
+
42 
+
43 #if defined (__AVR__)
+
44 
+
45 #include <inttypes.h>
+
46 
+
47 #define _SI2CIO_VERSION "1.0.0"
+
48 
+
56 class SI2CIO
+
57 {
+
58 public:
+
64  SI2CIO ( );
+
65 
+
77  int begin ( uint8_t i2cAddr );
+
78 
+
88  void pinMode ( uint8_t pin, uint8_t dir );
+
89 
+
98  void portMode ( uint8_t dir );
+
99 
+
109  uint8_t read ( void );
+
110 
+
123  uint8_t digitalRead ( uint8_t pin );
+
124 
+
138  int write ( uint8_t value );
+
139 
+
151  int digitalWrite ( uint8_t pin, uint8_t level );
+
152 
+
153 
+
154 
+
155 private:
+
156  uint8_t _shadow; // Shadow output
+
157  uint8_t _dirMask; // Direction mask
+
158  uint8_t _i2cAddr; // I2C address
+
159  bool _initialised; // Initialised object
+
160 
+
161 };
+
162 
+
163 #else
+
164 #error "ONLY SUPPORTED ON AVR PROCESSORS"
+
165 #endif // defined (__AVR__)
+
166 
+
167 #endif
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/_soft_i2_c_master_8h_source.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/_soft_i2_c_master_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..9b91a3c03e13dc46de42d778f3edbdde50335dc4 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/_soft_i2_c_master_8h_source.html @@ -0,0 +1,612 @@ + + + + + + +New LiquidCrystal library: /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/SoftI2CMaster.h Source File + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/SoftI2CMaster.h
+
+
+
1 /* Arduino SoftI2C library.
+
2  *
+
3  * This is a very fast and very light-weight software I2C-master library
+
4  * written in assembler. It is based on Peter Fleury's I2C software
+
5  * library: http://homepage.hispeed.ch/peterfleury/avr-software.html
+
6  *
+
7  *
+
8  * This Library is free software: you can redistribute it and/or modify
+
9  * it under the terms of the GNU General Public License as published by
+
10  * the Free Software Foundation, either version 3 of the License, or
+
11  * (at your option) any later version.
+
12  *
+
13  * This Library is distributed in the hope that it will be useful,
+
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16  * GNU General Public License for more details.
+
17  *
+
18  * You should have received a copy of the GNU General Public License
+
19  * along with the Arduino I2cMaster Library. If not, see
+
20  * <http://www.gnu.org/licenses/>.
+
21  */
+
22 
+
23 /* In order to use the library, you need to define SDA_PIN, SCL_PIN,
+
24  * SDA_PORT and SCL_PORT before including this file. Have a look at
+
25  * http://www.arduino.cc/en/Reference/PortManipulation for finding out
+
26  * which values to use. For example, if you use digital pin 3 for
+
27  * SDA and digital pin 13 for SCL you have to use the following
+
28  * definitions:
+
29  * #define SDA_PIN 3
+
30  * #define SDA_PORT PORTB
+
31  * #define SCL_PIN 5
+
32  * #define SCL_PORT PORTB
+
33  *
+
34  * You can also define the following constants (see also below):
+
35  * - I2C_CPUFREQ, when changing CPU clock frequency dynamically
+
36  * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz
+
37  * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz
+
38  * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while
+
39  * communicating (see below). This can be useful if you use the library
+
40  * for communicationg with SMbus devices, which have timeouts.
+
41  * Note, however, that interrupts are disabledfrom issuing a start condition
+
42  * until issuing a stop condition. So use this option with care!
+
43  * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions
+
44  * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout
+
45  */
+
46 
+
47 /* Changelog:
+
48  * Version 1.1:
+
49  * - removed I2C_CLOCK_STRETCHING
+
50  * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout
+
51  * - changed i2c_init to return true iff both SDA and SCL are high
+
52  * - changed interrupt disabling so that the previous IRQ state is retored
+
53  * Version 1.0: basic functionality
+
54  */
+
55 #include <avr/io.h>
+
56 #include <Arduino.h>
+
57 
+
58 #ifndef _SOFTI2C_H
+
59 #define _SOFTI2C_H 1
+
60 
+
61 #if defined (__AVR__)
+
62 
+
63 // Init function. Needs to be called once in the beginning.
+
64 // Returns false if SDA or SCL are low, which probably means
+
65 // a I2C bus lockup or that the lines are not pulled up.
+
66 boolean __attribute__ ((noinline)) i2c_init(void);
+
67 
+
68 // Start transfer function: <addr> is the 8-bit I2C address (including the R/W
+
69 // bit).
+
70 // Return: true if the slave replies with an "acknowledge", false otherwise
+
71 bool __attribute__ ((noinline)) i2c_start(uint8_t addr);
+
72 
+
73 // Similar to start function, but wait for an ACK! Be careful, this can
+
74 // result in an infinite loop!
+
75 void __attribute__ ((noinline)) i2c_start_wait(uint8_t addr);
+
76 
+
77 // Repeated start function: After having claimed the bus with a start condition,
+
78 // you can address another or the same chip again without an intervening
+
79 // stop condition.
+
80 // Return: true if the slave replies with an "acknowledge", false otherwise
+
81 bool __attribute__ ((noinline)) i2c_rep_start(uint8_t addr);
+
82 
+
83 // Issue a stop condition, freeing the bus.
+
84 void __attribute__ ((noinline)) i2c_stop(void) asm("ass_i2c_stop");
+
85 
+
86 // Write one byte to the slave chip that had been addressed
+
87 // by the previous start call. <value> is the byte to be sent.
+
88 // Return: true if the slave replies with an "acknowledge", false otherwise
+
89 bool __attribute__ ((noinline)) i2c_write(uint8_t value) asm("ass_i2c_write");
+
90 
+
91 // Read one byte. If <last> is true, we send a NAK after having received
+
92 // the byte in order to terminate the read sequence.
+
93 uint8_t __attribute__ ((noinline)) i2c_read(bool last);
+
94 
+
95 // You can set I2C_CPUFREQ independently of F_CPU if you
+
96 // change the CPU frequency on the fly. If do not define it,
+
97 // it will use the value of F_CPU
+
98 #ifndef I2C_CPUFREQ
+
99 #define I2C_CPUFREQ F_CPU
+
100 #endif
+
101 
+
102 // If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz
+
103 // is selected. Be aware that not all slave chips may be able to deal with that!
+
104 #ifndef I2C_FASTMODE
+
105 #define I2C_FASTMODE 0
+
106 #endif
+
107 
+
108 // If I2C_FASTMODE is not defined or defined to be 0, then you can set
+
109 // I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher
+
110 // than 25KHz. This could be useful for problematic buses.
+
111 #ifndef I2C_SLOWMODE
+
112 #define I2C_SLOWMODE 0
+
113 #endif
+
114 
+
115 // if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable.
+
116 // This is most probably only necessary if you are using a 1MHz system clock,
+
117 // you are communicating with a SMBus device, and you want to avoid timeouts.
+
118 // Be aware that the interrupt bit is enabled after each call. So the
+
119 // I2C functions should not be called in interrupt routines or critical regions.
+
120 #ifndef I2C_NOINTERRUPT
+
121 #define I2C_NOINTERRUPT 0
+
122 #endif
+
123 
+
124 // I2C_TIMEOUT can be set to a value between 1 and 10000.
+
125 // If it is defined and nonzero, it leads to a timeout if the
+
126 // SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec
+
127 #ifndef I2C_TIMEOUT
+
128 #define I2C_TIMEOUT 0
+
129 #else
+
130 #if I2C_TIMEOUT > 10000
+
131 #error I2C_TIMEOUT is too large
+
132 #endif
+
133 #endif
+
134 
+
135 #define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL
+
136 #if I2C_TIMEOUT_DELAY_LOOPS < 1
+
137 #define I2C_MAX_STRETCH 1
+
138 #else
+
139 #if I2C_TIMEOUT_DELAY_LOOPS > 60000UL
+
140 #define I2C_MAX_STRETCH 60000UL
+
141 #else
+
142 #define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS
+
143 #endif
+
144 #endif
+
145 
+
146 #if I2C_FASTMODE
+
147 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3)
+
148 #else
+
149 #if I2C_SLOWMODE
+
150 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3)
+
151 #else
+
152 #define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3)
+
153 #endif
+
154 #endif
+
155 
+
156 // Table of I2C bus speed in kbit/sec:
+
157 // CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz
+
158 // Fast I2C mode 40 80 150 300 400 400
+
159 // Standard I2C mode 40 80 100 100 100 100
+
160 // Slow I2C mode 25 25 25 25 25 25
+
161 
+
162 // constants for reading & writing
+
163 #define I2C_READ 1
+
164 #define I2C_WRITE 0
+
165 
+
166 // map the IO register back into the IO address space
+
167 #define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1)
+
168 #define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1)
+
169 #define SDA_OUT _SFR_IO_ADDR(SDA_PORT)
+
170 #define SCL_OUT _SFR_IO_ADDR(SCL_PORT)
+
171 #define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2)
+
172 #define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2)
+
173 
+
174 #ifndef __tmp_reg__
+
175 #define __tmp_reg__ 0
+
176 #endif
+
177 
+
178 
+
179 // Internal delay functions.
+
180 void __attribute__ ((noinline)) i2c_delay_half(void) asm("ass_i2c_delay_half");
+
181 void __attribute__ ((noinline)) i2c_wait_scl_high(void) asm("ass_i2c_wait_scl_high");
+
182 
+
183 void i2c_delay_half(void)
+
184 { // function call 3 cycles => 3C
+
185 #if I2C_DELAY_COUNTER < 1
+
186  __asm__ __volatile__ (" ret");
+
187  // 7 cycles for call and return
+
188 #else
+
189  __asm__ __volatile__
+
190  (
+
191  " ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t"
+
192  "_Lidelay: \n\t"
+
193  " dec r25 ;decrement counter ;; 4C+xC \n\t"
+
194  " brne _Lidelay ;;5C+(x-1)2C+xC\n\t"
+
195  " ret ;; 9C+(x-1)2C+xC = 7C+xC"
+
196  : : [DELAY] "M" I2C_DELAY_COUNTER : "r25");
+
197  // 7 cycles + 3 times x cycles
+
198 #endif
+
199 }
+
200 
+
201 void i2c_wait_scl_high(void)
+
202 {
+
203 #if I2C_TIMEOUT <= 0
+
204  __asm__ __volatile__
+
205  ("_Li2c_wait_stretch: \n\t"
+
206  " sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t"
+
207  " rjmp _Li2c_wait_stretch \n\t"
+
208  " cln ;signal: no timeout \n\t"
+
209  " ret "
+
210  : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN));
+
211 #else
+
212  __asm__ __volatile__
+
213  ( " ldi r27, %[HISTRETCH] ;load delay counter \n\t"
+
214  " ldi r26, %[LOSTRETCH] \n\t"
+
215  "_Lwait_stretch: \n\t"
+
216  " clr __tmp_reg__ ;do next loop 255 times \n\t"
+
217  "_Lwait_stretch_inner_loop: \n\t"
+
218  " rcall _Lcheck_scl_level ;call check function ;; 12C \n\t"
+
219  " brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t"
+
220  " dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t"
+
221  " brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t"
+
222  " sbiw r26,1 ;dec outer loop counter \n\t"
+
223  " brne _Lwait_stretch ;continue with outer loop \n\t"
+
224  " sen ;timeout -> set N-bit=1 \n\t"
+
225  " rjmp _Lwait_return ;and return with N=1\n\t"
+
226  "_Lstretch_done: ;SCL=1 sensed \n\t"
+
227  " cln ;OK -> clear N-bit \n\t"
+
228  " rjmp _Lwait_return ; and return with N=0 \n\t"
+
229 
+
230  "_Lcheck_scl_level: ;; call = 3C\n\t"
+
231  " cln ;; +1C = 4C \n\t"
+
232  " sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t"
+
233  " rjmp _Lscl_high ;; +0C = 6C \n\t"
+
234  " sen ;; +1 = 7C\n\t "
+
235  "_Lscl_high: "
+
236  " nop ;; +1C = 8C \n\t"
+
237  " ret ;return N-Bit=1 if low ;; +4 = 12C\n\t"
+
238 
+
239  "_Lwait_return:"
+
240  : : [SCLIN] "I" (SCL_IN), [SCLPIN] "I" (SCL_PIN),
+
241  [HISTRETCH] "M" (I2C_MAX_STRETCH>>8),
+
242  [LOSTRETCH] "M" (I2C_MAX_STRETCH&0xFF)
+
243  : "r26", "r27");
+
244 #endif
+
245 }
+
246 
+
247 
+
248 boolean i2c_init(void)
+
249 {
+
250  __asm__ __volatile__
+
251  (" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
252  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
253  " cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t"
+
254  " cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t"
+
255  " clr r24 ;set return value to false \n\t"
+
256  " clr r25 ;set return value to false \n\t"
+
257  " sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t"
+
258  " ret ;if low return with false \n\t"
+
259  " sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t"
+
260  " ret ;if low return with false \n\t"
+
261  " ldi r24,1 ;set return value to true \n\t"
+
262  " ret "
+
263  : :
+
264  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),
+
265  [SCLIN] "I" (SCL_IN), [SCLOUT] "I" (SCL_OUT),
+
266  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
267  [SDAIN] "I" (SDA_IN), [SDAOUT] "I" (SDA_OUT));
+
268  return true;
+
269 }
+
270 
+
271 bool i2c_start(uint8_t addr)
+
272 {
+
273  __asm__ __volatile__
+
274  (
+
275 #if I2C_NOINTERRUPT
+
276  " cli ;clear IRQ bit \n\t"
+
277 #endif
+
278  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
279  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
280  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
281  " rcall ass_i2c_delay_half ;wait T/2 \n\t"
+
282  " rcall ass_i2c_write ;now write address \n\t"
+
283  " ret"
+
284  : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
285  [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN));
+
286  return true; // we never return here!
+
287 }
+
288 
+
289 bool i2c_rep_start(uint8_t addr)
+
290 {
+
291  __asm__ __volatile__
+
292 
+
293  (
+
294 #if I2C_NOINTERRUPT
+
295  " cli \n\t"
+
296 #endif
+
297  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"
+
298  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
299  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
300  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
301  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
302  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
303  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
304  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
305  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
306  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
307  " rcall ass_i2c_write \n\t"
+
308  " ret"
+
309  : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN),[SCLIN] "I" (SCL_IN),
+
310  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN));
+
311  return true; // just to fool the compiler
+
312 }
+
313 
+
314 void i2c_start_wait(uint8_t addr)
+
315 {
+
316  __asm__ __volatile__
+
317  (
+
318  " push r24 ;save original parameter \n\t"
+
319  "_Li2c_start_wait1: \n\t"
+
320  " pop r24 ;restore original parameter\n\t"
+
321  " push r24 ;and save again \n\t"
+
322 #if I2C_NOINTERRUPT
+
323  " cli ;disable interrupts \n\t"
+
324 #endif
+
325  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
326  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
327  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
328  " rcall ass_i2c_delay_half ;delay T/2 \n\t"
+
329  " rcall ass_i2c_write ;write address \n\t"
+
330  " tst r24 ;if device not busy -> done \n\t"
+
331  " brne _Li2c_start_wait_done \n\t"
+
332  " rcall ass_i2c_stop ;terminate write & enable IRQ \n\t"
+
333  " rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t"
+
334  "_Li2c_start_wait_done: \n\t"
+
335  " pop __tmp_reg__ ;pop off orig argument \n\t"
+
336  " ret "
+
337  : : [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN),
+
338  [SCLIN] "I" (SCL_IN),[SCLPIN] "I" (SCL_PIN));
+
339 }
+
340 
+
341 void i2c_stop(void)
+
342 {
+
343  __asm__ __volatile__
+
344  (
+
345  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"
+
346  " sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"
+
347  " rcall ass_i2c_delay_half ;T/2 delay \n\t"
+
348  " cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"
+
349  " rcall ass_i2c_delay_half ;T/2 delay \n\t"
+
350  " sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"
+
351  " rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"
+
352  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
353  " rcall ass_i2c_delay_half \n\t"
+
354 #if I2C_NOINTERRUPT
+
355  " sei ;enable interrupts again!\n\t"
+
356 #endif
+
357  : : [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
358  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN));
+
359 }
+
360 
+
361 bool i2c_write(uint8_t value)
+
362 {
+
363  __asm__ __volatile__
+
364  (
+
365  " sec ;set carry flag \n\t"
+
366  " rol r24 ;shift in carry and shift out MSB \n\t"
+
367  " rjmp _Li2c_write_first \n\t"
+
368  "_Li2c_write_bit:\n\t"
+
369  " lsl r24 ;left shift into carry ;; 1C\n\t"
+
370  "_Li2c_write_first:\n\t"
+
371  " breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t"
+
372  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t"
+
373  " nop \n\t"
+
374  " nop \n\t"
+
375  " nop \n\t"
+
376  " brcc _Li2c_write_low ;;+1/+2=5/6C\n\t"
+
377  " nop ;; +1 = 7C \n\t"
+
378  " cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t"
+
379  " rjmp _Li2c_write_high ;; +2 = 11C \n\t"
+
380  "_Li2c_write_low: \n\t"
+
381  " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t"
+
382  " rjmp _Li2c_write_high ;;+2 = 11C \n\t"
+
383  "_Li2c_write_high: \n\t"
+
384 #if I2C_DELAY_COUNTER >= 1
+
385  " rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t"
+
386 #endif
+
387  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t"
+
388  " cln ;clear N-bit ;;+1 = 14C+X\n\t"
+
389  " nop \n\t"
+
390  " nop \n\t"
+
391  " nop \n\t"
+
392  " sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t"
+
393  " rcall ass_i2c_wait_scl_high \n\t"
+
394  " brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t"
+
395  "_Li2c_write_return_false: \n\t"
+
396  " clr r24 ; return false because of timeout \n\t"
+
397  " rjmp _Li2c_write_return \n\t"
+
398  "_Ldelay_scl_high: \n\t"
+
399 #if I2C_DELAY_COUNTER >= 1
+
400  " rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t"
+
401 #endif
+
402  " rjmp _Li2c_write_bit \n\t"
+
403  " ;; +2 = 20C +2X for one bit-loop \n\t"
+
404  "_Li2c_get_ack: \n\t"
+
405  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t"
+
406  " nop \n\t"
+
407  " nop \n\t"
+
408  " cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t"
+
409 #if I2C_DELAY_COUNTER >= 1
+
410  " rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t"
+
411 #endif
+
412  " clr r25 ;; 17C+2X \n\t"
+
413  " clr r24 ;return 0 ;; 14C + X \n\t"
+
414  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t"
+
415  "_Li2c_ack_wait: \n\t"
+
416  " cln ; clear N-bit ;; 10C + X\n\t"
+
417  " nop \n\t"
+
418  " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t"
+
419  " rcall ass_i2c_wait_scl_high \n\t"
+
420  " brmi _Li2c_write_return_false ;; 13C + X \n\t "
+
421  " sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t"
+
422  " ldi r24,1 ;return true ;; 16C + X \n\t"
+
423 #if I2C_DELAY_COUNTER >= 1
+
424  " rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t"
+
425 #endif
+
426  "_Li2c_write_return: \n\t"
+
427  " nop \n\t "
+
428  " nop \n\t "
+
429  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"
+
430  " ret \n\t"
+
431  " ;; + 4 = 17C + 2X for acknowldge bit"
+
432  ::
+
433  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
434  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN));
+
435  return true; // fooling the compiler
+
436 }
+
437 
+
438 uint8_t i2c_read(bool last)
+
439 {
+
440  __asm__ __volatile__
+
441  (
+
442  " ldi r23,0x01 \n\t"
+
443  "_Li2c_read_bit: \n\t"
+
444  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"
+
445  " cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t"
+
446  " nop \n\t"
+
447  " nop \n\t"
+
448  " nop \n\t"
+
449 #if I2C_DELAY_COUNTER >= 1
+
450  " rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t"
+
451 #endif
+
452  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t"
+
453 #if I2C_DELAY_COUNTER >= 1
+
454  " rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t"
+
455 #endif
+
456  " cln ; clear N-bit ;; 7C + 2X \n\t"
+
457  " nop \n\t "
+
458  " nop \n\t "
+
459  " nop \n\t "
+
460  " sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t"
+
461  " rcall ass_i2c_wait_scl_high \n\t"
+
462  " brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t"
+
463  " clc ;clear carry flag ;; 11C + 2X\n\t"
+
464  " sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t"
+
465  " sec ;set carry flag ;; 12C + 2X\n\t"
+
466  " rol r23 ;store bit ;; 13C + 2X\n\t"
+
467  " brcc _Li2c_read_bit ;while receiv reg not full \n\t"
+
468  " ;; 15C + 2X for one bit loop \n\t"
+
469 
+
470  "_Li2c_put_ack: \n\t"
+
471  " sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"
+
472  " cpi r24,0 ;; 3C \n\t"
+
473  " breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t"
+
474  " cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"
+
475  " rjmp _Li2c_put_ack_high \n\t"
+
476  "_Li2c_put_ack_low: ;else \n\t"
+
477  " sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t"
+
478  "_Li2c_put_ack_high: \n\t"
+
479  " nop \n\t "
+
480  " nop \n\t "
+
481  " nop \n\t "
+
482 #if I2C_DELAY_COUNTER >= 1
+
483  " rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t"
+
484 #endif
+
485  " cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t"
+
486  " cln ;clear N ;; +1 = 10C\n\t"
+
487  " nop \n\t "
+
488  " nop \n\t "
+
489  " sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t"
+
490  " rcall ass_i2c_wait_scl_high \n\t"
+
491 #if I2C_DELAY_COUNTER >= 1
+
492  " rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t"
+
493 #endif
+
494  "_Li2c_read_return: \n\t"
+
495  " nop \n\t "
+
496  " nop \n\t "
+
497  "sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"
+
498  " mov r24,r23 ;; 12C + 2X \n\t"
+
499  " clr r25 ;; 13 C + 2X\n\t"
+
500  " ret ;; 17C + X"
+
501  ::
+
502  [SCLDDR] "I" (SCL_DDR), [SCLPIN] "I" (SCL_PIN), [SCLIN] "I" (SCL_IN),
+
503  [SDADDR] "I" (SDA_DDR), [SDAPIN] "I" (SDA_PIN), [SDAIN] "I" (SDA_IN)
+
504  );
+
505  return ' '; // fool the compiler!
+
506 }
+
507 
+
508 #else
+
509 #error "ONLY SUPPORTED ON AVR PROCESSORS"
+
510 #endif // defined (__AVR__)
+
511 
+
512 #endif
+
513 
+
514 
+
515 
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/annotated.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/annotated.html new file mode 100644 index 0000000000000000000000000000000000000000..ff89312113a2c254b6908301fcdce21449da9a2b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/annotated.html @@ -0,0 +1,112 @@ + + + + + + +New LiquidCrystal library: Class List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowdown.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowdown.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowright.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/arrowright.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/bc_s.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/bc_s.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/bdwn.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/bdwn.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o-members.html new file mode 100644 index 0000000000000000000000000000000000000000..ba12b2497cb5884d9d4b3c8df45839ac3880ca8f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o-members.html @@ -0,0 +1,111 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
I2CIO Member List
+
+
+ +

This is the complete list of members for I2CIO, including all inherited members.

+ + + + + + + + + +
begin(uint8_t i2cAddr)I2CIO
digitalRead(uint8_t pin)I2CIO
digitalWrite(uint8_t pin, uint8_t level)I2CIO
I2CIO()I2CIO
pinMode(uint8_t pin, uint8_t dir)I2CIO
portMode(uint8_t dir)I2CIO
read(void)I2CIO
write(uint8_t value)I2CIO
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o.html new file mode 100644 index 0000000000000000000000000000000000000000..574b71c2d3ec12695623aca496f2c8a5a2d19824 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_i2_c_i_o.html @@ -0,0 +1,330 @@ + + + + + + +New LiquidCrystal library: I2CIO Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
I2CIO Class Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 I2CIO ()
 
int begin (uint8_t i2cAddr)
 
void pinMode (uint8_t pin, uint8_t dir)
 
void portMode (uint8_t dir)
 
uint8_t read (void)
 
uint8_t digitalRead (uint8_t pin)
 
int write (uint8_t value)
 
int digitalWrite (uint8_t pin, uint8_t level)
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
I2CIO::I2CIO ()
+
+

Constructor method Class constructor constructor.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
int I2CIO::begin (uint8_t i2cAddr)
+
+

Initializes the device. This method initializes the device allocating an I2C address. This method is the first method that should be call prior to calling any other method form this class. On initialization all pins are configured as INPUT on the device.

+
Parameters
+ + +
i2cAddrI2C Address where the device is located.
+
+
+
Returns
1 if the device was initialized correctly, 0 otherwise
+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::digitalRead (uint8_t pin)
+
+

Read a pin from the device. Reads a particular pin from the device. To read a particular pin it has to be configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
pin[in]Pin from the port to read its status. Range (0..7)
+
+
+
Returns
Returns the pin status (HIGH, LOW) if the pin is configured as an output, reading its value will always return LOW regardless of its real state.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int I2CIO::digitalWrite (uint8_t pin,
uint8_t level 
)
+
+

Writes a digital level to a particular pin. Write a level to the indicated pin of the device. For this method to have effect, the pin has to be configured as OUTPUT using the pinMode or portMode methods.

+
Parameters
+ + +
pin[in]device pin to change level. Range (0..7). level[in] logic level to set the pin at (HIGH, LOW).
+
+
+
Returns
1 on success, 0 otherwise.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void I2CIO::pinMode (uint8_t pin,
uint8_t dir 
)
+
+

Sets the mode of a particular pin. Sets the mode of a particular pin to INPUT, OUTPUT. digitalWrite has no effect on pins which are not declared as output.

+
Parameters
+ + + +
pin[in]Pin from the I2C IO expander to be configured. Range 0..7
dir[in]Pin direction (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
void I2CIO::portMode (uint8_t dir)
+
+

Sets all the pins of the device in a particular direction. This method sets all the pins of the device in a particular direction. This method is useful to set all the pins of the device to be either inputs or outputs.

Parameters
+ + +
dir[in]Direction of all the pins of the device (INPUT, OUTPUT).
+
+
+ +
+
+ +
+
+ + + + + + + + +
uint8_t I2CIO::read (void )
+
+

Reads all the pins of the device that are configured as INPUT. Reads from the device the status of the pins that are configured as INPUT. During initialization all pins are configured as INPUTs by default. Please refer to pinMode or portMode.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
int I2CIO::write (uint8_t value)
+
+

Write a value to the device. Writes to a set of pins in the device. The value is the binary representation of all the pins in device. The value written is masked with the configuration of the direction of the pins; to change the state of a particular pin with this method, such pin has to be configured as OUTPUT using the portMode or pinMode methods. If no pins have been configured as OUTPUTs this method will have no effect.

+
Parameters
+ + +
value[in]value to be written to the device.
+
+
+
Returns
1 on success, 0 otherwise
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/I2CIO.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/I2CIO.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d-members.html new file mode 100644 index 0000000000000000000000000000000000000000..59d17abacf77637a314ba57ef892919eed82de10 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d-members.html @@ -0,0 +1,136 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LCD Member List
+
+
+ +

This is the complete list of members for LCD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
setBacklight(uint8_t value)LCDinlinevirtual
setBacklightPin(uint8_t value, t_backlightPol pol)LCDinlinevirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.html new file mode 100644 index 0000000000000000000000000000000000000000..520f2232463364bb31a796d095bf9daf354ae0d1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.html @@ -0,0 +1,885 @@ + + + + + + +New LiquidCrystal library: LCD Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+ +
+
+Inheritance diagram for LCD:
+
+
+ + +LiquidCrystal +LiquidCrystal_I2C +LiquidCrystal_I2C_ByVac +LiquidCrystal_SR +LiquidCrystal_SR2W +LiquidCrystal_SR3W + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlightPol pol)
 
virtual void setBacklight (uint8_t value)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + +

+Protected Attributes

+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
LCD::LCD ()
+
+

LiquidCrystal abstract constructor. LiquidCrystal class abstract constructor needed to create the base abstract class.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void LCD::autoscroll (void )
+
+

Turns on automatic scrolling of the LCD. Turns on automatic scrolling of the LCD. This causes each character output to the display to push previous characters over by one space. If the current text direction is left-to-right (the default), the display scrolls to the left; if the current direction is right-to-left, the display scrolls to the right. This has the effect of outputting each new character to the same location on the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::backlight (void )
+
+

Switch-on the LCD backlight. Switch-on the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LCD::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class.

+

This method is abstract, a base implementation is available common to all LCD drivers. Should it not be compatible with some other LCD driver, a derived implementation should be done on the driver specif class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]character size, default==LCD_5x8DOTS
+
+
+ +

Reimplemented in LiquidCrystal_I2C, and LiquidCrystal_I2C_ByVac.

+ +
+
+ +
+
+ + + + + + + +
void LCD::blink ()
+
+

Display the cursor of the LCD. Display the blinking LCD cursor. If used in combination with the cursor() function, the result will depend on the particular display.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::clear ()
+
+

Clears the LCD. Clears the LCD screen and positions the cursor in the upper-left corner.

+

This operation is time consuming for the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::createChar (uint8_t location,
uint8_t charmap[] 
)
+
+

Creates a custom character for use on the LCD. Create a custom character (glyph) for use on the LCD. Most chipsets only support up to eight characters of 5x8 pixels. Therefore, this methods has been limited to locations (numbered 0 to 7).

+

The appearance of each custom character is specified by an array of eight bytes, one for each row. The five least significant bits of each byte determine the pixels in that row. To display a custom character on screen, write()/print() its number, i.e. lcd.print (char(x)); // Where x is 0..7.

+
Parameters
+ + + +
location[in]LCD memory location of the character to create (0 to 7)
charmap[in]the bitmap array representing each row of the character.
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::cursor ()
+
+

Display the LCD cursor. Display the LCD cursor: an underscore (line) at the location where the next character will be written.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::display ()
+
+

Turns on the LCD display. Turns on the LCD display, after it's been turned off with noDisplay(). This will restore the text (and cursor location) that was on the display prior to calling noDisplay().

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::home ()
+
+

Sets the cursor to the upper-left corner. Positions the cursor in the upper-left of the LCD. That is, use that location in outputting subsequent text to the display. To also clear the display, use the clear() function instead.

+

This operation is time consuming for the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::leftToRight (void )
+
+

Set the direction for text written to the LCD to left-to-right. Set the direction for text written to the LCD to left-to-right. All subsequent characters written to the display will go from left to right, but does not affect previously-output text.

+

This is the default configuration.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorLeft (void )
+
+

Moves the cursor one space to the left.

Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::moveCursorRight (void )
+
+

Moves the cursor one space to the right.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::noAutoscroll (void )
+
+

Turns off automatic scrolling of the LCD. Turns off automatic scrolling of the LCD, this is the default configuration of the LCD.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::noBacklight (void )
+
+

Switch-off the LCD backlight. Switch-off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+ +
+
+ +
+
+ + + + + + + +
void LCD::noBlink ()
+
+

Turns off the blinking of the LCD cursor.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::noCursor ()
+
+

Hides the LCD cursor.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + +
void LCD::noDisplay ()
+
+

Turns off the LCD display. Turns off the LCD display, without losing the text currently being displayed on it.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::off (void )
+
+

Switch off the LCD module. Switch off the LCD module, it will switch off the LCD controller and the backlight. This method has the same effect of calling noDisplay and noBacklight.

See also
display,
+
+backlight
+ +
+
+ +
+
+ + + + + + + + +
void LCD::on (void )
+
+

Switch on the LCD module. Switch on the LCD module, it will switch on the LCD controller and the backlight. This method has the same effect of calling display and backlight.

See also
display,
+
+backlight
+ +
+
+ +
+
+ + + + + + + + +
void LCD::rightToLeft (void )
+
+

Set the direction for text written to the LCD to right-to-left. Set the direction for text written to the LCD to right-to-left. All subsequent characters written to the display will go from right to left, but does not affect previously-output text.

+

left-to-right is the default configuration.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayLeft (void )
+
+

Scrolls the contents of the display (text and cursor) one space to the left.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + + + + +
void LCD::scrollDisplayRight (void )
+
+

Scrolls the contents of the display (text and cursor) one space to the right.

+
Parameters
+ + +
none
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void LCD::setBacklight (uint8_t value)
+
+inlinevirtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. The behaviour of this method is very dependent on the device. Some controllers support dimming some don't. Please read the actual header file for each individual device. The setBacklightPin method has to be called before setting the backlight or the adequate backlight control constructor.

See also
setBacklightPin.
+

NOTE: The prefered methods to control the backlight are "backlight" and "noBacklight".

+
Parameters
+ + +
0..255- the value is very dependent on the LCD. However, BACKLIGHT_OFF will be interpreted as off and BACKLIGHT_ON will drive the backlight on.
+
+
+ +

Reimplemented in LiquidCrystal_SR2W, LiquidCrystal_SR3W, LiquidCrystal_I2C, LiquidCrystal_SR, LiquidCrystal, and LiquidCrystal_I2C_ByVac.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void LCD::setBacklightPin (uint8_t value,
t_backlightPol pol 
)
+
+inlinevirtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This method is device dependent and can be programmed on each subclass. An empty function call is provided that does nothing.

+
Parameters
+ + + +
valuepin associated to backlight control.
polbacklight polarity control (POSITIVE, NEGATIVE)
+
+
+ +

Reimplemented in LiquidCrystal_SR3W, LiquidCrystal_I2C, LiquidCrystal_SR, and LiquidCrystal.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void LCD::setCursor (uint8_t col,
uint8_t row 
)
+
+

Position the LCD cursor. Sets the position of the LCD cursor. Set the location at which subsequent text written to the LCD will be displayed.

+
Parameters
+ + + +
col[in]LCD column
row[in]LCD row - line.
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LCD::write (uint8_t value)
+
+virtual
+
+

Writes to the LCD. This method writes character to the LCD in the current cursor position.

+

This is the virtual write method, implemented in the Print class, therefore all Print class methods will end up calling this method.

+
Parameters
+ + +
value[in]Value to write to the LCD.
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LCD.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LCD.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.png new file mode 100644 index 0000000000000000000000000000000000000000..40dc374be6720fbfd8ebccc9c9bdda1de8ace933 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_l_c_d.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal-members.html new file mode 100644 index 0000000000000000000000000000000000000000..1378daf9559bbd2017c3e1597b45fb7e89ceba45 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal-members.html @@ -0,0 +1,145 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal Member List
+
+
+ +

This is the complete list of members for LiquidCrystal, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlightPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlightPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlightPol pol) (defined in LiquidCrystal)LiquidCrystal
LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlightPol pol) (defined in LiquidCrystal)LiquidCrystal
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystalvirtual
setBacklight(uint8_t value)LiquidCrystalvirtual
setBacklightPin(uint8_t pin, t_backlightPol pol)LiquidCrystalvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.html new file mode 100644 index 0000000000000000000000000000000000000000..b060cf4a16c4f2e7c8b71024b69ce80866bf46ad --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.html @@ -0,0 +1,477 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlightPol pol)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlightPin, t_backlightPol pol)
 
 LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
 
LiquidCrystal (uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlightPol pol)
 
LiquidCrystal (uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t backlightPin, t_backlightPol pol)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t pin, t_backlightPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

8 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal::LiquidCrystal (uint8_t rs,
uint8_t rw,
uint8_t enable,
uint8_t d0,
uint8_t d1,
uint8_t d2,
uint8_t d3 
)
+
+

4 bit LCD constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + +
valueValue to send to the LCD.
+
+
+
Returns
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin. For dimming control of the backlight, the configuration pin must be a PWM output pin. Dim control is achieved by passing a value from 1 to 255 as a parameter. If the pin configured when calling the setBacklightPin does not support PWM, then: (0) backlight off, (1..255) backlight on.
+
Parameters
+ + +
valuebacklight value. 0: off, 1..255: dim control of the backlight. For negative logic 255: off, 254..0: dim control.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal::setBacklightPin (uint8_t pin,
t_backlightPol pol 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

+
Parameters
+ + + +
pinpin assigned to the backlight
polbacklight pin control polarity (POSITIVE, NEGATIVE).
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..85a5b0c1d37941abc3833d94d8398c047c76b49d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c-members.html new file mode 100644 index 0000000000000000000000000000000000000000..fda22be71f87cdaaedc4cfd1c9928987c328eaf0 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c-members.html @@ -0,0 +1,144 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_I2C Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_I2C, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_I2Cvirtual
blink()LCD
clear()LCD
config(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_I2C
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_I2C(uint8_t lcd_Addr)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlightPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_I2C
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlightPol pol) (defined in LiquidCrystal_I2C)LiquidCrystal_I2C
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_I2Cvirtual
setBacklight(uint8_t value)LiquidCrystal_I2Cvirtual
setBacklightPin(uint8_t value, t_backlightPol pol)LiquidCrystal_I2Cvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.html new file mode 100644 index 0000000000000000000000000000000000000000..3093ac3bd454f0b1a57a8e1535b56a0d9fc3dbe5 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.html @@ -0,0 +1,614 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_I2C Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_I2C Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_I2C:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_I2C (uint8_t lcd_Addr)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlightPol pol)
 
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlightPol pol)
 
 LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlightPol pol)
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t value, t_backlightPol pol)
 
void setBacklight (uint8_t value)
 
void config (uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
- Public Member Functions inherited from LCD
 LCD ()
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_I2C::LiquidCrystal_I2C (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + + + + + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
d4[in]LCD data 0 pin map on IO extender module
d5[in]LCD data 1 pin map on IO extender module
d6[in]LCD data 2 pin map on IO extender module
d7[in]LCD data 3 pin map on IO extender module
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::config (uint8_t lcd_Addr,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Initialises class private variables This is the class single point for initialising private variables. Making config public would enable to inherit and overload the methdo by a custom one.

+
Parameters
+ + + + + + + + + +
lcd_Addr[in]I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in]LCD En (Enable) pin connected to the IO extender module
Rw[in]LCD Rw (Read/write) pin connected to the IO extender module
Rs[in]LCD Rs (Reset) pin connected to the IO extender module
d4[in]LCD data 0 pin map on IO extender module
d5[in]LCD data 1 pin map on IO extender module
d6[in]LCD data 2 pin map on IO extender module
d7[in]LCD data 3 pin map on IO extender module
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_I2C::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C::setBacklightPin (uint8_t value,
t_backlightPol pol = POSITIVE 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters
+ + +
0backlight off, 1..255: backlight on.
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a4174bbb11b415e8709ad4851a0fb75913f0ca Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html new file mode 100644 index 0000000000000000000000000000000000000000..27a9006f17cf1dc5a987a515b0fec04d014ca40a --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac-members.html @@ -0,0 +1,139 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_I2C_ByVac Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_I2C_ByVac, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LiquidCrystal_I2C_ByVacvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_I2C_ByVac(uint8_t lcd_Addr)LiquidCrystal_I2C_ByVac
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_I2C_ByVacvirtual
setBacklight(uint8_t value)LiquidCrystal_I2C_ByVacvirtual
setBacklightPin(uint8_t value, t_backlightPol pol)LCDinlinevirtual
setContrast(uint8_t value)LiquidCrystal_I2C_ByVac
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html new file mode 100644 index 0000000000000000000000000000000000000000..685366a84c66be5e32d1901323be793104c285d4 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.html @@ -0,0 +1,381 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_I2C_ByVac Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_I2C_ByVac Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_I2C_ByVac:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr)
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklight (uint8_t value)
 
void setContrast (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlightPol pol)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac (uint8_t lcd_Addr)
+
+

Class constructor. Initializes class variables and defines the I2C address of the LCD. The constructor does not initialize the LCD.

+
Parameters
+ + +
lcd_Addr[in]I2C address of the IO expansion module. For BV4218, the address can be configured using the address commands (to be implemented).
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C_ByVac::begin (uint8_t cols,
uint8_t rows,
uint8_t charsize = LCD_5x8DOTS 
)
+
+virtual
+
+

LCD initialization and associated HW. Initializes the LCD to a given size (col, row). This methods initializes the LCD, therefore, it MUST be called prior to using any other method from this class or parent class.

+

The begin method can be overloaded if necessary to initialize any HW that is implemented by a library and can't be done during construction, here we use the Wire class.

+
Parameters
+ + + + +
cols[in]the number of columns that the display has
rows[in]the number of rows that the display has
charsize[in]size of the characters of the LCD: LCD_5x8DOTS or LCD_5x10DOTS.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_I2C_ByVac::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_I2C_ByVac::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight.

+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + + + + +
void LiquidCrystal_I2C_ByVac::setContrast (uint8_t value)
+
+

Switch-on/off the LCD contrast. Switch-on/off the LCD contrast.

+
Parameters
+ + +
valuecontrast mode (HIGH|LOW)
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_I2C_ByVac.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png new file mode 100644 index 0000000000000000000000000000000000000000..44537f6222c017b94feecd31484dd83caf658cbe Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___i2_c___by_vac.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r-members.html new file mode 100644 index 0000000000000000000000000000000000000000..594e9f07ecb37639a88c9af8a80ed250de53810e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r-members.html @@ -0,0 +1,138 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR(uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)LiquidCrystal_SR
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SRvirtual
setBacklight(uint8_t mode)LiquidCrystal_SRvirtual
setBacklightPin(uint8_t pin, t_backlightPol pol)LiquidCrystal_SRvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.html new file mode 100644 index 0000000000000000000000000000000000000000..c7bc838376acd415bb85e4876dee08cbf737c68e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.html @@ -0,0 +1,366 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR (uint8_t srdata, uint8_t srclock, uint8_t enable=TWO_WIRE)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t pin, t_backlightPol pol)
 
void setBacklight (uint8_t mode)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR::LiquidCrystal_SR (uint8_t srdata,
uint8_t srclock,
uint8_t enable = TWO_WIRE 
)
+
+

LCD SHIFT REGISTER constructors. Defines the pin assignment that the LCD will have. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters
+ + + + +
srdata[in]pin for shiftregister data line.
srclock[in]pin for shiftregister clock line.
enable[in]optional direct enable pin for the LCD
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters
+ + +
value[in]Value to send to the LCD.
+
+
+
Returns
mode LOW - write to the LCD CGRAM, HIGH - write a command to the LCD.
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR::setBacklight (uint8_t mode)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
modebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR::setBacklightPin (uint8_t pin,
t_backlightPol pol 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight.

Warning
Currently not supported
+
Parameters
+ + + +
modebacklight mode (HIGH|LOW)
polbacklight polarity
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.png new file mode 100644 index 0000000000000000000000000000000000000000..f99d2102bf4a679e364b480eadf6561a2dc2d92d Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w-members.html new file mode 100644 index 0000000000000000000000000000000000000000..0e8a46ef5038a97a45e0028e1b3da0d5293d31e3 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w-members.html @@ -0,0 +1,138 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR2W Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR2W, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR2W(uint8_t srdata, uint8_t srclock, t_backlightPol blpol=POSITIVE)LiquidCrystal_SR2W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR2Wvirtual
setBacklight(uint8_t mode)LiquidCrystal_SR2Wvirtual
setBacklightPin(uint8_t value, t_backlightPol pol)LCDinlinevirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.html new file mode 100644 index 0000000000000000000000000000000000000000..a83c3b0e2f54a9c43266acc2960c9cede89f7cc6 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.html @@ -0,0 +1,322 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR2W Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR2W Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR2W:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR2W (uint8_t srdata, uint8_t srclock, t_backlightPol blpol=POSITIVE)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklight (uint8_t mode)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void setBacklightPin (uint8_t value, t_backlightPol pol)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR2W::LiquidCrystal_SR2W (uint8_t srdata,
uint8_t srclock,
t_backlightPol blpol = POSITIVE 
)
+
+

LCD 2 wire SHIFT REGISTER constructor. Defines the pin assignments that connect to the shift register. The constructor does not initialize the LCD. Assuming 1 line 8 pixel high font.

+
Parameters
+ + + + +
srdata[in]Arduino pin for shift register data line.
srclock[in]Arduino pin for shift register clock line.
blpol[in]optional backlight polarity (default = POSITIVE)
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR2W::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command using the shift register.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA=8bit data, COMMAND=8bit cmd, FOUR_BITS=4bit cmd the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR2W::setBacklight (uint8_t mode)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
mode[in]backlight mode (0 off, non-zero on)
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR2W.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR2W.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.png new file mode 100644 index 0000000000000000000000000000000000000000..67a121eb206625c7c02ba049dc71b87fcd23bf33 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r2_w.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w-members.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w-members.html new file mode 100644 index 0000000000000000000000000000000000000000..d269a815fcf76155497e7f6460c4eb1051d637ce --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w-members.html @@ -0,0 +1,141 @@ + + + + + + +New LiquidCrystal library: Member List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
LiquidCrystal_SR3W Member List
+
+
+ +

This is the complete list of members for LiquidCrystal_SR3W, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_cols (defined in LCD)LCDprotected
_displaycontrol (defined in LCD)LCDprotected
_displayfunction (defined in LCD)LCDprotected
_displaymode (defined in LCD)LCDprotected
_numlines (defined in LCD)LCDprotected
_polarity (defined in LCD)LCDprotected
autoscroll()LCD
backlight(void)LCD
begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)LCDvirtual
blink()LCD
clear()LCD
createChar(uint8_t location, uint8_t charmap[])LCD
cursor()LCD
display()LCD
home()LCD
LCD()LCD
leftToRight()LCD
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlightPol pol) (defined in LiquidCrystal_SR3W)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)LiquidCrystal_SR3W
LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlightPol pol) (defined in LiquidCrystal_SR3W)LiquidCrystal_SR3W
moveCursorLeft()LCD
moveCursorRight()LCD
noAutoscroll()LCD
noBacklight(void)LCD
noBlink()LCD
noCursor()LCD
noDisplay()LCD
off(void)LCD
on(void)LCD
rightToLeft()LCD
scrollDisplayLeft()LCD
scrollDisplayRight()LCD
send(uint8_t value, uint8_t mode)LiquidCrystal_SR3Wvirtual
setBacklight(uint8_t value)LiquidCrystal_SR3Wvirtual
setBacklightPin(uint8_t value, t_backlightPol pol)LiquidCrystal_SR3Wvirtual
setCursor(uint8_t col, uint8_t row)LCD
write(uint8_t value)LCDvirtual
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.html new file mode 100644 index 0000000000000000000000000000000000000000..cf075f8c6427a475f2d9263e3d7adea1eb16ffa8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.html @@ -0,0 +1,464 @@ + + + + + + +New LiquidCrystal library: LiquidCrystal_SR3W Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
LiquidCrystal_SR3W Class Reference
+
+
+
+Inheritance diagram for LiquidCrystal_SR3W:
+
+
+ + +LCD + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe)
 
LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t backlighPin, t_backlightPol pol)
 
 LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
 
LiquidCrystal_SR3W (uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlightPol pol)
 
virtual void send (uint8_t value, uint8_t mode)
 
void setBacklightPin (uint8_t value, t_backlightPol pol)
 
void setBacklight (uint8_t value)
 
- Public Member Functions inherited from LCD
 LCD ()
 
virtual void begin (uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
 
void clear ()
 
void home ()
 
void noDisplay ()
 
void display ()
 
void noBlink ()
 
void blink ()
 
void noCursor ()
 
void cursor ()
 
void scrollDisplayLeft ()
 
void scrollDisplayRight ()
 
void leftToRight ()
 
void rightToLeft ()
 
void moveCursorLeft ()
 
void moveCursorRight ()
 
void autoscroll ()
 
void noAutoscroll ()
 
void createChar (uint8_t location, uint8_t charmap[])
 
void setCursor (uint8_t col, uint8_t row)
 
void backlight (void)
 
void noBacklight (void)
 
void on (void)
 
void off (void)
 
virtual void write (uint8_t value)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from LCD
+uint8_t _displayfunction
 
+uint8_t _displaycontrol
 
+uint8_t _displaymode
 
+uint8_t _numlines
 
+uint8_t _cols
 
+t_backlightPol _polarity
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe 
)
+
+

Class constructor. Initializes class variables and defines the IO driving the shift register. The constructor does not initialize the LCD. Default configuration: Shift register LCD QA - 0 DB4 QB - 1 DB5 QC - 2 DB6 QD - 3 DB7 QE - 4 E QF - 5 QG - 6 Rs GND Rw

+
Parameters
+ + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to the shiftregister data pin.
clk[in]digital IO connected to the shiftregister clock pin.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LiquidCrystal_SR3W::LiquidCrystal_SR3W (uint8_t data,
uint8_t clk,
uint8_t strobe,
uint8_t En,
uint8_t Rw,
uint8_t Rs,
uint8_t d4,
uint8_t d5,
uint8_t d6,
uint8_t d7 
)
+
+

Class constructor. Initializes class variables and defines the control lines of the LCD and the shiftregister. The constructor does not initialize the LCD.

+
Parameters
+ + + + + + + + + + + +
strobe[in]digital IO connected to shiftregister strobe pin.
data[in]digital IO connected to shiftregister data pin.
clk[in]digital IO connected to shiftregister clock pin.
En[in]LCD En (Enable) pin connected to SR output pin.
Rw[in]LCD Rw (Read/write) pin connected to SR output pin.
Rs[in]LCD Rs (Reg Select) pin connected to SR output pin.
d4[in]LCD data 4 pin map to the SR output pin.
d5[in]LCD data 5 pin map to the SR output pin.
d6[in]LCD data 6 pin map to the SR output pin.
d7[in]LCD data 7 pin map to the SR output pin.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::send (uint8_t value,
uint8_t mode 
)
+
+virtual
+
+

Send a particular value to the LCD. Sends a particular value to the LCD for writing to the LCD or as an LCD command.

+

Users should never call this method.

+
Parameters
+ + + +
value[in]Value to send to the LCD.
mode[in]DATA - write to the LCD CGRAM, COMMAND - write a command to the LCD.
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void LiquidCrystal_SR3W::setBacklight (uint8_t value)
+
+virtual
+
+

Switch-on/off the LCD backlight. Switch-on/off the LCD backlight. The setBacklightPin has to be called before setting the backlight for this method to work.

See also
setBacklightPin.
+
Parameters
+ + +
valuebacklight mode (HIGH|LOW)
+
+
+ +

Reimplemented from LCD.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LiquidCrystal_SR3W::setBacklightPin (uint8_t value,
t_backlightPol pol = POSITIVE 
)
+
+virtual
+
+

Sets the pin to control the backlight. Sets the pin in the device to control the backlight. This device doesn't support dimming backlight capability.

+
Parameters
+ + + +
valuepin mapped on the 74HC595N (0, .., 7) for (Qa0, .., Qh7) respectively.
polpolarity POSITIVE|NEGATIVE.
+
+
+ +

Reimplemented from LCD.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR3W.h
  • +
  • /Users/fmalpartida/Documents/development/mercurial repos/SW/NewLiquidCrystal_lib/LiquidCrystal_SR3W.cpp
  • +
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.png new file mode 100644 index 0000000000000000000000000000000000000000..33a43029daa176938d4de42b3e721e4bd781d764 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/class_liquid_crystal___s_r3_w.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/classes.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/classes.html new file mode 100644 index 0000000000000000000000000000000000000000..e16092204e3221756e5b8160293523f6febefd5a --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/classes.html @@ -0,0 +1,110 @@ + + + + + + +New LiquidCrystal library: Class Index + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
I | L
+ + + + + +
  I  
+
  L  
+
LiquidCrystal   LiquidCrystal_SR   
LiquidCrystal_I2C   LiquidCrystal_SR2W   
I2CIO   LCD   LiquidCrystal_I2C_ByVac   LiquidCrystal_SR3W   
+
I | L
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/closed.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/closed.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/doc.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/doc.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.css b/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..b2c94ac212bd24085366baaca1d63d5ed978724d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.css @@ -0,0 +1,1454 @@ +/* The standard CSS for doxygen 1.8.10 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/doxygen.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/dynsections.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/dynsections.js new file mode 100644 index 0000000000000000000000000000000000000000..85e183690954af49931335b87a063b2c078d4546 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +New LiquidCrystal library: File List + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+ + + + + + + + + + + + + + +
 FastIO.h
 I2CIO.h
 LCD.h
 LiquidCrystal.h
 LiquidCrystal_I2C.h
 LiquidCrystal_I2C_ByVac.h
 LiquidCrystal_SI2C.h
 LiquidCrystal_SR.h
 LiquidCrystal_SR1W.h
 LiquidCrystal_SR2W.h
 LiquidCrystal_SR3W.h
 SI2CIO.h
 SoftI2CMaster.h
+
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/folderclosed.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/folderclosed.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/folderopen.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/folderopen.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/functions.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/functions.html new file mode 100644 index 0000000000000000000000000000000000000000..c6bded25b916246c470bd1edd371ad06021443f0 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/functions.html @@ -0,0 +1,321 @@ + + + + + + +New LiquidCrystal library: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

+ + +

- d -

    +
  • digitalRead() +: I2CIO +
  • +
  • digitalWrite() +: I2CIO +
  • +
  • display() +: LCD +
  • +
+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

    +
  • read() +: I2CIO +
  • +
  • rightToLeft() +: LCD +
  • +
+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/functions_func.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/functions_func.html new file mode 100644 index 0000000000000000000000000000000000000000..982ec1bb27ac778bc49d776f02b6d1290253f3fa --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/functions_func.html @@ -0,0 +1,321 @@ + + + + + + +New LiquidCrystal library: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

    +
  • autoscroll() +: LCD +
  • +
+ + +

- b -

+ + +

- c -

+ + +

- d -

    +
  • digitalRead() +: I2CIO +
  • +
  • digitalWrite() +: I2CIO +
  • +
  • display() +: LCD +
  • +
+ + +

- h -

    +
  • home() +: LCD +
  • +
+ + +

- i -

+ + +

- l -

+ + +

- m -

    +
  • moveCursorLeft() +: LCD +
  • +
  • moveCursorRight() +: LCD +
  • +
+ + +

- n -

    +
  • noAutoscroll() +: LCD +
  • +
  • noBacklight() +: LCD +
  • +
  • noBlink() +: LCD +
  • +
  • noCursor() +: LCD +
  • +
  • noDisplay() +: LCD +
  • +
+ + +

- o -

    +
  • off() +: LCD +
  • +
  • on() +: LCD +
  • +
+ + +

- p -

+ + +

- r -

    +
  • read() +: I2CIO +
  • +
  • rightToLeft() +: LCD +
  • +
+ + +

- s -

+ + +

- w -

+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/hierarchy.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/hierarchy.html new file mode 100644 index 0000000000000000000000000000000000000000..70be4e5d4034a1e2d7b7ec136c413ac13d1bfd03 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/hierarchy.html @@ -0,0 +1,113 @@ + + + + + + +New LiquidCrystal library: Class Hierarchy + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + +
 CI2CIO
 CPrint
 CLCD
 CLiquidCrystal
 CLiquidCrystal_I2C
 CLiquidCrystal_I2C_ByVac
 CLiquidCrystal_SR
 CLiquidCrystal_SR2W
 CLiquidCrystal_SR3W
+
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/index.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/index.html new file mode 100644 index 0000000000000000000000000000000000000000..fd22815e949ca7d77df7507cd0f16ef23d30352f --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/index.html @@ -0,0 +1,92 @@ + + + + + + +New LiquidCrystal library: Main Page + + + + + + + + + + +
+
+ + + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
New LiquidCrystal library Documentation
+
+
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/jquery.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..1f4d0b47cec6c273add6041c043b156f523f3734 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/jquery.js @@ -0,0 +1,68 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + + +
+
+
README
+
+
+

Introduction

+
+LCD library +
+

Welcome to the LCD Library for Arduino and Chipkit. It is a derivate of the original LiquidCrystal Library as sourced in the Arduino SDK. It has been developed to be compatible with the current LiquidCrystal library, its performance is almost 5 times faster and fully extendable if need be.

+

It supports most Hitachi HD44780 based LCDs, or compatible, connected to any project using: 4, 8 wire parallel interface, I2C IO port expander (native I2C and bit bang) and Shift Regiter.

+

It currently supports 4 types of connections:

+
    +
  • 4 bit parallel LCD interface
  • +
  • 8 bit parallel LCD interface
  • +
  • I2C IO bus expansion board with the PCF8574* I2C IO expander ASIC such as I2C LCD extra IO.
  • +
  • ShiftRegister adaptor board as described Shift Register project home or in the HW configuration described below, 2 and 3 wire configurations supported.
  • +
  • ShiftRegister 3 wire latch adaptor board as described ShiftRegister 3 Wire Home
  • +
  • Support for 1 wire shift register ShiftRegister 1 Wire
  • +
  • I2C bus expansion using general purpose IO lines.
  • +
+

How do I get set up?

+
    +
  • Please refer to the project's wiki
  • +
+

Contributors

+

The library has had the invaluable contribution of:

+
    +
  • piccaso - Florian Fida - Flo, thanks for testing and improving the SR library, initial version of the 1 wire interface and speed improvements.
  • +
  • B. Perry - *bperrybap.billsworld.billandterrie.com*, with his thoughtful contribution, speed improvements and development support for the SR2W library.
  • +
  • Adrian Piccioli, with his contribution to the i2c GPIO support.
  • +
  • todbot Tod E. Kurt for the softwarei2cmaster library.
  • +
  • felias-fogg - Bernhard for the softwarei2cmaster fast
  • +
+

Contribution guidelines

+
    +
  • Writing tests
  • +
  • Code review
  • +
  • Help out with bug fixing
  • +
  • Setup a project logo
  • +
  • Write new drivers to support more LCDs.
  • +
+

Who do I talk to?

+
    +
  • Repo owner or admin
  • +
  • For SoftI2CMaster latest versions, updates and support, please refer to SoftI2CMaster
  • +
+

License

+

Copyright (C) - 2018

+

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 3 of the License, or any later version.

+

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

+

You should have received a copy of the GNU General Public License v3.0 along with this program. If not, see GPL V3.

+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_f.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_f.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_g.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_g.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_h.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/nav_h.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/open.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/open.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/pages.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/pages.html new file mode 100644 index 0000000000000000000000000000000000000000..1598ced9264c23b1d2f9a066ad26cb56089c45ae --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/pages.html @@ -0,0 +1,97 @@ + + + + + + +New LiquidCrystal library: Related Pages + + + + + + + + + + +
+
+
+ + + + + +
+
New LiquidCrystal library +  1.5.0 +
+
Generic LCD control library
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+ + +
 README
+
+
+ + + + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.html new file mode 100644 index 0000000000000000000000000000000000000000..1d4695009a58108da0332089712bb291ce2e0139 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.js new file mode 100644 index 0000000000000000000000000000000000000000..ce610fc5f106b6fe9168aca17c320fbc0681af57 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['autoscroll',['autoscroll',['../class_l_c_d.html#abb3ed88d530f6283e6159b4973e7da9e',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.html new file mode 100644 index 0000000000000000000000000000000000000000..1fbc509c219b2bb5e9b0b64818d192d442a24b51 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.js new file mode 100644 index 0000000000000000000000000000000000000000..c6b095ff4114eef0ef8072d85791e130046ea6e8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backlight',['backlight',['../class_l_c_d.html#aba8867fe2210cbfa8db869208709be10',1,'LCD']]], + ['begin',['begin',['../class_i2_c_i_o.html#a6f814653d903dc2ff6e8420eeb7954ae',1,'I2CIO::begin()'],['../class_l_c_d.html#a3f587d1cbb2d59765ef60a5216b56fea',1,'LCD::begin()'],['../class_liquid_crystal___i2_c.html#aeee2ada537f0cfbfda8613324b57c4a6',1,'LiquidCrystal_I2C::begin()'],['../class_liquid_crystal___i2_c___by_vac.html#a34ce9cf919b9f8de59f842a4e94c1abb',1,'LiquidCrystal_I2C_ByVac::begin()']]], + ['blink',['blink',['../class_l_c_d.html#a878b36878fa8287093964eba83aace77',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.html new file mode 100644 index 0000000000000000000000000000000000000000..93962b7243d5866b7010446baf9f1739ae1f1698 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.js new file mode 100644 index 0000000000000000000000000000000000000000..fd41df638d0047692de7ae4bf32645e17db1453e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['clear',['clear',['../class_l_c_d.html#afa699e0beeeee03cce8cef87eba81c4a',1,'LCD']]], + ['config',['config',['../class_liquid_crystal___i2_c.html#adb997350478bdc0ab8eb5cc5623a2ad9',1,'LiquidCrystal_I2C']]], + ['createchar',['createChar',['../class_l_c_d.html#a91cba8f93c692abcddf8bc3de58d2d3a',1,'LCD']]], + ['cursor',['cursor',['../class_l_c_d.html#a194814f64dfa50a90e07e0fe0d361620',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.html new file mode 100644 index 0000000000000000000000000000000000000000..679f93ca9d5ccd291e39fa6dd4fea0b9e560b6eb --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.js new file mode 100644 index 0000000000000000000000000000000000000000..fae0ff1ffe66d975cec426e320478c7801719322 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['digitalread',['digitalRead',['../class_i2_c_i_o.html#ac26221011a8b49bcea9ef62712ea88a7',1,'I2CIO']]], + ['digitalwrite',['digitalWrite',['../class_i2_c_i_o.html#a473206162522b847546777d16a7c6dcd',1,'I2CIO']]], + ['display',['display',['../class_l_c_d.html#a5b07cf05e8e5e7c53654f5ca0cf58b89',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.html new file mode 100644 index 0000000000000000000000000000000000000000..adc99fbbf9e76affb0cad9f4f8171ef2f48b7fe4 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.js new file mode 100644 index 0000000000000000000000000000000000000000..1edeee261c972d89ab856fd57645188efd014b74 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home',['home',['../class_l_c_d.html#aee45ad37f09312f5d9982257e2d37e68',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.html new file mode 100644 index 0000000000000000000000000000000000000000..a9fcd170298d5c33f7fbe173b1b5904b66ea1b42 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.js new file mode 100644 index 0000000000000000000000000000000000000000..3f5c1ed7e848eb6ba797230a5dcac95a80aadb36 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html',1,'I2CIO'],['../class_i2_c_i_o.html#a32eb7832075ad6011d67874405a0d0a6',1,'I2CIO::I2CIO()']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.html new file mode 100644 index 0000000000000000000000000000000000000000..821c374d8cc5b1936157ee77c6cddb4a9d453b58 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.js new file mode 100644 index 0000000000000000000000000000000000000000..193e443622961f8cc5e70d4f8596ab251163d640 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html',1,'LCD'],['../class_l_c_d.html#a00bb2db1390721abc7b24ac4b8c276c8',1,'LCD::LCD()']]], + ['lefttoright',['leftToRight',['../class_l_c_d.html#a238e9f6476dc7df64af04eb6c87f6ac7',1,'LCD']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html',1,'LiquidCrystal'],['../class_liquid_crystal.html#a49d2bd8d26031a1c83bcbd73978a1686',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)'],['../class_liquid_crystal.html#a0a0a8dfa7a2e775a031fd65f5c6366ec',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html',1,'LiquidCrystal_I2C'],['../class_liquid_crystal___i2_c.html#aac537d195557e0b8afac1a71441a484c',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___i2_c.html#a517f8847ebf09f0eacfb9c7232975fce',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___i2_c.html#a7d9b54d3a91fa0e0e50db27cda6b4654',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html',1,'LiquidCrystal_I2C_ByVac'],['../class_liquid_crystal___i2_c___by_vac.html#a29c027cc8bfa78bb8d9ff3124fe83a31',1,'LiquidCrystal_I2C_ByVac::LiquidCrystal_I2C_ByVac()']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html',1,'LiquidCrystal_SR'],['../class_liquid_crystal___s_r.html#ac3fe0b48f8d4c1c941d82d1333495cfc',1,'LiquidCrystal_SR::LiquidCrystal_SR()']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html',1,'LiquidCrystal_SR2W'],['../class_liquid_crystal___s_r2_w.html#a9d028b261cde79149377902c506dbea4',1,'LiquidCrystal_SR2W::LiquidCrystal_SR2W()']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html',1,'LiquidCrystal_SR3W'],['../class_liquid_crystal___s_r3_w.html#ae1396bcd5e9c5b7ed13182c166de776b',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)'],['../class_liquid_crystal___s_r3_w.html#a4fab8ff2f21bba3efd133cd8c87fffc0',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.html new file mode 100644 index 0000000000000000000000000000000000000000..38c6c000626fca0c17efb0e45f937ebdb2c40dc1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.js new file mode 100644 index 0000000000000000000000000000000000000000..0ac9232a291a318fa250a30d9a28379772584dce --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['movecursorleft',['moveCursorLeft',['../class_l_c_d.html#aad2abc99d1aca5403873579d9d72c2d4',1,'LCD']]], + ['movecursorright',['moveCursorRight',['../class_l_c_d.html#a09eec0c712e54b066f5894635c1fe75c',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.html new file mode 100644 index 0000000000000000000000000000000000000000..2a22cd52c17e3d94f8d0517ab2613aa0e7e60866 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.js new file mode 100644 index 0000000000000000000000000000000000000000..646b05cf42f7724e92cdd833d6988d40d9f55398 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['noautoscroll',['noAutoscroll',['../class_l_c_d.html#a96035dde40efbf73390e00b5beb00231',1,'LCD']]], + ['nobacklight',['noBacklight',['../class_l_c_d.html#a2a331b4e142734411b2f1cfaffe7a488',1,'LCD']]], + ['noblink',['noBlink',['../class_l_c_d.html#a3b755c4b397b5985752be8c30ee1a9b5',1,'LCD']]], + ['nocursor',['noCursor',['../class_l_c_d.html#aec8ffaa1e69c7a6e13ac0cfbc29151d9',1,'LCD']]], + ['nodisplay',['noDisplay',['../class_l_c_d.html#af3974da6d988ba2d21c25135ada12108',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.html new file mode 100644 index 0000000000000000000000000000000000000000..bd9b05c38e927324f54426561f7baa8b6904be10 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.js new file mode 100644 index 0000000000000000000000000000000000000000..c9977213f712f8216979172849de078f61144495 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['off',['off',['../class_l_c_d.html#a191639be183be1476c9bfe6d455d23b2',1,'LCD']]], + ['on',['on',['../class_l_c_d.html#a718da3a638deb59bd1c7a5222a52d98a',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.html new file mode 100644 index 0000000000000000000000000000000000000000..4a25af1cad0482dc9220fcb7ed601b224dce5cc3 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.js new file mode 100644 index 0000000000000000000000000000000000000000..b8fc67e99ae5e4823cfe9b200ccd6762f32f31ca --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pinmode',['pinMode',['../class_i2_c_i_o.html#a53b94274eb6bb68564cf5243323db887',1,'I2CIO']]], + ['portmode',['portMode',['../class_i2_c_i_o.html#a0341888753bc54c4384f5593a870fb34',1,'I2CIO']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.html new file mode 100644 index 0000000000000000000000000000000000000000..a92de48513fc7cd88ae4d1c7930d34d009909c45 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.js new file mode 100644 index 0000000000000000000000000000000000000000..8fe804741c169bb55cc10e41c7051fb043add7bf --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['readme',['README',['../md___users_fmalpartida__documents_development_mercurial_repos__s_w__new_liquid_crystal_lib__r_e_a_d_m_e.html',1,'']]], + ['read',['read',['../class_i2_c_i_o.html#a7a3db7bfc15ede0ae9e8c8bd44290ef7',1,'I2CIO']]], + ['righttoleft',['rightToLeft',['../class_l_c_d.html#ac014830eadc26bfd86308ea8734f4428',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.html new file mode 100644 index 0000000000000000000000000000000000000000..20cdfbcf329c4f01a6f57b60da074c510a87a3f8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.js new file mode 100644 index 0000000000000000000000000000000000000000..0908f21b26bc79e8c0fae680cba4b199bafa6cc1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['scrolldisplayleft',['scrollDisplayLeft',['../class_l_c_d.html#a6f3a503055b3b8dcf0f61b2633c584f7',1,'LCD']]], + ['scrolldisplayright',['scrollDisplayRight',['../class_l_c_d.html#abfc44b294772f09020bfa32af8a79571',1,'LCD']]], + ['send',['send',['../class_liquid_crystal.html#a56142f8b3753bedd133e4139e5eb5089',1,'LiquidCrystal::send()'],['../class_liquid_crystal___i2_c.html#a8bf1fab7efe13e8b17b96c42d1f810b4',1,'LiquidCrystal_I2C::send()'],['../class_liquid_crystal___i2_c___by_vac.html#a9e64cc68ec5df1a0fa421a242239b1b1',1,'LiquidCrystal_I2C_ByVac::send()'],['../class_liquid_crystal___s_r.html#a03821351a32db07cb7e42c8c11ce8d47',1,'LiquidCrystal_SR::send()'],['../class_liquid_crystal___s_r2_w.html#a65dc6f261c319be8e56f3c1f6a5c877d',1,'LiquidCrystal_SR2W::send()'],['../class_liquid_crystal___s_r3_w.html#ade34af5b7fe795482f1848c2176d6e56',1,'LiquidCrystal_SR3W::send()']]], + ['setbacklight',['setBacklight',['../class_l_c_d.html#a3305570d7b37eb93f2cf840263c15828',1,'LCD::setBacklight()'],['../class_liquid_crystal.html#aa2b898366e1c656ac313b9007c98cebd',1,'LiquidCrystal::setBacklight()'],['../class_liquid_crystal___i2_c.html#af11b8fa0082616e2b6e6e4238589d8a8',1,'LiquidCrystal_I2C::setBacklight()'],['../class_liquid_crystal___i2_c___by_vac.html#a9b16e6ce123e2ebe3a3e33b2306e66a7',1,'LiquidCrystal_I2C_ByVac::setBacklight()'],['../class_liquid_crystal___s_r.html#ad9f3e3f36257984c23fb508973e14535',1,'LiquidCrystal_SR::setBacklight()'],['../class_liquid_crystal___s_r2_w.html#a2158db27287c1564a03e7a1472beb3b6',1,'LiquidCrystal_SR2W::setBacklight()'],['../class_liquid_crystal___s_r3_w.html#a6d0fc7907ef9fd87c408a21b9bd49295',1,'LiquidCrystal_SR3W::setBacklight()']]], + ['setbacklightpin',['setBacklightPin',['../class_l_c_d.html#af5c7096209ebd944ddad770c5db74564',1,'LCD::setBacklightPin()'],['../class_liquid_crystal.html#a99628e66a4e66948876d173362d9e0fd',1,'LiquidCrystal::setBacklightPin()'],['../class_liquid_crystal___i2_c.html#a12be2c66c33f9d15ae3524a84a1c0128',1,'LiquidCrystal_I2C::setBacklightPin()'],['../class_liquid_crystal___s_r.html#a1976a9a035b5b895cf4a1c93af3ddb19',1,'LiquidCrystal_SR::setBacklightPin()'],['../class_liquid_crystal___s_r3_w.html#a2c445c8830270526eced572e90e6b911',1,'LiquidCrystal_SR3W::setBacklightPin()']]], + ['setcontrast',['setContrast',['../class_liquid_crystal___i2_c___by_vac.html#a53c79a20e8d21d2c3bc9e6d0dfc79cb4',1,'LiquidCrystal_I2C_ByVac']]], + ['setcursor',['setCursor',['../class_l_c_d.html#a48220450fd152b25994eb7d0ba340e8d',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.html new file mode 100644 index 0000000000000000000000000000000000000000..00b28ed86ec68f0094b0a3b5e7f780d686cb0d05 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.js new file mode 100644 index 0000000000000000000000000000000000000000..39fce4e799634206c2a6bff438a34243ae729bee --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['write',['../class_i2_c_i_o.html#ae2063569c927d0008e2593d14504fdcd',1,'I2CIO::write()'],['../class_l_c_d.html#a2d89cc2e62f72afb5f15a7fd812900e3',1,'LCD::write()']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.html new file mode 100644 index 0000000000000000000000000000000000000000..523591f06e8e96e05fe2cf856f5d8653208ecf0a --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.js new file mode 100644 index 0000000000000000000000000000000000000000..832b268f80f8635cd1d7250591e4d5638b9d6e72 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html',1,'']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.html new file mode 100644 index 0000000000000000000000000000000000000000..f5a65ad4f0520cf2792ca0347beb62802cb4ed87 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.js new file mode 100644 index 0000000000000000000000000000000000000000..4cdf02eacee97a35284627294841348a6a4cdcf5 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/classes_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html',1,'']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html',1,'']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html',1,'']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html',1,'']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html',1,'']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html',1,'']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html',1,'']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/close.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/close.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.html new file mode 100644 index 0000000000000000000000000000000000000000..246d1672102e13a400961bb4fdd92f4bd0330420 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.js new file mode 100644 index 0000000000000000000000000000000000000000..ce610fc5f106b6fe9168aca17c320fbc0681af57 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['autoscroll',['autoscroll',['../class_l_c_d.html#abb3ed88d530f6283e6159b4973e7da9e',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.html new file mode 100644 index 0000000000000000000000000000000000000000..5f14d674ee18784d2c71d5b298d51aebaf7686ae --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.js new file mode 100644 index 0000000000000000000000000000000000000000..c6b095ff4114eef0ef8072d85791e130046ea6e8 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backlight',['backlight',['../class_l_c_d.html#aba8867fe2210cbfa8db869208709be10',1,'LCD']]], + ['begin',['begin',['../class_i2_c_i_o.html#a6f814653d903dc2ff6e8420eeb7954ae',1,'I2CIO::begin()'],['../class_l_c_d.html#a3f587d1cbb2d59765ef60a5216b56fea',1,'LCD::begin()'],['../class_liquid_crystal___i2_c.html#aeee2ada537f0cfbfda8613324b57c4a6',1,'LiquidCrystal_I2C::begin()'],['../class_liquid_crystal___i2_c___by_vac.html#a34ce9cf919b9f8de59f842a4e94c1abb',1,'LiquidCrystal_I2C_ByVac::begin()']]], + ['blink',['blink',['../class_l_c_d.html#a878b36878fa8287093964eba83aace77',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.html new file mode 100644 index 0000000000000000000000000000000000000000..3995cf8c5f88cd9569f53287ee973a3c8501fadf --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.js new file mode 100644 index 0000000000000000000000000000000000000000..fd41df638d0047692de7ae4bf32645e17db1453e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['clear',['clear',['../class_l_c_d.html#afa699e0beeeee03cce8cef87eba81c4a',1,'LCD']]], + ['config',['config',['../class_liquid_crystal___i2_c.html#adb997350478bdc0ab8eb5cc5623a2ad9',1,'LiquidCrystal_I2C']]], + ['createchar',['createChar',['../class_l_c_d.html#a91cba8f93c692abcddf8bc3de58d2d3a',1,'LCD']]], + ['cursor',['cursor',['../class_l_c_d.html#a194814f64dfa50a90e07e0fe0d361620',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.html new file mode 100644 index 0000000000000000000000000000000000000000..4e302d69b957a0e574b407339df16c9771af9b06 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.js new file mode 100644 index 0000000000000000000000000000000000000000..fae0ff1ffe66d975cec426e320478c7801719322 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['digitalread',['digitalRead',['../class_i2_c_i_o.html#ac26221011a8b49bcea9ef62712ea88a7',1,'I2CIO']]], + ['digitalwrite',['digitalWrite',['../class_i2_c_i_o.html#a473206162522b847546777d16a7c6dcd',1,'I2CIO']]], + ['display',['display',['../class_l_c_d.html#a5b07cf05e8e5e7c53654f5ca0cf58b89',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.html new file mode 100644 index 0000000000000000000000000000000000000000..58ca83a6165861cd2284b51846d4e0764fb4504d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.js new file mode 100644 index 0000000000000000000000000000000000000000..1edeee261c972d89ab856fd57645188efd014b74 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home',['home',['../class_l_c_d.html#aee45ad37f09312f5d9982257e2d37e68',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.html new file mode 100644 index 0000000000000000000000000000000000000000..5f9f05aeb235eabd92b016e6e5c7e515c80f335d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.js new file mode 100644 index 0000000000000000000000000000000000000000..e7e32f4551f16630b1c552b47f20ec6293648706 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2cio',['I2CIO',['../class_i2_c_i_o.html#a32eb7832075ad6011d67874405a0d0a6',1,'I2CIO']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.html new file mode 100644 index 0000000000000000000000000000000000000000..c980da25be55ef4c817293d76c718ef7e81136b6 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.js new file mode 100644 index 0000000000000000000000000000000000000000..318a9047e54509c9f5840608a7479949685ea482 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['lcd',['LCD',['../class_l_c_d.html#a00bb2db1390721abc7b24ac4b8c276c8',1,'LCD']]], + ['lefttoright',['leftToRight',['../class_l_c_d.html#a238e9f6476dc7df64af04eb6c87f6ac7',1,'LCD']]], + ['liquidcrystal',['LiquidCrystal',['../class_liquid_crystal.html#a49d2bd8d26031a1c83bcbd73978a1686',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)'],['../class_liquid_crystal.html#a0a0a8dfa7a2e775a031fd65f5c6366ec',1,'LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)']]], + ['liquidcrystal_5fi2c',['LiquidCrystal_I2C',['../class_liquid_crystal___i2_c.html#aac537d195557e0b8afac1a71441a484c',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr)'],['../class_liquid_crystal___i2_c.html#a517f8847ebf09f0eacfb9c7232975fce',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs)'],['../class_liquid_crystal___i2_c.html#a7d9b54d3a91fa0e0e50db27cda6b4654',1,'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]], + ['liquidcrystal_5fi2c_5fbyvac',['LiquidCrystal_I2C_ByVac',['../class_liquid_crystal___i2_c___by_vac.html#a29c027cc8bfa78bb8d9ff3124fe83a31',1,'LiquidCrystal_I2C_ByVac']]], + ['liquidcrystal_5fsr',['LiquidCrystal_SR',['../class_liquid_crystal___s_r.html#ac3fe0b48f8d4c1c941d82d1333495cfc',1,'LiquidCrystal_SR']]], + ['liquidcrystal_5fsr2w',['LiquidCrystal_SR2W',['../class_liquid_crystal___s_r2_w.html#a9d028b261cde79149377902c506dbea4',1,'LiquidCrystal_SR2W']]], + ['liquidcrystal_5fsr3w',['LiquidCrystal_SR3W',['../class_liquid_crystal___s_r3_w.html#ae1396bcd5e9c5b7ed13182c166de776b',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe)'],['../class_liquid_crystal___s_r3_w.html#a4fab8ff2f21bba3efd133cd8c87fffc0',1,'LiquidCrystal_SR3W::LiquidCrystal_SR3W(uint8_t data, uint8_t clk, uint8_t strobe, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.html new file mode 100644 index 0000000000000000000000000000000000000000..385732931d2f2d147790af98defc48415e72c1b9 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.js new file mode 100644 index 0000000000000000000000000000000000000000..0ac9232a291a318fa250a30d9a28379772584dce --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['movecursorleft',['moveCursorLeft',['../class_l_c_d.html#aad2abc99d1aca5403873579d9d72c2d4',1,'LCD']]], + ['movecursorright',['moveCursorRight',['../class_l_c_d.html#a09eec0c712e54b066f5894635c1fe75c',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.html new file mode 100644 index 0000000000000000000000000000000000000000..088e437fbdf852818b2b798cc36f75e7133ca8bd --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.js new file mode 100644 index 0000000000000000000000000000000000000000..646b05cf42f7724e92cdd833d6988d40d9f55398 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['noautoscroll',['noAutoscroll',['../class_l_c_d.html#a96035dde40efbf73390e00b5beb00231',1,'LCD']]], + ['nobacklight',['noBacklight',['../class_l_c_d.html#a2a331b4e142734411b2f1cfaffe7a488',1,'LCD']]], + ['noblink',['noBlink',['../class_l_c_d.html#a3b755c4b397b5985752be8c30ee1a9b5',1,'LCD']]], + ['nocursor',['noCursor',['../class_l_c_d.html#aec8ffaa1e69c7a6e13ac0cfbc29151d9',1,'LCD']]], + ['nodisplay',['noDisplay',['../class_l_c_d.html#af3974da6d988ba2d21c25135ada12108',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.html new file mode 100644 index 0000000000000000000000000000000000000000..61de44ad4eaec346a01a98569c923c919d012f6e --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.js new file mode 100644 index 0000000000000000000000000000000000000000..c9977213f712f8216979172849de078f61144495 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['off',['off',['../class_l_c_d.html#a191639be183be1476c9bfe6d455d23b2',1,'LCD']]], + ['on',['on',['../class_l_c_d.html#a718da3a638deb59bd1c7a5222a52d98a',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.html new file mode 100644 index 0000000000000000000000000000000000000000..a46b662ed73eab7da2ca8705bef622a836a80f54 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.js new file mode 100644 index 0000000000000000000000000000000000000000..b8fc67e99ae5e4823cfe9b200ccd6762f32f31ca --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pinmode',['pinMode',['../class_i2_c_i_o.html#a53b94274eb6bb68564cf5243323db887',1,'I2CIO']]], + ['portmode',['portMode',['../class_i2_c_i_o.html#a0341888753bc54c4384f5593a870fb34',1,'I2CIO']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.html new file mode 100644 index 0000000000000000000000000000000000000000..3b49416d5163eca2e5088a9694670f01e1ca90be --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.js new file mode 100644 index 0000000000000000000000000000000000000000..7c9374bedec530220d9578e36613f116d613e819 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['read',['read',['../class_i2_c_i_o.html#a7a3db7bfc15ede0ae9e8c8bd44290ef7',1,'I2CIO']]], + ['righttoleft',['rightToLeft',['../class_l_c_d.html#ac014830eadc26bfd86308ea8734f4428',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.html new file mode 100644 index 0000000000000000000000000000000000000000..57c64555ce51e0e993adb75a3666ede7c4bffb51 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.js new file mode 100644 index 0000000000000000000000000000000000000000..0908f21b26bc79e8c0fae680cba4b199bafa6cc1 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['scrolldisplayleft',['scrollDisplayLeft',['../class_l_c_d.html#a6f3a503055b3b8dcf0f61b2633c584f7',1,'LCD']]], + ['scrolldisplayright',['scrollDisplayRight',['../class_l_c_d.html#abfc44b294772f09020bfa32af8a79571',1,'LCD']]], + ['send',['send',['../class_liquid_crystal.html#a56142f8b3753bedd133e4139e5eb5089',1,'LiquidCrystal::send()'],['../class_liquid_crystal___i2_c.html#a8bf1fab7efe13e8b17b96c42d1f810b4',1,'LiquidCrystal_I2C::send()'],['../class_liquid_crystal___i2_c___by_vac.html#a9e64cc68ec5df1a0fa421a242239b1b1',1,'LiquidCrystal_I2C_ByVac::send()'],['../class_liquid_crystal___s_r.html#a03821351a32db07cb7e42c8c11ce8d47',1,'LiquidCrystal_SR::send()'],['../class_liquid_crystal___s_r2_w.html#a65dc6f261c319be8e56f3c1f6a5c877d',1,'LiquidCrystal_SR2W::send()'],['../class_liquid_crystal___s_r3_w.html#ade34af5b7fe795482f1848c2176d6e56',1,'LiquidCrystal_SR3W::send()']]], + ['setbacklight',['setBacklight',['../class_l_c_d.html#a3305570d7b37eb93f2cf840263c15828',1,'LCD::setBacklight()'],['../class_liquid_crystal.html#aa2b898366e1c656ac313b9007c98cebd',1,'LiquidCrystal::setBacklight()'],['../class_liquid_crystal___i2_c.html#af11b8fa0082616e2b6e6e4238589d8a8',1,'LiquidCrystal_I2C::setBacklight()'],['../class_liquid_crystal___i2_c___by_vac.html#a9b16e6ce123e2ebe3a3e33b2306e66a7',1,'LiquidCrystal_I2C_ByVac::setBacklight()'],['../class_liquid_crystal___s_r.html#ad9f3e3f36257984c23fb508973e14535',1,'LiquidCrystal_SR::setBacklight()'],['../class_liquid_crystal___s_r2_w.html#a2158db27287c1564a03e7a1472beb3b6',1,'LiquidCrystal_SR2W::setBacklight()'],['../class_liquid_crystal___s_r3_w.html#a6d0fc7907ef9fd87c408a21b9bd49295',1,'LiquidCrystal_SR3W::setBacklight()']]], + ['setbacklightpin',['setBacklightPin',['../class_l_c_d.html#af5c7096209ebd944ddad770c5db74564',1,'LCD::setBacklightPin()'],['../class_liquid_crystal.html#a99628e66a4e66948876d173362d9e0fd',1,'LiquidCrystal::setBacklightPin()'],['../class_liquid_crystal___i2_c.html#a12be2c66c33f9d15ae3524a84a1c0128',1,'LiquidCrystal_I2C::setBacklightPin()'],['../class_liquid_crystal___s_r.html#a1976a9a035b5b895cf4a1c93af3ddb19',1,'LiquidCrystal_SR::setBacklightPin()'],['../class_liquid_crystal___s_r3_w.html#a2c445c8830270526eced572e90e6b911',1,'LiquidCrystal_SR3W::setBacklightPin()']]], + ['setcontrast',['setContrast',['../class_liquid_crystal___i2_c___by_vac.html#a53c79a20e8d21d2c3bc9e6d0dfc79cb4',1,'LiquidCrystal_I2C_ByVac']]], + ['setcursor',['setCursor',['../class_l_c_d.html#a48220450fd152b25994eb7d0ba340e8d',1,'LCD']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.html new file mode 100644 index 0000000000000000000000000000000000000000..58b3d31f0b1a77ea99986c285c7577e1ccf1054d --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.js new file mode 100644 index 0000000000000000000000000000000000000000..39fce4e799634206c2a6bff438a34243ae729bee --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write',['write',['../class_i2_c_i_o.html#ae2063569c927d0008e2593d14504fdcd',1,'I2CIO::write()'],['../class_l_c_d.html#a2d89cc2e62f72afb5f15a7fd812900e3',1,'LCD::write()']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/mag_sel.png b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 Binary files /dev/null and b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/mag_sel.png differ diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/nomatches.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/nomatches.html new file mode 100644 index 0000000000000000000000000000000000000000..b1ded27e9ad6af3a2ac11e6b21ce159dcaf87e0c --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.html b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.html new file mode 100644 index 0000000000000000000000000000000000000000..75d203dc81077698a4b06074982d2889043933f9 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.js new file mode 100644 index 0000000000000000000000000000000000000000..61236add21b9bdef46baec6b5ecad794ac962126 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme',['README',['../md___users_fmalpartida__documents_development_mercurial_repos__s_w__new_liquid_crystal_lib__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.css b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.css new file mode 100644 index 0000000000000000000000000000000000000000..4d7612ff63e3b5449072d07c3ffc648c6ad0bb11 --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.js b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.js new file mode 100644 index 0000000000000000000000000000000000000000..dedce3bf093890b8693ec9b110414855542fb79b --- /dev/null +++ b/Libs/NewLiquidCrystal_lib/utility/docs/html/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e About Arduino menu): **INSERT ARDUINO + VERSION HERE** + +- List the steps to reproduce the problem below (if possible attach a sketch or + copy the sketch code in too): **LIST REPRO STEPS BELOW** diff --git a/Libs/RTClib-master/.github/PULL_REQUEST_TEMPLATE.md b/Libs/RTClib-master/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..7b641eb862c05e126ef698221ffebe8f33ec1a5a --- /dev/null +++ b/Libs/RTClib-master/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ +Thank you for creating a pull request to contribute to Adafruit's GitHub code! +Before you open the request please review the following guidelines and tips to +help it be more easily integrated: + +- **Describe the scope of your change--i.e. what the change does and what parts + of the code were modified.** This will help us understand any risks of integrating + the code. + +- **Describe any known limitations with your change.** For example if the change + doesn't apply to a supported platform of the library please mention it. + +- **Please run any tests or examples that can exercise your modified code.** We + strive to not break users of the code and running tests/examples helps with this + process. + +Thank you again for contributing! We will try to test and integrate the change +as soon as we can, but be aware we have many GitHub repositories to manage and +can't immediately respond to every request. There is no need to bump or check in +on a pull request (it will clutter the discussion of the request). + +Also don't be worried if the request is closed or not integrated--sometimes the +priorities of Adafruit's GitHub code (education, ease of use) might not match the +priorities of the pull request. Don't fret, the open source community thrives on +forks and GitHub makes it easy to keep your changes in a forked repo. + +After reviewing the guidelines above you can delete this text from the pull request. diff --git a/Libs/RTClib-master/.gitignore b/Libs/RTClib-master/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..bae33346e55e6113ada136e28859b605d6b03ef0 --- /dev/null +++ b/Libs/RTClib-master/.gitignore @@ -0,0 +1,4 @@ +*~ +html +Doxyfile* +doxygen_sqlite3.db diff --git a/Libs/RTClib-master/.travis.yml b/Libs/RTClib-master/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..b170526c6ae2a47b4d9cf9daa59a54f234d5659a --- /dev/null +++ b/Libs/RTClib-master/.travis.yml @@ -0,0 +1,29 @@ +language: c +sudo: false +# Blacklist +branches: + except: + - gh-pages +cache: + directories: + - ~/arduino_ide + - ~/.arduino15/packages/ +git: + depth: false + quiet: true +env: + global: + - PRETTYNAME="Adafruit RTClib" +# Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" +# - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile + +before_install: + - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) + +script: + - build_main_platforms + +# Generate and deploy documentation +after_success: + - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) + - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) diff --git a/Libs/RTClib-master/LICENSE b/Libs/RTClib-master/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..5739aaa59a081cbb9777bde24d3e2bc0c5df1356 --- /dev/null +++ b/Libs/RTClib-master/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Adafruit Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Libs/RTClib-master/README.md b/Libs/RTClib-master/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ff9b17fa71afea88b1671f6df9ba7a36d637dcdc --- /dev/null +++ b/Libs/RTClib-master/README.md @@ -0,0 +1,47 @@ +# Adafruit RTClib [![Build Status](https://travis-ci.com/adafruit/RTClib.svg?branch=master)](https://travis-ci.com/adafruit/RTClib) + +This is a fork of JeeLab's fantastic real time clock library for Arduino. + +For details on using this library with an RTC module like the DS1307, PCF8523, or DS3231, see the guide at: https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview + +Works great with Adafruit RTC breakouts: + +- [DS3231 Precision RTC](https://www.adafruit.com/product/3013) +- [PCF8523 RTC](https://www.adafruit.com/product/3295) +- [DS1307 RTC](https://www.adafruit.com/product/3296) + +To install, use the Arduino Library Manager to search for "RTClib", find "RTClib by Adafruit" and install the library. + +Please note that dayOfTheWeek() ranges from 0 to 6 inclusive with 0 being 'Sunday'. + + + +## Compatibility + +MCU | Tested Works | Doesn't Work | Not Tested | Notes +------------------ | :----------: | :----------: | :---------: | ----- +Atmega328 @ 16MHz | X | | | +Atmega328 @ 12MHz | X | | | +Atmega32u4 @ 16MHz | X | | | Use SDA/SCL on pins D3 & D2 +Atmega32u4 @ 8MHz | X | | | Use SDA/SCL on pins D3 & D2 +ESP8266 | X | | | SDA/SCL default to pins 4 & 5 but any two pins can be assigned as SDA/SCL using Wire.begin(SDA,SCL) +Atmega2560 @ 16MHz | X | | | Use SDA/SCL on Pins 20 & 21 +ATSAM3X8E | X | | | Use SDA1 and SCL1 +ATSAM21D | X | | | +ATtiny85 @ 16MHz | X | | | +ATtiny85 @ 8MHz | X | | | +Intel Curie @ 32MHz | | | X | +STM32F2 | | | X | + + * ATmega328 @ 16MHz : Arduino UNO, Adafruit Pro Trinket 5V, Adafruit Metro 328, Adafruit Metro Mini + * ATmega328 @ 12MHz : Adafruit Pro Trinket 3V + * ATmega32u4 @ 16MHz : Arduino Leonardo, Arduino Micro, Arduino Yun, Teensy 2.0 + * ATmega32u4 @ 8MHz : Adafruit Flora, Bluefruit Micro + * ESP8266 : Adafruit Huzzah + * ATmega2560 @ 16MHz : Arduino Mega + * ATSAM3X8E : Arduino Due + * ATSAM21D : Arduino Zero, M0 Pro + * ATtiny85 @ 16MHz : Adafruit Trinket 5V + * ATtiny85 @ 8MHz : Adafruit Gemma, Arduino Gemma, Adafruit Trinket 3V + + diff --git a/Libs/RTClib-master/RTClib.cpp b/Libs/RTClib-master/RTClib.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6e3e4ac9cc5811d77e14c3fc0a19ef992d5a6ee9 --- /dev/null +++ b/Libs/RTClib-master/RTClib.cpp @@ -0,0 +1,1056 @@ +/**************************************************************************/ +/*! + @file RTClib.cpp + + @mainpage Adafruit RTClib + + @section intro Introduction + + This is a fork of JeeLab's fantastic real time clock library for Arduino. + + For details on using this library with an RTC module like the DS1307, PCF8523, or DS3231, + see the guide at: https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview + + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! + + @section license License + + Original library by JeeLabs http://news.jeelabs.org/code/, released to the public domain. + + This version: MIT (see LICENSE) +*/ +/**************************************************************************/ + +#ifdef __AVR_ATtiny85__ + #include + #define Wire TinyWireM +#else +#include +#endif + +#include "RTClib.h" +#ifdef __AVR__ + #include +#elif defined(ESP8266) + #include +#elif defined(ARDUINO_ARCH_SAMD) +// nothing special needed +#elif defined(ARDUINO_SAM_DUE) + #define PROGMEM + #define pgm_read_byte(addr) (*(const unsigned char *)(addr)) + #define Wire Wire1 +#endif + + + +#if (ARDUINO >= 100) + #include // capital A so it is error prone on case-sensitive filesystems + // Macro to deal with the difference in I2C write functions from old and new Arduino versions. + #define _I2C_WRITE write ///< Modern I2C write + #define _I2C_READ read ///< Modern I2C read +#else + #include + #define _I2C_WRITE send ///< Legacy I2C write + #define _I2C_READ receive ///< legacy I2C read +#endif + + +/**************************************************************************/ +/*! + @brief Read a byte from an I2C register + @param addr I2C address + @param reg Register address + @return Register value +*/ +/**************************************************************************/ +static uint8_t read_i2c_register(uint8_t addr, uint8_t reg) { + Wire.beginTransmission(addr); + Wire._I2C_WRITE((byte)reg); + Wire.endTransmission(); + + Wire.requestFrom(addr, (byte)1); + return Wire._I2C_READ(); +} + +/**************************************************************************/ +/*! + @brief Write a byte to an I2C register + @param addr I2C address + @param reg Register address + @param val Value to write +*/ +/**************************************************************************/ +static void write_i2c_register(uint8_t addr, uint8_t reg, uint8_t val) { + Wire.beginTransmission(addr); + Wire._I2C_WRITE((byte)reg); + Wire._I2C_WRITE((byte)val); + Wire.endTransmission(); +} + + +/**************************************************************************/ +// utility code, some of this could be exposed in the DateTime API if needed +/**************************************************************************/ + +/** Number of days in each month */ +const uint8_t daysInMonth [] PROGMEM = { 31,28,31,30,31,30,31,31,30,31,30,31 }; + +/**************************************************************************/ +/*! + @brief Given a date, return number of days since 2000/01/01, valid for 2001..2099 + @param y Year + @param m Month + @param d Day + @return Number of days +*/ +/**************************************************************************/ +static uint16_t date2days(uint16_t y, uint8_t m, uint8_t d) { + if (y >= 2000) + y -= 2000; + uint16_t days = d; + for (uint8_t i = 1; i < m; ++i) + days += pgm_read_byte(daysInMonth + i - 1); + if (m > 2 && y % 4 == 0) + ++days; + return days + 365 * y + (y + 3) / 4 - 1; +} + +/**************************************************************************/ +/*! + @brief Given a number of days, hours, minutes, and seconds, return the total seconds + @param days Days + @param h Hours + @param m Minutes + @param s Seconds + @return Number of seconds total +*/ +/**************************************************************************/ +static long time2long(uint16_t days, uint8_t h, uint8_t m, uint8_t s) { + return ((days * 24L + h) * 60 + m) * 60 + s; +} + + + +/**************************************************************************/ +/*! + @brief DateTime constructor from unixtime + @param t Initial time in seconds since Jan 1, 1970 (Unix time) +*/ +/**************************************************************************/ +DateTime::DateTime (uint32_t t) { + t -= SECONDS_FROM_1970_TO_2000; // bring to 2000 timestamp from 1970 + + ss = t % 60; + t /= 60; + mm = t % 60; + t /= 60; + hh = t % 24; + uint16_t days = t / 24; + uint8_t leap; + for (yOff = 0; ; ++yOff) { + leap = yOff % 4 == 0; + if (days < 365 + leap) + break; + days -= 365 + leap; + } + for (m = 1; ; ++m) { + uint8_t daysPerMonth = pgm_read_byte(daysInMonth + m - 1); + if (leap && m == 2) + ++daysPerMonth; + if (days < daysPerMonth) + break; + days -= daysPerMonth; + } + d = days + 1; +} + +/**************************************************************************/ +/*! + @brief DateTime constructor from Y-M-D H:M:S + @param year Year, 2 or 4 digits (year 2000 or higher) + @param month Month 1-12 + @param day Day 1-31 + @param hour 0-23 + @param min 0-59 + @param sec 0-59 +*/ +/**************************************************************************/ +DateTime::DateTime (uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t min, uint8_t sec) { + if (year >= 2000) + year -= 2000; + yOff = year; + m = month; + d = day; + hh = hour; + mm = min; + ss = sec; +} + +/**************************************************************************/ +/*! + @brief DateTime copy constructor using a member initializer list + @param copy DateTime object to copy +*/ +/**************************************************************************/ +DateTime::DateTime (const DateTime& copy): + yOff(copy.yOff), + m(copy.m), + d(copy.d), + hh(copy.hh), + mm(copy.mm), + ss(copy.ss) +{} + +/**************************************************************************/ +/*! + @brief Convert a string containing two digits to uint8_t, e.g. "09" returns 9 + @param p Pointer to a string containing two digits +*/ +/**************************************************************************/ +static uint8_t conv2d(const char* p) { + uint8_t v = 0; + if ('0' <= *p && *p <= '9') + v = *p - '0'; + return 10 * v + *++p - '0'; +} + +/**************************************************************************/ +/*! + @brief A convenient constructor for using "the compiler's time": + DateTime now (__DATE__, __TIME__); + NOTE: using F() would further reduce the RAM footprint, see below. + @param date Date string, e.g. "Dec 26 2009" + @param time Time string, e.g. "12:34:56" +*/ +/**************************************************************************/ +DateTime::DateTime (const char* date, const char* time) { + // sample input: date = "Dec 26 2009", time = "12:34:56" + yOff = conv2d(date + 9); + // Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec + switch (date[0]) { + case 'J': m = (date[1] == 'a') ? 1 : ((date[2] == 'n') ? 6 : 7); break; + case 'F': m = 2; break; + case 'A': m = date[2] == 'r' ? 4 : 8; break; + case 'M': m = date[2] == 'r' ? 3 : 5; break; + case 'S': m = 9; break; + case 'O': m = 10; break; + case 'N': m = 11; break; + case 'D': m = 12; break; + } + d = conv2d(date + 4); + hh = conv2d(time); + mm = conv2d(time + 3); + ss = conv2d(time + 6); +} + +/**************************************************************************/ +/*! + @brief A convenient constructor for using "the compiler's time": + This version will save RAM by using PROGMEM to store it by using the F macro. + DateTime now (F(__DATE__), F(__TIME__)); + @param date Date string, e.g. "Dec 26 2009" + @param time Time string, e.g. "12:34:56" +*/ +/**************************************************************************/ +DateTime::DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time) { + // sample input: date = "Dec 26 2009", time = "12:34:56" + char buff[11]; + memcpy_P(buff, date, 11); + yOff = conv2d(buff + 9); + // Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec + switch (buff[0]) { + case 'J': m = (buff[1] == 'a') ? 1 : ((buff[2] == 'n') ? 6 : 7); break; + case 'F': m = 2; break; + case 'A': m = buff[2] == 'r' ? 4 : 8; break; + case 'M': m = buff[2] == 'r' ? 3 : 5; break; + case 'S': m = 9; break; + case 'O': m = 10; break; + case 'N': m = 11; break; + case 'D': m = 12; break; + } + d = conv2d(buff + 4); + memcpy_P(buff, time, 8); + hh = conv2d(buff); + mm = conv2d(buff + 3); + ss = conv2d(buff + 6); +} + +/**************************************************************************/ +/*! + @brief Return DateTime in based on user defined format. + @param buffer: array of char for holding the format description and the formatted DateTime. + Before calling this method, the buffer should be initialized by the user with + a format string, e.g. "YYYY-MM-DD hh:mm:ss". The method will overwrite + the buffer with the formatted date and/or time. + @return a pointer to the provided buffer. This is returned for convenience, + in order to enable idioms such as Serial.println(now.toString(buffer)); +*/ +/**************************************************************************/ + +char* DateTime::toString(char* buffer){ + for(int i=0;i> 4); } + +/**************************************************************************/ +/*! + @brief Convert a binary value to BCD format for the RTC registers + @param val Binary value + @return BCD value +*/ +/**************************************************************************/ +static uint8_t bin2bcd (uint8_t val) { return val + 6 * (val / 10); } + + + +/**************************************************************************/ +/*! + @brief Startup for the DS1307 + @return Always true +*/ +/**************************************************************************/ +boolean RTC_DS1307::begin(void) { + Wire.begin(); + return true; +} + +/**************************************************************************/ +/*! + @brief Is the DS1307 running? Check the Clock Halt bit in register 0 + @return 1 if the RTC is running, 0 if not +*/ +/**************************************************************************/ +uint8_t RTC_DS1307::isrunning(void) { + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE((byte)0); + Wire.endTransmission(); + + Wire.requestFrom(DS1307_ADDRESS, 1); + uint8_t ss = Wire._I2C_READ(); + return !(ss>>7); +} + +/**************************************************************************/ +/*! + @brief Set the date and time in the DS1307 + @param dt DateTime object containing the desired date/time +*/ +/**************************************************************************/ +void RTC_DS1307::adjust(const DateTime& dt) { + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE((byte)0); // start at location 0 + Wire._I2C_WRITE(bin2bcd(dt.second())); + Wire._I2C_WRITE(bin2bcd(dt.minute())); + Wire._I2C_WRITE(bin2bcd(dt.hour())); + Wire._I2C_WRITE(bin2bcd(0)); + Wire._I2C_WRITE(bin2bcd(dt.day())); + Wire._I2C_WRITE(bin2bcd(dt.month())); + Wire._I2C_WRITE(bin2bcd(dt.year() - 2000)); + Wire.endTransmission(); +} + +/**************************************************************************/ +/*! + @brief Get the current date and time from the DS1307 + @return DateTime object containing the current date and time +*/ +/**************************************************************************/ +DateTime RTC_DS1307::now() { + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE((byte)0); + Wire.endTransmission(); + + Wire.requestFrom(DS1307_ADDRESS, 7); + uint8_t ss = bcd2bin(Wire._I2C_READ() & 0x7F); + uint8_t mm = bcd2bin(Wire._I2C_READ()); + uint8_t hh = bcd2bin(Wire._I2C_READ()); + Wire._I2C_READ(); + uint8_t d = bcd2bin(Wire._I2C_READ()); + uint8_t m = bcd2bin(Wire._I2C_READ()); + uint16_t y = bcd2bin(Wire._I2C_READ()) + 2000; + + return DateTime (y, m, d, hh, mm, ss); +} + +/**************************************************************************/ +/*! + @brief Read the current mode of the SQW pin + @return Mode as Ds1307SqwPinMode enum +*/ +/**************************************************************************/ +Ds1307SqwPinMode RTC_DS1307::readSqwPinMode() { + int mode; + + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE(DS1307_CONTROL); + Wire.endTransmission(); + + Wire.requestFrom((uint8_t)DS1307_ADDRESS, (uint8_t)1); + mode = Wire._I2C_READ(); + + mode &= 0x93; + return static_cast(mode); +} + +/**************************************************************************/ +/*! + @brief Change the SQW pin mode + @param mode The mode to use +*/ +/**************************************************************************/ +void RTC_DS1307::writeSqwPinMode(Ds1307SqwPinMode mode) { + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE(DS1307_CONTROL); + Wire._I2C_WRITE(mode); + Wire.endTransmission(); +} + +/**************************************************************************/ +/*! + @brief Read data from the DS1307's NVRAM + @param buf Pointer to a buffer to store the data - make sure it's large enough to hold size bytes + @param size Number of bytes to read + @param address Starting NVRAM address, from 0 to 55 +*/ +/**************************************************************************/ +void RTC_DS1307::readnvram(uint8_t* buf, uint8_t size, uint8_t address) { + int addrByte = DS1307_NVRAM + address; + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE(addrByte); + Wire.endTransmission(); + + Wire.requestFrom((uint8_t) DS1307_ADDRESS, size); + for (uint8_t pos = 0; pos < size; ++pos) { + buf[pos] = Wire._I2C_READ(); + } +} + +/**************************************************************************/ +/*! + @brief Write data to the DS1307 NVRAM + @param address Starting NVRAM address, from 0 to 55 + @param buf Pointer to buffer containing the data to write + @param size Number of bytes in buf to write to NVRAM +*/ +/**************************************************************************/ +void RTC_DS1307::writenvram(uint8_t address, uint8_t* buf, uint8_t size) { + int addrByte = DS1307_NVRAM + address; + Wire.beginTransmission(DS1307_ADDRESS); + Wire._I2C_WRITE(addrByte); + for (uint8_t pos = 0; pos < size; ++pos) { + Wire._I2C_WRITE(buf[pos]); + } + Wire.endTransmission(); +} + +/**************************************************************************/ +/*! + @brief Shortcut to read one byte from NVRAM + @param address NVRAM address, 0 to 55 + @return The byte read from NVRAM +*/ +/**************************************************************************/ +uint8_t RTC_DS1307::readnvram(uint8_t address) { + uint8_t data; + readnvram(&data, 1, address); + return data; +} + +/**************************************************************************/ +/*! + @brief Shortcut to write one byte to NVRAM + @param address NVRAM address, 0 to 55 + @param data One byte to write +*/ +/**************************************************************************/ +void RTC_DS1307::writenvram(uint8_t address, uint8_t data) { + writenvram(address, &data, 1); +} + + + +/** Alignment between the milis() timescale and the Unix timescale. These + two variables are updated on each call to now(), which prevents + rollover issues. Note that lastMillis is **not** the millis() value + of the last call to now(): it's the millis() value corresponding to + the last **full second** of Unix time. */ +uint32_t RTC_Millis::lastMillis; +uint32_t RTC_Millis::lastUnix; + +/**************************************************************************/ +/*! + @brief Set the current date/time of the RTC_Millis clock. + @param dt DateTime object with the desired date and time +*/ +/**************************************************************************/ +void RTC_Millis::adjust(const DateTime& dt) { + lastMillis = millis(); + lastUnix = dt.unixtime(); +} + +/**************************************************************************/ +/*! + @brief Return a DateTime object containing the current date/time. + Note that computing (millis() - lastMillis) is rollover-safe as long + as this method is called at least once every 49.7 days. + @return DateTime object containing current time +*/ +/**************************************************************************/ +DateTime RTC_Millis::now() { + uint32_t elapsedSeconds = (millis() - lastMillis) / 1000; + lastMillis += elapsedSeconds * 1000; + lastUnix += elapsedSeconds; + return lastUnix; +} + + + +/** Number of microseconds reported by micros() per "true" (calibrated) second. */ +uint32_t RTC_Micros::microsPerSecond = 1000000; + +/** The timing logic is identical to RTC_Millis. */ +uint32_t RTC_Micros::lastMicros; +uint32_t RTC_Micros::lastUnix; + +/**************************************************************************/ +/*! + @brief Set the current date/time of the RTC_Micros clock. + @param dt DateTime object with the desired date and time +*/ +/**************************************************************************/ +void RTC_Micros::adjust(const DateTime& dt) { + lastMicros = micros(); + lastUnix = dt.unixtime(); +} + +/**************************************************************************/ +/*! + @brief Adjust the RTC_Micros clock to compensate for system clock drift + @param ppm Adjustment to make +*/ +/**************************************************************************/ +// A positive adjustment makes the clock faster. +void RTC_Micros::adjustDrift(int ppm) { + microsPerSecond = 1000000 - ppm; +} + +/**************************************************************************/ +/*! + @brief Get the current date/time from the RTC_Micros clock. + @return DateTime object containing the current date/time +*/ +/**************************************************************************/ +DateTime RTC_Micros::now() { + uint32_t elapsedSeconds = (micros() - lastMicros) / microsPerSecond; + lastMicros += elapsedSeconds * microsPerSecond; + lastUnix += elapsedSeconds; + return lastUnix; +} + + + +/**************************************************************************/ +/*! + @brief Start using the PCF8523 + @return True +*/ +/**************************************************************************/ +//////////////////////////////////////////////////////////////////////////////// +// RTC_PCF8563 implementation +boolean RTC_PCF8523::begin(void) { + Wire.begin(); + return true; +} + +/**************************************************************************/ +/*! + @brief Check control register 3 to see if we've run adjust() yet (setting the date/time and battery switchover mode) + @return True if the PCF8523 has been set up, false if not +*/ +/**************************************************************************/ +boolean RTC_PCF8523::initialized(void) { + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE((byte)PCF8523_CONTROL_3); + Wire.endTransmission(); + + Wire.requestFrom(PCF8523_ADDRESS, 1); + uint8_t ss = Wire._I2C_READ(); + return ((ss & 0xE0) != 0xE0); +} + +/**************************************************************************/ +/*! + @brief Set the date and time, set battery switchover mode + @param dt DateTime to set +*/ +/**************************************************************************/ +void RTC_PCF8523::adjust(const DateTime& dt) { + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE((byte)3); // start at location 3 + Wire._I2C_WRITE(bin2bcd(dt.second())); + Wire._I2C_WRITE(bin2bcd(dt.minute())); + Wire._I2C_WRITE(bin2bcd(dt.hour())); + Wire._I2C_WRITE(bin2bcd(dt.day())); + Wire._I2C_WRITE(bin2bcd(0)); // skip weekdays + Wire._I2C_WRITE(bin2bcd(dt.month())); + Wire._I2C_WRITE(bin2bcd(dt.year() - 2000)); + Wire.endTransmission(); + + // set to battery switchover mode + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE((byte)PCF8523_CONTROL_3); + Wire._I2C_WRITE((byte)0x00); + Wire.endTransmission(); +} + +/**************************************************************************/ +/*! + @brief Get the current date/time + @return DateTime object containing the current date/time +*/ +/**************************************************************************/ +DateTime RTC_PCF8523::now() { + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE((byte)3); + Wire.endTransmission(); + + Wire.requestFrom(PCF8523_ADDRESS, 7); + uint8_t ss = bcd2bin(Wire._I2C_READ() & 0x7F); + uint8_t mm = bcd2bin(Wire._I2C_READ()); + uint8_t hh = bcd2bin(Wire._I2C_READ()); + uint8_t d = bcd2bin(Wire._I2C_READ()); + Wire._I2C_READ(); // skip 'weekdays' + uint8_t m = bcd2bin(Wire._I2C_READ()); + uint16_t y = bcd2bin(Wire._I2C_READ()) + 2000; + + return DateTime (y, m, d, hh, mm, ss); +} + +/**************************************************************************/ +/*! + @brief Read the mode of the SQW pin on the PCF8523 + @return SQW pin mode as a Pcf8523SqwPinMode enum +*/ +/**************************************************************************/ +Pcf8523SqwPinMode RTC_PCF8523::readSqwPinMode() { + int mode; + + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE(PCF8523_CLKOUTCONTROL); + Wire.endTransmission(); + + Wire.requestFrom((uint8_t)PCF8523_ADDRESS, (uint8_t)1); + mode = Wire._I2C_READ(); + + mode >>= 3; + mode &= 0x7; + return static_cast(mode); +} + +/**************************************************************************/ +/*! + @brief Set the SQW pin mode on the PCF8523 + @param mode The mode to set, see the Pcf8523SqwPinMode enum for options +*/ +/**************************************************************************/ +void RTC_PCF8523::writeSqwPinMode(Pcf8523SqwPinMode mode) { + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE(PCF8523_CLKOUTCONTROL); + Wire._I2C_WRITE(mode << 3); + Wire.endTransmission(); +} + +/**************************************************************************/ +/*! + @brief Use an offset to calibrate the PCF8523. This can be used for: + - Aging adjustment + - Temperature compensation + - Accuracy tuning + @param mode The offset mode to use, once every two hours or once every minute. See the Pcf8523OffsetMode enum. + @param offset Offset value from -64 to +63. See the datasheet for exact ppm values. +*/ +/**************************************************************************/ +void RTC_PCF8523::calibrate(Pcf8523OffsetMode mode, int8_t offset) { + uint8_t reg = (uint8_t) offset & 0x7F; + reg |= mode; + + Wire.beginTransmission(PCF8523_ADDRESS); + Wire._I2C_WRITE(PCF8523_OFFSET); + Wire._I2C_WRITE(reg); + Wire.endTransmission(); +} + + + +/**************************************************************************/ +/*! + @brief Start I2C for the DS3231 + @return True +*/ +/**************************************************************************/ +boolean RTC_DS3231::begin(void) { + Wire.begin(); + return true; +} + +/**************************************************************************/ +/*! + @brief Check the status register Oscillator Stop Flag to see if the DS3231 stopped due to power loss + @return True if the bit is set (oscillator stopped) or false if it is running +*/ +/**************************************************************************/ +bool RTC_DS3231::lostPower(void) { + return (read_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG) >> 7); +} + +/**************************************************************************/ +/*! + @brief Set the date and flip the Oscillator Stop Flag + @param dt DateTime object containing the date/time to set +*/ +/**************************************************************************/ +void RTC_DS3231::adjust(const DateTime& dt) { + Wire.beginTransmission(DS3231_ADDRESS); + Wire._I2C_WRITE((byte)0); // start at location 0 + Wire._I2C_WRITE(bin2bcd(dt.second())); + Wire._I2C_WRITE(bin2bcd(dt.minute())); + Wire._I2C_WRITE(bin2bcd(dt.hour())); + Wire._I2C_WRITE(bin2bcd(0)); + Wire._I2C_WRITE(bin2bcd(dt.day())); + Wire._I2C_WRITE(bin2bcd(dt.month())); + Wire._I2C_WRITE(bin2bcd(dt.year() - 2000)); + Wire.endTransmission(); + + uint8_t statreg = read_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG); + statreg &= ~0x80; // flip OSF bit + write_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG, statreg); +} + +/**************************************************************************/ +/*! + @brief Get the current date/time + @return DateTime object with the current date/time +*/ +/**************************************************************************/ +DateTime RTC_DS3231::now() { + Wire.beginTransmission(DS3231_ADDRESS); + Wire._I2C_WRITE((byte)0); + Wire.endTransmission(); + + Wire.requestFrom(DS3231_ADDRESS, 7); + uint8_t ss = bcd2bin(Wire._I2C_READ() & 0x7F); + uint8_t mm = bcd2bin(Wire._I2C_READ()); + uint8_t hh = bcd2bin(Wire._I2C_READ()); + Wire._I2C_READ(); + uint8_t d = bcd2bin(Wire._I2C_READ()); + uint8_t m = bcd2bin(Wire._I2C_READ()); + uint16_t y = bcd2bin(Wire._I2C_READ()) + 2000; + + return DateTime (y, m, d, hh, mm, ss); +} + +/**************************************************************************/ +/*! + @brief Read the SQW pin mode + @return Pin mode, see Ds3231SqwPinMode enum +*/ +/**************************************************************************/ +Ds3231SqwPinMode RTC_DS3231::readSqwPinMode() { + int mode; + + Wire.beginTransmission(DS3231_ADDRESS); + Wire._I2C_WRITE(DS3231_CONTROL); + Wire.endTransmission(); + + Wire.requestFrom((uint8_t)DS3231_ADDRESS, (uint8_t)1); + mode = Wire._I2C_READ(); + + mode &= 0x93; + return static_cast(mode); +} + +/**************************************************************************/ +/*! + @brief Set the SQW pin mode + @param mode Desired mode, see Ds3231SqwPinMode enum +*/ +/**************************************************************************/ +void RTC_DS3231::writeSqwPinMode(Ds3231SqwPinMode mode) { + uint8_t ctrl; + ctrl = read_i2c_register(DS3231_ADDRESS, DS3231_CONTROL); + + ctrl &= ~0x04; // turn off INTCON + ctrl &= ~0x18; // set freq bits to 0 + + if (mode == DS3231_OFF) { + ctrl |= 0x04; // turn on INTCN + } else { + ctrl |= mode; + } + write_i2c_register(DS3231_ADDRESS, DS3231_CONTROL, ctrl); + + //Serial.println( read_i2c_register(DS3231_ADDRESS, DS3231_CONTROL), HEX); +} + +/**************************************************************************/ +/*! + @brief Get the current temperature from the DS3231's temperature sensor + @return Current temperature (float) +*/ +/**************************************************************************/ +float RTC_DS3231::getTemperature() +{ + uint8_t msb, lsb; + Wire.beginTransmission(DS3231_ADDRESS); + Wire._I2C_WRITE(DS3231_TEMPERATUREREG); + Wire.endTransmission(); + + Wire.requestFrom(DS3231_ADDRESS, 2); + msb = Wire._I2C_READ(); + lsb = Wire._I2C_READ(); + +// Serial.print("msb="); +// Serial.print(msb,HEX); +// Serial.print(", lsb="); +// Serial.println(lsb,HEX); + + return (float) msb + (lsb >> 6) * 0.25f; +} diff --git a/Libs/RTClib-master/RTClib.h b/Libs/RTClib-master/RTClib.h new file mode 100644 index 0000000000000000000000000000000000000000..47cff4c310a6960f0b3288146220c04bcd8809c6 --- /dev/null +++ b/Libs/RTClib-master/RTClib.h @@ -0,0 +1,345 @@ +/**************************************************************************/ +/*! + @file RTClib.h + + Original library by JeeLabs http://news.jeelabs.org/code/, released to the public domain + + License: MIT (see LICENSE) + + This is a fork of JeeLab's fantastic real time clock library for Arduino. + + For details on using this library with an RTC module like the DS1307, PCF8523, or DS3231, + see the guide at: https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview + + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! +*/ +/**************************************************************************/ + +#ifndef _RTCLIB_H_ +#define _RTCLIB_H_ + +#include +class TimeSpan; + +/** Registers */ +#define PCF8523_ADDRESS 0x68 ///< I2C address for PCF8523 +#define PCF8523_CLKOUTCONTROL 0x0F ///< Timer and CLKOUT control register +#define PCF8523_CONTROL_3 0x02 ///< Control and status register 3 +#define PCF8523_OFFSET 0x0E ///< Offset register + +#define DS1307_ADDRESS 0x68 ///< I2C address for DS1307 +#define DS1307_CONTROL 0x07 ///< Control register +#define DS1307_NVRAM 0x08 ///< Start of RAM registers - 56 bytes, 0x08 to 0x3f + +#define DS3231_ADDRESS 0x68 ///< I2C address for DS3231 +#define DS3231_CONTROL 0x0E ///< Control register +#define DS3231_STATUSREG 0x0F ///< Status register +#define DS3231_TEMPERATUREREG 0x11 ///< Temperature register (high byte - low byte is at 0x12), 10-bit temperature value + +/** Constants */ +#define SECONDS_PER_DAY 86400L ///< 60 * 60 * 24 +#define SECONDS_FROM_1970_TO_2000 946684800 ///< Unixtime for 2000-01-01 00:00:00, useful for initialization + + +/**************************************************************************/ +/*! + @brief Simple general-purpose date/time class (no TZ / DST / leap second handling!). + See http://en.wikipedia.org/wiki/Leap_second +*/ +/**************************************************************************/ +class DateTime { +public: + DateTime (uint32_t t = SECONDS_FROM_1970_TO_2000); + DateTime (uint16_t year, uint8_t month, uint8_t day, + uint8_t hour = 0, uint8_t min = 0, uint8_t sec = 0); + DateTime (const DateTime& copy); + DateTime (const char* date, const char* time); + DateTime (const __FlashStringHelper* date, const __FlashStringHelper* time); + char* toString(char* buffer); + + /*! + @brief Return the year, stored as an offset from 2000 + @return uint16_t year + */ + uint16_t year() const { return 2000 + yOff; } + /*! + @brief Return month + @return uint8_t month + */ + uint8_t month() const { return m; } + /*! + @brief Return day + @return uint8_t day + */ + uint8_t day() const { return d; } + /*! + @brief Return hours + @return uint8_t hours + */ + uint8_t hour() const { return hh; } + /*! + @brief Return minutes + @return uint8_t minutes + */ + uint8_t minute() const { return mm; } + /*! + @brief Return seconds + @return uint8_t seconds + */ + uint8_t second() const { return ss; } + + uint8_t dayOfTheWeek() const; + + /** 32-bit times as seconds since 1/1/2000 */ + long secondstime() const; + + /** 32-bit times as seconds since 1/1/1970 */ + uint32_t unixtime(void) const; + + /** ISO 8601 Timestamp function */ + enum timestampOpt{ + TIMESTAMP_FULL, // YYYY-MM-DDTHH:MM:SS + TIMESTAMP_TIME, // HH:MM:SS + TIMESTAMP_DATE // YYYY-MM-DD + }; + String timestamp(timestampOpt opt = TIMESTAMP_FULL); + + DateTime operator+(const TimeSpan& span); + DateTime operator-(const TimeSpan& span); + TimeSpan operator-(const DateTime& right); + bool operator<(const DateTime& right) const; + /*! + @brief Test if one DateTime is greater (later) than another + @param right DateTime object to compare + @return True if the left object is greater than the right object, false otherwise + */ + bool operator>(const DateTime& right) const { return right < *this; } + /*! + @brief Test if one DateTime is less (earlier) than or equal to another + @param right DateTime object to compare + @return True if the left object is less than or equal to the right object, false otherwise + */ + bool operator<=(const DateTime& right) const { return !(*this > right); } + /*! + @brief Test if one DateTime is greater (later) than or equal to another + @param right DateTime object to compare + @return True if the left object is greater than or equal to the right object, false otherwise + */ + bool operator>=(const DateTime& right) const { return !(*this < right); } + bool operator==(const DateTime& right) const; + /*! + @brief Test if two DateTime objects not equal + @param right DateTime object to compare + @return True if the two objects are not equal, false if they are + */ + bool operator!=(const DateTime& right) const { return !(*this == right); } + +protected: + uint8_t yOff; ///< Year offset from 2000 + uint8_t m; ///< Month 1-12 + uint8_t d; ///< Day 1-31 + uint8_t hh; ///< Hours 0-23 + uint8_t mm; ///< Minutes 0-59 + uint8_t ss; ///< Seconds 0-59 +}; + + +/**************************************************************************/ +/*! + @brief Timespan which can represent changes in time with seconds accuracy. +*/ +/**************************************************************************/ +class TimeSpan { +public: + TimeSpan (int32_t seconds = 0); + TimeSpan (int16_t days, int8_t hours, int8_t minutes, int8_t seconds); + TimeSpan (const TimeSpan& copy); + + /*! + @brief Number of days in the TimeSpan + e.g. 4 + @return int16_t days + */ + int16_t days() const { return _seconds / 86400L; } + /*! + @brief Number of hours in the TimeSpan + This is not the total hours, it includes the days + e.g. 4 days, 3 hours - NOT 99 hours + @return int8_t hours + */ + int8_t hours() const { return _seconds / 3600 % 24; } + /*! + @brief Number of minutes in the TimeSpan + This is not the total minutes, it includes days/hours + e.g. 4 days, 3 hours, 27 minutes + @return int8_t minutes + */ + int8_t minutes() const { return _seconds / 60 % 60; } + /*! + @brief Number of seconds in the TimeSpan + This is not the total seconds, it includes the days/hours/minutes + e.g. 4 days, 3 hours, 27 minutes, 7 seconds + @return int8_t seconds + */ + int8_t seconds() const { return _seconds % 60; } + /*! + @brief Total number of seconds in the TimeSpan, e.g. 358027 + @return int32_t seconds + */ + int32_t totalseconds() const { return _seconds; } + + TimeSpan operator+(const TimeSpan& right); + TimeSpan operator-(const TimeSpan& right); + +protected: + int32_t _seconds; ///< Actual TimeSpan value is stored as seconds +}; + + + +/** DS1307 SQW pin mode settings */ +enum Ds1307SqwPinMode { + DS1307_OFF = 0x00, // Low + DS1307_ON = 0x80, // High + DS1307_SquareWave1HZ = 0x10, // 1Hz square wave + DS1307_SquareWave4kHz = 0x11, // 4kHz square wave + DS1307_SquareWave8kHz = 0x12, // 8kHz square wave + DS1307_SquareWave32kHz = 0x13 // 32kHz square wave +}; + +/**************************************************************************/ +/*! + @brief RTC based on the DS1307 chip connected via I2C and the Wire library +*/ +/**************************************************************************/ +class RTC_DS1307 { +public: + boolean begin(void); + static void adjust(const DateTime& dt); + uint8_t isrunning(void); + static DateTime now(); + static Ds1307SqwPinMode readSqwPinMode(); + static void writeSqwPinMode(Ds1307SqwPinMode mode); + uint8_t readnvram(uint8_t address); + void readnvram(uint8_t* buf, uint8_t size, uint8_t address); + void writenvram(uint8_t address, uint8_t data); + void writenvram(uint8_t address, uint8_t* buf, uint8_t size); +}; + + + +/** DS3231 SQW pin mode settings */ +enum Ds3231SqwPinMode { + DS3231_OFF = 0x01, // Off + DS3231_SquareWave1Hz = 0x00, // 1Hz square wave + DS3231_SquareWave1kHz = 0x08, // 1kHz square wave + DS3231_SquareWave4kHz = 0x10, // 4kHz square wave + DS3231_SquareWave8kHz = 0x18 // 8kHz square wave +}; + +/**************************************************************************/ +/*! + @brief RTC based on the DS3231 chip connected via I2C and the Wire library +*/ +/**************************************************************************/ +class RTC_DS3231 { +public: + boolean begin(void); + static void adjust(const DateTime& dt); + bool lostPower(void); + static DateTime now(); + static Ds3231SqwPinMode readSqwPinMode(); + static void writeSqwPinMode(Ds3231SqwPinMode mode); + static float getTemperature(); // in Celcius degree +}; + + + +/** PCF8523 SQW pin mode settings */ +enum Pcf8523SqwPinMode { + PCF8523_OFF = 7, // Off + PCF8523_SquareWave1HZ = 6, // 1Hz square wave + PCF8523_SquareWave32HZ = 5, // 32Hz square wave + PCF8523_SquareWave1kHz = 4, // 1kHz square wave + PCF8523_SquareWave4kHz = 3, // 4kHz square wave + PCF8523_SquareWave8kHz = 2, // 8kHz square wave + PCF8523_SquareWave16kHz = 1, // 16kHz square wave + PCF8523_SquareWave32kHz = 0 // 32kHz square wave +}; + +/** PCF8523 Offset modes for making temperature/aging/accuracy adjustments */ +enum Pcf8523OffsetMode { + PCF8523_TwoHours = 0x00, // Offset made every two hours + PCF8523_OneMinute = 0x80 // Offset made every minute +}; + +/**************************************************************************/ +/*! + @brief RTC based on the PCF8523 chip connected via I2C and the Wire library +*/ +/**************************************************************************/ +class RTC_PCF8523 { +public: + boolean begin(void); + void adjust(const DateTime& dt); + boolean initialized(void); + static DateTime now(); + + Pcf8523SqwPinMode readSqwPinMode(); + void writeSqwPinMode(Pcf8523SqwPinMode mode); + void calibrate(Pcf8523OffsetMode mode, int8_t offset); +}; + + +/**************************************************************************/ +/*! + @brief RTC using the internal millis() clock, has to be initialized before use. + NOTE: this is immune to millis() rollover events. +*/ +/**************************************************************************/ +class RTC_Millis { +public: + /*! + @brief Start the RTC + @param dt DateTime object with the date/time to set + */ + static void begin(const DateTime& dt) { adjust(dt); } + static void adjust(const DateTime& dt); + static DateTime now(); + +protected: + static uint32_t lastUnix; ///< Unix time from the previous call to now() - prevents rollover issues + static uint32_t lastMillis; ///< the millis() value corresponding to the last **full second** of Unix time +}; + + + +/**************************************************************************/ +/*! + @brief RTC using the internal micros() clock, has to be initialized before + use. Unlike RTC_Millis, this can be tuned in order to compensate for + the natural drift of the system clock. Note that now() has to be + called more frequently than the micros() rollover period, which is + approximately 71.6 minutes. +*/ +/**************************************************************************/ +class RTC_Micros { +public: + /*! + @brief Start the RTC + @param dt DateTime object with the date/time to set + */ + static void begin(const DateTime& dt) { adjust(dt); } + static void adjust(const DateTime& dt); + static void adjustDrift(int ppm); + static DateTime now(); + +protected: + static uint32_t microsPerSecond; ///< Number of microseconds reported by micros() per "true" (calibrated) second + static uint32_t lastUnix; ///< Unix time from the previous call to now() - prevents rollover issues + static uint32_t lastMicros; ///< micros() value corresponding to the last full second of Unix time +}; + +#endif // _RTCLIB_H_ diff --git a/Libs/RTClib-master/code-of-conduct.md b/Libs/RTClib-master/code-of-conduct.md new file mode 100644 index 0000000000000000000000000000000000000000..8ee6e449820513b3be543ed57c94b77a84f203ed --- /dev/null +++ b/Libs/RTClib-master/code-of-conduct.md @@ -0,0 +1,127 @@ +# Adafruit Community Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and leaders pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level or type of +experience, education, socio-economic status, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +We are committed to providing a friendly, safe and welcoming environment for +all. + +Examples of behavior that contributes to creating a positive environment +include: + +* Be kind and courteous to others +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Collaborating with other community members +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and sexual attention or advances +* The use of inappropriate images, including in a community member's avatar +* The use of inappropriate language, including in a community member's nickname +* Any spamming, flaming, baiting or other attention-stealing behavior +* Excessive or unwelcome helping; answering outside the scope of the question + asked +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate + +The goal of the standards and moderation guidelines outlined here is to build +and maintain a respectful community. We ask that you don’t just aim to be +"technically unimpeachable", but rather try to be your best self. + +We value many things beyond technical expertise, including collaboration and +supporting others within our community. Providing a positive experience for +other community members can have a much more significant impact than simply +providing the correct answer. + +## Our Responsibilities + +Project leaders are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project leaders have the right and responsibility to remove, edit, or +reject messages, comments, commits, code, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any community member for other behaviors that they deem +inappropriate, threatening, offensive, or harmful. + +## Moderation + +Instances of behaviors that violate the Adafruit Community Code of Conduct +may be reported by any member of the community. Community members are +encouraged to report these situations, including situations they witness +involving other community members. + +You may report in the following ways: + +In any situation, you may send an email to . + +On the Adafruit Discord, you may send an open message from any channel +to all Community Helpers by tagging @community helpers. You may also send an +open message from any channel, or a direct message to @kattni#1507, +@tannewt#4653, @Dan Halbert#1614, @cater#2442, @sommersoft#0222, or +@Andon#8175. + +Email and direct message reports will be kept confidential. + +In situations on Discord where the issue is particularly egregious, possibly +illegal, requires immediate action, or violates the Discord terms of service, +you should also report the message directly to Discord. + +These are the steps for upholding our community’s standards of conduct. + +1. Any member of the community may report any situation that violates the +Adafruit Community Code of Conduct. All reports will be reviewed and +investigated. +2. If the behavior is an egregious violation, the community member who +committed the violation may be banned immediately, without warning. +3. Otherwise, moderators will first respond to such behavior with a warning. +4. Moderators follow a soft "three strikes" policy - the community member may +be given another chance, if they are receptive to the warning and change their +behavior. +5. If the community member is unreceptive or unreasonable when warned by a +moderator, or the warning goes unheeded, they may be banned for a first or +second offense. Repeated offenses will result in the community member being +banned. + +## Scope + +This Code of Conduct and the enforcement policies listed above apply to all +Adafruit Community venues. This includes but is not limited to any community +spaces (both public and private), the entire Adafruit Discord server, and +Adafruit GitHub repositories. Examples of Adafruit Community spaces include +but are not limited to meet-ups, audio chats on the Adafruit Discord, or +interaction at a conference. + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. As a community +member, you are representing our community, and are expected to behave +accordingly. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at +, +and the [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html). + +For other projects adopting the Adafruit Community Code of +Conduct, please contact the maintainers of those projects for enforcement. +If you wish to use this code of conduct for your own project, consider +explicitly mentioning your moderation policy or making a copy with your +own moderation policy so as to avoid confusion. diff --git a/Libs/RTClib-master/examples/datecalc/datecalc.ino b/Libs/RTClib-master/examples/datecalc/datecalc.ino new file mode 100644 index 0000000000000000000000000000000000000000..b4567bb6e711af26e2221710b000c9535e81a7ca --- /dev/null +++ b/Libs/RTClib-master/examples/datecalc/datecalc.ino @@ -0,0 +1,105 @@ +// Simple date conversions and calculations + +#include "RTClib.h" + +void showDate(const char* txt, const DateTime& dt) { + Serial.print(txt); + Serial.print(' '); + Serial.print(dt.year(), DEC); + Serial.print('/'); + Serial.print(dt.month(), DEC); + Serial.print('/'); + Serial.print(dt.day(), DEC); + Serial.print(' '); + Serial.print(dt.hour(), DEC); + Serial.print(':'); + Serial.print(dt.minute(), DEC); + Serial.print(':'); + Serial.print(dt.second(), DEC); + + Serial.print(" = "); + Serial.print(dt.unixtime()); + Serial.print("s / "); + Serial.print(dt.unixtime() / 86400L); + Serial.print("d since 1970"); + + Serial.println(); +} + +void showTimeSpan(const char* txt, const TimeSpan& ts) { + Serial.print(txt); + Serial.print(" "); + Serial.print(ts.days(), DEC); + Serial.print(" days "); + Serial.print(ts.hours(), DEC); + Serial.print(" hours "); + Serial.print(ts.minutes(), DEC); + Serial.print(" minutes "); + Serial.print(ts.seconds(), DEC); + Serial.print(" seconds ("); + Serial.print(ts.totalseconds(), DEC); + Serial.print(" total seconds)"); + Serial.println(); +} + +void setup () { + +#ifndef ESP8266 + while (!Serial); // for Leonardo/Micro/Zero +#endif + Serial.begin(57600); + + DateTime dt0 (0, 1, 1, 0, 0, 0); + showDate("dt0", dt0); + + DateTime dt1 (1, 1, 1, 0, 0, 0); + showDate("dt1", dt1); + + DateTime dt2 (2009, 1, 1, 0, 0, 0); + showDate("dt2", dt2); + + DateTime dt3 (2009, 1, 2, 0, 0, 0); + showDate("dt3", dt3); + + DateTime dt4 (2009, 1, 27, 0, 0, 0); + showDate("dt4", dt4); + + DateTime dt5 (2009, 2, 27, 0, 0, 0); + showDate("dt5", dt5); + + DateTime dt6 (2009, 12, 27, 0, 0, 0); + showDate("dt6", dt6); + + DateTime dt7 (dt6.unixtime() + 3600); // One hour later. + showDate("dt7", dt7); + + DateTime dt75 = dt6 + TimeSpan(0, 1, 0, 0); // One hour later with TimeSpan addition. + showDate("dt7.5", dt75); + + DateTime dt8 (dt6.unixtime() + 86400L); // One day later. + showDate("dt8", dt8); + + DateTime dt85 = dt6 + TimeSpan(1, 0, 0, 0); // One day later with TimeSpan addition. + showDate("dt8.5", dt85); + + DateTime dt9 (dt6.unixtime() + 7 * 86400L); // One week later. + showDate("dt9", dt9); + + DateTime dt95 = dt6 + TimeSpan(7, 0, 0, 0); // One week later with TimeSpan addition. + showDate("dt9.5", dt95); + + DateTime dt10 = dt6 + TimeSpan(0, 0, 42, 42); // Fourty two minutes and fourty two seconds later. + showDate("dt10", dt10); + + DateTime dt11 = dt6 - TimeSpan(7, 0, 0, 0); // One week ago. + showDate("dt11", dt11); + + TimeSpan ts1 = dt6 - dt5; + showTimeSpan("dt6-dt5", ts1); + + TimeSpan ts2 = dt10 - dt6; + showTimeSpan("dt10-dt6", ts2); +} + +void loop () { +} diff --git a/Libs/RTClib-master/examples/ds1307/ds1307.ino b/Libs/RTClib-master/examples/ds1307/ds1307.ino new file mode 100644 index 0000000000000000000000000000000000000000..993551e8f6ce791baf6e007aaf355f30f7f1d7ad --- /dev/null +++ b/Libs/RTClib-master/examples/ds1307/ds1307.ino @@ -0,0 +1,70 @@ +// Date and time functions using a DS1307 RTC connected via I2C and Wire lib +#include "RTClib.h" + +RTC_DS1307 rtc; + +char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; + +void setup () { + while (!Serial); // for Leonardo/Micro/Zero + + Serial.begin(57600); + if (! rtc.begin()) { + Serial.println("Couldn't find RTC"); + while (1); + } + + if (! rtc.isrunning()) { + Serial.println("RTC is NOT running!"); + // following line sets the RTC to the date & time this sketch was compiled + // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); + } +} + +void loop () { + DateTime now = rtc.now(); + + Serial.print(now.year(), DEC); + Serial.print('/'); + Serial.print(now.month(), DEC); + Serial.print('/'); + Serial.print(now.day(), DEC); + Serial.print(" ("); + Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); + Serial.print(") "); + Serial.print(now.hour(), DEC); + Serial.print(':'); + Serial.print(now.minute(), DEC); + Serial.print(':'); + Serial.print(now.second(), DEC); + Serial.println(); + + Serial.print(" since midnight 1/1/1970 = "); + Serial.print(now.unixtime()); + Serial.print("s = "); + Serial.print(now.unixtime() / 86400L); + Serial.println("d"); + + // calculate a date which is 7 days and 30 seconds into the future + DateTime future (now + TimeSpan(7,12,30,6)); + + Serial.print(" now + 7d + 30s: "); + Serial.print(future.year(), DEC); + Serial.print('/'); + Serial.print(future.month(), DEC); + Serial.print('/'); + Serial.print(future.day(), DEC); + Serial.print(' '); + Serial.print(future.hour(), DEC); + Serial.print(':'); + Serial.print(future.minute(), DEC); + Serial.print(':'); + Serial.print(future.second(), DEC); + Serial.println(); + + Serial.println(); + delay(3000); +} diff --git a/Libs/RTClib-master/examples/ds1307SqwPin/ds1307SqwPin.ino b/Libs/RTClib-master/examples/ds1307SqwPin/ds1307SqwPin.ino new file mode 100644 index 0000000000000000000000000000000000000000..ad78aebf294e03a1b4e6261905d32397e12ed2ea --- /dev/null +++ b/Libs/RTClib-master/examples/ds1307SqwPin/ds1307SqwPin.ino @@ -0,0 +1,62 @@ +// SQW/OUT pin mode using a DS1307 RTC connected via I2C. +// +// According to the data sheet (http://datasheets.maxim-ic.com/en/ds/DS1307.pdf), the +// DS1307's SQW/OUT pin can be set to low, high, 1Hz, 4.096kHz, 8.192kHz, or 32.768kHz. +// +// This sketch reads the state of the pin, then iterates through the possible values at +// 5 second intervals. +// + +// NOTE: +// You must connect a pull up resistor (~10kohm) from the SQW pin up to VCC. Without +// this pull up the wave output will not work! + +#include "RTClib.h" + +RTC_DS1307 rtc; + +int mode_index = 0; + +Ds1307SqwPinMode modes[] = { DS1307_OFF, DS1307_ON, DS1307_SquareWave1HZ, DS1307_SquareWave4kHz, DS1307_SquareWave8kHz, DS1307_SquareWave32kHz}; + + +void print_mode() { + Ds1307SqwPinMode mode = rtc.readSqwPinMode(); + + Serial.print("Sqw Pin Mode: "); + switch(mode) { + case DS1307_OFF: Serial.println("OFF"); break; + case DS1307_ON: Serial.println("ON"); break; + case DS1307_SquareWave1HZ: Serial.println("1Hz"); break; + case DS1307_SquareWave4kHz: Serial.println("4.096kHz"); break; + case DS1307_SquareWave8kHz: Serial.println("8.192kHz"); break; + case DS1307_SquareWave32kHz: Serial.println("32.768kHz"); break; + default: Serial.println("UNKNOWN"); break; + } +} + +void setup () { + +#ifndef ESP8266 + while (!Serial); // for Leonardo/Micro/Zero +#endif + + Serial.begin(57600); + if (! rtc.begin()) { + Serial.println("Couldn't find RTC"); + while (1); + } + + print_mode(); +} + +void loop () { + rtc.writeSqwPinMode(modes[mode_index++]); + print_mode(); + + if (mode_index > 5) { + mode_index = 0; + } + + delay(5000); +} diff --git a/Libs/RTClib-master/examples/ds1307nvram/ds1307nvram.ino b/Libs/RTClib-master/examples/ds1307nvram/ds1307nvram.ino new file mode 100644 index 0000000000000000000000000000000000000000..3600758de3a0ac8a442efb6a7e1ded83c7de3ac0 --- /dev/null +++ b/Libs/RTClib-master/examples/ds1307nvram/ds1307nvram.ino @@ -0,0 +1,57 @@ +// Example of using the non-volatile RAM storage on the DS1307. +// You can write up to 56 bytes from address 0 to 55. +// Data will be persisted as long as the DS1307 has battery power. + +#include "RTClib.h" + +RTC_DS1307 rtc; + +void printnvram(uint8_t address) { + Serial.print("Address 0x"); + Serial.print(address, HEX); + Serial.print(" = 0x"); + Serial.println(rtc.readnvram(address), HEX); +} + +void setup () { + +#ifndef ESP8266 + while (!Serial); // for Leonardo/Micro/Zero +#endif + Serial.begin(57600); + rtc.begin(); + + // Print old RAM contents on startup. + Serial.println("Current NVRAM values:"); + for (int i = 0; i < 6; ++i) { + printnvram(i); + } + + // Write some bytes to non-volatile RAM storage. + // NOTE: You can only read and write from addresses 0 to 55 (i.e. 56 byte values). + Serial.println("Writing NVRAM values."); + // Example writing one byte at a time: + rtc.writenvram(0, 0xFE); + rtc.writenvram(1, 0xED); + // Example writing multiple bytes: + uint8_t writeData[4] = { 0xBE, 0xEF, 0x01, 0x02 }; + rtc.writenvram(2, writeData, 4); + + // Read bytes from non-volatile RAM storage. + Serial.println("Reading NVRAM values:"); + // Example reading one byte at a time. + Serial.println(rtc.readnvram(0), HEX); + Serial.println(rtc.readnvram(1), HEX); + // Example reading multiple bytes: + uint8_t readData[4] = {0}; + rtc.readnvram(readData, 4, 2); + Serial.println(readData[0], HEX); + Serial.println(readData[1], HEX); + Serial.println(readData[2], HEX); + Serial.println(readData[3], HEX); + +} + +void loop () { + // Do nothing in the loop. +} diff --git a/Libs/RTClib-master/examples/ds3231/ds3231.ino b/Libs/RTClib-master/examples/ds3231/ds3231.ino new file mode 100644 index 0000000000000000000000000000000000000000..4bbf062d9019973e88416b7a0e9296843cf75f15 --- /dev/null +++ b/Libs/RTClib-master/examples/ds3231/ds3231.ino @@ -0,0 +1,80 @@ +// Date and time functions using a DS3231 RTC connected via I2C and Wire lib +#include "RTClib.h" + +RTC_DS3231 rtc; + +char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; + +void setup () { + +#ifndef ESP8266 + while (!Serial); // for Leonardo/Micro/Zero +#endif + + Serial.begin(9600); + + delay(3000); // wait for console opening + + if (! rtc.begin()) { + Serial.println("Couldn't find RTC"); + while (1); + } + + if (rtc.lostPower()) { + Serial.println("RTC lost power, lets set the time!"); + // following line sets the RTC to the date & time this sketch was compiled + rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); + } +} + +void loop () { + DateTime now = rtc.now(); + + Serial.print(now.year(), DEC); + Serial.print('/'); + Serial.print(now.month(), DEC); + Serial.print('/'); + Serial.print(now.day(), DEC); + Serial.print(" ("); + Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); + Serial.print(") "); + Serial.print(now.hour(), DEC); + Serial.print(':'); + Serial.print(now.minute(), DEC); + Serial.print(':'); + Serial.print(now.second(), DEC); + Serial.println(); + + Serial.print(" since midnight 1/1/1970 = "); + Serial.print(now.unixtime()); + Serial.print("s = "); + Serial.print(now.unixtime() / 86400L); + Serial.println("d"); + + // calculate a date which is 7 days and 30 seconds into the future + DateTime future (now + TimeSpan(7,12,30,6)); + + Serial.print(" now + 7d + 30s: "); + Serial.print(future.year(), DEC); + Serial.print('/'); + Serial.print(future.month(), DEC); + Serial.print('/'); + Serial.print(future.day(), DEC); + Serial.print(' '); + Serial.print(future.hour(), DEC); + Serial.print(':'); + Serial.print(future.minute(), DEC); + Serial.print(':'); + Serial.print(future.second(), DEC); + Serial.println(); + + Serial.print("Temperature: "); + Serial.print(rtc.getTemperature()); + Serial.println(" C"); + + Serial.println(); + delay(3000); +} diff --git a/Libs/RTClib-master/examples/pcf8523/pcf8523.ino b/Libs/RTClib-master/examples/pcf8523/pcf8523.ino new file mode 100644 index 0000000000000000000000000000000000000000..3a37c8538a5497aa1c203805e970158a1cf70056 --- /dev/null +++ b/Libs/RTClib-master/examples/pcf8523/pcf8523.ino @@ -0,0 +1,73 @@ +// Date and time functions using a PCF8523 RTC connected via I2C and Wire lib +#include "RTClib.h" + +RTC_PCF8523 rtc; + +char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; + +void setup () { + + while (!Serial) { + delay(1); // for Leonardo/Micro/Zero + } + + Serial.begin(57600); + if (! rtc.begin()) { + Serial.println("Couldn't find RTC"); + while (1); + } + + if (! rtc.initialized()) { + Serial.println("RTC is NOT running!"); + // following line sets the RTC to the date & time this sketch was compiled + // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); + } +} + +void loop () { + DateTime now = rtc.now(); + + Serial.print(now.year(), DEC); + Serial.print('/'); + Serial.print(now.month(), DEC); + Serial.print('/'); + Serial.print(now.day(), DEC); + Serial.print(" ("); + Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); + Serial.print(") "); + Serial.print(now.hour(), DEC); + Serial.print(':'); + Serial.print(now.minute(), DEC); + Serial.print(':'); + Serial.print(now.second(), DEC); + Serial.println(); + + Serial.print(" since midnight 1/1/1970 = "); + Serial.print(now.unixtime()); + Serial.print("s = "); + Serial.print(now.unixtime() / 86400L); + Serial.println("d"); + + // calculate a date which is 7 days, 12 hours and 30 seconds into the future + DateTime future (now + TimeSpan(7,12,30,6)); + + Serial.print(" now + 7d + 12h + 30m + 6s: "); + Serial.print(future.year(), DEC); + Serial.print('/'); + Serial.print(future.month(), DEC); + Serial.print('/'); + Serial.print(future.day(), DEC); + Serial.print(' '); + Serial.print(future.hour(), DEC); + Serial.print(':'); + Serial.print(future.minute(), DEC); + Serial.print(':'); + Serial.print(future.second(), DEC); + Serial.println(); + + Serial.println(); + delay(3000); +} diff --git a/Libs/RTClib-master/examples/softrtc/softrtc.ino b/Libs/RTClib-master/examples/softrtc/softrtc.ino new file mode 100644 index 0000000000000000000000000000000000000000..35d540e507676fdc3c0b334a6f5653f116adec36 --- /dev/null +++ b/Libs/RTClib-master/examples/softrtc/softrtc.ino @@ -0,0 +1,54 @@ +// Date and time functions using just software, based on millis() & timer + +#include "RTClib.h" + +RTC_Millis rtc; + +void setup () { + Serial.begin(57600); + // following line sets the RTC to the date & time this sketch was compiled + rtc.begin(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); +} + +void loop () { + DateTime now = rtc.now(); + + Serial.print(now.year(), DEC); + Serial.print('/'); + Serial.print(now.month(), DEC); + Serial.print('/'); + Serial.print(now.day(), DEC); + Serial.print(' '); + Serial.print(now.hour(), DEC); + Serial.print(':'); + Serial.print(now.minute(), DEC); + Serial.print(':'); + Serial.print(now.second(), DEC); + Serial.println(); + + Serial.print(" seconds since 1970: "); + Serial.println(now.unixtime()); + + // calculate a date which is 7 days and 30 seconds into the future + DateTime future (now.unixtime() + 7 * 86400L + 30); + + Serial.print(" now + 7d + 30s: "); + Serial.print(future.year(), DEC); + Serial.print('/'); + Serial.print(future.month(), DEC); + Serial.print('/'); + Serial.print(future.day(), DEC); + Serial.print(' '); + Serial.print(future.hour(), DEC); + Serial.print(':'); + Serial.print(future.minute(), DEC); + Serial.print(':'); + Serial.print(future.second(), DEC); + Serial.println(); + + Serial.println(); + delay(3000); +} diff --git a/Libs/RTClib-master/examples/timestamp/timestamp.ino b/Libs/RTClib-master/examples/timestamp/timestamp.ino new file mode 100644 index 0000000000000000000000000000000000000000..1ba220b7a0766f4bb4583ac077efe4ea86ee74f8 --- /dev/null +++ b/Libs/RTClib-master/examples/timestamp/timestamp.ino @@ -0,0 +1,46 @@ +/* Timestamp functions using a DS1307 RTC connected via I2C and Wire lib +** +** Useful for file name +** ` SD.open(time.timestamp()+".log", FILE_WRITE) ` +** +** +** Created: 2015-06-01 by AxelTB +** Last Edit: +*/ + +#include "RTClib.h" + +RTC_DS1307 rtc; + +void setup() { + Serial.begin(57600); + rtc.begin(); + + if (! rtc.isrunning()) { + Serial.println("RTC is NOT running!"); + // following line sets the RTC to the date & time this sketch was compiled + rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); + } + +} + +void loop() { + DateTime time = rtc.now(); + + //Full Timestamp + Serial.println(String("DateTime::TIMESTAMP_FULL:\t")+time.timestamp(DateTime::TIMESTAMP_FULL)); + + //Date Only + Serial.println(String("DateTime::TIMESTAMP_DATE:\t")+time.timestamp(DateTime::TIMESTAMP_DATE)); + + //Full Timestamp + Serial.println(String("DateTime::TIMESTAMP_TIME:\t")+time.timestamp(DateTime::TIMESTAMP_TIME)); + + Serial.println("\n"); + + //Delay 5s + delay(5000); +} diff --git a/Libs/RTClib-master/examples/toString/toString.ino b/Libs/RTClib-master/examples/toString/toString.ino new file mode 100644 index 0000000000000000000000000000000000000000..4a7c0e0dd433f0539c42474f6c9fd63c669cc82f --- /dev/null +++ b/Libs/RTClib-master/examples/toString/toString.ino @@ -0,0 +1,54 @@ +#include +#include + +RTC_DS1307 rtc; + + +void setup() { + while (!Serial); // for Leonardo/Micro/Zero + + Serial.begin(57600); + if (! rtc.begin()) { + Serial.println("Couldn't find RTC"); + while (1); + } // end rtc.begin() + + if (! rtc.isrunning()) { + Serial.println("RTC is NOT running!"); + // following line sets the RTC to the date & time this sketch was compiled + rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); + // This line sets the RTC with an explicit date & time, for example to set + // January 21, 2014 at 3am you would call: + // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); + } +} + +void loop() { + + DateTime now = rtc.now(); + + //buffer can be defined using following combinations: + //hh - the hour with a leading zero (00 to 23) + //mm - the minute with a leading zero (00 to 59) + //ss - the whole second with a leading zero where applicable (00 to 59) + //YYYY - the year as four digit number + //YY - the year as two digit number (00-99) + //MM - the month as number with a leading zero (01-12) + //MMM - the abbreviated English month name ('Jan' to 'Dec') + //DD - the day as number with a leading zero (01 to 31) + //DDD - the abbreviated English day name ('Mon' to 'Sun') + + char buf1[] = "hh:mm"; + Serial.println(now.toString(buf1)); + + char buf2[] = "YYMMDD-hh:mm:ss"; + Serial.println(now.toString(buf2)); + + char buf3[] = "Today is DDD, MMM DD YYYY"; + Serial.println(now.toString(buf3)); + + char buf4[] = "MM-DD-YYYY"; + Serial.println(now.toString(buf4)); + + delay(1000); +} diff --git a/Libs/RTClib-master/keywords.txt b/Libs/RTClib-master/keywords.txt new file mode 100644 index 0000000000000000000000000000000000000000..f0dff8ffe6ce3412bf1f122a55bb5922301036b4 --- /dev/null +++ b/Libs/RTClib-master/keywords.txt @@ -0,0 +1,45 @@ +####################################### +# Syntax Coloring Map For RTC +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +DateTime KEYWORD1 +TimeSpan KEYWORD1 +RTC_DS1307 KEYWORD1 +RTC_Millis KEYWORD1 +RTC_Micros KEYWORD1 +Ds1307SqwPinMode KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +year KEYWORD2 +month KEYWORD2 +day KEYWORD2 +hour KEYWORD2 +minute KEYWORD2 +second KEYWORD2 +dayOfTheWeek KEYWORD2 +secondstime KEYWORD2 +unixtime KEYWORD2 +begin KEYWORD2 +adjust KEYWORD2 +adjustDrift KEYWORD2 +isrunning KEYWORD2 +now KEYWORD2 +readSqwPinMode KEYWORD2 +writeSqwPinMode KEYWORD2 +timestamp KEYWORD2 +toString KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### +TIMESTAMP_FULL LITERAL1 +TIMESTAMP_DATE LITERAL1 +TIMESTAMP_TIME LITERAL1 + diff --git a/Libs/RTClib-master/library.properties b/Libs/RTClib-master/library.properties new file mode 100644 index 0000000000000000000000000000000000000000..081ba7566bd45572183050621aaf1c2000e030c7 --- /dev/null +++ b/Libs/RTClib-master/library.properties @@ -0,0 +1,9 @@ +name=RTClib +version=1.2.4 +author=Adafruit +maintainer=Adafruit +sentence=A fork of Jeelab's fantastic RTC library +paragraph=A fork of Jeelab's fantastic RTC library +category=Timing +url=https://github.com/adafruit/RTClib +architectures=* diff --git a/README.md b/README.md index a0cd7f958c79ad54afb5e7bf8a8d7bd6a8cdda92..76f47b29673421bd0ac033b35335d8792bb5989c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ # khomiAuto +# dpendances + +RTClib from Adafruit +NewLiquidCrystal_lib + +See the libs folder for more information