From 528dc76ec09996e7a8b3c279f514f6fb8267e2f0 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Tue, 6 Jan 2026 12:21:29 +0100 Subject: [PATCH] complete ecc --- include/TEF6686.h | 356 ++++++++++++++++----------------- include/language.h | 2 +- include/rds.h | 3 + src/TEF6686.cpp | 487 +++++++++++++++++++++++---------------------- src/gui.cpp | 7 +- src/main.cpp | 3 + src/rds.cpp | 51 +++-- 7 files changed, 469 insertions(+), 440 deletions(-) diff --git a/include/TEF6686.h b/include/TEF6686.h index 64db57b..ea94b14 100644 --- a/include/TEF6686.h +++ b/include/TEF6686.h @@ -142,196 +142,196 @@ static const char* const ECCtext[] { "Republic of Latvia", // 36 "Republic of Slovenia", // 37 "Federal Republic of Austria", // 38 - // TODO after this - "Gibraltar", // 39 - "Iceland", // 40 - "Lebanon", // 41 + "United Kingdom of Great Britain and Northern Ireland (Gibraltar)", // 39 + "Republic of Iceland", // 40 + "Republic of Lebanon", // 41 "Hungary", // 42 - "Iraq", // 43 - "Monaco", // 44 - "Malta", // 45 - "U.K.", // 46 - "Lithuania", // 47 - "Croatia", // 48 + "Republic of Iraq", // 43 + "Principality of Monaco", // 44 + "Republic of Malta", // 45 + "United Kingdom of Great Britain and Northern Ireland", // 46 + "Republic of Lithuania", // 47 + "Republic of Croatia", // 48 "Libya", // 49 - "Canaries", // 50 + "Kingdom of Spain (Canary Islands)", // 50 "Romania", // 51 - "Spain", // 52 - "Sweden", // 53 - "Egypt", // 54 - "France", // 55 - "Norway", // 56 - "Belarus", // 57 - "Bosnia H.", // 58 - "Monteneg.", // 59 - "Armenia", // 60 - "Azerbaijan", // 61 - "Kosovo", // 62 - "Kyrgystan", // 63 - "Turkmenis.", // 64 - "Tajikistan", // 65 - "Uzbekistan", // 66 - "Malawi", // 67 - "Mali", // 68 - "Mauritania", // 69 - "Mauritius", // 70 + "Kingdom of Spain", // 52 + "Kingdom of Sweden", // 53 + "Arab Republic of Egypt", // 54 + "Republic of France", // 55 + "Kingdom of Norway", // 56 + "Republic of Belarus", // 57 + "Bosnia and Herzegovina", // 58 + "Montenegro", // 59 + "Republic of Armenia", // 60 + "Republic of Azerbaijan", // 61 + "Republic of Kosovo", // 62 + "Kyrgyz Republic", // 63 + "Turkmenistan", // 64 + "Republic of Tajikistan", // 65 + "Republic of Uzbekistan", // 66 + "Republic of Malawi", // 67 + "Republic of Mali", // 68 + "Islamic Republic of Mauritania", // 69 + "Republic of Mauritius", // 70 "Mongolia", // 71 - "Mozambiq.", // 72 - "Namibia", // 73 - "Niger", // 74 - "Nigeria", // 75 - "Oman", // 76 - "Qatar", // 77 - "Rwanda", // 78 - "Sao Tome", // 79 - "Saudi Ara.", // 80 - "Senegal", // 81 - "Seychel.", // 82 - "S. Leone", // 83 - "Somalia", // 84 - "S. Africa", // 85 - "S. Sudan", // 86 - "Sudan", // 87 - "Swaziland", // 88 - "Tanzania", // 89 - "Togo", // 90 - "Uganda", // 91 - "W. Sahara", // 92 - "Yemen", // 93 - "Zambia", // 94 - "Zimbabwe", // 95 - "Angola", // 96 - "Ascn. Isl.", // 97 - "Bahrein", // 98 - "Benin", // 99 - "Botswana", // 100 - "Burkina F.", // 101 - "Burundi", // 102 - "Cabinda", // 103 - "Cameroon", // 104 - "Cape Ver.", // 105 - "Centr. Af.", // 106 - "Chad", // 107 - "Comoros", // 108 - "D. Congo", // 109 - "Congo", // 110 - "Cote d'l.", // 111 - "Djibouti", // 112 - "E. Guinea", // 113 - "Eritrea", // 114 - "Ethiopia", // 115 - "Gabon", // 116 - "Gambia", // 117 + "Republic of Mozambique", // 72 + "Republic of Namibia", // 73 + "Republic of the Niger", // 74 + "Federal Republic of Nigeria", // 75 + "Sultanate of Oman", // 76 + "State of Qatar", // 77 + "Republic of Rwanda", // 78 + "Democratic Republic of Sao Tome and Principe", // 79 + "Kingdom of Saudi Arabia", // 80 + "Republic of Senegal", // 81 + "Republic of Seychelles", // 82 + "Republic of Sierra Leone", // 83 + "Federal Republic of Somalia", // 84 + "Republic of South Africa", // 85 + "Republic of South Sudan", // 86 + "Republic of the Sudan", // 87 + "Kingdom of Swaziland", // 88 + "United Republic of Tanzania", // 89 + "Republic of Togo", // 90 + "Republic of Uganda", // 91 + "Polisario Front / Kingdom of Morocco (Western Sahara)", // 92 + "Republic of Yemen", // 93 + "Republic of Zambia", // 94 + "Republic of Zimbabwe", // 95 + "Republic of Angola", // 96 + "United Kingdom of Great Britain and Northern Ireland (Ascension Island)", // 97 + "Kingdom of Bahrain", // 98 + "Republic of Benin", // 99 + "Republic of Botswana", // 100 + "Burkina Faso", // 101 + "Republic of Burundi", // 102 + "Republic of Cabinda / Republic of Angola", // 103 + "Republic of Cameroon", // 104 + "Republic of Cabo Verde (Cape Verde)", // 105 + "Central African Republic", // 106 + "Republic of Chad", // 107 + "Union of the Comoros", // 108 + "Democratic Republic of the Congo", // 109 + "Republic of the Congo", // 110 + "Republic of Côte d'Ivoire (Ivory Coast)", // 111 + "Republic of Djibouti", // 112 + "Republic of Equatorial Guinea", // 113 + "State of Eritrea", // 114 + "Federal Democratic Republic of Ethiopia", // 115 + "Gabonese Republic", // 116 + "Islamic Republic of the Gambia", // 117 "Georgia", // 118 - "Ghana", // 119 - "Guinea", // 120 - "Guinea-B.", // 121 - "Kazakh.", // 122 - "Kenya", // 123 - "Kuwait", // 124 - "Lesotho", // 125 - "Liberia", // 126 - "Madagas.", // 127 - "U.Arab.E.", // 128 - "Anguilla", // 129 - "Antigua.", // 130 - "Argentina", // 131 - "Aruba", // 132 + "Republic of Ghana", // 119 + "Republic of Guinea", // 120 + "Republic of Guinea-Bissau", // 121 + "Republic of Kazakhstan", // 122 + "Republic of Kenya", // 123 + "State of Kuwait", // 124 + "Kingdom of Lesotho", // 125 + "Republic of Liberia", // 126 + "Republic of Madagascar", // 127 + "United Arab Emirates", // 128 + "United Kingdom of Great Britain and Northern Ireland (Anguilla)", // 129 + "Antigua and Barbuda", // 130 + "Republic of Argentina", // 131 + "Kingdom of the Netherlands (Aruba)", // 132 "Barbados", // 133 "Belize", // 134 - "Bermuda", // 135 - "Bolivia", // 136 - "Brazil", // 137 + "United Kingdom of Great Britain and Northern Ireland (Bermuda)", // 135 + "Plurinational State of Bolivia", // 136 + "Federative Republic of Brazil", // 137 "Canada", // 138 - "Cayman I.", // 139 - "Chile", // 140 - "Colombia", // 141 - "Costa R.", // 142 - "Cuba", // 143 - "Dominica", // 144 - "Domini. R", // 145 - "El Salvad.", // 146 - "Equador", // 147 - "Falkland", // 148 - "Greenland", // 149 + "United Kingdom of Great Britain and Northern Ireland (Cayman Islands)", // 139 + "Republic of Chile", // 140 + "Republic of Colombia", // 141 + "Republic of Costa Rica", // 142 + "Republic of Cuba", // 143 + "Commonwealth of Dominica", // 144 + "Dominican Republic", // 145 + "Republic of El Salvador", // 146 + "Republic of Ecuador", // 147 + "United Kingdom of Great Britain and Northern Ireland (Falkland Islands)", // 148 + "Kingdom of Denmark (Greenland)", // 149 "Grenada", // 150 - "Guadeloupe", // 151 - "Guatemala", // 152 - "Guyana", // 153 - "Haiti", // 154 - "Honduras", // 155 + "Republic of France (Guadeloupe)", // 151 + "Republic of Guatemala", // 152 + "Republic of Guyana", // 153 + "Republic of Haiti", // 154 + "Republic of Honduras", // 155 "Jamaica", // 156 - "Martinique", // 157 - "Mexico", // 158 - "Montserrat", // 159 - "Nether. A.", // 160 - "Nicaragua", // 161 - "Panama", // 162 - "Paraguay", // 163 - "Peru", // 164 - "Puerto R.", // 165 - "St. Kitts", // 166 - "St. Lucia", // 167 - "St. P.& M.", // 168 - "St.Vincent", // 169 - "Suriname", // 170 - "T & T", // 171 - "Turks & C.", // 172 - "U.S.A.", // 173 - "Uruguay", // 174 - "Venezuela", // 175 - "Virgin UK", // 176 - "Virgin USA", // 177 - "Afganist.", // 178 - "Aus. ACT", // 179 - "Aus. NSW", // 180 - "Aus. VIC", // 181 - "Aus. QLD", // 182 - "Aus. SA", // 183 - "Aus. WA", // 184 - "Aus. TAS", // 185 - "Aus. NT", // 186 - "Bhutan", // 187 - "Brunei D.", // 188 - "Cambodia", // 189 - "China", // 190 - "Fiji", // 191 - "Hong Kong", // 192 - "India", // 193 - "Indonesia", // 194 - "Iran", // 195 + "Republic of France (Martinique)", // 157 + "United Mexican States", // 158 + "United Kingdom of Great Britain and Northern Ireland (Montserrat)", // 159 + "Netherlands Antilles (does not exist)", // 160 + "Republic of Nicaragua", // 161 + "Republic of Panama", // 162 + "Republic of Paraguay", // 163 + "Republic of Peru", // 164 + "United States of America (Puerto Rico)", // 165 + "Saint Kitts and Nevis", // 166 + "Saint Lucia", // 167 + "Republic of France (Saint Pierre and Miquelon)", // 168 + "Saint Vincent and the Grenadines", // 169 + "Republic of Suriname", // 170 + "Republic of Trinidad and Tobago", // 171 + "United Kingdom of Great Britain and Northern Ireland (Turks and Caicos Islands)", // 172 + "United States of America", // 173 + "Oriental Republic of Uruguay", // 174 + "Bolivarian Republic of Venezuela", // 175 + "United Kingdom of Great Britain and Northern Ireland (Virgin Islands)", // 176 + "United States of America (Virgin Islands)", // 177 + "Islamic Republic of Afghanistan", // 178 + "Commonwealth of Australia - Capital Territory", // 179 + "Commonwealth of Australia - New South Wales", // 180 + "Commonwealth of Australia - Victoria", // 181 + "Commonwealth of Australia - Queensland", // 182 + "Commonwealth of Australia - South Australia", // 183 + "Commonwealth of Australia - Western Australia", // 184 + "Commonwealth of Australia - Tasmania", // 185 + "Commonwealth of Australia - Northern Territory", // 186 + "Kingdom of Bhutan", // 187 + "Negara Brunei Darussalam", // 188 + "Kingdom of Cambodia", // 189 + "People's Republic of China", // 190 + "Republic of Fiji", // 191 + "People's Republic of China (Hong Kong)", // 192 + "Republic of India", // 193 + "Republic of Indonesia", // 194 + "Islamic Republic of Iran", // 195 "Japan", // 196 - "Kiribati", // 197 - "N. Korea", // 198 - "S. Korea", // 199 - "Laos", // 200 - "Macao", // 201 + "Republic of Kiribati", // 197 + "Democratic People's Republic of Korea (North Korea)", // 198 + "Republic of Korea (South Korea)", // 199 + "Lao People's Democratic Republic", // 200 + "People's Republic of China (Macao)", // 201 "Malaysia", // 202 - "Maldives", // 203 - "Marshall I", // 204 - "Micronesia", // 205 - "Myanmar", // 206 - "Nauru", // 207 - "Nepal", // 208 - "N.Zealand", // 209 - "Pakistan", // 210 - "Papua N.G", // 211 - "Philippin.", // 212 - "Samoa", // 213 - "Singapore", // 214 - "Solomon I.", // 215 - "Sri Lanka", // 216 - "Taiwan", // 217 - "Thailand", // 218 - "Tonga", // 219 - "Vanuatu", // 220 - "Vietnam", // 221 - "Bahamas", // 222 - "BM or BR", // 223 - "EC or BR", // 224 - "AN or BR", // 225 - "USA/VI/ PR", // 226 - "Bangladesh" // 227 + "Republic of Maldives", // 203 + "United States of America (Marshall Islands)", // 204 + "Federated States of Micronesia", // 205 + "Republic of the Union of Myanmar", // 206 + "Republic of Nauru", // 207 + "Federal Democratic Republic of Nepal", // 208 + "New Zealand", // 209 + "Islamic Republic of Pakistan", // 210 + "Independent State of Papua New Guinea", // 211 + "Republic of the Philippines", // 212 + "Independent State of Samoa", // 213 + "Republic of Singapore", // 214 + "Solomon Islands", // 215 + "Democratic Socialist Republic of Sri Lanka", // 216 + "Republic of China (Taiwan)", // 217 + "Kingdom of Thailand", // 218 + "Kingdom of Tonga", // 219 + "Republic of Vanuatu", // 220 + "Socialist Republic of Viet Nam", // 221 + "Commonwealth of the Bahamas", // 222 + "United Kingdom of Great Britain and Northern Ireland (Bermuda) / Federative Republic of Brazil", // 223 + "Federative Republic of Brazil / Republic of Ecuador", // 224 + "Netherlands Antilles (does not exist) / Federative Republic of Brazil", // 225 + "United States of America", // 226 + "People's Republic of Bangladesh", // 227 + "Republic of West Poland" // 228 - doesn't exist, YET, we don't want a fucking pimp for president here }; static const char* const oda_app_names[] { diff --git a/include/language.h b/include/language.h index cdbd15b..25fb0e7 100644 --- a/include/language.h +++ b/include/language.h @@ -759,7 +759,7 @@ static const char* const myLanguage[22][301] PROGMEM = { "Częstotliwość", // 149 "Strona domowa", // 150 "Podkanał", // 151 - "Gorąca linia", // 152 + "Infolinia", // 152 "Telefon do studia", // 153 "Telefon", // 154 "SMS do studia", // 155 diff --git a/include/rds.h b/include/rds.h index 5ca1671..4518839 100644 --- a/include/rds.h +++ b/include/rds.h @@ -92,6 +92,7 @@ extern int xPos2; extern int xPos3; extern int xPos4; extern int xPos5; +extern int xPos6; extern int8_t NTPoffset; extern int16_t SAvg3; extern IPAddress remoteip; @@ -121,6 +122,8 @@ extern unsigned long afticker; extern unsigned long aftickerhold; extern unsigned long aftimer; extern unsigned long blockcounterold[33]; +extern unsigned long eccticker; +extern unsigned long ecctickerhold; extern unsigned long eonticker; extern unsigned long eontickerhold; extern unsigned long processed_rdsblocksold[33]; diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index 2a30b8d..5d46019 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -760,305 +760,306 @@ void TEF6686::readRDS(byte showrdserrors) { switch (rds.picode[0]) { case '1': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[129]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[136]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[152]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[104]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[73]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[83]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[0]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[1]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[2]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[59]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[3]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[179]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[197]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[124]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[200]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[129]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[136]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[152]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[104]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[73]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[83]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[0]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[1]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[2]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[59]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[3]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[179]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[197]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[124]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[200]; break; } case '2': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[130]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[141]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[155]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[106]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[126]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[95]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[4]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[5]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[6]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[7]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[8]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[180]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[187]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[77]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[218]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[130]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[141]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[155]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[106]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[126]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[95]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[4]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[5]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[6]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[7]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[8]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[180]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[187]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[77]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[218]; break; } case '3': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[224]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[156]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[132]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[112]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[119]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[72]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[92]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[9]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[10]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[11]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[12]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[16]; - if (rds.ECC == 229) rds.ECCtext = ECCtext[63]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[181]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[227]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[189]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[219]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[224]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[156]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[132]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[112]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[119]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[72]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[92]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[9]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[10]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[11]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[12]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[16]; + else if (rds.ECC == 0xE5) rds.ECCtext = ECCtext[63]; + else if (rds.ECC == 0xE6) rds.ECCtext = ECCtext[228]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[181]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[227]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[189]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[219]; break; } case '4': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[148]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[157]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[127]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[69]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[91]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[103]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[13]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[14]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[15]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[182]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[210]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[213]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[148]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[157]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[127]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[69]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[91]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[103]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[13]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[14]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[15]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[182]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[210]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[213]; break; } case '5': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[133]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[159]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[68]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[79]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[88]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[78]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[17]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[18]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[19]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[65]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[183]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[191]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[193]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[133]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[159]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[68]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[79]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[88]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[78]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[17]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[18]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[19]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[65]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[183]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[191]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[193]; break; } case '6': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[134]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[163]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[171]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[96]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[105]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[123]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[125]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[20]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[21]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[22]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[24]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[184]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[76]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[201]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[134]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[163]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[171]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[96]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[105]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[123]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[125]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[20]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[21]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[22]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[24]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[184]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[76]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[201]; break; } case '7': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[139]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[161]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[164]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[113]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[81]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[84]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[25]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[26]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[27]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[62]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[185]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[207]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[221]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[139]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[161]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[164]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[113]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[81]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[84]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[25]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[26]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[27]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[62]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[185]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[207]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[221]; break; } case '8': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[142]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[170]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[116]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[117]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[74]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[82]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[28]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[29]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[30]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[31]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[32]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[186]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[195]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[212]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[190]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[142]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[170]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[116]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[117]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[74]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[82]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[28]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[29]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[30]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[31]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[32]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[186]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[195]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[212]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[190]; break; } case '9': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[143]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[162]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[174]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[120]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[102]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[107]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[33]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[34]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[35]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[36]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[37]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[80]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[209]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[196]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[211]; - if (rds.ECC == 244) rds.ECCtext = ECCtext[190]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[143]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[162]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[174]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[120]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[102]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[107]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[33]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[34]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[35]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[36]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[37]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[80]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[209]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[196]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[211]; + else if (rds.ECC == 0xF4) rds.ECCtext = ECCtext[190]; break; } case 'A': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[131]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[144]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[166]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[85]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[97]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[121]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[70]; - if (rds.ECC == 212) rds.ECCtext = ECCtext[86]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[38]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[39]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[40]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[41]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[60]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[178]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[215]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[214]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[131]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[144]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[166]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[85]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[97]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[121]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[70]; + else if (rds.ECC == 0xD4) rds.ECCtext = ECCtext[86]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[38]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[39]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[40]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[41]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[60]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[178]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[215]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[214]; break; } case 'B': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 161) rds.ECCtext = ECCtext[138]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[137]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[145]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[167]; - if (rds.ECC == 165) rds.ECCtext = ECCtext[158]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[101]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[109]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[100]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[42]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[43]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[44]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[61]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[66]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[206]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[188]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[203]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[93]; - if (rds.ECC == 244) rds.ECCtext = ECCtext[204]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[137]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[145]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[167]; + else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[101]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[100]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[109]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[42]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[43]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[44]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[61]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[66]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[206]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[188]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[203]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[93]; + else if (rds.ECC == 0xF4) rds.ECCtext = ECCtext[204]; break; } case 'C': { - if (rds.ECC == 161) rds.ECCtext = ECCtext[138]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[223]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[140]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[146]; - if (rds.ECC == 165) rds.ECCtext = ECCtext[169]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[110]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[108]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[111]; - if (rds.ECC == 211) rds.ECCtext = ECCtext[87]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[45]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[46]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[47]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[48]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[118]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[190]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[216]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[194]; + if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[223]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[140]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[146]; + else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[169]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[110]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[108]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[111]; + else if (rds.ECC == 0xD3) rds.ECCtext = ECCtext[87]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[45]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[46]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[47]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[48]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[118]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[190]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[216]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[194]; break; } case 'D': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 161) rds.ECCtext = ECCtext[138]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[225]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[150]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[154]; - if (rds.ECC == 165) rds.ECCtext = ECCtext[158]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[90]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[89]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[0]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[49]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[23]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[122]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[198]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[217]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[128]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[225]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[150]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[154]; + else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[90]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[89]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[0]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[49]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[23]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[122]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[198]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[217]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[128]; break; } case 'E': { - if (rds.ECC == 160) rds.ECCtext = ECCtext[226]; - if (rds.ECC == 161) rds.ECCtext = ECCtext[138]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[151]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[172]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[175]; - if (rds.ECC == 165) rds.ECCtext = ECCtext[158]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[99]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[115]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[94]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[50]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[51]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[52]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[53]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[64]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[98]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[199]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[208]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[205]; + if (rds.ECC == 0xA0) rds.ECCtext = ECCtext[226]; + else if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[138]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[151]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[172]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[175]; + else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[99]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[115]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[94]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[50]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[51]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[52]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[53]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[64]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[98]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[199]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[208]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[205]; break; } case 'F': { - if (rds.ECC == 161) rds.ECCtext = ECCtext[149]; - if (rds.ECC == 162) rds.ECCtext = ECCtext[222]; - if (rds.ECC == 163) rds.ECCtext = ECCtext[153]; - if (rds.ECC == 164) rds.ECCtext = ECCtext[176]; - if (rds.ECC == 165) rds.ECCtext = ECCtext[158]; - if (rds.ECC == 166) rds.ECCtext = ECCtext[168]; - if (rds.ECC == 208) rds.ECCtext = ECCtext[67]; - if (rds.ECC == 209) rds.ECCtext = ECCtext[75]; - if (rds.ECC == 210) rds.ECCtext = ECCtext[114]; - if (rds.ECC == 224) rds.ECCtext = ECCtext[54]; - if (rds.ECC == 225) rds.ECCtext = ECCtext[55]; - if (rds.ECC == 226) rds.ECCtext = ECCtext[56]; - if (rds.ECC == 227) rds.ECCtext = ECCtext[57]; - if (rds.ECC == 228) rds.ECCtext = ECCtext[58]; - if (rds.ECC == 240) rds.ECCtext = ECCtext[202]; - if (rds.ECC == 241) rds.ECCtext = ECCtext[192]; - if (rds.ECC == 242) rds.ECCtext = ECCtext[220]; - if (rds.ECC == 243) rds.ECCtext = ECCtext[71]; + if (rds.ECC == 0xA1) rds.ECCtext = ECCtext[149]; + else if (rds.ECC == 0xA2) rds.ECCtext = ECCtext[222]; + else if (rds.ECC == 0xA3) rds.ECCtext = ECCtext[153]; + else if (rds.ECC == 0xA4) rds.ECCtext = ECCtext[176]; + else if (rds.ECC == 0xA5) rds.ECCtext = ECCtext[158]; + else if (rds.ECC == 0xA6) rds.ECCtext = ECCtext[168]; + else if (rds.ECC == 0xD0) rds.ECCtext = ECCtext[67]; + else if (rds.ECC == 0xD1) rds.ECCtext = ECCtext[75]; + else if (rds.ECC == 0xD2) rds.ECCtext = ECCtext[114]; + else if (rds.ECC == 0xE0) rds.ECCtext = ECCtext[54]; + else if (rds.ECC == 0xE1) rds.ECCtext = ECCtext[55]; + else if (rds.ECC == 0xE2) rds.ECCtext = ECCtext[56]; + else if (rds.ECC == 0xE3) rds.ECCtext = ECCtext[57]; + else if (rds.ECC == 0xE4) rds.ECCtext = ECCtext[58]; + else if (rds.ECC == 0xF0) rds.ECCtext = ECCtext[202]; + else if (rds.ECC == 0xF1) rds.ECCtext = ECCtext[192]; + else if (rds.ECC == 0xF2) rds.ECCtext = ECCtext[220]; + else if (rds.ECC == 0xF3) rds.ECCtext = ECCtext[71]; break; } default: { diff --git a/src/gui.cpp b/src/gui.cpp index 0ebf5cb..57159d3 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -3001,11 +3001,8 @@ void BuildAdvancedRDS() { tft.drawBitmap(68, 5, RDSLogo, 35, 22, GreyoutColor); tft.drawBitmap(249, 4, Speaker, 28, 24, GreyoutColor); - if (!StereoToggle) { - tft.drawBitmap(38, 5, Mono, 22, 22, SecondaryColor); - } else { - tft.drawBitmap(32, 5, Stereo, 32, 22, GreyoutColor); - } + if (!StereoToggle) tft.drawBitmap(38, 5, Mono, 22, 22, SecondaryColor); + else tft.drawBitmap(32, 5, Stereo, 32, 22, GreyoutColor); tftPrint(ALEFT, "TP", 2, 51, GreyoutColor, BackgroundColor, 16); tftPrint(ALEFT, "TA", 24, 51, GreyoutColor, BackgroundColor, 16); diff --git a/src/main.cpp b/src/main.cpp index 7cccdc5..62c326d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -281,6 +281,7 @@ int xPos2; int xPos3; int xPos4; int xPos5; +int xPos6; int16_t OStatus; int16_t SAvg; int16_t SAvg2; @@ -388,6 +389,8 @@ unsigned long aftickerhold; unsigned long aftimer; unsigned long autosquelchtimer; unsigned long blockcounterold[33]; +unsigned long eccticker; +unsigned long ecctickerhold; unsigned long eonticker; unsigned long eontickerhold; unsigned long flashingtimer; diff --git a/src/rds.cpp b/src/rds.cpp index 90b1900..652d008 100644 --- a/src/rds.cpp +++ b/src/rds.cpp @@ -5,7 +5,7 @@ String HexStringold; float smoothBER = 0; -int RadiotextWidth, PSLongWidth, AIDWidth, afstringWidth, eonstringWidth, rtplusstringWidth, lengths[7]; +int RadiotextWidth, PSLongWidth, AIDWidth, afstringWidth, eccstringWidth, eonstringWidth, rtplusstringWidth, lengths[7]; String afstringold, eonstringold, rtplusstringold, stationNameLongOld, AIDStringold; bool rtABold, ps12errorold, ps34errorold, ps56errorold, ps78errorold; @@ -57,17 +57,42 @@ void ShowAdvancedRDS() { } if (ECCold != radio.rds.ECC) { - if (advancedRDS) { - if (!screenmute) { - if (radio.rds.hasECC) ECCString = (radio.rds.ECCtext.length() == 0 ? textUI(73) : radio.rds.ECCtext); else ECCString = "N/A"; - if (ECCString != ECColdString) { - tftPrint(ALEFT, "N/A", 35, 199, BackgroundColor, BackgroundColor, 16); - tftPrint(ALEFT, ECColdString, 35, 199, BackgroundColor, BackgroundColor, 16); - } - tftPrint(ALEFT, ECCString, 35, 199, RDSColor, RDSColorSmooth, 16); + if (!screenmute) { + if (radio.rds.hasECC) ECCString = (radio.rds.ECCtext.length() == 0 ? textUI(73) : radio.rds.ECCtext); else ECCString = "N/A"; + if (ECCString != ECColdString) { + tftPrint(ALEFT, "N/A", 35, 199, BackgroundColor, BackgroundColor, 16); + tftPrint(ALEFT, ECColdString, 35, 199, BackgroundColor, BackgroundColor, 16); + eccstringWidth = RDSSprite.textWidth(ECCString); + } + + if (eccstringWidth < 270) { + xPos6 = 0; + RDSSprite.fillSprite(BackgroundColor); + if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); + RDSSprite.drawString(ECCString, xPos6, 2); + RDSSprite.pushSprite(35, 199); + } else { + if (millis() - eccticker >= 5) { + if (xPos6 < -eccstringWidth) xPos6 = 0; + if (xPos6 == 0) { + if (millis() - ecctickerhold >= 2000) { + xPos6--; + ecctickerhold = millis(); + } + } else { + xPos6--; + ecctickerhold = millis(); + } + RDSSprite.fillSprite(BackgroundColor); + if (RDSstatus) RDSSprite.setTextColor(RDSColor, RDSColorSmooth, false); else RDSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); + RDSSprite.drawString(ECCString, xPos6, 2); + RDSSprite.drawString(ECCString, xPos6 + eccstringWidth, 2); + RDSSprite.pushSprite(35, 199); + eccticker = millis(); + } } - ECColdString = ECCString; } + ECColdString = ECCString; if (wifi) { Udp.beginPacket(remoteip, 9030); @@ -1023,11 +1048,11 @@ void ShowRDSStatistics() { String HexString; HexString = String(((radio.rds.rdsA >> 12) & 0xF), HEX) + String(((radio.rds.rdsA >> 8) & 0xF), HEX) + String(((radio.rds.rdsA >> 4) & 0xF), HEX) + String((radio.rds.rdsA & 0xF), HEX); HexString += " "; - HexString = String(((radio.rds.rdsB >> 12) & 0xF), HEX) + String(((radio.rds.rdsB >> 8) & 0xF), HEX) + String(((radio.rds.rdsB >> 4) & 0xF), HEX) + String((radio.rds.rdsB & 0xF), HEX); + HexString += String(((radio.rds.rdsB >> 12) & 0xF), HEX) + String(((radio.rds.rdsB >> 8) & 0xF), HEX) + String(((radio.rds.rdsB >> 4) & 0xF), HEX) + String((radio.rds.rdsB & 0xF), HEX); HexString += " "; - HexString = String(((radio.rds.rdsC >> 12) & 0xF), HEX) + String(((radio.rds.rdsC >> 8) & 0xF), HEX) + String(((radio.rds.rdsC >> 4) & 0xF), HEX) + String((radio.rds.rdsC & 0xF), HEX); + HexString += String(((radio.rds.rdsC >> 12) & 0xF), HEX) + String(((radio.rds.rdsC >> 8) & 0xF), HEX) + String(((radio.rds.rdsC >> 4) & 0xF), HEX) + String((radio.rds.rdsC & 0xF), HEX); HexString += " "; - HexString = String(((radio.rds.rdsD >> 12) & 0xF), HEX) + String(((radio.rds.rdsD >> 8) & 0xF), HEX) + String(((radio.rds.rdsD >> 4) & 0xF), HEX) + String((radio.rds.rdsD & 0xF), HEX); + HexString += String(((radio.rds.rdsD >> 12) & 0xF), HEX) + String(((radio.rds.rdsD >> 8) & 0xF), HEX) + String(((radio.rds.rdsD >> 4) & 0xF), HEX) + String((radio.rds.rdsD & 0xF), HEX); HexString.toUpperCase();