diff --git a/ReadMe.md b/ReadMe.md index 15235e6fc..f16adc432 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -9,8 +9,8 @@ # Flipper Zero Firmware - [Flipper Zero Official Website](https://flipperzero.one). A simple way to explain to your friends what Flipper Zero can do. -- [Flipper Zero Firmware Update](https://update.flipperzero.one). Improvements for your dolphin: latest firmware releases, upgrade tools for PC and mobile devices. -- [User Documentation](https://docs.flipperzero.one). Learn more about your dolphin: specs, usage guides, and anything you want to ask. +- [Flipper Zero Firmware Update](https://flipperzero.one/update). Improvements for your dolphin: latest firmware releases, upgrade tools for PC and mobile devices. +- [User Documentation](https://docs.flipper.net). Learn more about your dolphin: specs, usage guides, and anything you want to ask. - [Developer Documentation](https://developer.flipper.net/flipperzero/doxygen). Dive into the Flipper Zero Firmware source code: build system, firmware structure, and more. # Contributing @@ -19,7 +19,7 @@ Our main goal is to build a healthy and sustainable community around Flipper, so ## I need help -The best place to search for answers is our [User Documentation](https://docs.flipperzero.one). If you can't find the answer there, check our [Discord Server](https://flipp.dev/discord) or our [Forum](https://forum.flipperzero.one/). If you want to contribute to the firmware development, or modify it for your own needs, you can also check our [Developer Documentation](https://developer.flipper.net/flipperzero/doxygen). +The best place to search for answers is our [User Documentation](https://docs.flipper.net). If you can't find the answer there, check our [Discord Server](https://flipp.dev/discord) or our [Forum](https://forum.flipperzero.one/). If you want to contribute to the firmware development or modify it for your own needs, you can also check our [Developer Documentation](https://developer.flipper.net/flipperzero/doxygen). ## I want to report an issue diff --git a/applications/examples/example_number_input/ReadMe.md b/applications/examples/example_number_input/ReadMe.md index 9d5a0a9e5..8a221ba08 100644 --- a/applications/examples/example_number_input/ReadMe.md +++ b/applications/examples/example_number_input/ReadMe.md @@ -1,7 +1,13 @@ -# Number Input +# Number Input {#example_number_input} -Simple keyboard that limits user inputs to a full number (integer). Useful to enforce correct entries without the need of intense validations after a user input. +Simple keyboard that limits user inputs to a full number (integer). Useful to enforce correct entries without the need for intense validations after a user input. -Definition of min/max values is required. Numbers are of type int32_t. If negative numbers are allowed withing min - max, an additional button is displayed to switch the sign between + and -. +## Source code -It is also possible to define a header text, shown in this example app with the 3 different input options. \ No newline at end of file +Source code for this example can be found [here](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/examples/example_number_input). + +## General principle + +Definition of min/max values is required. Numbers are of type int32_t. If negative numbers are allowed within min - max, an additional button is displayed to switch the sign between + and -. + +It is also possible to define a header text, as shown in this example app with the 3 different input options. \ No newline at end of file diff --git a/applications/main/infrared/resources/infrared/assets/ac.ir b/applications/main/infrared/resources/infrared/assets/ac.ir index 0a182c5d9..f57fe3aa1 100644 --- a/applications/main/infrared/resources/infrared/assets/ac.ir +++ b/applications/main/infrared/resources/infrared/assets/ac.ir @@ -942,3 +942,957 @@ type: parsed protocol: NEC address: 20 00 00 00 command: 02 00 00 00 +# +# Model: Airmax +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4453 4313 586 1554 585 483 586 1554 587 1552 587 483 587 484 586 1552 587 482 588 483 586 1553 586 483 587 483 586 1554 586 1553 585 484 587 1553 586 484 587 1553 586 1554 586 1553 586 1554 586 483 586 1553 586 1553 586 1555 585 483 586 482 588 483 585 484 585 1554 586 483 587 484 585 1553 587 1554 584 1554 585 484 586 484 586 483 586 483 586 484 586 482 588 483 584 484 586 1553 585 1555 584 1555 586 1553 586 1554 585 5129 4428 4312 585 1553 586 483 586 1555 584 1553 586 484 583 486 584 1555 585 484 585 483 586 1554 585 483 586 484 585 1554 585 1554 585 484 585 1554 585 484 584 1554 585 1554 584 1554 585 1554 586 483 585 1554 585 1555 584 1553 584 484 586 483 586 483 585 484 586 1554 583 484 586 483 585 1553 585 1553 585 1553 585 484 584 485 585 485 584 484 585 484 585 485 584 484 585 483 586 1554 585 1553 585 1554 584 1553 585 1553 585 +# +# Model: Airmet ac +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8971 4489 568 584 535 564 565 561 537 588 541 558 561 565 534 592 537 562 567 1659 559 566 563 563 536 1664 584 567 542 584 535 1664 564 587 542 558 561 564 535 591 538 562 567 558 541 585 534 566 563 562 537 589 540 559 560 566 533 593 536 563 566 560 539 587 532 567 562 564 535 591 538 1661 567 1658 590 1662 566 1659 559 1667 592 1660 558 567 562 563 536 590 539 561 558 567 542 584 535 1664 564 1662 586 1665 563 1662 566 1659 589 1663 565 560 559 566 533 593 536 564 565 560 538 587 542 557 562 564 535 591 538 1661 567 585 534 1666 562 1663 585 566 533 1667 592 560 538 +# +# Model: Airwell +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3089 3684 1991 910 1011 1854 983 847 1992 911 982 965 956 874 984 938 982 939 973 1866 1889 948 973 950 972 950 972 859 971 950 972 950 972 954 968 887 943 979 943 979 943 979 943 887 944 979 943 979 943 979 943 887 943 979 943 950 972 979 943 1803 1952 977 3051 3724 1951 978 943 1894 943 888 1951 978 943 979 943 888 942 980 942 979 943 1895 1859 978 943 979 943 979 943 888 943 979 943 979 943 980 942 888 943 980 942 980 942 980 942 888 942 980 942 980 942 980 942 888 943 979 943 980 942 980 942 1804 1950 978 3050 3725 1950 978 942 1896 941 889 1950 979 941 980 942 888 942 980 942 980 942 1896 1858 979 942 980 942 980 942 889 941 980 942 981 941 980 942 889 942 980 942 981 941 981 941 889 941 981 941 981 941 981 941 889 941 981 941 981 941 981 941 1805 1949 980 3964 +# +# Model: Airwell AWSI-PNXA012-N11 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3031 3980 1912 1945 1969 1950 1912 973 994 981 965 951 975 1027 909 1950 975 965 971 974 1941 1006 940 977 969 1003 964 951 975 1000 936 1006 940 973 973 1974 941 973 1942 1006 941 974 993 950 975 999 937 1036 910 975 992 952 974 998 938 1950 975 967 3947 3987 1916 2002 1881 1975 1939 947 999 943 972 971 996 948 967 1949 997 949 976 997 1907 980 966 1006 941 975 971 1001 945 999 968 945 970 976 970 1974 972 942 1942 975 992 952 994 949 977 970 997 948 967 979 967 1005 942 999 968 1923 971 1000 3914 3958 1965 1919 1995 1893 1969 984 962 954 972 996 971 973 942 1949 976 992 965 947 1947 1002 965 950 976 1001 945 997 939 1007 939 1006 940 998 969 1915 1000 944 2002 946 969 944 992 956 1001 943 972 1000 967 949 966 977 969 1001 966 1926 968 1003 4889 +# +# Model: Easy Home_Portable_Air_Cooler +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1281 401 1275 431 406 1248 1276 431 1244 409 439 1242 433 1247 439 1242 433 1248 438 1243 443 1239 1285 7120 1280 407 1279 406 442 1239 1285 400 1275 434 414 1241 434 1247 439 1243 443 1239 436 1246 440 1242 1282 8228 1282 405 1281 404 433 1248 1286 399 1276 406 442 1240 435 1245 441 1241 434 1247 439 1243 443 1239 1285 7121 1279 407 1279 432 416 1239 1285 400 1275 434 414 1241 434 1246 440 1242 444 1238 437 1245 441 1241 1283 8225 1285 402 1284 401 436 1245 1279 406 1280 403 434 1246 440 1241 434 1246 440 1242 444 1237 438 1244 1280 7124 1286 399 1276 408 440 1241 1283 401 1274 434 414 1240 435 1245 441 1241 434 1246 440 1242 444 1237 1287 8220 1279 408 1278 407 441 1240 1284 401 1274 409 439 1242 433 1247 439 1242 444 1238 437 1244 442 1240 1284 7121 1278 408 1278 433 415 1240 1284 399 1276 406 442 1239 436 1244 442 1239 436 1244 442 1239 436 1245 1279 8227 1283 403 1283 400 437 1244 1280 403 1283 399 438 1242 433 1247 439 1242 433 1247 439 1242 444 1238 1275 7127 1283 402 1284 426 412 1243 1281 402 1274 408 440 1240 435 1245 441 1239 436 1245 441 1240 435 1245 1279 8226 1284 402 1284 399 438 1242 1282 400 1275 407 441 1239 436 1243 443 1237 438 1242 444 1237 438 1242 1282 7120 1280 405 1281 428 409 1244 1280 403 1272 409 439 1241 435 1245 441 1239 436 1244 442 1239 436 1244 1280 8225 1285 400 1275 408 440 1241 1283 399 1276 406 432 1248 438 1242 433 1247 439 1242 444 1237 438 1242 1282 7120 1280 406 1280 403 434 1246 1278 405 1281 400 437 1243 432 1247 439 1241 434 1247 439 1242 444 1237 1276 8228 1282 405 1281 402 435 1244 1280 404 1282 400 437 1241 434 1246 440 1241 434 1246 440 1242 433 1247 1277 7126 1284 403 1283 400 437 1241 1283 402 1273 409 439 1239 436 1244 442 1239 436 1244 442 1239 436 1245 1279 8227 1283 403 1283 401 436 1242 1282 403 1283 399 438 1241 434 1246 440 1240 435 1246 440 1241 434 1246 1278 7126 1284 402 1284 399 438 1241 1283 401 1306 376 440 1239 436 1244 442 1238 437 1244 442 1239 436 1245 1279 8225 1285 402 1305 379 437 1242 1313 371 1304 378 438 1240 435 1245 441 1240 435 1245 441 1240 435 1246 1278 7125 1285 401 1306 378 470 1209 1304 380 1306 377 460 1218 436 1244 442 1238 437 1244 442 1239 436 1245 1310 8195 1315 371 1304 379 469 1211 1313 371 1304 378 470 1209 435 1245 441 1240 435 1245 441 1240 435 1245 1310 7092 1308 378 1308 375 462 1216 1308 376 1299 382 466 1213 462 1218 436 1244 442 1238 437 1244 442 1239 1306 +# +# Model: Amcor AC +# +name: Off +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 9C 00 00 00 +# +# Model: Arctic King_RG15B1 +# +name: Off +type: parsed +protocol: NECext +address: 01 FF 00 00 +command: 12 ED 00 00 +# +# Model: Argo ac +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3455 1584 486 347 483 348 482 347 482 348 480 350 430 401 429 1229 432 401 429 400 430 400 430 399 431 399 431 398 432 398 432 399 431 399 456 375 455 377 453 1207 453 378 452 1209 452 379 451 379 451 379 451 379 451 379 451 379 452 379 451 379 451 379 451 403 427 1233 427 1234 427 380 450 1234 426 1234 427 403 427 1233 427 403 427 1234 427 403 427 1234 426 404 426 403 427 403 427 403 427 403 427 1234 427 403 427 403 427 403 427 403 427 403 427 1234 427 403 427 403 427 403 427 403 427 403 427 1234 427 403 427 1234 426 1234 427 1234 426 1234 427 1234 427 403 427 403 427 403 427 1234 427 404 426 403 427 403 427 403 427 403 427 403 427 403 428 403 427 403 427 403 427 403 427 403 427 403 427 403 427 1234 427 1234 427 404 426 404 426 404 426 404 426 1234 426 404 427 404 426 404 426 1234 426 404 426 404 426 1234 427 404 426 404 426 404 426 404 426 404 426 404 426 1235 426 1235 426 1235 426 404 426 1235 425 405 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 427 404 426 404 426 404 426 404 427 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 404 426 1235 426 1235 426 1235 426 404 426 1235 426 404 426 +# +# Model: Ariston AC_A-MW09-IGX +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4481 4414 595 1596 594 527 562 1602 588 1604 586 535 565 530 570 1594 596 526 563 532 568 1596 594 528 561 534 566 1598 592 1600 590 531 569 1596 594 527 562 1603 587 1604 586 1605 648 1543 594 527 562 1603 587 1604 586 1605 595 525 564 531 569 526 563 532 568 1596 594 528 561 534 566 1598 592 1600 590 1601 589 532 568 527 562 533 567 528 561 534 566 529 560 535 565 530 570 1594 596 1596 594 1597 593 1598 592 1599 591 5252 4503 4418 590 1601 589 532 568 1597 593 1598 592 529 560 535 565 1600 590 531 569 526 563 1602 588 533 567 529 560 1604 596 1595 595 526 563 1602 588 533 567 1598 592 1599 591 1600 590 1601 589 532 568 1598 592 1599 591 1600 590 531 569 527 562 532 568 528 561 1603 587 534 566 530 559 1605 595 1596 594 1597 593 528 561 534 566 529 560 535 565 530 570 525 564 531 569 527 562 1602 588 1603 587 1604 596 1595 595 1596 594 +# +# Model: Ballu R05-BGE +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4467 4296 626 1511 627 469 626 1512 626 1538 652 442 625 469 601 1538 600 495 599 469 599 1565 598 471 597 498 596 1542 596 1569 595 474 595 1570 594 474 595 1570 594 1544 594 1570 594 1570 594 475 594 1570 594 1544 594 1570 594 475 594 501 594 475 594 500 595 1544 594 501 594 475 594 1570 594 1544 594 1570 594 475 594 501 594 475 594 501 594 475 594 501 594 475 594 475 620 1544 594 1570 594 1544 594 1570 594 1545 594 5144 4435 4328 593 1545 593 501 594 1545 593 1571 593 475 594 501 594 1545 593 501 593 475 594 1571 593 475 594 501 594 1545 593 1571 593 475 594 1571 593 476 619 1545 593 1571 593 1545 593 1571 593 476 593 1571 593 1545 593 1571 594 502 593 476 593 476 593 502 593 1545 593 502 593 476 593 1572 592 1572 592 1546 592 502 593 476 593 476 593 502 593 477 592 503 592 477 592 503 592 1546 592 1572 592 1546 592 1572 592 1572 592 +# +# Model: Portable +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3120 1593 488 1180 489 1177 492 342 492 342 492 367 467 1174 485 349 485 349 485 1181 488 1179 490 343 491 1177 492 341 493 366 458 1183 486 1181 488 346 488 1179 490 1177 492 342 492 341 493 1174 485 349 485 347 487 1180 489 345 489 344 490 370 464 368 466 341 493 341 483 376 458 375 459 348 486 374 460 372 462 345 489 370 464 369 465 368 466 341 493 367 457 348 486 374 460 348 486 1179 490 343 491 343 491 1176 493 1174 485 349 485 349 485 374 460 373 461 373 461 346 488 371 463 371 463 369 465 1175 484 350 484 350 484 348 486 374 460 346 488 372 462 345 489 371 463 370 464 368 466 340 484 376 458 376 458 375 459 348 486 347 487 345 489 370 464 370 464 369 465 342 492 368 466 367 457 375 459 348 486 374 460 347 487 372 462 345 489 371 463 343 491 368 466 341 493 367 457 376 458 375 459 1181 488 346 488 345 489 1178 491 342 492 342 492 1175 494 1173 486 1182 487 346 488 346 488 1179 490 343 491 342 492 368 466 367 457 +# +# Model: Bonaire DurangoAC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1305 435 1280 432 415 1255 1307 432 1272 439 418 1252 442 1255 1307 431 416 1255 439 1258 447 1251 443 8174 1302 437 1278 433 414 1255 1307 432 1273 438 419 1250 444 1254 1298 440 417 1253 441 1256 438 1259 445 8170 1306 433 1271 439 418 1251 1301 438 1277 434 413 1256 449 1249 1303 435 412 1258 446 1251 443 1254 440 8176 1300 438 1277 434 413 1283 1279 433 1271 440 417 1278 416 1255 1307 431 416 1253 441 1257 447 1250 444 8171 1305 433 1272 439 418 1278 1274 438 1277 433 414 1282 412 1259 1303 434 413 1256 448 1249 445 1252 442 8173 1303 435 1270 440 417 1279 1273 438 1277 433 414 1282 412 1258 1304 433 414 1282 412 1258 446 1250 444 8171 1305 433 1272 438 419 1276 1276 435 1270 441 416 1252 442 1255 1297 440 417 1279 415 1255 439 1257 447 8168 1297 439 1276 434 413 1256 1306 431 1273 436 411 1258 446 1250 1302 409 438 1284 421 1249 445 1252 442 +# +# Model: Boston Bay_MSAB_09CR +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4468 4412 543 1593 541 502 539 1596 548 1589 545 496 545 498 543 1593 541 501 540 502 539 1598 546 495 546 497 544 1591 543 1594 540 501 539 1597 547 494 547 1590 544 1591 543 1594 540 1595 539 504 547 1588 546 1590 544 1593 540 501 539 503 538 503 538 505 546 1588 546 497 544 496 545 1592 542 1592 542 1594 540 501 539 503 538 503 538 505 546 494 547 496 545 496 545 497 544 1590 544 1593 541 1594 540 1597 547 1589 545 5188 4430 4421 544 1592 541 499 541 1595 539 1596 538 505 546 494 547 1589 545 497 544 496 545 1592 542 500 540 499 542 1594 540 1596 538 503 538 1599 545 497 544 1591 543 1593 541 1595 539 1596 538 504 547 1588 546 1588 546 1590 544 498 542 498 543 499 541 500 541 1593 541 501 540 502 539 1597 547 1586 548 1587 547 496 545 495 546 497 544 498 543 497 544 498 543 499 542 498 542 1592 542 1594 540 1595 539 1597 547 1589 545 +# +# Model: Botti BL-168DLR +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9577 4536 622 576 621 577 620 577 620 578 619 578 619 578 619 579 618 1667 625 1660 622 1664 618 1668 624 1662 620 1666 616 1670 622 1664 618 580 617 581 616 1669 623 575 622 575 622 1664 618 580 617 580 617 581 616 1669 623 575 622 1664 618 1668 624 573 624 1662 620 1666 616 1670 622 39798 9556 2250 626 96841 9564 2245 620 96843 9560 2253 622 96836 9569 2244 621 96844 9571 2244 621 96843 9573 2247 619 96844 9572 2248 617 96847 9570 2248 617 96848 9568 2250 626 96833 9564 2251 625 96834 9564 2252 624 96843 9595 2223 653 96809 9597 2221 644 96822 9604 2215 650 96814 9591 2226 650 96813 9591 2225 650 96811 9600 2218 647 96816 9597 2221 654 96812 9601 2219 646 96815 9598 2220 645 96813 9601 2216 649 96815 9599 2219 657 96809 9565 2252 624 96842 9564 2254 622 96841 9565 2254 622 96838 9568 2249 616 96844 9571 2247 619 96842 9574 2245 620 96840 9566 2251 625 96838 9567 2251 625 96835 9570 2250 615 96848 9566 2254 621 96843 9572 2247 618 96847 9567 2253 623 96842 9572 2249 616 96843 9572 2247 618 96843 9572 2249 616 96849 9576 2245 621 96842 9574 2246 619 96842 9575 2246 619 96843 9573 2248 617 96843 9572 2249 616 96847 9571 2249 617 96839 9569 2251 625 96837 9569 2251 624 96837 9568 2250 626 96835 9572 2248 618 96844 9572 2246 619 96843 9564 2253 623 96834 9572 2245 620 96835 9569 2246 619 +# +# Model: Boulanger AC +# +name: Off +type: parsed +protocol: NEC +address: 81 00 00 00 +command: 6B 00 00 00 +# +# Model: Chigo CS-21H3A-B155AF +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6133 7359 575 561 550 560 577 532 576 559 550 534 602 507 549 536 573 536 573 564 546 539 571 538 545 540 570 538 570 566 545 539 571 589 545 590 521 540 570 562 521 563 547 562 545 592 521 563 548 588 522 615 521 563 547 589 521 589 548 589 547 562 521 589 548 588 548 589 521 563 547 563 546 590 521 589 547 562 546 590 521 589 547 589 547 563 521 563 548 589 521 589 548 588 549 589 545 539 548 589 548 563 521 562 549 589 521 563 548 563 547 590 521 589 548 589 548 563 521 589 547 1667 521 1641 521 563 547 589 548 589 521 589 548 562 548 590 520 589 548 589 548 589 521 590 547 588 548 1667 520 1668 545 1642 547 563 520 563 547 1667 520 589 547 589 547 1641 546 563 547 1641 546 563 546 538 546 1668 544 539 547 1668 520 590 546 590 546 1668 520 564 546 590 520 1668 547 1642 546 1668 542 7378 545 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6107 7355 578 556 579 530 551 532 605 529 604 505 550 559 602 507 574 561 522 563 573 561 546 537 548 561 548 561 522 561 549 561 522 538 572 587 549 587 522 561 548 561 547 563 522 561 548 561 522 561 549 588 546 563 521 561 549 561 522 561 549 561 522 561 549 561 547 590 521 561 549 562 521 562 548 562 545 538 548 562 547 562 522 588 548 588 548 588 522 562 548 588 548 589 521 562 548 588 547 589 521 562 548 562 521 562 548 563 546 590 521 562 548 589 546 591 520 1641 544 566 547 1667 544 1616 548 1613 547 1666 520 588 548 588 548 589 545 538 547 562 547 564 519 562 548 563 520 563 547 1667 520 589 547 564 545 1641 547 590 546 590 520 1666 548 590 543 1642 548 563 520 1666 548 590 544 538 547 1667 544 592 520 1668 543 592 520 562 548 564 519 1667 547 590 544 1642 547 1614 546 588 548 7396 543 +# +# Model: Chigo KRF-51G_79F +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6060 7357 592 1633 593 1633 593 1633 593 1633 593 1633 593 1633 592 1634 592 1634 592 515 591 515 591 515 591 516 590 517 590 516 590 517 590 517 589 1636 590 1636 590 1636 590 1636 590 1636 590 1636 590 1636 590 1636 590 517 590 517 590 517 590 517 590 517 590 517 589 517 590 517 590 1636 590 1637 589 1637 589 1637 589 1636 615 1612 589 1637 589 1636 590 517 590 517 589 517 590 517 590 517 590 517 589 517 590 517 590 1637 589 1637 589 1637 589 517 589 517 589 517 590 1637 589 1637 589 517 590 517 590 517 589 1637 589 1637 589 1637 590 517 589 517 589 517 589 518 589 517 589 1637 589 1637 589 517 590 1637 589 1637 589 1637 589 1637 589 1637 590 517 589 517 589 1637 589 517 589 517 590 517 589 1638 589 517 590 1637 589 518 589 1637 589 518 588 518 589 1637 589 518 588 1637 589 518 588 1637 589 518 589 1637 589 1637 589 7359 589 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6059 7355 592 1633 592 1633 592 1633 592 1633 592 1633 592 1633 592 1633 618 1608 617 489 617 490 616 490 616 491 590 517 589 517 614 492 590 517 590 1636 589 1636 590 1636 590 1636 589 1636 590 1636 590 1636 590 1636 590 517 589 517 589 517 589 517 590 517 589 517 589 517 589 517 589 517 589 1636 614 492 590 1636 590 1636 590 1636 589 1636 590 1636 589 1637 589 517 589 1636 590 517 589 517 589 517 614 492 590 517 589 1636 590 517 589 1636 590 517 589 517 589 517 589 517 590 1636 590 517 589 1636 590 517 589 1636 589 1636 590 1636 590 1637 589 517 589 517 589 1637 588 1637 589 517 589 1637 589 1636 590 517 589 1636 590 1636 590 517 589 517 589 1637 589 517 589 517 589 1637 589 517 589 518 588 1637 589 518 588 1637 589 517 590 1637 588 518 588 518 588 1637 589 518 588 1637 589 518 588 1637 589 518 588 1637 589 1637 589 7357 589 +# +# Model: Comfort Aire_RG57A6 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4381 4345 579 1558 579 488 580 1559 578 488 580 489 579 488 580 489 579 1558 579 489 579 488 580 488 580 489 579 488 580 489 579 1557 579 488 580 488 580 1559 577 1557 580 488 580 1557 579 1557 580 1557 580 488 580 1558 579 1558 579 1558 579 1557 580 1558 579 1559 578 1557 580 1557 580 1556 580 1558 579 1557 579 1559 578 1557 579 1560 577 1561 549 1584 579 1557 553 1584 552 1584 552 515 553 516 551 516 551 1585 551 1583 553 5156 4384 4343 552 515 552 1584 552 515 552 1584 552 1584 552 1584 552 1585 551 515 553 1585 551 1583 553 1584 552 1583 553 1584 552 1583 553 516 551 1584 552 1585 551 515 552 517 550 1583 553 515 552 515 552 516 551 1584 552 515 552 516 551 516 551 515 552 515 552 515 552 516 551 516 551 515 552 515 553 515 552 515 552 515 552 516 551 515 552 516 551 515 552 515 552 516 551 1583 553 1584 552 1585 551 515 552 515 552 +# +# Model: Cortlitec portable_ac +# +name: Off +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 00 FF 00 00 +# +name: Dh +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 0C F3 00 00 +# +# Model: COTech MPPH-08CRN7-QB6_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4412 4354 570 1575 568 504 572 1574 569 503 563 510 567 505 572 527 539 1580 563 509 568 505 572 1574 569 503 563 509 568 505 572 527 539 507 569 503 563 1582 571 500 566 507 569 503 563 535 542 505 561 511 566 1579 564 1582 571 1574 569 1576 567 1578 565 1581 562 1583 570 1575 568 1577 566 1580 563 1582 571 1574 569 1576 567 1579 564 1581 562 1583 570 1575 568 1577 566 1579 564 509 568 1577 566 1580 563 1582 571 501 565 5165 4412 4352 572 500 566 1579 564 509 568 1577 566 1579 564 1581 562 1583 570 502 564 1581 562 1582 571 501 565 1580 563 1582 571 1574 569 1576 567 1578 565 1579 564 509 567 1577 566 1579 564 1581 562 1583 570 1575 568 1577 566 506 571 501 565 534 542 529 537 535 542 531 535 537 539 532 545 527 539 507 569 529 537 509 568 504 562 510 566 532 544 527 539 507 569 528 538 534 542 1576 567 504 562 510 566 506 571 1574 569 +# +# Model: Daikin AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9830 9789 9825 9795 4618 2487 381 348 384 929 381 936 384 353 379 934 386 350 382 350 382 362 380 349 383 929 381 355 387 346 386 926 384 353 379 354 388 355 387 918 382 354 388 348 384 349 383 353 379 357 385 924 386 358 384 921 389 347 385 351 381 929 381 932 388 348 384 349 383 361 381 347 385 351 381 355 387 345 387 925 385 352 380 353 379 365 388 340 382 354 388 348 384 349 383 929 381 355 387 346 386 358 384 921 379 357 385 351 381 352 380 356 386 930 380 357 385 358 385 344 388 348 384 933 387 349 383 353 379 938 382 354 388 352 380 20353 4625 +# +# Model: Daikin AC_industrial_TB +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 5055 2191 335 1799 360 752 338 714 365 716 364 1800 359 723 367 715 365 718 361 720 359 1805 365 747 332 1802 357 1806 364 719 360 1803 367 1798 361 1803 367 1797 362 1802 368 744 335 1799 360 721 369 714 365 716 363 719 360 721 369 713 366 1798 361 1802 368 715 364 717 362 720 359 723 367 715 364 1799 360 722 368 714 365 717 363 719 361 722 368 714 365 716 363 719 360 721 369 713 366 716 363 718 361 721 359 723 367 1797 362 1802 368 1796 363 1801 358 754 336 716 363 719 361 29583 5057 2160 366 1798 361 750 329 723 367 715 364 1800 359 753 337 715 364 717 363 720 359 1804 366 747 332 1801 358 1806 364 718 361 1803 356 1798 1802 368 1797 362 1802 368 714 365 1799 360 722 368 714 365 717 362 719 360 722 368 714 365 1798 361 1803 367 715 364 718 362 721 359 723 367 715 364 718 361 720 359 723 367 715 364 717 362 720 360 1804 366 1799 360 721 369 714 365 1798 361 1803 367 1798 361 720 359 723 367 715 364 718 361 720 360 723 367 715 364 717 362 720 359 722 368 714 365 717 362 719 360 722 368 1796 363 719 360 721 369 714 365 716 363 719 361 721 369 713 366 716 363 718 361 721 358 723 367 716 363 718 362 720 359 723 367 715 364 718 361 720 359 723 367 715 364 1799 360 1804 366 1799 360 721 369 714 365 716 363 1801 358 754 336 1798 361 720 360 1805 365 748 331 720 359 723 367 715 364 717 363 720 360 722 368 714 365 717 362 720 359 722 368 714 365 717 363 719 361 722 368 714 365 1798 361 751 339 713 366 716 363 1801 359 1805 365 1800 359 1805 365 1800 359 1805 365 1799 360 +# +# Model: Daikin ARC480A53 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 445 455 421 449 416 453 422 447 418 451 424 25400 3494 1753 416 1322 419 450 415 456 420 449 416 1325 416 451 425 444 421 448 417 453 423 1318 423 444 421 1320 421 1316 414 457 419 1320 421 1318 423 1314 417 1322 419 1320 421 449 416 453 422 1317 424 445 420 450 415 456 419 447 418 451 414 456 420 449 416 452 424 448 417 453 422 445 420 450 415 456 419 448 417 452 423 447 418 449 416 453 423 448 417 453 423 446 419 449 416 453 423 447 418 1321 420 451 414 454 422 449 416 1322 419 1319 422 449 416 1322 419 451 424 445 420 449 416 455 421 445 420 449 416 455 420 448 417 452 424 446 419 1321 420 1317 424 1315 416 1324 417 1322 419 1320 421 1320 421 446 419 1319 422 1319 422 1318 423 1313 417 453 423 445 420 450 415 454 421 449 416 454 422 446 419 449 416 456 420 448 417 453 423 444 421 450 415 454 422 447 418 451 424 445 420 450 415 455 420 447 418 452 424 447 418 451 424 445 420 448 417 453 423 446 419 451 424 444 421 448 417 452 423 446 419 451 424 445 420 448 417 451 414 456 420 452 424 443 422 449 416 451 424 448 417 449 416 455 420 1318 423 446 419 1319 422 448 417 451 424 447 418 1320 421 1316 415 455 421 451 414 455 421 449 416 451 424 446 419 1319 422 448 417 454 422 446 419 451 414 1325 416 452 423 447 418 451 424 447 418 1318 423 446 419 449 416 1327 424 1312 419 449 416 455 421 449 416 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 444 456 419 450 415 455 420 448 417 455 420 25402 3491 1755 424 1315 415 455 420 449 416 458 417 1313 417 453 422 447 418 452 423 444 421 1320 421 447 418 1321 420 1319 422 448 417 1322 419 1320 421 1318 423 1315 415 1332 419 442 423 448 417 1320 421 448 417 454 422 445 420 450 415 461 414 450 415 455 420 446 419 452 423 446 419 451 424 444 421 447 418 454 421 445 420 449 416 454 422 447 418 1322 419 449 416 454 421 447 418 451 414 1325 416 453 422 447 418 453 422 446 419 453 422 445 420 448 417 453 422 1315 415 1324 417 453 422 447 418 450 415 454 422 448 417 454 421 446 419 451 424 1314 416 1326 415 1321 420 1318 423 446 419 1321 420 449 416 1322 419 1323 418 1320 421 1317 424 1318 423 445 420 449 416 452 423 449 416 452 423 444 421 449 416 459 416 446 419 458 417 448 417 456 420 443 422 447 418 452 423 445 420 450 415 452 424 447 418 452 423 446 419 449 416 460 415 448 417 452 423 445 420 450 415 455 420 449 416 452 423 445 420 451 414 454 421 449 416 455 420 446 419 451 414 454 422 449 416 452 424 445 420 451 424 443 422 448 417 1323 418 451 424 1315 415 453 422 446 419 450 415 1325 416 1324 417 451 414 456 419 450 415 454 421 447 418 452 423 446 419 450 415 453 423 450 415 451 424 1315 416 453 422 447 418 452 424 447 418 450 415 1323 418 1321 420 1319 422 1318 423 1317 424 1316 414 453 422 +# +# Model: Daikin FTE35KV1 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 5041 2133 360 1770 356 693 364 685 362 689 358 1772 364 686 361 689 358 692 365 684 363 1768 358 692 365 1767 359 1771 355 694 363 1769 357 1773 363 1768 358 1772 364 1767 359 689 358 692 365 1765 361 689 358 692 365 685 362 688 359 691 366 684 363 1767 359 1773 363 1768 358 1772 364 1767 359 689 358 1774 362 1769 357 691 366 684 363 687 360 690 357 693 364 685 362 689 358 691 366 684 363 687 360 690 357 693 364 1766 360 1773 363 1767 359 1771 355 694 363 687 360 690 357 693 364 29443 5038 2134 359 1774 362 686 361 689 358 692 365 1765 361 689 358 692 365 685 362 688 359 1771 365 685 362 1769 357 1775 361 687 360 1772 364 1767 359 1771 355 1776 360 1770 356 693 364 686 361 1799 327 693 364 686 361 689 358 692 365 685 362 688 359 691 356 694 363 686 361 689 358 1773 363 1769 357 691 366 684 363 1798 328 692 365 1767 359 1771 355 694 363 686 361 689 358 692 365 1765 361 1772 364 684 363 687 360 1801 335 684 363 687 360 690 357 693 364 686 361 1769 357 694 363 686 361 689 358 692 365 685 362 688 359 691 356 694 363 687 360 690 357 693 365 685 362 688 359 691 367 684 363 687 360 690 357 693 365 685 362 688 359 1772 364 1768 358 690 357 693 364 686 361 689 358 692 365 1765 361 689 358 692 365 685 362 688 359 691 356 694 363 687 360 689 358 1773 363 687 360 690 357 693 364 685 362 688 359 1772 364 686 361 1769 357 1776 360 1770 356 1775 361 687 360 +# +# Model: Daikin FTX50GV1B +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 190 26844 503 368 475 395 475 395 475 367 476 395 475 25347 3527 1695 451 1290 451 420 476 394 476 394 475 1264 475 370 471 399 470 400 470 400 443 1298 443 400 470 1270 471 1270 471 400 470 1270 471 1271 470 1270 471 1270 471 1271 470 400 470 373 470 1271 470 400 470 400 470 400 443 400 470 400 470 400 443 400 470 400 470 400 470 374 469 1271 470 400 470 1271 470 400 470 401 442 401 469 1272 469 1272 469 401 469 401 469 374 469 401 469 401 469 401 442 401 469 401 469 401 469 374 469 401 469 401 469 374 469 401 469 401 469 401 442 1300 441 1299 442 1300 441 402 468 1272 469 402 468 1272 469 1273 468 34903 3522 1703 471 1270 471 400 470 373 470 400 470 1270 471 400 470 400 443 400 470 400 470 1270 471 400 443 1298 443 1297 444 400 470 1270 471 1270 471 1270 471 1270 471 1270 471 400 470 400 470 1270 471 373 470 400 470 400 470 400 443 400 470 400 470 400 470 373 470 400 470 400 470 400 443 1298 443 400 470 400 470 400 443 400 470 1271 470 400 470 1271 470 1271 470 400 470 1271 470 1271 470 1271 470 373 470 400 470 1271 470 1271 470 400 470 1271 470 1271 470 400 443 400 470 400 470 400 470 1271 470 373 470 1271 470 401 469 1271 470 400 470 1271 470 34903 3522 1702 471 1269 472 373 470 399 471 399 471 1270 471 399 444 399 471 399 471 399 471 1270 471 372 471 1270 471 1270 471 399 471 1270 471 1270 471 1270 471 1270 471 1270 471 399 471 399 444 1297 444 399 471 399 471 399 471 372 471 399 471 399 471 373 470 399 471 399 471 399 444 400 470 399 471 399 471 373 470 400 470 400 470 399 444 400 470 1270 471 400 470 400 470 1270 471 1271 470 1271 470 372 471 400 470 400 470 400 443 1298 443 400 470 1271 470 1271 470 400 470 400 443 401 469 400 470 401 469 373 470 401 469 401 469 401 442 401 469 401 469 401 469 375 468 402 468 401 469 1273 468 1296 445 426 416 426 445 426 444 426 417 426 444 426 444 426 444 399 444 426 444 426 444 426 417 426 444 426 444 426 444 399 444 426 444 426 444 426 417 1324 417 1325 416 426 444 426 444 427 416 427 444 426 444 426 444 399 444 427 443 427 443 426 417 1325 416 1325 416 427 443 427 443 426 444 399 444 427 443 427 444 427 416 427 444 427 443 427 443 400 443 427 443 427 443 400 443 427 443 427 443 427 416 1325 416 427 443 427 443 427 443 400 443 427 443 1298 443 1298 443 427 443 427 416 427 443 427 443 427 443 400 443 427 443 1298 443 427 443 400 443 428 442 427 443 427 416 428 443 427 443 427 443 400 443 1298 443 1298 443 428 442 428 442 428 415 428 442 1299 442 +# +# Model: Daikin FTXM95PVMA +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 536 358 508 358 508 358 507 359 506 335 530 25024 3539 1656 534 1198 534 360 534 331 477 389 477 1228 533 360 507 358 508 358 508 358 507 1224 508 359 506 1225 506 1226 505 361 504 1229 502 1231 474 1258 474 1258 474 1258 474 392 474 392 474 1258 474 392 474 392 474 392 474 392 474 392 474 392 474 392 474 392 474 392 474 392 474 1259 473 392 474 1259 473 392 474 392 474 392 474 1259 473 1259 473 393 473 392 474 393 473 392 473 1259 473 393 473 393 473 393 473 392 474 393 473 393 473 393 472 393 473 393 473 393 473 393 473 1259 473 1260 472 1259 473 393 473 393 473 1259 473 1260 472 1260 472 35478 3510 1688 474 1259 473 392 474 392 474 392 474 1259 473 392 474 393 473 392 474 392 474 1259 473 393 473 1259 473 1259 473 392 474 1259 473 1259 473 1259 473 1259 473 1260 472 393 473 393 473 1259 473 393 473 393 473 393 473 393 473 393 473 393 473 393 473 393 473 394 472 394 472 394 472 1260 472 394 472 394 472 394 472 394 472 1261 471 395 471 395 471 395 471 418 448 395 471 418 448 418 448 419 447 418 448 419 447 418 448 419 447 418 448 1285 447 419 447 418 448 419 447 418 448 419 446 1285 447 419 447 419 447 1285 447 1285 447 419 447 35479 3510 1689 473 1259 473 393 473 393 473 392 474 1259 473 393 473 393 473 393 473 393 473 1259 473 393 473 1259 473 1259 473 393 473 1259 473 1260 472 1259 473 1259 473 1260 472 393 473 393 473 1260 472 393 473 394 472 394 472 393 473 393 472 393 473 393 473 393 473 393 473 393 473 394 472 394 472 394 472 394 472 394 472 394 472 394 472 394 472 1285 447 418 448 418 448 1285 447 1285 447 1285 447 419 447 419 447 419 447 1285 447 419 447 419 447 1285 447 1285 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 419 447 1286 446 1285 447 419 447 1286 446 1286 446 1286 446 1286 446 1286 446 419 447 420 446 420 446 419 447 420 446 419 447 420 446 419 447 420 446 420 446 420 446 420 445 420 446 1286 446 1286 446 420 446 420 446 420 446 420 446 420 446 420 446 420 446 420 446 420 446 420 446 1287 445 1287 445 420 446 420 446 420 446 421 445 420 446 421 445 420 446 420 446 420 446 420 445 421 445 421 445 421 445 421 445 421 445 421 445 421 445 1288 444 421 445 421 445 421 445 421 445 421 445 1288 444 1288 444 422 444 1288 444 422 444 421 445 422 443 422 444 422 444 1288 444 422 444 422 444 422 444 422 444 422 444 422 444 422 444 422 444 1288 444 422 444 1289 443 423 443 423 443 1289 443 1289 443 1290 442 +# +# Model: Daikin FTXS25KVMA +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 427 419 454 418 454 417 455 391 454 418 454 25460 3513 1723 428 1317 428 418 481 391 454 418 427 1317 428 418 454 418 454 418 454 391 454 1290 455 418 454 1291 479 1266 478 395 477 1268 476 1270 474 1272 473 1297 448 1297 448 423 422 424 449 1297 448 423 449 424 448 396 449 423 449 424 449 424 421 424 448 424 449 423 422 424 449 1297 448 424 449 1297 448 424 448 397 448 424 448 1297 448 1297 448 424 448 424 421 424 448 424 448 424 448 397 448 424 448 424 448 424 421 424 448 424 448 424 421 1325 420 425 448 424 448 424 448 1298 447 1298 447 1298 447 397 448 425 447 1298 447 1298 447 1298 447 34988 3533 1730 448 1297 448 424 448 424 421 424 448 1297 448 424 448 424 448 396 449 424 448 1297 448 424 448 1297 448 1297 448 397 448 1297 448 1297 448 1297 448 1297 448 1297 448 424 448 424 448 1297 448 424 421 424 448 424 448 424 448 397 448 424 448 424 448 425 420 424 449 424 448 424 449 1297 448 397 448 424 448 424 448 424 421 1325 420 425 448 424 448 1297 448 424 421 425 447 1297 448 424 448 1297 448 425 448 397 448 1298 447 425 448 424 448 1298 447 425 420 425 447 425 447 425 447 397 448 425 447 1298 447 1298 447 1298 447 425 447 1298 447 35014 3507 1730 448 1297 448 397 448 424 448 424 448 1297 448 424 421 424 448 424 448 424 448 1297 448 397 448 1298 447 1298 447 425 447 1299 445 1300 445 1299 446 1299 446 1299 446 426 446 426 419 1326 419 426 447 426 447 425 447 398 447 426 446 426 447 399 446 426 446 426 446 426 419 427 446 426 447 427 445 399 446 427 445 451 421 428 417 452 420 1325 420 453 420 452 420 1325 420 425 420 1325 420 453 420 452 420 425 420 452 420 452 420 452 393 453 420 452 420 1325 420 1326 419 453 419 426 420 452 420 452 420 453 392 453 419 453 419 452 421 425 420 452 420 452 420 453 392 453 419 1326 419 453 420 1326 419 1326 419 1327 418 1326 419 1327 418 453 392 454 419 453 420 453 420 425 420 453 419 453 419 453 392 453 419 453 420 453 419 426 419 453 419 1326 418 1327 418 454 419 454 391 454 419 453 419 453 392 454 419 453 419 454 419 426 419 454 418 1327 418 1327 418 454 418 455 391 454 419 454 418 454 418 426 419 454 418 454 419 454 391 454 418 454 419 454 391 454 419 454 418 454 418 427 418 454 418 1327 418 455 418 454 391 454 419 454 418 454 418 1328 417 1328 417 428 417 454 419 454 418 454 391 455 418 454 418 455 417 427 418 454 418 454 418 428 417 454 418 455 417 455 390 455 418 455 417 1328 417 455 418 428 417 455 417 1328 417 455 418 1328 417 1328 417 +# +# Model: Delonghi portable_Pinguino-Air-to-Air-PAC-N81_ac +# +name: Off +type: parsed +protocol: NECext +address: 48 12 00 00 +command: 88 08 00 00 +# +# Model: Pinguino PAC_EL275HGRKC +# +name: Off +type: parsed +protocol: NEC +address: 82 00 00 00 +command: 6B 00 00 00 +# +# Model: electriQ P15C-V2 +# +name: Off +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 43 00 00 00 +# +# Model: Electrol ESV09CRO_B2I +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3086 3063 3089 4438 571 1657 575 529 571 1656 576 529 571 534 576 1650 571 1655 577 527 573 1654 578 526 574 1653 569 1657 575 530 570 536 574 530 570 534 576 1648 573 1653 569 1658 574 530 570 535 575 530 570 534 576 527 573 531 569 535 575 529 571 533 577 526 574 530 570 534 576 528 572 532 568 536 574 529 571 533 578 526 574 530 570 534 576 528 572 1652 569 534 577 1649 573 532 579 526 574 530 570 534 576 527 573 531 569 535 575 528 572 532 568 536 574 529 571 533 577 526 574 530 570 534 577 1647 574 530 570 535 575 529 571 532 568 536 575 529 571 533 577 526 574 530 570 533 577 527 573 530 570 534 576 527 573 531 569 535 575 528 572 532 568 535 575 529 571 532 568 536 574 529 571 533 577 526 574 530 570 533 577 527 573 530 570 534 576 527 573 531 569 534 576 527 573 531 569 535 575 528 572 531 569 535 575 528 572 532 568 535 576 1648 573 531 569 1655 577 1648 573 1651 570 1654 578 1647 574 1651 570 533 577 1648 573 1651 571 +# +# Model: Emerson EARC8RE1_ac +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3110 1566 525 1084 497 356 471 1085 497 356 472 356 471 1085 497 356 470 357 474 1084 498 356 471 356 471 356 471 356 471 356 496 357 470 357 473 1061 520 357 470 1063 519 357 470 1064 518 1064 518 357 470 357 471 +# +# Model: Eurom_PAC_9.2 +# +name: Off +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 04 00 00 00 +# +# Model: Firstline AAS2500 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3405 1710 463 387 464 388 464 387 464 388 464 389 462 386 465 1224 464 388 463 388 463 389 463 387 464 388 464 387 465 387 464 389 462 389 463 388 464 388 463 1226 462 388 463 1225 463 388 463 387 464 389 462 389 462 388 463 387 464 387 464 389 463 388 463 388 464 1226 462 1224 464 1225 462 387 464 388 464 388 463 388 463 1226 462 387 464 1225 463 388 463 1225 463 388 463 389 463 387 464 1226 462 1224 464 388 463 388 463 387 465 1224 464 388 463 1224 463 388 464 387 464 1224 464 1226 461 387 464 1224 464 388 463 1225 463 1224 464 1224 463 1224 464 1223 464 388 464 387 464 387 464 387 464 389 463 389 462 388 464 388 463 388 463 387 464 387 465 387 464 388 463 387 464 388 463 388 464 388 463 1225 463 388 463 1225 463 1224 463 388 463 388 463 388 464 388 463 387 464 388 464 389 462 389 463 387 464 388 464 388 464 388 463 388 464 387 464 387 465 388 463 387 464 1225 463 1225 463 1225 462 387 464 389 462 388 463 387 465 389 462 388 463 388 464 389 463 388 463 388 464 387 464 389 462 389 463 387 464 388 463 388 463 388 464 389 462 389 463 389 462 389 463 389 462 388 463 1224 464 1225 463 1224 464 389 462 1224 464 394 437 +# +# Model: Frico PA2510E08 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 272 76189 1130 2004 1129 2008 2141 2008 1127 966 1125 967 2138 992 1094 999 2101 1004 1085 +# +# Model: Friedrich +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 5624 5582 567 553 568 550 571 550 561 557 564 584 537 554 567 1672 571 1671 562 554 567 553 568 1696 537 1676 567 1673 570 1668 565 554 567 556 565 1671 562 557 564 1676 567 1671 562 584 537 555 566 1673 570 552 569 1666 567 1671 562 1676 567 1671 572 548 563 556 565 1672 571 554 567 547 564 556 565 1674 569 549 562 558 563 1676 567 551 570 554 568 548 563 557 564 555 566 554 567 1672 571 1667 566 1674 569 1673 570 545 566 554 567 1671 572 1667 566 554 567 1672 561 557 564 1677 566 +# +# Model: Friedrich 4235h +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3232 1451 581 1008 580 1007 581 326 494 326 494 326 494 1009 579 325 495 326 494 1034 579 1010 578 325 494 1012 576 326 494 326 494 1013 575 1013 576 326 494 1013 575 1013 575 326 494 326 494 1013 575 326 494 326 494 326 494 1013 575 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 1013 575 326 494 326 494 326 494 326 494 326 494 326 494 326 494 1013 575 1014 574 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 1014 574 1014 574 326 494 326 494 326 494 326 494 1014 574 1014 574 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 1015 573 326 494 1015 573 1015 573 1015 573 70108 3201 1510 574 1014 574 1015 574 326 494 326 494 326 494 1014 574 326 494 326 494 1014 574 1014 574 326 494 1014 574 326 494 326 494 1014 574 1015 573 326 495 1015 573 1015 573 326 494 326 494 1015 573 326 494 326 494 1015 573 326 494 326 494 326 494 327 493 326 494 326 494 326 494 325 495 326 494 325 495 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 1015 573 326 494 326 494 1015 573 1015 573 326 494 326 494 326 494 326 494 1015 573 326 494 1016 572 1016 572 1016 572 1016 572 326 494 326 494 326 494 326 494 1016 572 326 494 1016 572 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 494 326 495 326 494 327 493 326 494 1018 570 326 494 326 494 1018 570 1017 571 326 495 326 494 326 493 326 496 +# +# Model: Friedrich AKB73756214 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3267 9589 679 1380 626 416 546 470 546 469 547 1512 547 469 571 445 571 445 572 1462 569 1490 570 447 544 473 566 450 567 450 568 449 594 448 568 448 568 448 568 448 569 448 569 448 567 1468 566 450 567 1493 568 449 567 449 568 448 568 1466 567 +# +# Model: Frigidaire RG15D_AC +# +name: Off +type: parsed +protocol: NECext +address: 08 F5 00 00 +command: 11 EE 00 00 +# +# Model: Fujidenzo FEA5001_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9464 4442 637 583 601 584 601 584 601 584 600 582 603 580 604 580 630 555 629 1637 627 1665 598 1668 571 1696 569 1696 594 1672 594 1672 592 1674 593 1673 593 591 594 1673 593 1672 593 591 591 593 569 616 568 616 593 593 591 1674 593 592 593 593 592 1675 592 1675 592 1700 568 1700 568 39559 9409 2272 567 96244 9461 2246 594 +# +# Model: Fujitsu AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3302 1618 435 393 436 391 438 1207 431 396 433 1213 435 392 437 391 438 388 441 1206 432 1214 434 392 437 389 440 388 431 1215 433 1213 435 392 437 390 439 388 431 396 433 395 434 392 437 390 439 388 431 396 433 394 435 392 437 390 439 388 441 1205 433 395 434 392 437 389 440 388 431 396 433 394 435 392 437 1209 439 388 431 397 432 394 435 393 436 1210 438 387 432 396 433 394 435 392 437 390 439 388 431 1215 433 394 435 1211 437 1208 440 1205 433 1213 435 1211 437 1209 439 +# +# Model: Fujitsu AC_ASU18RLF +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3306 1624 406 411 413 404 410 1224 414 403 411 1223 405 412 412 405 409 408 406 1228 410 1224 414 402 412 406 408 409 405 1229 409 1224 414 403 411 407 407 410 414 402 412 406 408 409 405 412 412 404 410 408 406 411 413 403 411 406 408 409 405 1230 408 408 406 411 413 404 410 407 407 410 414 403 411 406 408 1226 412 405 409 408 406 411 413 404 410 1224 414 403 411 406 408 409 405 412 412 405 409 408 406 1228 410 407 407 1227 411 1222 406 1229 409 1198 440 1220 408 1227 411 +# +# Model: GE AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8521 4240 539 1600 542 1572 539 1600 542 567 514 1572 539 570 511 1602 519 1593 600 4181 515 567 514 1599 543 539 511 571 520 563 508 575 485 570 511 572 592 19298 8523 4263 536 1577 544 1595 537 1577 544 564 517 1597 535 548 512 1627 515 1599 512 4245 544 565 485 1627 515 569 512 571 489 567 514 569 512 571 490 567 596 19304 8527 4262 537 1576 545 1595 537 1577 544 565 516 1623 509 548 512 1601 541 1626 485 4245 544 565 485 1601 541 569 512 571 490 567 514 569 512 570 491 566 597 19297 8524 4265 534 1580 541 1598 544 1569 542 567 514 1626 516 541 519 1620 512 1629 492 4238 541 568 492 1594 538 572 509 574 486 571 510 572 509 574 487 570 594 +# +# Model: GE Window_AC +# +name: Off +type: parsed +protocol: NECext +address: 98 6F 00 00 +command: 19 E6 00 00 +# +# Model: Gree airco +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9018 4484 651 553 653 555 650 1657 650 554 652 554 652 1656 652 1656 651 553 653 1656 651 1656 652 1657 651 554 652 553 653 554 652 553 652 557 650 554 652 554 652 554 652 554 652 554 652 1655 652 555 651 555 652 555 651 553 652 556 650 554 652 1656 652 553 653 1655 653 552 654 555 651 1656 652 555 651 19990 652 1657 650 1658 650 553 652 1655 652 554 652 554 652 554 652 554 652 554 652 555 651 554 652 553 654 556 650 553 653 1655 652 554 652 554 652 554 652 555 651 556 651 554 651 553 653 555 651 554 652 554 651 554 652 554 652 556 651 1655 652 553 652 554 651 1656 652 +# +# Model: Gree airco_lightoff +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9075 4405 725 1580 728 478 728 480 726 481 725 478 728 479 728 479 727 478 728 478 727 1583 724 479 727 1581 727 480 727 480 726 478 727 480 726 479 727 481 725 479 728 478 728 478 728 478 727 479 727 480 726 477 729 478 728 478 728 480 726 1581 726 480 726 1580 727 479 727 478 727 1582 725 480 726 19911 650 1657 650 1657 650 556 650 558 647 556 650 556 649 557 649 555 650 556 649 555 651 556 650 556 650 558 649 555 651 1658 650 555 650 555 650 556 650 555 651 556 650 557 649 556 650 557 649 553 653 555 651 554 651 583 649 555 651 1657 650 555 651 556 650 1656 651 +# +# Model: Gree KFR-70G-A1 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9081 4414 685 1618 682 509 680 536 654 537 653 537 654 537 653 1675 627 564 626 1676 653 1649 653 1649 653 537 653 538 653 537 653 537 654 537 653 537 654 537 653 537 653 538 653 538 653 537 653 538 653 538 653 537 653 537 654 538 652 538 653 1649 653 538 652 1676 626 538 652 538 653 1676 653 538 652 +# +# Model: GREE YAPOF +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8995 4545 627 1658 629 1660 627 581 628 554 629 1660 627 1659 628 1685 628 555 628 1659 628 581 628 554 629 1660 627 554 629 581 628 555 628 554 629 581 628 555 628 555 628 581 628 555 628 1660 627 581 628 554 629 555 627 581 628 554 628 556 627 1686 627 555 627 1660 627 557 626 581 628 1658 629 555 628 20037 627 555 628 581 628 555 628 556 627 1687 626 556 627 555 628 582 627 556 627 556 626 582 627 555 628 557 626 581 628 1659 628 555 628 555 628 581 628 554 628 556 627 584 625 556 626 556 627 582 627 557 625 555 627 582 627 555 627 1661 625 1686 627 556 653 1632 655 39992 8996 4518 650 1660 653 1635 627 556 627 583 625 1660 628 1661 626 1660 627 581 628 1658 629 557 625 557 626 1686 627 556 627 555 628 582 627 556 627 556 627 582 627 555 628 557 626 582 627 1661 626 557 626 583 626 556 627 556 627 581 628 556 627 1661 626 1660 627 1687 626 555 628 556 627 1688 625 557 626 20012 626 581 628 556 627 556 626 583 626 556 626 556 627 583 626 556 627 557 626 582 627 555 628 556 627 582 627 556 627 556 627 583 626 556 626 556 627 584 625 556 627 556 627 581 628 1661 626 1661 626 582 627 556 627 555 628 583 626 557 625 1660 627 557 626 583 626 +# +# Model: Haier AC_HWE08XCR-L +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8714 4338 579 538 551 540 549 542 557 1613 555 1615 553 538 551 540 549 1619 549 1620 558 1612 556 1614 554 1617 551 540 559 1611 557 1612 556 531 558 1613 555 536 553 538 551 1620 558 1612 556 535 554 537 552 535 554 537 552 1618 550 1620 558 533 556 536 553 1617 551 1617 551 1608 549 +# +# Model: Hisense DG11J1-99_celsius +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8987 4555 560 1694 561 1698 561 574 562 578 562 584 560 586 561 590 560 1705 561 567 563 1698 561 1703 559 577 563 579 564 586 561 588 563 578 562 568 562 572 561 574 563 580 561 582 562 587 561 591 560 579 561 568 562 1699 561 576 561 578 562 581 562 586 561 589 561 580 560 567 563 571 562 576 561 580 561 582 562 587 560 590 561 579 561 567 562 571 562 575 562 578 562 581 563 586 561 588 563 559 563 8017 563 568 561 571 562 574 562 578 562 582 561 585 561 590 561 1702 564 567 562 572 561 574 562 580 560 581 562 584 563 589 562 578 562 569 561 573 561 575 561 577 563 582 562 586 561 589 561 577 563 569 561 571 562 574 562 578 562 582 561 586 561 590 561 579 561 567 563 571 562 575 562 577 563 582 561 585 562 589 562 577 563 568 562 571 562 575 562 578 563 582 562 585 562 589 562 578 562 569 561 571 562 575 562 579 561 581 562 585 562 588 563 578 562 568 562 1697 563 576 561 578 562 580 564 585 562 588 562 1687 562 8017 561 568 561 571 562 576 561 578 562 581 562 585 562 588 563 579 562 569 561 572 562 575 562 579 562 582 562 585 563 589 562 578 562 568 562 571 562 574 563 579 562 582 562 585 563 589 562 580 561 569 561 572 562 574 563 578 562 582 562 584 564 589 562 578 562 567 563 571 563 575 562 1705 562 583 561 584 563 589 562 579 562 568 562 571 562 574 563 578 563 581 563 586 562 588 563 578 563 568 562 572 562 574 563 1706 561 581 563 585 562 588 563 561 561 +# +# Model: Hisense room_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9115 4510 641 1653 641 1632 614 531 611 539 608 543 608 546 608 550 608 1673 608 529 608 1666 608 1670 607 540 607 544 607 570 584 574 584 564 584 553 584 557 584 1694 584 563 584 567 584 1704 584 1708 583 564 583 1686 584 557 584 560 584 564 583 1701 583 1704 584 1708 584 564 584 553 583 557 583 561 583 564 583 567 584 571 584 574 584 564 583 553 584 557 583 561 583 564 584 568 583 572 583 575 583 546 583 8052 583 554 583 557 583 561 583 565 583 568 583 572 582 575 583 1699 582 1688 583 558 583 561 583 565 582 1702 583 1706 582 575 583 565 583 555 582 558 582 562 582 565 582 569 582 572 582 576 582 566 582 555 582 558 582 562 581 565 582 569 581 573 581 576 581 566 581 555 582 559 581 562 582 566 581 570 581 573 581 577 581 566 581 556 581 560 581 563 581 567 580 570 581 574 580 578 580 1701 580 1690 581 560 580 564 580 1701 580 1704 580 575 580 579 579 568 579 1691 579 561 580 1698 579 1702 578 1705 579 1709 579 580 578 575 554 8080 554 582 555 586 554 589 555 593 554 596 555 600 554 604 554 593 555 1717 554 586 554 590 554 593 554 597 554 601 554 604 554 593 555 583 554 586 554 590 554 594 554 597 554 601 553 604 554 594 553 584 553 587 554 591 553 594 554 598 553 602 553 605 553 595 553 584 553 588 552 592 552 1729 553 599 552 602 553 606 552 595 552 585 552 588 552 592 552 620 527 599 552 628 526 631 527 621 526 1744 526 614 526 618 526 1754 526 624 527 628 526 631 527 604 526 +# +# Model: Hisense window_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8963 4401 561 543 558 545 566 537 564 540 561 542 559 1652 561 1650 563 540 561 543 558 545 567 537 564 1647 566 1645 558 1654 559 544 567 536 565 1646 567 1644 559 545 567 537 564 1647 566 537 564 540 561 542 559 545 567 537 564 539 562 541 560 544 567 536 565 538 563 541 560 543 558 545 567 538 563 540 561 542 559 545 567 537 564 539 562 542 559 544 568 536 565 539 562 541 560 543 569 536 565 538 563 541 560 543 558 545 566 538 563 540 561 542 559 545 566 537 564 539 562 542 559 544 567 536 565 539 562 541 560 544 568 536 565 538 563 541 560 543 558 545 567 538 563 540 561 543 558 545 567 537 564 540 561 542 559 544 568 536 565 539 562 541 560 570 542 536 565 538 563 541 560 543 558 546 565 538 563 540 561 543 558 571 541 537 564 540 561 542 559 545 567 537 564 539 562 542 559 544 568 536 565 539 562 541 560 544 568 536 565 538 563 541 560 543 569 535 566 538 563 541 560 543 569 535 566 538 563 541 560 543 569 536 565 538 563 541 560 544 567 536 565 539 562 542 559 544 567 537 564 539 562 542 559 544 568 537 564 539 562 542 559 544 568 537 564 539 562 542 559 545 567 537 564 540 561 542 559 545 566 537 564 540 561 543 558 545 567 538 563 541 560 543 569 536 565 538 563 541 560 544 568 536 565 539 562 542 559 544 568 1645 558 546 566 1646 567 537 564 540 561 1651 562 541 560 544 568 563 538 539 562 541 560 544 567 536 565 539 562 541 560 544 567 537 564 539 562 542 559 544 568 537 564 540 561 542 559 545 566 1645 558 546 566 1646 567 537 564 540 561 1651 562 541 560 544 588 +# +# Model: Hitachi RAK35 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 479 397 30131 50087 3427 1674 447 1253 447 483 446 483 446 483 420 483 447 483 447 483 447 483 447 483 420 510 419 483 447 483 446 1254 446 483 420 510 419 484 446 483 447 484 445 483 446 484 419 1255 445 1254 446 484 445 484 445 484 419 484 446 484 446 484 445 484 446 484 445 1255 418 484 446 1255 445 1255 418 1255 445 1255 445 1254 446 1255 419 484 446 1255 445 1255 418 511 418 485 445 484 445 484 446 484 445 485 418 511 418 484 446 1255 445 1255 418 1255 445 1255 444 1256 444 1256 417 1256 445 1255 443 487 418 511 419 485 444 1255 445 485 445 485 420 509 418 485 445 1255 445 485 444 485 445 1256 417 512 418 485 444 485 445 1256 417 1256 444 485 444 485 420 509 444 486 418 511 418 485 445 485 444 1256 444 486 418 512 417 485 420 509 445 485 445 485 445 485 417 1256 444 486 444 485 445 1256 417 1256 443 486 444 485 444 486 444 485 444 485 418 485 444 485 444 485 444 486 443 486 417 1257 420 509 420 510 444 485 444 486 444 485 418 485 445 485 443 487 444 1256 444 1256 417 485 442 487 420 510 444 485 444 486 417 1256 420 1280 443 1257 417 512 393 510 444 486 442 487 443 486 419 510 417 513 419 484 419 510 444 486 419 510 419 510 393 537 415 488 420 510 418 510 419 510 419 510 392 537 392 511 445 484 419 511 418 511 418 511 392 538 391 511 419 511 419 511 418 511 418 511 391 511 419 512 418 511 418 511 419 511 418 512 391 512 418 512 417 512 417 512 418 512 417 512 391 512 418 512 417 512 417 512 417 512 391 539 390 513 416 513 417 512 417 513 417 537 366 564 365 514 416 537 392 537 392 538 392 538 365 564 365 538 392 538 392 538 391 538 391 538 365 564 365 538 392 538 391 1309 391 1308 365 538 391 538 392 538 391 538 392 538 365 565 364 538 392 538 391 539 391 1309 364 1309 391 538 391 539 391 538 391 538 391 539 364 538 392 539 390 539 391 539 390 539 364 565 364 539 391 539 390 1309 391 539 390 1309 364 539 391 539 390 539 391 539 498 +# +# Model: Hitach RAK-18QH8 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3295 1683 467 1196 440 407 467 404 470 407 467 405 469 406 467 405 468 409 468 407 467 406 468 405 469 405 469 1168 468 403 470 406 468 411 467 404 470 406 468 404 469 406 468 405 469 406 467 404 470 409 469 405 469 404 470 405 468 406 468 407 467 405 468 1167 469 410 467 1168 468 1167 469 1167 469 1167 468 1168 468 1167 469 407 467 1173 467 1168 468 1169 467 1166 470 1168 468 1168 468 1168 468 1167 469 1171 469 405 469 409 464 404 470 432 441 405 469 404 470 407 467 410 468 404 470 405 468 1169 467 1168 468 404 469 405 469 1167 469 1169 471 1167 469 1167 469 405 469 403 470 1167 469 1168 468 406 468 409 469 404 469 1168 468 404 469 404 469 1168 468 406 467 406 468 1171 469 1169 467 404 469 1167 469 1167 469 404 469 1169 467 1195 441 409 469 1169 467 1168 468 405 469 404 470 1168 468 404 470 405 469 409 469 405 469 404 470 1167 469 1169 467 403 470 1169 467 1168 468 1171 469 404 469 405 469 1168 468 1168 468 1168 468 404 470 1169 467 408 469 1169 467 1167 469 404 470 405 469 405 468 1168 468 405 468 1173 467 406 467 406 468 407 466 406 468 406 468 406 468 406 468 410 468 1168 468 1168 468 1168 468 1169 467 1169 467 1168 468 1169 467 1172 468 405 468 406 468 407 467 407 467 406 468 405 469 406 468 411 466 1168 468 1167 469 1168 468 1169 467 1195 440 1169 467 1168 468 1171 469 405 469 407 467 407 467 406 467 407 467 406 468 406 467 410 468 1168 468 1169 467 1169 467 1169 467 1168 468 1168 468 1167 469 1172 468 407 467 404 469 405 469 405 468 406 468 406 468 406 467 410 468 1169 467 1169 467 1168 468 1168 468 1167 469 1168 468 1167 469 1172 468 405 468 405 469 407 466 406 468 407 466 406 468 406 468 410 468 1168 468 1168 468 1170 466 1168 468 1168 468 1168 468 1168 468 1173 467 1168 468 405 468 1169 467 406 467 406 468 1168 468 406 468 410 467 408 466 1168 468 407 467 1168 468 1170 466 406 468 1169 467 1173 467 1169 467 405 468 406 467 407 467 1170 466 1170 466 1170 466 1173 467 406 468 1169 467 1171 465 1169 467 406 468 406 467 406 467 411 467 406 468 406 467 407 467 407 466 407 467 407 467 408 466 412 465 1170 466 1170 466 1169 467 1169 467 1170 466 1170 466 1169 467 1174 466 407 466 408 466 408 466 407 466 407 467 407 466 406 468 411 467 1170 466 1170 466 1171 465 1168 468 1170 466 1169 467 1170 466 1174 466 407 467 408 466 407 466 407 467 407 467 408 466 407 466 412 466 1171 465 1169 467 1170 465 1170 466 1171 465 1170 465 1171 465 1174 466 1170 466 1169 467 408 465 408 465 408 465 408 466 408 465 414 464 408 466 407 467 1170 466 1170 466 1170 466 1170 466 1171 465 1174 465 +# +name: Cool_hi +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3376 1605 463 1172 464 411 463 408 466 407 466 412 462 409 465 409 465 415 463 409 464 411 463 408 465 409 464 1171 465 410 463 410 464 413 464 437 437 411 462 410 464 409 464 410 463 410 464 410 463 413 465 409 465 413 460 410 464 409 465 410 464 409 465 1173 463 415 462 1171 465 1174 462 1174 462 1173 463 1173 463 1174 462 412 462 1177 463 1175 461 1173 462 1172 464 1173 463 1174 462 1172 464 1174 462 1177 463 411 463 409 464 410 464 411 463 410 464 410 463 411 463 414 463 410 463 412 462 1174 462 1174 462 410 464 412 462 1173 463 1177 463 1174 462 1173 463 411 462 411 463 1174 462 1174 462 413 460 417 461 414 459 1174 462 411 463 413 460 1174 462 412 461 413 461 1179 461 1175 461 412 462 1172 464 1174 462 414 460 1174 462 1172 464 414 464 1172 464 1172 464 409 465 409 465 1172 464 409 464 408 466 415 463 408 465 410 464 1171 465 1171 465 408 466 1172 464 1172 464 1176 464 409 464 409 465 409 465 409 465 409 465 409 465 1172 464 412 466 1172 464 1171 465 1174 462 1171 465 1172 464 1172 464 409 465 1176 464 411 463 408 465 408 466 408 466 409 465 409 465 409 464 414 464 1172 464 1172 464 1172 464 1172 464 1173 463 1171 465 1174 462 1177 462 409 465 409 465 411 462 410 464 410 464 409 465 409 464 414 464 1172 464 1172 464 1172 464 1171 465 1173 463 1173 463 1172 464 1176 464 409 464 410 464 410 463 410 463 410 464 410 464 409 464 414 464 1172 464 1173 463 1173 463 1172 464 1172 464 1173 463 1173 463 1176 464 410 463 411 463 411 463 409 465 409 464 411 462 411 463 414 463 1173 463 1172 464 1173 463 1172 464 1172 464 1173 463 1174 461 1178 462 410 463 410 463 412 462 411 463 410 463 409 464 411 463 415 463 1173 463 1174 462 1173 463 1173 462 1173 463 1174 462 1172 464 1178 462 1171 465 1174 462 411 462 411 463 1174 462 410 463 1173 463 414 463 412 462 410 463 1174 462 1173 463 411 463 1173 463 410 464 1177 463 1174 462 411 463 411 462 411 463 1174 462 1174 462 1175 461 1178 462 412 461 1173 463 1172 464 1175 461 412 462 411 462 411 463 415 462 411 463 412 462 412 461 412 462 412 462 411 463 412 462 416 461 1174 462 1173 463 1174 462 1174 461 1174 462 1175 461 1174 462 1181 459 412 462 411 463 412 462 412 461 411 462 411 463 413 460 415 463 1174 462 1175 461 1176 460 1176 460 1174 462 1174 461 1174 462 1178 461 413 461 413 460 413 460 414 460 412 461 412 462 412 462 417 460 1175 461 1175 461 1175 461 1175 460 1176 460 1175 461 1174 462 1179 461 1175 460 1177 435 436 461 413 460 413 437 437 460 412 438 440 461 414 436 437 437 1199 460 1177 459 1176 460 1176 437 1199 437 1202 437 +# +name: Cool_lo +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3376 1603 465 1198 438 408 489 384 490 382 468 407 467 408 466 407 467 439 438 408 490 384 489 384 466 435 439 1169 467 408 466 408 489 388 467 411 463 406 467 409 465 408 490 385 465 409 488 383 467 412 489 383 467 407 466 409 465 408 466 408 466 408 466 1173 463 412 466 1171 465 1170 466 1171 465 1170 466 1170 466 1170 466 408 466 1175 465 1169 467 1171 465 1171 465 1173 463 1172 464 1170 466 1170 466 1176 463 409 465 409 465 410 463 407 467 409 465 411 462 407 467 413 464 407 466 410 464 1172 464 1173 463 408 466 411 463 1171 465 1175 465 1171 465 1171 465 408 465 410 464 1171 465 1172 463 408 465 413 465 408 466 1171 465 409 465 408 465 1173 463 410 464 408 465 1175 465 1169 467 409 464 1172 464 1172 463 408 466 1172 464 1172 464 412 466 1171 465 1172 464 409 464 409 464 1171 465 411 462 410 464 414 463 409 464 411 463 1172 463 1174 462 411 463 1173 463 1173 463 1177 463 410 463 411 463 1172 464 1173 463 1178 458 411 462 1172 464 416 462 1174 462 1173 463 412 461 411 463 411 463 1174 462 411 462 1178 462 411 462 410 464 413 461 411 463 410 464 412 462 411 463 417 461 1173 463 1175 461 1173 463 1173 463 1172 464 1173 463 1175 461 1177 463 411 463 410 464 410 463 410 464 410 464 411 463 410 463 414 464 1173 463 1173 463 1174 462 1172 464 1175 461 1173 463 1175 461 1176 464 411 463 410 463 412 461 411 462 411 463 411 462 414 460 415 463 1174 462 1174 462 1173 463 1173 463 1174 462 1173 463 1173 463 1178 462 410 463 411 463 411 463 411 463 412 462 410 463 411 462 416 462 1173 463 1174 462 1174 462 1174 462 1173 463 1174 462 1173 463 1177 463 410 463 438 436 410 463 412 462 410 463 411 463 412 461 416 462 1174 462 1174 462 1175 461 1173 463 1174 462 1173 463 1174 462 1179 461 1175 461 1174 462 411 463 412 462 1176 459 412 462 1174 461 415 463 411 462 411 463 1175 461 1174 462 411 463 1175 460 412 462 1178 461 1176 460 411 463 412 461 412 462 1174 462 1174 462 1174 462 1179 461 412 461 1174 462 1174 462 1175 461 413 460 412 462 412 462 417 461 411 463 412 462 412 461 413 460 412 462 412 462 413 461 416 461 1176 461 1175 461 1174 462 1175 461 1174 462 1176 460 1174 461 1180 460 412 461 414 460 412 462 414 459 413 461 413 461 413 460 417 461 1176 459 1176 460 1177 459 1176 460 1175 460 1175 461 1176 437 1203 460 414 459 413 461 413 460 413 437 436 461 413 438 437 437 440 461 1176 437 1198 438 1198 438 1198 461 1175 461 1177 459 1177 436 1203 437 1201 458 1175 438 436 438 436 438 437 436 437 437 436 437 441 437 438 436 436 438 1198 438 1200 436 1199 437 1199 437 1199 437 1203 436 +# +name: Heat_hi +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3297 1684 411 1224 412 461 413 462 412 460 413 461 413 461 413 463 411 466 412 461 412 461 413 461 413 461 413 1223 413 461 412 465 409 466 412 461 412 462 467 406 412 461 413 462 467 407 466 406 412 465 467 406 468 406 468 406 468 405 468 408 466 406 467 1168 412 493 440 1167 469 1168 468 1168 468 1167 468 1168 468 1168 468 407 466 1171 469 1167 469 1170 466 1168 468 1168 468 1168 468 1168 468 1168 468 1173 467 407 466 407 467 408 465 406 468 406 468 404 470 405 469 409 469 405 468 406 468 1168 468 1167 469 406 468 405 468 1166 470 1172 468 1166 470 1171 465 406 467 406 468 1168 468 1168 468 405 469 410 467 405 469 1167 469 406 468 405 469 1168 468 405 468 406 468 1173 467 1169 467 406 467 1169 467 1169 467 407 467 1169 467 1169 467 412 466 1167 469 1169 467 408 466 407 467 1169 467 408 465 408 466 411 466 407 467 409 465 1171 465 1169 467 406 467 1197 439 1171 465 1174 466 434 440 405 468 406 468 405 469 407 467 407 466 406 468 1172 468 1170 466 1168 468 1168 468 1167 469 1169 467 1167 469 1171 465 411 467 405 469 405 469 408 466 405 469 407 466 405 469 405 469 410 468 1168 468 1168 468 1168 468 1169 467 1169 467 1168 468 1169 467 1173 467 406 468 405 468 406 467 407 467 405 469 406 468 406 467 411 467 1169 467 1168 468 1168 468 1167 469 1168 468 1168 468 1169 467 1173 467 406 468 405 468 404 470 405 469 406 468 405 468 406 468 409 468 1168 468 1168 468 1169 467 1169 467 1168 468 1170 465 1169 467 1172 468 405 468 407 467 406 467 406 467 407 467 406 467 406 468 410 467 1168 468 1170 466 1168 468 1168 468 1169 467 1169 467 1168 468 1173 467 406 468 406 468 407 467 406 468 408 466 406 468 406 468 411 466 1170 466 1170 466 1168 468 1169 467 1169 467 1170 466 1169 467 1174 466 406 468 1169 467 1168 468 406 468 1168 468 406 468 1169 467 410 467 1170 466 407 467 406 468 1169 467 406 467 1169 467 407 466 1172 468 1170 466 409 465 407 467 407 466 1169 467 1170 466 1169 467 1173 467 407 466 1172 464 1171 465 1169 467 407 466 407 467 406 467 411 467 406 468 408 465 407 467 407 467 407 467 407 467 407 466 412 466 1169 467 1170 466 1170 466 1169 467 1169 467 1169 467 1170 466 1174 466 408 465 408 466 408 466 407 466 409 465 406 467 409 465 411 466 1170 466 1170 466 1170 466 1171 465 1170 466 1171 465 1170 466 1174 466 407 466 408 466 408 466 408 465 407 467 408 466 407 467 411 466 1169 467 1170 466 1170 466 1170 466 1171 465 1170 466 1170 466 1174 466 1170 466 1170 466 408 466 409 465 407 467 407 466 409 465 412 466 409 465 409 465 1171 465 1170 466 1171 465 1171 465 1171 465 1175 464 +# +name: Heat_lo +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3376 1602 466 1169 467 410 463 406 468 405 469 406 468 408 466 407 466 412 466 407 467 407 467 407 466 408 466 1171 465 406 468 406 467 411 467 407 467 407 467 407 467 407 467 409 465 406 467 406 467 412 466 406 468 406 468 407 467 406 467 407 467 407 466 1170 466 410 467 1171 465 1170 466 1169 467 1169 467 1171 465 1171 465 408 466 1174 466 1170 466 1169 467 1171 465 1169 467 1171 465 1169 467 1172 464 1173 467 408 466 408 466 410 464 407 467 408 465 409 465 407 466 412 466 408 465 409 465 1172 464 1171 465 408 466 411 463 1170 466 1175 464 1173 463 1171 465 408 465 408 466 1171 465 1172 464 411 463 412 466 409 465 1170 466 408 466 408 466 1171 465 408 465 409 465 1175 464 1171 465 410 463 1171 465 1171 465 408 466 1171 465 1171 465 412 465 1169 467 1170 466 408 466 410 464 1170 466 409 464 408 466 412 466 408 466 407 467 1171 465 1170 466 407 467 1171 465 1171 465 1175 465 436 438 408 466 1170 466 1170 466 1171 465 408 466 1170 466 413 464 1172 464 1173 463 409 464 408 466 411 462 1172 464 409 465 1177 463 409 465 410 464 409 464 409 465 409 465 410 464 409 465 414 464 1172 464 1172 464 1173 463 1172 464 1171 465 1173 463 1170 466 1177 463 409 464 410 464 408 465 437 437 410 464 410 464 410 464 413 464 1171 465 1172 464 1171 465 1173 463 1172 464 1175 461 1173 463 1176 464 410 464 410 464 411 462 408 466 410 464 409 464 410 464 414 464 1173 463 1172 463 1173 463 1175 461 1172 464 1172 464 1173 463 1177 463 411 463 410 464 410 463 410 464 409 465 410 464 410 464 414 463 1172 464 1173 463 1174 462 1173 463 1173 463 1173 463 1174 462 1178 462 409 464 410 464 411 462 412 462 411 462 412 462 411 462 414 463 1173 463 1172 464 1173 463 1173 463 1174 462 1172 464 1173 462 1177 463 412 461 1174 462 1174 462 411 463 1173 462 411 463 1175 461 415 463 1173 463 411 462 412 462 1174 462 411 463 1173 463 411 463 1178 462 1173 463 412 462 410 463 411 463 1174 462 1173 463 1174 462 1178 462 411 462 1174 462 1174 462 1174 461 412 462 412 462 411 463 416 462 412 462 411 462 412 462 412 461 411 463 412 462 412 461 416 461 1174 462 1174 462 1175 461 1175 461 1175 461 1174 462 1174 462 1179 461 412 461 413 461 412 461 412 462 412 461 414 460 412 461 416 462 1176 460 1174 462 1174 462 1175 460 1174 462 1175 460 1177 459 1179 461 412 461 413 461 413 460 413 461 413 461 412 461 412 462 416 461 1176 460 1174 462 1174 462 1175 461 1176 459 1177 459 1175 437 1203 460 1175 461 1176 436 438 459 414 460 414 460 413 460 414 459 418 437 437 437 437 437 1199 437 1200 436 1200 436 1200 436 1200 436 1202 437 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3378 1603 466 1170 466 408 465 406 468 407 467 407 467 408 466 407 467 412 466 407 467 408 465 406 468 406 468 1170 466 407 467 406 468 413 465 410 464 407 466 409 465 407 467 406 468 409 464 408 466 411 467 407 466 405 469 407 467 406 467 408 466 406 468 1170 466 412 466 1169 466 1171 465 1171 465 1170 489 1146 466 1172 488 383 467 1177 487 1149 487 1145 466 1172 487 1147 465 1169 466 1174 486 1147 465 1174 466 409 465 409 465 409 464 409 464 408 465 409 465 409 464 415 463 409 464 409 465 1170 466 1171 465 409 465 410 463 1172 463 1177 463 1172 464 1199 436 413 461 410 464 1172 463 1172 464 411 463 415 463 411 463 1173 463 411 462 410 464 1174 461 409 465 411 463 1176 464 1173 463 410 464 1172 464 1172 464 437 436 1174 462 1173 462 415 463 1174 462 1173 463 411 463 413 461 1172 464 411 462 410 463 415 463 409 465 411 463 1172 464 1172 464 409 465 1173 463 1174 462 1176 464 409 465 409 465 1171 465 1170 466 1173 463 408 466 1172 464 412 465 1171 465 1172 464 407 467 408 465 408 466 1171 465 408 466 1175 465 408 465 407 466 408 466 409 465 408 465 408 466 407 467 412 466 1170 466 1173 463 1170 466 1170 466 1170 466 1170 466 1171 465 1174 466 408 465 407 467 409 465 408 465 409 464 408 466 408 466 414 464 1171 465 1170 466 1171 465 1170 466 1172 464 1171 465 1170 466 1176 464 409 465 410 463 408 466 411 463 409 464 409 465 408 466 413 464 1170 466 1172 464 1171 465 1170 466 1171 465 1172 464 1170 466 1178 462 408 465 410 464 409 465 408 466 409 465 409 465 409 465 413 465 1171 465 1172 464 1172 464 1173 463 1171 465 1172 464 1171 465 1176 464 407 467 409 465 409 465 410 463 409 465 409 465 411 463 413 464 1173 463 1174 462 1172 464 1172 464 1171 465 1171 465 1172 464 1175 465 410 464 1172 464 1174 462 409 465 1172 464 410 463 1170 466 414 463 1172 464 410 464 409 465 1172 464 411 462 1172 464 409 465 1175 465 1172 464 410 463 410 464 410 464 409 464 1173 463 1173 463 1176 464 410 464 1173 463 1171 465 1171 465 1172 464 409 464 410 464 414 464 410 464 410 464 410 464 409 465 410 463 410 464 411 463 414 464 1173 463 1172 464 1173 463 1172 464 1172 464 1173 463 1172 464 1177 463 410 464 410 463 410 463 411 463 410 464 411 463 409 464 414 464 1173 463 1173 462 1174 462 1173 463 1173 463 1173 463 1174 462 1177 463 411 463 412 462 410 463 411 463 411 462 412 462 410 463 414 464 1173 463 1174 462 1173 463 1172 464 1174 462 1173 463 1173 463 1178 462 1173 463 1174 462 411 462 411 463 411 462 410 464 411 463 415 463 411 463 412 462 1174 462 1173 463 1174 462 1175 461 1173 463 1178 461 +# +# Model: Inventum AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4419 4378 562 1618 568 552 541 1619 567 1640 536 533 560 535 558 1649 537 559 534 537 566 1619 567 554 539 530 563 1618 568 1613 563 532 561 1626 560 537 566 554 539 530 563 557 536 536 1622 564 1616 560 1624 562 1625 561 1620 566 1615 561 1621 565 1616 560 534 559 536 567 529 564 559 534 1625 561 533 560 1625 561 1620 566 528 565 530 563 1620 566 530 563 532 561 1624 562 532 561 1650 536 1645 541 1614 562 1620 566 5226 4418 4372 558 1622 564 557 536 1623 563 1618 568 527 566 529 564 1617 559 564 539 531 562 1623 563 558 535 533 560 1621 565 1616 560 535 568 1619 567 529 564 557 536 532 561 560 533 561 542 1614 562 1619 567 1642 534 1628 569 1613 563 1619 567 1614 562 1619 567 528 565 530 563 533 560 563 540 1619 567 527 566 1619 567 1614 562 533 560 535 558 1625 561 536 567 527 566 1619 567 528 565 1620 566 1615 561 1620 566 1618 558 +# +# Model: Kelon AS-24HR4SQJUL +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9159 4545 562 1674 562 1675 561 596 560 595 535 621 535 621 535 623 533 1676 560 597 535 1702 534 1703 533 622 535 622 535 622 509 648 508 597 560 596 560 596 558 1679 534 623 534 622 535 622 534 622 509 597 560 597 560 1678 558 598 558 599 532 1728 508 649 508 1729 507 597 560 597 558 598 534 623 534 623 533 623 531 625 508 649 507 597 560 597 534 623 534 623 534 623 534 623 508 649 508 649 508 571 508 8132 558 1703 533 1703 534 623 534 623 533 623 508 625 532 649 508 1677 560 597 558 599 533 1703 534 623 533 1703 533 1705 532 625 532 597 534 623 534 623 533 599 558 599 532 625 532 624 532 624 533 574 557 599 558 599 558 598 557 599 533 624 532 624 533 624 531 575 558 599 558 598 558 1703 534 1703 533 624 507 649 508 649 507 598 559 598 533 624 532 624 533 624 532 624 507 650 507 650 507 1678 559 1678 559 598 557 599 533 1705 532 1729 507 625 532 626 531 598 556 601 533 624 533 1704 532 624 532 1704 533 1704 533 1705 531 573 506 8133 558 598 558 598 533 624 532 624 533 624 532 624 507 650 507 599 558 1678 558 599 557 599 532 624 533 624 533 624 530 627 506 599 505 575 557 599 557 599 558 599 532 625 532 625 531 625 531 574 505 599 558 599 532 625 531 625 532 624 532 625 506 651 506 599 480 600 557 599 558 599 557 600 532 625 532 625 532 626 505 600 505 600 531 625 532 625 531 625 532 624 506 650 507 650 507 600 479 1681 556 600 557 600 556 600 531 626 530 650 507 626 530 574 506 +# +# Model: Unknown Model_1 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3150 2991 3125 4400 619 503 617 520 591 525 591 525 591 1621 616 1613 615 1619 640 517 589 1640 588 1645 587 1643 585 1649 584 533 583 533 583 533 583 1650 583 533 583 533 583 533 583 533 583 1650 583 1646 583 1650 583 1655 583 533 583 533 584 1654 584 1646 583 1650 583 1650 583 533 584 533 583 533 583 538 583 529 583 533 583 1651 582 1651 582 1651 582 1655 583 1646 583 534 582 1655 583 1651 582 534 582 1655 583 530 582 534 582 534 582 1655 583 529 583 1651 582 1655 582 530 582 1651 582 534 582 40182 3091 3040 3116 4436 583 533 583 538 583 529 583 533 583 1650 583 1651 583 1650 583 533 583 1650 583 1650 583 1655 583 1646 583 533 583 534 583 533 583 1651 582 533 583 534 582 534 582 533 583 1651 582 1655 583 1646 583 1651 583 534 582 534 582 1651 582 1656 581 1647 582 1656 582 530 582 534 582 534 583 534 582 539 582 534 582 1647 582 1656 582 1647 582 1651 582 1652 581 535 581 1652 581 1647 582 535 582 1652 581 535 581 535 581 535 581 1652 581 535 581 1652 581 1652 581 535 581 1653 580 535 581 +# +# Model: Legion LE-F30RH-IN +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6172 7369 602 1569 602 1569 602 1569 601 1570 573 1598 574 1598 573 1597 574 1598 574 526 573 526 573 527 572 528 571 529 570 529 570 530 569 530 568 1603 569 1603 569 1603 569 1603 569 1603 568 1603 568 1603 569 1604 568 531 568 531 568 531 568 532 567 531 568 555 544 532 567 555 543 1627 544 1628 543 1628 543 1628 543 1628 544 1628 543 1628 544 1629 543 556 543 556 543 556 543 556 543 556 543 556 543 556 543 555 543 1627 544 1628 543 1629 543 556 543 555 543 1628 543 1628 543 1629 543 556 543 556 544 555 544 1628 544 1629 543 556 543 556 543 556 543 556 543 556 543 555 543 1628 543 1629 543 555 543 1628 543 1628 543 1628 543 1628 543 1629 543 557 542 556 543 1629 543 556 543 556 543 555 543 1630 542 556 542 1629 543 557 543 1630 543 557 543 1630 543 1631 542 557 542 1631 542 557 543 1630 543 557 542 1630 543 558 542 7398 543 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6173 7370 600 1571 656 1515 603 1569 602 1570 600 1571 573 1598 574 1598 573 1598 574 525 574 526 573 526 573 527 572 528 571 529 570 530 569 530 569 1603 569 1603 569 1603 569 1603 569 1603 568 1603 569 1603 569 1604 568 531 569 531 568 531 568 531 568 532 567 555 544 532 567 555 544 1603 568 1604 567 1604 567 1605 567 1628 544 1605 567 1628 543 1629 543 556 544 555 544 556 543 556 543 556 543 556 544 556 543 555 544 1629 543 555 544 1629 543 556 543 556 543 556 543 555 543 1629 543 556 544 1630 543 556 544 1629 544 1629 544 1629 544 1630 543 557 543 556 544 1629 543 1630 543 556 544 1629 543 1630 543 556 544 1629 543 1630 543 557 544 556 543 1630 543 557 543 557 543 1630 543 557 543 557 543 1630 543 557 543 1630 543 557 543 1630 543 557 543 1629 543 1630 543 557 543 1630 543 557 543 1630 543 557 543 1631 543 557 544 7399 543 +# +# Model: Lennox AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4477 4354 606 1548 606 472 605 1551 603 474 578 501 576 524 553 524 553 1602 552 1602 553 525 552 1603 552 526 551 526 551 526 551 526 551 526 551 526 551 1604 551 1604 551 526 551 526 551 1604 551 1604 551 526 551 1604 551 526 551 526 551 526 551 526 551 526 551 526 551 1604 551 1604 551 526 551 526 551 526 551 526 551 1604 576 501 577 1579 576 501 551 1604 575 1579 576 1579 551 526 551 1604 551 1604 551 1604 551 5205 4446 4385 575 501 576 1579 576 501 576 1579 576 1579 576 1578 576 1579 576 501 576 501 576 1578 576 501 576 1579 576 1578 577 1578 577 1578 576 1578 577 1578 577 501 576 501 576 1578 577 1578 577 501 576 501 576 1578 576 501 576 1578 577 1579 576 1578 577 1579 576 1578 577 1578 576 501 576 501 576 1579 576 1579 576 1579 576 1579 576 501 576 1578 576 501 576 1579 576 501 576 501 576 501 576 1579 576 501 576 501 576 502 575 +# +# Model: LG AC +# +name: Off +type: parsed +protocol: NECext +address: 81 66 00 00 +command: 81 7E 00 00 +# +# Model: LG AC_2 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8455 4196 542 1566 541 539 519 535 513 541 517 1565 541 538 520 534 514 540 518 1563 544 1565 542 538 520 533 515 539 519 535 513 541 517 536 522 532 516 538 520 533 515 539 519 535 513 1569 538 542 516 1566 541 539 519 534 514 540 518 1564 542 +# +name: Dh +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 14 EB 00 00 +# +# Model: LG LP1417GSR_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8971 4413 598 1634 595 1641 599 526 599 529 596 533 592 541 594 541 594 1646 594 525 600 1633 596 1645 595 533 592 540 595 538 597 539 596 528 597 1629 600 520 594 526 599 526 599 530 595 537 598 538 597 530 595 523 591 1639 601 524 601 527 598 1643 597 537 598 539 596 531 594 522 592 528 597 527 598 530 595 536 599 534 591 546 600 526 599 517 597 521 593 528 597 528 597 532 593 541 594 544 591 519 595 7883 598 520 594 525 600 524 590 535 600 529 596 539 596 1651 599 1639 601 515 599 522 592 531 594 532 593 538 597 536 599 538 597 528 597 518 596 525 600 523 591 534 591 537 598 533 592 546 600 527 598 518 596 523 591 531 594 531 594 536 599 534 591 545 601 526 599 517 597 521 593 529 596 530 595 536 599 532 593 542 593 532 593 522 592 526 599 522 592 535 600 532 593 540 595 541 594 533 592 524 601 519 595 528 597 529 596 535 600 534 601 537 598 527 598 1627 592 1637 592 531 594 533 592 1652 598 537 598 1652 598 1623 596 7882 599 519 595 525 600 522 592 534 591 538 597 535 590 547 599 528 597 518 596 1634 595 1639 601 525 600 530 595 539 596 541 594 532 593 523 591 529 596 527 598 528 597 533 592 541 594 542 593 532 593 525 600 522 592 531 594 533 592 538 597 535 600 537 598 527 598 518 596 522 592 530 595 1646 594 1652 598 1650 600 538 597 530 595 521 593 527 598 526 599 529 596 534 591 543 592 546 600 527 598 519 595 1636 593 1640 600 1639 601 1644 596 1651 599 539 596 514 590 +# +# Model: LG LP1419IVSM +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3196 9607 615 1444 589 428 588 428 588 430 613 1444 589 428 588 428 587 430 588 1446 614 1445 589 429 588 429 588 429 584 434 611 406 582 483 561 455 561 456 560 456 558 460 557 459 558 1503 559 457 533 1527 559 457 559 457 586 457 560 1475 584 +# +# Model: LG R12AWN-NB11 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8838 3941 624 1427 514 500 515 497 541 473 540 1487 540 474 539 474 538 476 512 1538 514 1516 544 466 514 497 514 501 514 499 514 500 513 499 513 501 487 525 514 499 512 502 487 526 512 1517 542 470 487 1539 513 499 512 503 513 499 512 1513 512 +# +# Model: LG SX122CL +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3160 1550 576 1092 576 1091 577 329 555 338 573 329 558 1065 601 329 557 329 556 1065 601 1066 575 338 547 1093 574 339 546 339 546 1095 573 1095 572 339 546 1096 572 1097 571 341 544 341 544 1124 544 342 543 342 543 1125 542 344 542 344 541 344 542 344 542 343 541 344 542 344 542 344 542 344 542 344 542 344 542 343 541 344 542 344 542 344 542 344 542 344 542 344 542 343 541 345 542 1126 542 343 541 345 541 1126 542 1126 542 344 542 344 542 344 542 343 541 344 542 345 541 1126 541 1126 541 1127 542 1127 541 343 542 345 541 344 542 345 542 1125 541 345 542 1127 541 343 542 345 541 345 541 345 541 345 541 345 541 345 541 343 541 345 541 345 541 345 541 345 541 345 541 345 541 344 541 345 541 345 541 345 541 345 541 345 541 345 541 344 540 345 541 345 541 345 541 345 541 345 541 344 541 345 541 345 541 345 541 346 540 345 541 344 540 345 541 346 540 345 541 345 541 345 540 1128 541 1126 541 345 541 346 541 1126 541 345 541 +# +# Model: Lifetime Air +# +name: Off +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +# +name: Dh +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 57 00 00 00 +# +# Model: Logik HLF-20R +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1286 428 1251 408 442 1241 1289 399 1280 431 408 1247 1283 431 408 1248 442 1242 437 1246 443 1240 439 8135 1279 434 1256 430 409 1246 1284 430 1260 426 413 1242 1287 426 413 1243 436 1247 443 1241 438 1245 445 8130 1284 428 1262 424 415 1240 1279 435 1255 430 409 1247 1283 430 409 1247 443 1241 438 1245 434 1249 441 8133 1281 432 1258 428 411 1244 1286 428 1251 407 443 1240 1279 434 416 1240 439 1244 435 1249 441 1243 436 8137 1287 400 1279 433 417 1239 1280 433 1257 430 409 1246 1284 429 410 1246 444 1240 439 1245 445 1239 440 8133 1281 405 1285 428 411 1245 1285 429 1261 425 414 1241 1289 425 414 1242 437 1246 444 1240 439 1245 434 8139 1285 428 1251 435 415 1240 1279 434 1256 430 409 1246 1283 430 409 1247 443 1241 438 1245 445 1239 440 8133 1281 432 1258 428 411 1244 1286 428 1251 407 443 1240 1279 434 416 1240 439 1244 435 1249 441 1243 436 8137 1287 426 1253 432 407 1248 1281 432 1258 401 438 1244 1285 427 412 1244 435 1248 442 1242 437 1247 442 8131 1283 403 1287 426 413 1242 1287 426 1253 433 417 1239 1280 432 418 1238 441 1243 436 1247 442 1241 438 8136 1288 398 1281 404 435 1248 1281 404 1286 400 439 1244 1285 400 439 1244 435 1249 441 1243 436 1247 442 8131 1283 404 1285 400 439 1243 1286 401 1278 407 443 1240 1289 397 442 1240 439 1245 434 1249 441 1243 436 8138 1286 401 1278 407 443 1240 1279 407 1283 403 436 1246 1283 403 436 1246 444 1240 439 1245 434 1249 441 8134 1280 406 1284 402 437 1246 1283 402 1288 398 441 1242 1288 399 440 1242 437 1247 443 1241 438 1245 434 8140 1284 402 1288 398 441 1242 1287 425 1254 432 407 1249 1281 432 407 1249 441 1243 436 1247 443 1241 438 8136 1288 425 1254 405 434 1248 1281 406 1284 401 438 1245 1285 402 437 1246 433 1250 440 1244 435 1248 442 +# +# Model: Midea AC_MAW05R1WBL +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4459 4372 589 1565 597 480 595 1559 592 485 590 487 588 488 598 479 596 1558 593 1562 589 1565 597 1558 593 483 593 485 590 486 589 488 598 479 596 480 595 1559 592 485 590 486 589 1565 597 481 594 1559 592 485 590 1564 598 479 596 481 594 483 592 484 591 1563 588 489 597 1558 593 1561 590 486 589 488 598 479 596 481 594 483 592 484 591 1563 599 478 597 480 595 482 593 483 592 485 590 486 589 488 588 489 597 5158 4462 4367 594 483 592 1563 588 488 598 1557 594 1560 591 1563 599 1556 595 482 593 484 591 485 590 487 588 1566 596 1559 592 1562 589 1565 597 1558 593 1562 589 488 598 1556 595 1559 592 485 590 1564 598 479 596 1558 593 484 591 1563 588 1566 596 1559 592 1562 589 488 598 1557 594 482 593 484 591 1563 588 1566 596 1559 592 1563 588 1565 597 1558 593 484 591 1563 588 1566 596 1559 592 1562 589 1565 597 1558 593 1561 590 1564 598 +# +# Model: Midea silent_cool_26_pro +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4528 4233 682 1461 684 389 683 1461 684 390 737 335 681 391 681 390 682 1461 683 1461 684 1461 683 1461 683 392 626 468 603 469 603 468 603 469 628 443 629 1515 629 443 628 444 627 445 626 1518 626 1519 625 1519 626 1519 626 446 626 446 625 446 625 446 626 446 625 1519 625 1519 626 1519 626 446 626 446 625 446 626 446 625 446 626 446 626 1519 625 446 625 446 626 446 625 446 625 1519 625 447 625 1519 626 446 626 5105 4471 4290 625 447 625 1520 625 447 625 1519 625 1520 624 1520 625 1520 625 447 625 447 625 447 624 447 624 1519 625 1520 625 1520 624 1520 625 1520 624 1520 625 447 625 1520 624 1520 624 1520 625 447 625 447 625 447 624 447 625 1520 624 1520 624 1520 624 1520 624 1520 624 447 625 447 625 447 625 1520 624 1520 625 1520 624 1521 624 1520 624 1521 624 447 624 1520 624 1521 624 1521 623 1520 624 448 624 1520 624 448 624 1521 624 +# +# Model: mitsubishi-MSY-GE10VA +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3439 1755 439 1262 435 1286 432 438 441 423 456 418 441 1282 436 433 436 431 438 1285 433 1314 435 408 461 1293 435 408 440 426 433 1289 460 1296 412 455 414 1312 406 1319 409 429 440 429 461 1267 441 426 464 406 442 1281 437 430 439 427 432 436 464 405 433 432 437 458 411 456 434 422 437 428 462 412 436 428 441 422 457 411 437 456 413 454 405 436 433 434 435 427 432 435 465 404 434 435 434 431 459 413 435 429 440 422 437 433 457 1270 438 1288 461 410 438 426 464 404 434 1293 435 1315 413 423 436 1287 462 407 431 434 435 435 434 433 467 415 433 1318 410 1286 463 409 439 1284 455 1301 438 410 438 426 464 1262 456 1269 439 429 461 410 469 407 462 1268 440 1285 433 461 408 456 413 1284 465 1261 457 414 455 1271 468 1277 431 1321 438 405 433 460 409 430 439 426 464 407 462 407 441 450 409 434 435 430 439 452 438 431 438 405 464 405 464 405 464 409 460 409 439 430 439 427 442 423 436 460 430 415 433 431 438 425 434 444 435 456 413 432 437 427 442 425 434 436 464 429 430 439 430 417 442 428 441 428 462 411 437 452 438 405 433 434 435 456 413 427 442 425 434 455 414 427 432 435 434 433 436 427 463 406 432 437 442 449 430 1268 460 1265 463 1262 466 405 464 406 442 422 437 1289 439 428 441 17052 3577 1746 407 1321 407 1294 434 460 409 431 459 439 409 1288 440 429 440 431 438 1309 430 1272 456 415 464 1289 408 433 457 412 436 1289 439 1284 465 404 434 1292 436 1289 439 428 441 450 409 1315 413 427 442 451 408 1294 434 432 437 430 439 428 462 406 432 432 458 414 455 414 434 430 439 428 441 426 433 436 433 432 437 454 405 438 441 428 431 434 456 418 441 448 431 411 437 429 440 425 434 433 436 458 411 425 434 433 436 457 412 1287 462 1263 455 419 461 408 440 430 439 1310 429 1272 435 460 409 1288 440 429 461 408 441 425 465 405 464 407 441 1286 432 1291 437 432 437 1315 413 1314 414 450 440 406 442 1283 456 1270 458 413 456 413 456 413 435 1297 431 1294 465 404 434 433 436 1314 414 1285 433 433 436 1288 440 1285 464 1264 433 433 436 453 416 425 434 460 409 434 435 432 437 454 415 423 436 431 459 424 435 430 460 413 435 430 439 423 456 413 435 431 438 455 414 427 432 435 434 455 414 426 464 406 432 437 442 422 457 414 434 431 438 424 435 435 455 414 455 416 432 433 436 457 412 426 464 410 438 453 437 412 436 437 463 409 439 425 434 455 414 426 433 437 432 433 436 433 436 457 433 412 436 453 437 406 432 435 465 1266 462 1263 434 1318 410 426 464 410 438 426 433 1293 435 434 435 +# +# Model: Mitsubishi MSH-30RV +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3520 1642 515 1199 514 1199 514 383 486 383 486 383 486 1199 514 383 486 383 486 1199 513 1199 514 382 487 1199 513 383 486 383 486 1226 486 1226 486 383 486 1226 486 1226 486 383 486 383 486 1226 486 384 510 359 510 1202 510 360 509 360 509 360 509 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 361 508 1204 508 361 508 361 508 361 508 361 508 361 508 1205 508 361 508 361 508 361 508 361 508 1205 507 1205 508 1205 507 361 508 362 507 362 507 361 508 362 507 361 508 1205 507 362 507 362 507 1205 508 362 507 362 507 362 507 362 507 362 507 361 508 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 362 507 1205 507 362 507 362 507 362 507 362 507 362 507 362 507 1205 507 362 507 1206 506 1206 506 362 507 1206 507 362 507 +# +# Model: Mitsubishi MSH_GA71VB +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3480 1701 468 1248 467 1250 465 407 460 411 467 405 462 1255 460 412 466 405 462 1255 460 1257 468 404 463 1253 462 410 468 404 463 1253 462 1255 470 402 465 1252 463 1254 461 411 467 405 462 1254 461 411 467 405 462 1254 461 411 467 405 462 409 469 403 464 407 460 411 467 405 462 409 469 403 464 407 461 411 467 405 462 409 469 403 464 407 460 411 467 404 463 1254 461 410 468 404 463 1254 461 410 468 404 463 408 460 412 466 406 462 1255 460 412 466 406 461 410 468 404 463 1253 462 1255 470 1247 468 404 463 409 469 402 465 406 461 411 467 1250 465 407 460 1256 469 1248 467 1250 465 1252 463 410 468 403 464 408 460 412 466 406 461 410 468 404 463 408 460 412 466 406 461 410 468 404 463 408 459 412 466 405 462 409 469 403 464 407 460 411 467 405 462 409 469 403 464 407 460 411 467 405 462 409 469 402 465 407 460 411 467 404 463 1253 462 1255 470 402 465 406 461 1256 469 402 465 1252 463 408 470 1248 467 1250 465 407 460 1256 469 +# +# Model: Mitsubishi SRK20ZJ-S +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3195 1551 429 365 428 1158 429 365 429 365 428 1158 429 365 428 1158 429 366 428 365 428 1159 428 1158 429 1159 428 364 429 1158 429 366 428 1158 429 1158 429 1158 429 365 428 365 428 365 429 365 428 1158 429 1158 429 365 428 1158 429 1158 458 354 440 353 441 1128 459 353 494 353 386 1128 486 353 441 353 440 1101 459 1128 459 353 440 1128 459 1127 460 1128 459 1128 459 353 440 1129 457 1129 458 1130 457 1131 456 353 440 354 439 354 439 1132 455 354 439 353 440 354 439 354 439 1132 455 1132 455 1132 455 1132 455 354 440 354 439 1133 454 1133 454 354 439 353 440 354 439 353 440 1133 454 1133 454 353 440 353 440 1133 454 353 440 1133 454 1133 454 1133 454 353 440 353 440 353 440 1133 454 1133 454 353 440 353 440 354 439 1133 454 1133 454 1133 454 354 439 +# +# Model: Mitsubishi SRK35ZS-W +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3199 1594 380 414 380 1208 379 415 389 405 389 1201 386 407 386 1202 385 409 384 408 385 1203 384 1203 384 1204 383 410 383 1206 381 412 382 1208 379 1207 380 1209 389 404 390 406 387 405 389 406 387 1201 386 1202 385 408 385 1204 383 409 384 1204 383 1205 382 412 382 411 382 413 380 1206 382 414 380 1208 379 414 379 416 388 1201 386 1201 386 1201 386 408 385 1202 385 1204 383 1204 383 1206 381 1205 382 1207 380 1207 380 1208 390 405 388 405 389 406 387 406 387 406 387 407 386 408 385 1202 385 1204 383 1203 384 411 382 1205 382 1205 382 1207 380 1207 381 414 390 404 379 414 380 1210 388 406 387 408 385 406 387 408 385 1202 385 1203 384 409 384 1205 382 1205 382 1206 381 1206 381 1208 379 415 389 404 389 1199 388 407 386 406 387 407 386 408 385 409 384 1202 385 1204 383 1204 383 1204 383 1205 382 412 381 1208 379 1208 379 415 389 404 390 406 387 406 387 407 386 1200 387 409 384 408 385 1202 385 1205 383 410 383 1205 382 1205 382 412 381 1207 380 1207 380 415 389 404 379 1209 389 406 387 405 388 1200 387 408 385 408 385 1202 385 1204 383 1204 383 1204 383 1208 379 1207 380 1207 380 1208 379 416 388 405 388 407 386 407 386 407 386 407 386 407 386 408 385 408 385 1204 383 1204 383 1205 382 1205 382 1207 380 1208 379 414 379 1210 388 406 387 406 387 406 387 407 386 407 386 409 384 1203 384 +# +# Model: Moretti Air_Cooler +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1299 412 1270 412 426 1225 1299 412 1244 438 399 1279 400 1254 451 1253 426 1253 426 1253 426 1254 1268 7130 1266 416 1266 416 421 1258 1267 416 1267 416 422 1258 421 1258 422 1258 421 1259 421 1258 422 1258 1266 7132 1266 417 1266 417 421 1259 1266 417 1266 417 421 1259 421 1259 421 1259 421 1259 421 1259 421 1259 1266 7133 1265 417 1266 417 421 1259 1266 418 1266 417 422 1259 421 1260 420 1259 421 1259 421 1259 420 1259 1266 7133 1265 418 1266 418 421 1260 1265 418 1266 418 421 1260 420 1260 420 1260 420 1260 420 1260 420 1260 1266 7135 1265 418 1266 419 420 1260 1266 419 1266 419 420 1261 420 1261 420 1261 420 1261 420 1261 420 1261 1265 7137 1264 420 1265 420 419 1262 1266 420 1265 420 420 1262 420 1262 419 1262 420 1262 419 1262 419 1262 1265 7139 1264 421 1265 421 419 1263 1265 421 1265 421 418 1264 418 1264 418 1263 419 1264 417 1264 418 1264 1264 7142 1263 423 1263 422 418 1288 1241 446 1240 446 394 1288 394 1289 393 1288 394 1288 394 1288 394 1288 1241 7168 1240 446 1241 446 394 1289 1241 447 1241 447 394 1289 394 1289 394 1289 394 1289 394 1289 394 1289 1241 7171 1239 447 1240 447 393 1290 1240 447 1241 447 393 1290 393 1290 393 1290 393 1290 393 1290 393 1290 1241 7174 1239 447 1241 448 392 1291 1240 448 1241 448 393 1291 393 1292 392 1292 392 1291 393 1292 392 1291 1240 7177 1239 449 1240 449 392 1292 1240 449 1240 449 392 1293 392 1293 392 1292 392 1293 391 1293 392 1293 1239 7179 1239 450 1239 450 391 1294 1239 450 1240 451 391 1294 391 1294 391 1295 390 1294 391 1295 390 1294 1239 7184 1237 452 1238 475 367 1319 1215 476 1215 476 366 1320 366 1320 366 1320 365 1320 365 1320 366 1320 1215 7211 1213 476 1190 501 366 1321 1215 477 1214 477 365 1322 364 1321 365 1322 364 1321 365 1321 365 1322 1213 7214 1213 478 1213 478 364 1322 1189 503 1189 503 364 1323 339 1348 338 1348 364 1323 363 1324 362 1323 1213 7218 1187 528 1164 529 313 1374 1163 529 1164 529 313 1375 313 1375 312 1375 312 1374 313 1374 313 1375 1163 7271 1162 530 1163 530 312 1376 1163 531 1162 530 312 1377 311 1378 310 1402 285 1378 310 1402 285 1403 1136 7300 1136 557 1136 557 285 1404 1136 558 1136 559 283 1404 285 1431 257 1405 284 1431 257 1431 257 1431 1109 7330 1108 585 1109 586 256 1432 1109 586 1109 638 177 1486 222 1468 221 1468 221 1468 221 1467 221 1495 1055 7413 1028 666 1029 2500 885 +# +# Model: Ok AC_OAC_7020 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4371 4390 527 1618 527 545 526 1618 527 520 552 545 527 545 527 521 551 1593 552 545 527 545 527 545 527 546 526 545 527 545 526 1618 527 545 527 545 527 1618 527 545 527 545 527 520 552 1618 527 1593 551 1618 527 1618 527 1618 527 1618 526 1618 526 1594 579 1591 527 1618 526 1619 527 1618 526 1593 552 1618 527 1618 527 1593 552 1618 527 1618 527 1618 527 1618 527 1618 527 545 527 1618 527 1618 527 545 527 1619 554 518 527 5203 4373 4391 526 545 527 1618 527 545 527 1593 552 1618 527 1595 550 1618 528 544 528 1618 527 1618 526 1594 552 1617 528 1619 526 1618 527 545 527 1618 527 1619 527 519 553 1618 527 1618 527 1618 527 522 550 545 527 546 526 545 555 517 528 545 527 545 528 544 527 521 551 522 550 545 527 545 526 521 552 521 551 545 527 544 528 545 527 545 527 545 527 545 527 545 528 1618 527 545 527 545 527 1619 527 545 527 1619 526 +# +# Model: Osaka CH_09_DSBP +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9034 4455 670 1627 695 507 693 508 692 510 690 514 688 514 688 514 688 514 687 514 688 1609 688 514 688 514 688 514 688 514 688 515 687 515 687 514 688 515 687 515 687 515 687 515 686 1611 686 515 687 515 687 516 686 517 685 517 685 516 686 1612 685 540 662 1635 662 540 662 540 662 1635 662 540 662 19937 688 514 688 514 688 514 688 514 688 514 688 514 688 514 688 514 687 515 687 515 687 515 687 515 687 515 686 1611 686 515 687 516 686 516 686 539 662 517 685 516 686 539 663 539 663 540 662 540 662 540 662 540 661 540 662 540 662 1635 662 1635 662 1636 661 1635 662 +# +# Model: Panasonic A75C4187 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3498 1744 439 431 442 1305 442 431 442 432 441 431 442 431 442 432 441 432 441 433 440 431 442 432 441 431 442 432 441 1306 441 431 442 432 441 432 441 432 441 432 441 432 441 432 441 1308 439 1305 442 1305 442 431 442 433 440 1305 442 434 439 433 440 431 442 432 441 432 441 432 441 433 440 431 442 432 441 433 440 432 441 433 440 432 441 432 441 432 441 432 441 432 441 434 439 433 440 432 441 433 440 433 440 432 441 432 441 432 441 432 441 432 441 431 442 432 441 433 440 1308 439 1306 441 432 441 432 441 431 442 432 441 432 441 10333 3499 1741 442 432 441 1306 441 432 441 432 441 431 442 432 441 431 442 433 440 432 441 433 440 432 441 432 441 432 441 1308 439 431 442 432 441 432 441 432 441 433 440 432 441 432 441 1306 441 1307 440 1306 441 432 441 432 441 1307 440 433 440 432 441 433 440 432 441 431 442 432 441 432 441 432 441 432 441 432 441 432 441 433 440 1308 439 432 441 1305 442 1305 442 432 441 432 441 433 440 432 441 1307 440 1307 440 431 442 1306 441 432 441 1306 441 1307 440 432 441 433 440 1306 441 432 441 432 441 433 440 431 442 432 441 1308 439 432 441 +# +# Model: Panasonic Climate_A75C2600 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3545 3410 937 803 936 2542 937 803 936 832 907 832 933 2545 933 2546 931 809 928 813 925 2580 899 839 900 840 900 839 900 2580 899 2580 899 840 899 840 900 2580 899 840 900 840 900 839 900 840 899 840 900 840 899 840 900 2580 899 840 899 840 899 840 900 840 900 840 899 840 3511 3449 898 841 898 2581 898 840 900 840 899 841 898 2581 898 2581 899 840 899 841 898 2581 898 841 898 841 898 841 898 2581 898 2581 898 841 898 841 898 2581 899 841 898 841 898 841 899 841 898 841 898 842 898 841 898 2581 898 841 898 842 897 842 897 842 897 842 898 842 3509 3450 897 13896 3509 3451 896 842 897 843 897 843 896 843 896 2583 896 843 897 843 896 2583 896 844 895 844 895 868 871 869 871 2609 870 869 871 869 870 2609 870 869 871 2609 870 2609 870 869 871 2609 870 2609 870 869 870 869 870 869 870 2609 870 2609 870 869 871 2609 870 2610 869 870 869 870 3482 3478 869 870 869 870 869 870 870 870 869 2610 869 870 869 870 870 2610 869 871 869 871 869 871 868 871 869 2611 868 871 868 871 869 2611 868 872 867 2611 869 2611 868 871 868 2612 867 2612 868 872 867 897 842 897 843 2637 843 2637 842 897 843 2637 843 2637 842 898 842 898 3454 3506 841 +# +# Model: Panasonic CWA75C4179 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3472 1744 416 457 415 1306 418 463 419 466 416 473 419 474 418 478 414 457 415 458 414 463 419 462 420 465 417 472 420 1316 418 479 413 458 414 459 413 464 418 463 419 466 416 473 419 1318 416 1324 420 1295 418 454 418 459 413 1312 422 463 419 470 422 471 421 475 417 454 418 455 417 460 422 459 413 472 420 469 413 480 412 485 417 453 419 454 418 459 413 468 414 471 421 468 414 479 413 484 418 452 420 453 419 458 414 468 414 471 421 467 415 478 414 483 419 451 421 453 419 1301 412 1312 422 463 419 470 422 471 421 476 416 433 418 10535 3469 1746 414 459 413 1308 415 465 417 468 414 475 417 476 416 481 421 449 413 461 421 455 417 465 417 467 415 474 418 1319 415 482 420 450 422 451 421 457 415 466 416 469 413 476 416 1320 414 1327 417 1297 416 457 415 462 420 1305 419 466 416 473 419 474 418 478 414 457 415 458 414 463 419 462 420 465 417 472 420 473 419 477 415 456 416 1301 412 464 418 463 419 1310 413 1319 415 1321 413 485 417 453 419 454 418 459 413 1312 422 1307 416 472 420 1317 416 480 412 459 413 460 412 465 417 464 418 467 415 474 418 475 417 479 413 1302 422 1295 418 1302 421 1303 421 1308 415 473 419 1318 416 481 421 1293 420 1296 417 460 412 1313 421 1307 416 473 419 473 419 478 414 457 415 458 414 463 419 462 420 465 417 472 420 473 419 477 415 456 416 457 415 1306 418 1307 416 1312 422 467 415 478 414 483 419 451 421 452 420 457 415 467 415 469 413 476 416 1321 413 1328 416 1298 415 458 414 463 419 462 420 465 417 472 420 472 420 477 415 456 416 457 415 462 420 461 421 464 418 470 422 471 421 476 416 454 418 1299 414 463 419 461 421 464 418 471 421 472 420 477 415 1299 414 459 413 464 418 463 419 466 416 473 419 473 419 478 414 457 415 458 414 463 419 462 420 465 417 472 420 473 419 477 415 456 416 457 415 1306 417 1307 416 468 414 1319 415 478 414 483 419 430 421 +# +# Model: Remko RKL +# +name: Off +type: parsed +protocol: NECext +address: 86 6B 00 00 +command: 12 ED 00 00 +# +# Model: Rinnai AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9026 4519 590 1654 616 1657 623 574 561 582 563 582 563 583 562 1688 592 1656 675 1627 593 1650 620 1654 677 521 563 1660 620 1656 614 1664 616 581 564 578 567 575 560 582 563 581 564 579 566 1684 596 1655 615 1661 619 577 568 574 561 581 564 580 565 579 566 580 565 582 563 581 564 577 568 574 561 582 563 580 565 579 566 1657 613 1664 616 582 563 578 567 575 560 583 562 581 564 580 565 582 563 584 561 582 563 578 567 575 560 583 562 581 564 580 565 1659 621 579 566 578 567 574 561 581 564 579 566 577 568 576 569 577 568 579 566 578 567 574 561 580 565 578 567 576 569 575 560 587 568 579 566 577 568 573 562 580 565 578 567 576 569 575 560 586 569 552 593 577 568 573 562 580 565 577 568 576 559 585 560 586 569 552 593 576 569 1703 567 575 560 1713 567 577 568 576 569 577 568 553 592 578 567 1704 566 1707 563 1656 614 1662 618 1659 621 577 568 553 592 1706 564 +# +# Model: Royal Clima_RC-TWN55HN +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4412 4413 548 1606 548 530 601 1552 602 1552 601 475 601 475 548 1606 548 528 548 528 548 1605 548 528 548 529 547 1607 546 1608 546 531 545 1610 544 534 542 1635 519 1635 519 1635 519 1635 518 558 519 1635 542 1612 518 1636 518 558 519 558 519 558 519 558 542 1612 518 558 519 558 519 1636 517 1636 518 1636 518 558 519 558 518 558 542 535 518 559 518 559 541 535 518 559 518 1635 518 1635 518 1636 518 1635 519 1636 518 5235 4384 4443 517 1636 541 535 518 1636 518 1636 518 559 518 559 518 1635 518 559 518 559 517 1636 518 559 518 558 518 1636 541 1612 518 559 518 1636 517 559 518 1636 518 1636 518 1636 518 1636 517 559 518 1636 518 1636 518 1636 541 535 518 559 518 559 541 536 517 1636 518 559 518 559 518 1636 517 1636 518 1636 518 559 517 559 517 559 517 559 517 559 518 559 518 559 517 559 518 1636 518 1636 518 1636 517 1636 517 1636 517 +# +# Model: Samsung AC_AR12K +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 270 18152 3021 8955 523 499 495 1497 492 504 500 468 526 496 498 498 496 499 495 501 493 502 492 1499 500 496 498 524 470 1521 498 497 497 499 495 1496 492 1499 500 1491 497 1494 494 1497 502 494 500 495 499 497 497 498 496 500 494 528 466 530 464 531 473 522 493 503 491 504 500 495 499 497 497 498 496 500 494 501 493 503 491 504 500 495 499 496 498 498 496 499 495 501 493 529 465 531 473 522 472 523 492 504 490 505 499 496 498 498 496 499 495 1496 492 1499 500 1492 496 1494 525 2947 2999 8953 525 1519 469 499 516 507 497 498 496 500 494 501 493 503 491 504 500 495 499 1492 496 499 495 501 493 1498 501 495 499 1492 496 1522 466 1524 496 1496 492 1499 500 1492 496 499 495 500 494 502 492 504 500 495 499 496 498 498 496 499 495 500 494 502 492 530 474 521 473 523 523 472 522 474 489 506 498 497 497 499 495 500 494 502 492 503 501 494 500 496 498 497 497 499 495 500 494 502 492 503 501 521 473 523 471 524 522 474 520 475 498 497 497 499 495 500 494 2978 2999 8952 525 1492 496 499 495 501 493 503 491 504 500 495 499 497 497 525 469 526 468 1524 516 479 494 501 493 503 491 504 500 495 499 497 497 1494 494 1497 492 1500 499 1492 496 499 495 1497 491 531 473 1518 522 1469 499 496 498 498 496 500 494 1497 491 1500 499 1492 496 499 495 501 493 502 492 504 500 495 499 523 471 525 469 526 520 1472 516 1475 493 502 492 504 500 495 499 1492 496 499 495 501 493 502 492 504 500 495 499 496 498 498 496 1522 466 1525 525 1466 491 1500 499 +# +# Model: Samsung AR13TYHZCWKN +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 645 17766 3059 8884 533 461 557 1427 560 435 584 433 534 458 534 458 534 458 588 404 587 405 586 1399 586 407 584 408 558 1429 555 1457 502 491 525 1460 528 1458 554 1431 554 1431 555 1431 554 438 555 438 554 439 553 440 553 464 528 464 528 464 529 465 528 465 526 467 526 467 527 465 553 439 554 439 554 438 554 439 554 439 553 439 554 439 553 439 553 439 554 440 552 464 528 464 528 465 528 466 527 466 501 492 525 468 526 466 527 466 553 439 554 439 553 440 552 1433 553 1433 553 2936 3024 8893 552 1458 527 465 528 465 527 467 526 467 500 493 524 468 526 467 526 467 552 1434 552 441 552 441 552 1435 550 465 528 1458 527 1458 528 1459 527 1485 501 1485 500 1486 501 491 527 466 528 465 528 465 527 465 528 465 527 465 528 465 528 465 527 465 528 465 527 466 527 466 527 492 500 492 501 492 500 493 500 493 500 492 526 466 527 465 527 465 527 465 527 466 527 466 527 466 527 465 527 466 526 466 527 466 526 467 526 493 499 493 474 518 499 494 500 493 526 2936 3025 8918 526 1459 527 466 527 466 527 466 526 466 527 466 526 467 526 467 525 467 526 1460 525 493 499 493 498 495 498 495 499 493 500 493 525 1460 527 1460 525 1460 526 1460 525 1460 526 1460 526 468 525 1487 499 1487 497 495 498 495 499 493 500 1486 525 1460 525 1460 525 467 525 467 526 467 525 467 526 468 524 1462 524 468 524 494 498 1488 497 1488 499 494 499 493 525 468 525 1461 524 468 525 468 524 468 525 468 525 468 524 468 525 469 524 494 498 494 499 1488 473 1514 524 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 619 17878 3008 8908 535 458 535 1451 534 459 534 459 533 459 534 485 507 485 587 404 532 460 533 1451 536 456 537 456 535 1450 561 432 560 433 533 1454 531 1455 530 1456 529 1457 529 1508 501 491 502 491 502 490 503 490 503 489 504 488 504 489 503 489 504 489 504 489 504 488 504 489 504 464 529 464 529 464 529 464 528 516 476 516 477 516 502 491 502 490 503 490 503 489 504 489 503 489 504 489 504 489 504 489 503 489 504 489 503 489 504 464 529 1458 528 1509 476 1509 501 1484 504 2934 3028 8939 504 1482 504 489 503 489 504 489 504 489 503 489 504 489 503 489 504 465 528 1459 527 516 476 516 501 1485 502 1484 503 1483 503 1482 503 489 504 1482 504 1483 503 1482 503 1459 527 1459 527 516 476 1509 501 1485 501 491 502 490 503 489 504 1482 503 1482 503 1483 503 489 504 489 503 489 504 489 503 489 503 490 503 516 477 516 501 1485 502 1484 502 490 503 490 503 490 503 490 503 1483 503 490 503 490 503 489 503 490 503 490 502 490 503 1510 475 1510 500 1485 502 1484 503 +# +# Model: Samsung Wind-Free +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 606 17832 2994 8936 520 501 496 1491 494 501 496 498 489 532 465 529 488 505 492 502 495 499 488 1499 496 499 498 495 492 1496 499 1463 522 499 498 1463 522 1467 517 1469 526 1491 493 1495 520 500 487 507 490 504 493 500 497 497 490 504 493 501 496 498 489 505 492 501 496 498 499 495 492 502 495 499 498 522 465 529 468 526 492 502 495 499 488 506 491 503 494 499 498 496 491 503 494 500 497 497 490 504 493 500 497 497 490 504 493 500 497 497 490 531 466 528 469 1518 487 1475 520 2947 3018 8939 517 1471 524 496 491 503 494 500 497 497 490 504 493 500 497 497 490 504 493 1521 464 530 467 527 491 1471 514 507 490 1471 524 1465 519 1468 517 1472 523 1465 520 1468 517 477 520 501 496 497 490 531 466 528 469 525 493 501 496 498 489 505 492 502 495 498 499 495 492 502 495 499 498 495 492 502 495 499 498 496 491 502 495 499 498 496 491 529 468 526 471 523 495 499 488 506 491 503 494 499 498 496 491 503 494 500 497 496 491 503 494 500 497 497 490 503 494 2973 2992 8939 517 1469 526 522 465 529 488 506 491 503 494 499 488 506 491 503 494 500 497 1490 495 499 498 496 491 1497 498 1464 520 1468 517 1470 525 524 463 1498 517 1471 524 1465 520 1468 517 1471 524 1465 520 1468 517 1472 523 497 490 504 493 501 496 1491 494 1496 519 1469 516 504 493 501 496 498 489 505 492 501 496 498 499 495 492 502 495 1492 493 1469 526 495 492 529 468 1492 513 1476 519 502 495 498 489 505 492 502 495 499 498 496 491 503 494 499 498 496 491 1497 498 1464 541 +# +# Model: Sharp AH-A9UCD +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9111 4374 765 1548 712 496 713 497 713 496 710 1598 711 1602 712 1602 712 496 712 497 712 498 710 495 709 501 729 496 711 496 707 498 707 498 707 498 708 498 707 499 707 499 707 498 707 1600 706 499 708 497 709 498 706 500 706 499 707 499 707 1597 705 499 710 1596 705 497 707 500 708 1601 708 500 709 19935 707 1604 706 498 707 500 709 500 708 499 709 500 710 500 709 500 708 1600 708 500 709 500 710 498 705 499 708 1597 704 498 709 500 707 498 709 498 705 499 709 498 709 498 708 498 708 499 707 499 707 498 707 498 708 499 707 498 708 1600 706 497 707 1597 705 1600 709 +# +# Model: Sharp AH_X9VEW_AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3821 1901 456 507 456 1424 430 490 484 1425 429 475 488 1420 434 471 482 1427 437 467 486 1420 434 486 457 1416 459 1432 432 487 456 1436 439 480 483 1425 439 1425 460 1420 455 1419 435 485 457 472 491 1417 458 1407 437 483 459 487 456 474 458 487 466 1432 432 471 461 485 457 472 491 1415 460 1378 466 480 483 1424 430 474 458 487 466 1424 461 1419 456 1426 438 465 457 489 464 466 456 489 464 1426 438 481 461 484 437 493 460 1429 435 482 460 485 458 1440 435 484 458 1438 437 467 465 480 462 467 465 481 461 468 464 481 461 469 463 481 461 468 485 1424 430 1434 462 1418 457 1425 439 465 457 489 464 465 457 489 464 466 456 490 463 467 465 480 463 467 465 480 463 467 486 1422 432 471 461 485 457 472 460 485 457 472 460 485 457 472 460 486 456 488 434 497 456 473 459 486 456 488 465 1414 461 1393 482 1423 462 1419 435 469 463 482 460 469 463 482 460 1436 439 1425 439 480 483 +# +# Model: Sharp CVP10MX +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3827 1854 505 433 507 1382 506 434 506 1383 505 434 506 1410 478 433 507 1381 507 433 507 1383 505 435 505 1382 505 1383 505 435 505 1382 506 435 505 1383 505 1382 506 1384 504 1381 507 434 506 434 506 1382 506 1382 506 432 508 434 506 436 504 433 507 1382 506 435 505 434 506 436 504 1381 507 1383 505 434 506 1382 506 1381 507 434 506 1381 507 1381 507 1383 505 435 505 434 506 435 505 433 507 1383 505 435 505 435 505 434 506 1381 507 433 507 435 505 434 506 1382 506 433 507 434 506 433 507 438 502 434 506 433 507 434 506 434 506 432 508 435 505 434 506 433 507 433 507 1387 501 435 505 436 504 433 507 433 507 435 505 433 507 434 506 434 506 435 505 435 505 432 508 1410 478 461 479 432 508 435 505 434 506 433 507 436 504 434 506 434 506 433 507 435 505 1383 505 435 505 1381 507 1381 507 1382 506 1382 506 1381 507 435 505 433 507 433 507 461 478 1383 505 433 507 434 506 +# +# Model: Shivaki SSA18002 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3197 1545 581 1033 553 1006 606 338 463 342 485 339 488 1033 553 342 485 342 485 1034 551 1035 550 342 485 1037 548 342 485 340 487 1040 546 1040 546 340 487 1040 546 1040 546 340 487 340 488 1040 546 340 487 340 488 1040 546 340 487 340 487 340 487 342 485 340 487 340 487 340 487 342 485 342 485 342 485 340 487 342 485 340 487 340 487 342 485 342 485 342 485 342 485 340 488 342 485 1041 545 340 487 340 487 1041 545 1041 545 340 488 340 487 340 487 340 487 340 488 342 485 342 485 340 487 340 488 1041 545 340 487 340 487 342 486 342 485 340 487 340 487 340 487 340 487 342 485 341 486 1041 545 340 487 340 487 340 487 340 487 340 488 342 485 340 487 342 485 342 485 340 487 342 485 340 487 340 488 342 485 343 484 340 488 340 487 340 487 340 487 340 487 342 485 340 487 340 487 341 486 342 485 340 488 342 485 342 485 342 485 340 487 340 487 340 488 1042 544 340 487 340 487 340 487 340 487 340 487 340 487 340 488 342 485 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3196 1545 581 1005 580 1008 604 337 464 338 488 338 489 1033 553 339 488 338 489 1033 552 1034 551 339 487 1036 549 339 488 339 488 1039 547 1039 547 340 487 1040 546 1040 546 339 488 339 488 1040 546 340 487 339 488 1040 546 339 488 339 488 339 488 339 488 339 488 339 488 340 487 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 340 487 339 488 1040 546 339 488 339 488 1040 546 339 488 339 488 339 488 1040 546 339 488 339 488 339 488 339 488 339 488 339 488 1040 546 1041 545 1041 545 340 487 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 340 487 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 340 487 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 339 488 340 487 339 488 339 488 340 487 339 488 1042 544 339 488 1042 544 339 488 339 488 339 488 339 488 1042 544 1042 544 +# +# Model: SINCLAIR ASH13BIF2 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9048 4430 705 500 706 1602 705 1602 729 476 730 1579 728 478 728 1580 727 480 726 480 726 480 726 480 726 1606 702 505 701 481 725 481 724 505 701 481 725 504 702 505 701 504 701 505 701 1606 702 504 702 504 701 504 701 504 702 505 701 505 701 1606 701 504 702 1607 701 504 701 504 701 1607 701 505 701 19915 726 1582 726 481 725 504 701 505 701 1606 701 505 701 505 701 505 701 505 700 1606 701 505 701 505 701 505 701 504 702 1606 701 505 701 504 701 505 701 504 702 505 701 505 701 505 701 505 701 505 701 505 701 505 701 505 701 505 701 1606 701 505 701 1607 700 1606 701 39924 9075 4406 728 478 728 1581 727 1581 726 481 725 1582 725 480 725 1606 701 504 702 481 725 505 701 505 701 1606 701 504 702 505 701 505 701 505 701 505 701 505 701 505 701 505 701 505 701 1606 701 505 701 505 701 505 701 505 701 505 701 505 701 1606 701 1607 701 1607 701 505 701 505 701 1607 701 506 701 19913 726 480 726 480 726 480 726 480 726 479 727 479 727 480 725 479 727 479 726 480 726 480 726 480 726 480 726 480 726 480 726 504 701 480 726 480 725 505 702 481 725 1606 701 505 701 481 725 481 725 505 700 505 701 504 701 505 701 1607 701 504 701 505 700 1607 701 +# +# Model: SoleusAir +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 6149 7347 601 535 573 560 602 505 602 480 597 509 600 534 599 487 593 541 591 568 569 539 568 490 594 539 570 513 568 540 570 566 570 540 568 543 594 540 569 566 543 515 594 540 569 514 567 542 570 514 568 543 594 540 569 490 592 542 570 514 568 541 570 541 542 541 569 567 570 515 567 542 570 515 567 542 570 568 568 516 570 568 570 542 568 542 570 515 569 542 570 568 568 517 569 541 569 517 569 568 570 515 568 570 569 569 543 542 569 569 569 516 569 542 570 543 568 1640 570 516 568 543 570 569 543 1613 569 516 568 1613 570 569 543 570 569 542 543 543 569 543 542 544 569 516 569 544 570 543 570 570 570 543 543 544 569 1615 569 571 569 570 568 519 569 1615 569 544 569 1615 568 572 569 571 542 1642 569 571 568 1617 569 1642 542 1642 569 1589 568 545 569 1590 569 518 568 1617 569 545 568 7372 568 +# +# Model: Subtropic in-07HN1 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9019 4453 576 1665 603 1639 602 504 602 505 601 507 599 508 598 1644 573 1669 573 1669 572 1670 572 1670 572 1670 572 1670 572 1670 572 1670 572 535 572 535 572 535 572 535 572 535 572 535 572 1670 572 1670 572 1670 571 535 572 535 572 535 572 535 572 535 572 535 572 535 572 535 572 535 572 535 572 535 572 535 572 536 571 1670 572 535 572 1670 572 535 572 535 572 536 571 536 571 536 571 536 571 535 572 536 571 536 571 536 571 536 571 536 571 536 571 1670 572 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 536 571 537 570 536 571 537 570 536 571 537 570 536 571 537 570 537 570 537 570 537 570 537 570 537 570 538 569 538 569 538 569 561 546 562 545 562 545 562 545 1696 546 562 545 1697 545 562 545 562 545 562 545 562 545 562 545 1696 546 1697 545 1697 545 562 545 562 545 1697 545 1697 545 1697 545 +# +# Model: Tcl +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3087 1607 488 1064 517 335 492 1087 484 315 512 340 487 1091 490 336 491 338 489 1089 492 333 494 332 485 341 486 340 487 338 489 336 491 339 488 1090 491 334 493 1085 486 340 487 1091 490 1088 493 333 484 343 484 44227 178 +# +# Model: Timberk RG05D4-BGE +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4414 4312 565 1591 565 517 565 1596 564 1592 565 517 565 517 565 1591 566 519 565 519 565 1595 565 517 565 517 565 1592 564 1593 563 519 563 1599 563 521 563 1594 562 1594 563 1594 563 1595 562 520 562 1598 563 1597 562 1600 562 520 562 520 562 520 562 520 562 1595 562 520 562 522 562 1601 561 1595 562 1595 562 521 561 521 561 521 561 521 561 523 561 523 561 521 561 521 561 1600 561 1596 561 1596 561 1596 561 1597 561 5165 4384 4310 560 1596 561 521 561 1600 561 1596 561 521 561 521 561 1595 562 523 561 523 561 1600 561 521 562 521 561 1595 562 1595 562 520 562 1601 562 523 561 1595 562 1595 562 1595 562 1595 562 521 561 1599 562 1597 562 1601 562 521 561 521 561 521 561 521 561 1595 562 521 561 522 562 1601 562 1595 562 1595 562 521 561 521 561 521 561 521 561 523 561 523 561 521 561 521 561 1599 562 1596 561 1596 561 1595 562 1598 562 +# +# Model: Tora TS_16-Classic +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3121 1585 524 1061 524 1036 549 346 473 346 471 346 499 1036 549 346 473 346 472 1061 524 1061 524 346 472 1064 545 347 473 346 472 1092 493 1092 493 346 473 1092 493 1092 493 346 498 346 473 1067 518 346 473 346 497 1068 518 346 474 346 473 346 498 346 474 346 473 346 497 346 475 346 473 346 499 347 472 346 473 346 499 346 473 346 472 353 492 346 473 346 498 346 474 346 473 346 473 1093 492 346 499 346 473 1094 491 1094 491 346 473 346 499 346 473 346 473 346 499 346 473 346 497 346 474 346 473 1094 491 346 473 346 499 346 473 346 498 347 473 346 473 346 498 346 474 346 473 346 497 346 475 346 472 347 498 346 473 346 473 347 498 346 473 346 473 347 498 346 473 346 498 347 474 346 473 346 497 346 475 346 473 346 473 354 491 346 473 346 499 346 473 347 472 346 498 347 472 346 473 353 492 347 472 346 473 347 498 353 465 346 473 347 498 353 465 346 499 353 466 353 466 347 497 354 465 354 465 347 472 1095 490 354 491 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 3112 1543 540 1041 544 1039 546 346 500 346 473 346 473 1063 522 346 494 347 475 1064 546 1039 543 346 448 1068 517 346 472 347 497 1046 514 1096 516 346 473 1069 516 1069 516 346 473 346 473 1069 516 347 498 346 473 1069 516 346 472 347 498 346 473 346 473 346 499 346 472 346 498 346 473 346 473 346 498 346 474 346 473 346 498 347 473 346 473 347 498 346 473 1070 515 346 472 347 471 1071 538 346 500 346 448 347 496 1070 515 346 474 346 472 346 497 347 474 346 497 346 474 346 473 346 473 346 499 346 473 346 473 346 499 346 473 346 498 347 473 347 472 346 497 346 474 346 473 346 496 347 474 346 473 347 498 346 473 346 473 346 499 346 473 346 473 347 498 346 473 346 497 346 475 346 473 347 495 346 476 346 473 346 472 355 490 346 473 346 498 346 473 347 472 346 498 347 473 346 473 355 490 346 473 347 472 346 499 347 471 346 473 346 499 346 473 346 496 1072 490 1095 490 347 497 1070 490 1096 489 1095 490 346 499 346 473 +# +# Model: Toshiba RAS13SKV2E +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4387 4349 553 1609 553 1607 555 1605 546 1613 549 531 550 530 551 1610 552 527 554 526 555 526 555 525 556 524 557 1602 549 1611 551 529 552 1608 554 526 555 525 556 525 556 524 546 533 548 532 549 1611 551 1608 554 1606 556 1604 558 1603 548 1611 551 1609 553 1607 555 525 556 525 556 524 557 523 547 533 548 533 548 532 549 531 550 530 551 1607 555 526 555 1605 557 1603 548 531 550 531 550 530 551 529 552 528 553 527 554 526 555 526 555 525 556 524 546 1612 550 1610 552 1608 554 527 554 526 555 526 555 525 556 524 557 523 547 533 548 532 549 531 550 1609 553 1607 555 525 556 525 556 1603 548 1612 550 530 551 7454 4385 4352 549 1611 551 1609 553 1608 554 1606 556 525 556 524 557 1602 549 531 550 531 550 530 551 530 551 529 552 1633 529 1604 558 523 558 1601 550 531 550 530 551 530 551 529 552 528 553 527 554 1604 558 1603 548 1611 551 1609 553 1608 554 1606 556 1604 558 1602 549 532 549 531 550 530 551 530 551 529 552 528 553 527 554 526 555 525 556 1603 548 532 549 1610 552 1608 554 527 554 527 554 526 555 525 556 524 557 523 547 533 548 532 549 531 550 530 551 1608 554 1606 556 1604 558 523 547 533 548 532 549 531 550 530 551 529 552 528 553 527 554 526 555 1605 557 1602 549 531 550 531 550 1609 553 1607 555 526 555 +# +# Model: Toshiba RG57H4 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4415 4348 568 1578 569 503 570 1575 572 500 563 510 563 508 565 533 540 1578 569 1576 571 527 546 500 563 509 564 533 540 532 541 1603 544 502 571 500 563 1582 565 1580 567 1578 569 504 569 502 571 1574 563 509 564 1581 566 506 567 504 569 529 544 501 572 500 563 509 564 1580 567 1578 569 529 544 501 572 500 563 509 564 507 566 1578 569 1576 571 501 572 1573 564 508 565 1606 541 504 569 1576 571 501 572 1573 564 5169 4410 4351 565 507 566 1579 568 504 569 1575 572 1573 564 1582 565 1580 567 505 568 503 570 1575 572 1573 564 1581 566 1580 567 1578 569 503 570 1575 572 1573 564 534 539 507 566 505 568 1577 570 1575 572 500 563 1582 565 507 566 1579 568 1577 570 1575 572 1573 564 1582 565 1580 567 505 568 504 569 1576 571 1574 563 1582 565 1580 567 1579 568 504 569 503 570 1574 563 509 564 1581 566 506 567 1578 569 503 570 1574 563 510 563 +# +# Model: Tosot T24H-ILF +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9072 4445 602 1586 603 477 601 478 600 479 599 480 598 481 598 482 597 482 572 1617 597 1593 572 1617 597 483 572 507 572 507 572 507 572 507 572 507 597 482 597 482 572 507 597 482 572 1618 571 507 572 507 572 507 572 507 572 507 572 507 572 1618 571 507 572 1618 572 507 572 507 572 1618 572 507 652 20153 572 507 597 482 572 507 572 507 597 482 597 482 572 507 596 483 572 507 572 507 572 507 572 507 572 507 572 1618 596 483 572 507 596 483 595 484 572 507 597 482 595 484 597 482 597 482 572 507 572 507 597 482 572 507 597 482 572 507 597 483 571 1618 597 482 675 40391 9179 4421 599 1590 599 481 597 482 597 482 597 481 598 482 597 482 597 482 597 1592 597 1592 598 1592 597 482 597 482 597 482 597 482 597 482 597 482 597 482 597 482 597 482 572 507 597 1593 597 482 572 507 572 507 572 507 572 507 572 508 571 1618 597 1593 596 1593 572 507 572 507 572 1618 597 482 678 20152 597 483 596 482 597 482 597 482 597 482 597 482 572 507 597 482 597 482 597 482 572 507 597 482 597 482 597 482 597 482 597 482 572 507 597 482 597 482 572 507 597 482 572 507 572 507 572 507 572 507 572 507 572 507 572 507 572 507 572 1618 596 482 572 507 572 +# +# Model: Tropic AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1373 348 1310 376 463 1190 1318 400 1286 401 439 1244 442 1244 1288 400 465 1218 468 1218 468 1219 467 7970 1307 404 1281 405 435 1252 1281 406 1280 406 434 1252 434 1252 1281 406 434 1253 434 1252 434 1252 434 8000 1280 406 1281 406 434 1252 1281 406 1280 406 434 1252 434 1252 1281 406 434 1253 433 1253 433 1253 434 8000 1280 406 1280 406 434 1253 1280 406 1280 406 434 1253 433 1253 1280 406 434 1253 433 1253 433 1253 433 8001 1279 406 1280 406 434 1253 1280 407 1279 407 433 1253 434 1253 1280 407 433 1253 433 1253 433 1253 433 8001 1279 407 1279 407 433 1253 1280 407 1280 407 433 1253 433 1253 1280 407 433 1253 433 1253 434 1253 433 +# +# Model: Trotec PAC2600X +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 4329 4399 534 1607 511 561 534 1607 535 535 536 537 533 537 533 563 507 1606 535 1610 507 559 535 563 506 536 534 563 507 535 511 557 536 1605 535 537 533 1607 533 563 507 536 534 535 535 1605 535 1606 534 564 507 1634 506 1605 535 1635 506 1634 483 1629 512 1630 534 1607 511 1631 533 1635 506 1634 506 1608 533 1606 535 1607 511 1630 534 1609 532 1608 511 557 513 1658 483 560 510 1631 510 1631 532 565 484 562 508 1631 510 5210 4353 4396 510 559 511 1631 510 561 509 1628 513 1630 511 1658 483 1631 511 561 509 560 510 1634 508 1631 511 1658 484 1631 511 1633 509 1658 484 563 508 1658 484 559 512 1658 484 1633 509 1632 510 559 512 559 511 1631 511 559 512 562 508 560 510 561 509 558 512 559 511 559 511 560 510 560 510 560 510 560 510 560 510 560 510 560 510 587 483 587 483 1630 511 558 512 1631 510 559 511 562 508 1658 483 1630 512 560 510 +# +# Model: Vornado +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1347 405 1322 422 410 1332 1300 448 1289 480 383 1303 445 1298 439 1331 417 1299 438 1332 416 1302 1320 6834 1292 456 1292 450 413 1304 1328 445 1292 452 411 1302 446 1297 440 1303 445 1298 439 1303 445 1301 1321 6806 1320 453 1295 422 441 1301 1321 454 1294 422 441 1301 436 1305 443 1300 448 1295 442 1301 447 1298 1324 6802 1324 451 1297 420 443 1299 1323 424 1324 419 444 1298 439 1304 444 1298 439 1304 444 1299 438 1306 1326 6815 1321 453 1295 421 442 1302 1320 426 1322 421 442 1301 436 1306 442 1301 447 1296 441 1301 447 1299 1323 6802 1324 424 1324 418 445 1300 1322 424 1324 419 444 1298 439 1304 444 1299 438 1304 444 1299 438 1306 1326 6809 1328 420 1317 424 439 1306 1326 419 1318 424 439 1304 444 1299 438 1305 443 1299 438 1305 443 1302 1320 +# +# Model: Whynter AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 781 710 2930 2876 775 716 781 735 752 2175 779 711 776 2177 746 745 773 2232 753 2173 749 768 750 2177 745 745 773 743 754 737 750 741 746 744 754 737 771 746 751 739 748 2178 776 742 755 2172 771 719 778 2227 747 744 754 2200 754 737 750 2203 751 741 746 2181 773 744 753 737 750 741 746 +# +# Model: Windfree Actest2 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 548 17943 2990 9008 467 560 469 1533 469 560 468 559 468 561 467 560 468 562 467 561 466 559 468 1536 467 559 468 560 467 1535 468 1533 469 560 467 1536 467 1534 468 1533 468 1534 468 1534 467 560 468 559 468 559 469 560 469 559 469 559 468 559 468 560 468 560 467 562 467 559 469 558 469 559 468 559 469 561 468 559 468 559 468 559 468 559 469 560 469 559 468 559 468 560 468 559 468 561 467 560 469 559 468 559 468 558 469 559 469 561 468 560 467 559 469 559 468 1535 468 1533 491 2976 3014 8997 492 1509 493 536 493 535 492 534 494 535 492 535 493 537 491 536 493 533 494 1509 493 536 493 536 491 1508 494 536 493 1509 492 1510 493 1510 491 1509 494 1508 493 1511 492 534 494 534 494 534 494 535 492 536 493 535 493 533 495 534 493 536 491 535 493 537 492 534 493 535 493 534 494 534 494 536 493 535 493 535 493 534 493 534 493 536 493 534 493 533 495 534 494 534 494 535 493 536 493 534 493 535 493 534 494 534 493 536 493 534 494 534 493 534 494 535 492 2973 3017 8996 493 1508 494 536 493 535 493 535 493 533 495 535 493 536 492 536 493 534 493 1508 494 535 494 535 492 1509 493 535 494 1507 494 1510 493 533 494 1509 494 1505 496 1509 494 1508 494 1512 491 1507 494 1509 494 1508 494 533 494 535 493 534 495 1507 494 1509 494 1509 493 533 494 535 493 536 493 534 494 535 492 1508 519 509 495 1508 493 533 495 1508 493 1509 493 534 494 1508 518 1484 494 535 492 533 519 508 495 534 493 535 494 533 495 534 494 534 494 534 495 1508 493 1507 494 76867 4382 4447 533 1656 532 509 533 1655 533 1655 533 510 533 509 533 1655 533 509 532 509 533 1656 533 509 532 510 532 1657 531 1657 531 509 533 1657 532 509 532 1656 532 1656 532 1655 533 1658 531 511 530 1656 533 1657 531 1656 532 510 533 510 531 510 532 510 532 1656 532 508 534 511 532 1656 532 1655 533 1655 533 509 532 512 531 509 532 511 531 508 533 508 534 511 532 509 533 1656 532 1655 533 1657 531 1656 532 1657 532 5202 4355 4447 534 1656 533 510 531 1655 533 1655 533 508 534 508 533 1657 532 508 533 509 533 1657 531 508 533 511 532 1656 532 1656 532 509 532 1656 531 511 532 1655 533 1656 531 1655 532 1656 531 509 532 1658 531 1658 530 1656 531 510 532 510 531 509 534 510 532 1657 530 511 530 510 531 1658 531 1656 532 1656 531 509 533 509 532 510 532 510 533 510 531 509 533 508 533 509 532 1659 531 1656 532 1656 532 1655 533 1655 533 +# +# Model: Windfree Ac_test +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 549 17944 2988 9004 491 537 492 1510 491 537 490 537 490 537 492 536 491 537 491 536 491 537 491 1510 491 536 491 537 491 1509 492 1511 491 537 491 1509 492 1510 492 1509 492 1512 491 1510 491 536 491 535 492 537 492 535 492 535 492 535 493 535 493 537 492 535 493 536 491 534 494 534 493 537 492 536 492 535 493 535 493 536 492 536 492 536 493 536 491 535 492 535 493 535 493 537 492 536 491 535 492 535 493 535 492 536 493 535 492 536 492 534 493 535 493 537 492 1508 493 1510 493 2970 3017 8996 493 1508 494 533 494 534 494 534 493 534 493 535 494 533 494 533 494 537 491 1509 492 535 493 534 493 1510 493 533 494 1509 493 1508 492 1510 492 1507 494 1509 493 1507 494 534 493 536 491 533 494 535 493 534 493 534 494 535 492 535 492 537 492 535 492 535 493 534 493 534 493 535 494 533 494 534 494 534 494 536 491 537 490 535 494 534 493 535 493 534 493 534 493 535 494 535 493 535 492 534 493 534 493 536 493 534 493 535 492 534 494 534 493 535 493 536 493 2972 3015 8994 493 1508 493 535 492 534 493 535 493 535 492 536 493 536 492 534 494 537 491 1509 493 534 493 535 492 1510 493 535 492 1511 491 1509 492 534 493 1510 492 1509 492 1510 492 1509 492 1510 492 1509 492 1510 492 1509 492 535 492 536 493 533 494 1512 491 1509 492 1509 492 535 494 535 492 537 491 535 492 536 493 1510 491 535 492 1509 492 536 492 1510 492 1510 491 536 491 1510 492 1509 492 534 493 536 491 536 493 535 493 535 492 535 492 537 490 535 492 536 492 1508 493 1511 492 76863 4380 4448 507 1680 508 534 507 1682 507 1680 508 535 506 534 508 1680 507 536 507 533 508 1679 508 534 507 534 507 1680 508 1682 507 534 507 1678 509 534 507 1680 508 1682 507 1680 507 1679 508 533 508 1679 509 1681 508 1681 507 532 510 534 507 535 507 532 510 1682 507 534 508 533 508 1679 509 1680 508 1681 508 534 507 534 507 533 509 534 507 534 509 535 506 535 507 533 509 1680 508 1679 509 1682 507 1679 509 1678 509 5226 4354 4451 507 1679 509 533 508 1678 510 1682 508 534 507 532 509 1680 507 534 507 534 509 1680 508 533 509 534 507 1680 508 1680 508 534 509 1681 506 533 508 1680 508 1679 509 1681 508 1679 509 534 507 1679 509 1679 509 1681 508 533 508 533 509 533 509 534 508 1680 507 535 508 533 508 1680 508 1679 509 1680 508 535 508 534 507 534 507 534 507 533 508 535 508 534 508 533 509 1682 506 1681 507 1680 508 1682 507 1680 508 +# +# Model: Windfree Remote3 +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 602 17896 3013 8976 522 505 522 1481 521 507 522 507 521 505 522 507 520 505 523 506 522 504 523 1481 521 505 522 508 521 1481 520 506 521 505 523 1478 522 1482 520 1479 522 1480 522 1480 521 506 521 507 520 509 520 506 521 505 523 506 521 506 521 507 522 506 521 506 521 506 522 503 524 508 521 505 523 506 521 504 523 506 521 506 521 507 522 505 522 504 523 505 522 506 521 507 522 505 522 506 522 506 521 505 522 508 521 506 522 507 520 506 521 1483 519 1479 522 1482 520 1480 521 2944 3041 8969 520 1482 521 506 521 507 520 506 521 507 520 506 521 507 522 506 521 505 522 1483 519 506 521 506 521 1483 518 506 522 1481 519 1482 520 506 521 1482 520 1481 519 1482 520 1479 521 1481 521 1482 518 1482 520 1482 519 508 519 508 519 508 520 1481 519 1483 494 1508 493 533 494 533 496 534 493 533 494 532 495 535 493 1506 494 1506 495 534 494 1506 495 534 493 533 494 534 494 1507 519 508 519 509 493 534 495 534 493 532 495 533 494 534 494 1507 493 1507 495 1506 495 1509 493 76841 4380 4447 508 1680 507 533 508 1678 510 1681 508 533 508 533 508 1679 508 533 508 534 508 1679 508 533 508 533 508 1679 508 1678 509 535 508 1680 507 533 508 1679 508 1679 508 536 507 1679 508 533 508 1679 508 1679 508 1680 507 535 508 534 507 1680 507 532 509 1680 507 535 506 535 507 1681 506 1679 508 1680 508 533 508 534 509 533 508 532 509 533 508 533 508 535 508 533 508 1680 508 1679 508 1679 509 1679 509 1680 509 5225 4354 4450 507 1679 508 533 508 1679 508 1679 509 532 509 535 508 1677 510 531 510 534 507 1679 508 535 508 534 507 1679 508 1679 508 533 508 1680 508 532 509 1678 509 1678 509 533 508 1679 508 534 509 1679 508 1679 508 1679 508 534 507 534 509 1679 509 532 509 1678 509 532 509 534 508 1679 509 1679 508 1680 507 532 509 534 507 534 509 532 509 532 509 533 508 532 509 534 509 1679 508 1680 507 1678 509 1679 508 1680 509 +# +# Model: Xiaomi AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 988 606 586 2210 587 1472 586 882 587 2211 586 375 584 2210 587 374 584 1472 586 374 585 376 582 375 583 400 559 400 558 883 587 375 584 375 583 2210 587 374 584 884 586 882 587 374 584 376 583 2211 586 884 585 375 584 375 583 374 584 374 584 375 584 1472 585 882 587 376 583 2211 586 884 585 2211 586 375 583 375 583 400 558 884 586 374 584 375 583 376 583 375 583 375 583 2211 586 2211 585 375 583 883 586 +# +# Model: York AC +# +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9024 4481 655 551 655 1653 654 550 656 1652 655 1652 656 550 656 550 656 550 656 550 656 551 655 1652 655 551 655 1652 655 550 656 551 655 1654 654 550 656 550 656 551 655 1652 655 550 656 551 654 550 656 1652 655 1651 657 550 655 551 655 550 656 1654 654 550 656 1653 654 551 654 551 655 1651 656 551 655 19984 655 550 656 551 655 550 656 551 655 550 655 551 655 551 655 550 656 1654 653 1653 655 1653 655 550 655 551 655 550 656 551 655 551 655 550 656 551 655 551 655 551 655 551 655 551 655 550 656 550 656 550 656 551 655 551 655 551 655 1652 656 550 656 551 655 550 656 39996 8999 4479 656 551 655 1652 656 550 656 1653 655 1653 655 550 656 551 655 550 656 551 655 551 655 1652 655 551 655 1652 655 550 656 551 655 1653 655 551 655 550 656 550 656 1652 655 551 654 551 655 551 655 1652 655 1652 656 551 655 551 655 552 654 551 655 1653 655 1653 655 551 655 549 656 1653 655 552 654 19984 655 1652 655 551 655 550 656 1652 656 551 655 551 655 551 655 1652 655 1652 655 551 656 1652 656 1653 655 1653 655 551 655 1652 655 551 655 551 655 551 654 551 654 551 655 551 655 1653 655 550 656 551 655 1652 656 1653 654 551 655 551 655 551 655 550 655 550 656 551 655 diff --git a/applications/main/infrared/resources/infrared/assets/audio.ir b/applications/main/infrared/resources/infrared/assets/audio.ir index f3ff85333..20070bbe0 100644 --- a/applications/main/infrared/resources/infrared/assets/audio.ir +++ b/applications/main/infrared/resources/infrared/assets/audio.ir @@ -567,3 +567,4086 @@ type: parsed protocol: NECext address: 00 7F 00 00 command: 1E E1 00 00 +# # Model: Adastra WA215 +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 45 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 19 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 44 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 07 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 49 00 00 00 +# +# Model: Adcom GTP500II +# +name: Power +type: parsed +protocol: NEC42 +address: 51 00 00 00 +command: 00 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC42 +address: 51 00 00 00 +command: 1F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC42 +address: 51 00 00 00 +command: 1E 00 00 00 +# +# Model: Aiwa RC-T506 +# +name: Power +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 00 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 4D 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 4E 00 00 00 +# +# Model: AIWA XR-EM300 +# +name: Mute +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 4C 00 00 00 +# +# Model: ASR EMITTER1HD +# +name: Power +type: parsed +protocol: RC5 +address: 10 00 00 00 +command: 0C 00 00 00 +# +# Model: Auna AV2_CD508 +# +name: Power +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 16 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 12 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 4B 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 04 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 13 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 5E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 06 00 00 00 +# +# Model: CambridgeAudio 650A +# +name: Next +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 2B 00 00 00 +# +name: Pause +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 30 00 00 00 +# +# Model: AEG +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 01 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0E 00 00 00 +# +# Model: AIWA NSXR71 +# +name: Play +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 40 00 00 00 +# +name: Pause +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 44 00 00 00 +# +name: Pause +type: parsed +protocol: NEC42 +address: 6E 00 00 00 +command: 41 00 00 00 +# +# Model: Denon RC_1199 +# +name: Power +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 03 00 00 00 +# +name: Vol_up +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 04 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 05 00 00 00 +# +name: Mute +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 06 00 00 00 +# +name: Prev +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 47 00 00 00 +# +name: Next +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 46 00 00 00 +# +name: Prev +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 0F 00 00 00 +# +name: Next +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 0E 00 00 00 +# +name: Pause +type: parsed +protocol: Kaseikyo +address: 51 54 32 01 +command: 3F 00 00 00 +# +# Model: Fisher SLIM-1500 +# +name: Power +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 06 00 00 00 +# +name: Pause +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 13 00 00 00 +# +name: Play +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 13 00 00 00 +# +name: Pause +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 1B 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: A0 00 00 00 +# +name: Vol_up +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 20 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Samsung32 +address: A2 00 00 00 +command: 60 00 00 00 +# +# Model: GPX cd_radio +# +name: Pause +type: parsed +protocol: Samsung32 +address: 81 00 00 00 +command: 09 00 00 00 +# +name: Next +type: parsed +protocol: Samsung32 +address: 81 00 00 00 +command: 11 00 00 00 +# +# Model: GPX HC221B +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 04 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 01 00 00 00 +# +# Model: LG +# +name: Power +type: parsed +protocol: Samsung32 +address: 10 00 00 00 +command: 1E 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: 10 00 00 00 +command: 1F 00 00 00 +# +name: Pause +type: parsed +protocol: Samsung32 +address: 10 00 00 00 +command: 05 00 00 00 +# +# Model: Marantz RC2100DR_CD +# +name: Prev +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 21 00 00 00 +# +name: Next +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 20 00 00 00 +# +name: Next +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 34 00 00 00 +# +# Model: Marantz RC2100DR_CDR +# +name: Power +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 0C 00 00 00 +# +name: Prev +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 21 00 00 00 +# +name: Next +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 20 00 00 00 +# +name: Next +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 34 00 00 00 +# +name: Pause +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 30 00 00 00 +# +name: Pause +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 36 00 00 00 +# +name: Play +type: parsed +protocol: RC5 +address: 1A 00 00 00 +command: 35 00 00 00 +# +# Model: Onkyo DX-7333 +# +name: Pause +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 1F E0 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 1C E3 00 00 +# +name: Play +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 1B E4 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 01 FE 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 00 FF 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 1E E1 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 2C 00 00 +command: 1D E2 00 00 +# +# Model: Panasonic SC-HC58 +# +name: Pause +type: parsed +protocol: Kaseikyo +address: AC 02 20 00 +command: 01 00 00 00 +# +# Model: Philips CD_720 +# +name: Vol_dn +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 11 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 10 00 00 00 +# +# Model: Philips CD_Player_723 +# +name: Prev +type: parsed +protocol: RC5 +address: 14 00 00 00 +command: 32 00 00 00 +# +# Model: Rockola juke +# +name: Power +type: parsed +protocol: NEC +address: 4D 00 00 00 +command: 00 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 4D 00 00 00 +command: 0F 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 4D 00 00 00 +command: 10 00 00 00 +# +# Model: Sony CFD-S35CP +# +name: Vol_up +type: parsed +protocol: SIRC15 +address: 44 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC15 +address: 44 00 00 00 +command: 13 00 00 00 +# +name: Play +type: parsed +protocol: SIRC15 +address: 64 00 00 00 +command: 32 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC15 +address: 64 00 00 00 +command: 39 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC15 +address: 64 00 00 00 +command: 38 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC15 +address: 64 00 00 00 +command: 3A 00 00 00 +# +name: Next +type: parsed +protocol: SIRC15 +address: 64 00 00 00 +command: 3B 00 00 00 +# +# Model: SONY minidisk-deck +# +name: Power +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 15 00 00 00 +# +name: Play +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 2A 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 29 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 28 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 20 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC +address: 0F 00 00 00 +command: 2B 00 00 00 +# +# Model: Sony RM-R52_RCD-W500C_Deck-A +# +name: Play +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 32 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 39 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 38 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 30 00 00 00 +# +name: Next +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 31 00 00 00 +# +name: Next +type: parsed +protocol: SIRC +address: 11 00 00 00 +command: 34 00 00 00 +# +# Model: Sony RM-R52_RCD-W500C_Deck-B +# +name: Play +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 2A 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 29 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 28 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 20 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 21 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 5A 19 00 00 +command: 2C 00 00 00 +# +# Model: TEAC RC-505_Remote_Control_Unit +# +name: Play +type: parsed +protocol: NECext +address: 86 61 00 00 +command: 08 F7 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 86 61 00 00 +command: 05 FA 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 86 61 00 00 +command: 09 F6 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 86 61 00 00 +command: 0D F2 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 86 61 00 00 +command: 0C F3 00 00 +# +# Model: Unkown KC-806 +# +name: Power +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 1C E3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 00 FF 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 04 FB 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 17 E8 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 02 FD 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 01 FE 00 00 +# +# Model: Winnes KC809 +# +name: Pause +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 16 E9 00 00 +# +# Model: Denon RC1253 +# +name: Power +type: parsed +protocol: Kaseikyo +address: 41 54 32 00 +command: 05 00 00 00 +# +name: Vol_up +type: parsed +protocol: Kaseikyo +address: 41 54 32 00 +command: 70 01 00 00 +# +name: Vol_dn +type: parsed +protocol: Kaseikyo +address: 41 54 32 00 +command: 71 01 00 00 +# +name: Mute +type: parsed +protocol: Kaseikyo +address: 41 54 32 00 +command: 72 01 00 00 +# +name: Prev +type: parsed +protocol: Kaseikyo +address: 41 54 32 00 +command: 22 00 00 00 +# +# Model: Douk ST-01_Pro +# +name: Power +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 45 FF 00 00 +# +name: Play +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 44 FF 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 40 FF 00 00 +# +name: Next +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 43 FF 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 09 FF 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 15 FF 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: AA 33 00 00 +command: 47 FF 00 00 +# +# Model: Edifier r1280t +# +name: Vol_up +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 3C C3 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 4D B2 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 2B D4 00 00 +# +# Model: Edifier r1700bt +# +name: Power +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 01 FE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 09 F6 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 0C F3 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 00 FF 00 00 +# +# Model: Edifier r1855db +# +name: Vol_up +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 06 F9 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 47 B8 00 00 +# +# Model: Edifier r2000db +# +name: Power +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 00 FF 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 01 FE 00 00 +# +# Model: Emotiva PT100_TA100 +# +name: Power +type: parsed +protocol: NECext +address: 00 79 00 00 +command: 80 7F 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 79 00 00 +command: 99 66 00 00 +# +# Model: Grundig CMS_5000 +# +name: Pause +type: parsed +protocol: NECext +address: 30 FC 00 00 +command: 05 FA 00 00 +# +# Model: Harman Kardon AVI200 +# +name: Power +type: parsed +protocol: NECext +address: 80 70 00 00 +command: C0 3F 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 80 70 00 00 +command: C1 3E 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 80 70 00 00 +command: C7 38 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 80 70 00 00 +command: C8 37 00 00 +# +# Model: DTR-7 +# +name: Power +type: parsed +protocol: NECext +address: D2 6D 00 00 +command: 04 FB 00 00 +# +name: Power +type: parsed +protocol: NECext +address: D2 6C 00 00 +command: 47 B8 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: D2 6D 00 00 +command: 02 FD 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: D2 6D 00 00 +command: 03 FC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: D2 6D 00 00 +command: 05 FA 00 00 +# +# Model: Logitech Z906 +# +name: Power +type: parsed +protocol: NECext +address: 02 A0 00 00 +command: 80 7F 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 02 A0 00 00 +command: EA 15 00 00 +# +# Model: NAD712 +# +name: Power +type: parsed +protocol: NECext +address: 87 7C 00 00 +command: 80 7F 00 00 +# +# Model: NAD Amp_1 +# +name: Power +type: parsed +protocol: NECext +address: 87 7C 00 00 +command: C8 37 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 87 7C 00 00 +command: 02 FD 00 00 +# +# Model: Onkyo +# +name: Power +type: parsed +protocol: NECext +address: D2 6C 00 00 +command: CB 34 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 6C 00 00 +command: 54 AB 00 00 +# +# Model: Onkyo RC627S +# +name: Power +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 04 FB 00 00 +# +name: Power +type: parsed +protocol: NECext +address: D2 04 00 00 +command: 47 B8 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 02 FD 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 03 FC 00 00 +# +name: Play +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 1B E4 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 1F E0 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 1C E3 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 8B 74 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 8A 75 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 1E E1 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 03 00 00 +command: 1D E2 00 00 +# +# Model: Onkyo RC866M_Receiver +# +name: Prev +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 90 6F 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 80 7F 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 8F 70 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 91 6E 00 00 +# +name: Play +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 8D 72 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 02 00 00 +command: 8E 71 00 00 +# +# Model: Onkyo RC898M +# +name: Mute +type: parsed +protocol: NECext +address: D2 11 00 00 +command: 05 FA 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: D2 19 00 00 +command: 82 7D 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: D2 19 00 00 +command: 83 7C 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 90 6F 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 81 7E 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 80 7F 00 00 +# +name: Next +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 8F 70 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 91 6E 00 00 +# +name: Play +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 8D 72 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: D2 14 00 00 +command: 8E 71 00 00 +# +# Model: Panasonic N2QAYB000210 +# +name: Pause +type: parsed +protocol: Kaseikyo +address: A2 02 20 00 +command: 02 00 00 00 +# +name: Pause +type: parsed +protocol: Kaseikyo +address: A2 02 20 00 +command: 62 00 00 00 +# +name: Play +type: parsed +protocol: Kaseikyo +address: A2 02 20 00 +command: A2 00 00 00 +# +name: Play +type: parsed +protocol: Kaseikyo +address: AC 02 20 02 +command: B1 02 00 00 +# +# Model: Panasonic SA_PM602 +# +name: Play +type: parsed +protocol: Kaseikyo +address: AC 02 20 00 +command: 61 00 00 00 +# +# Model: Panasonic SC-PMX92-94 +# +name: Next +type: parsed +protocol: Kaseikyo +address: AC 02 20 00 +command: 31 00 00 00 +# +name: Prev +type: parsed +protocol: Kaseikyo +address: AC 02 20 00 +command: 21 00 00 00 +# +# Model: Philips BTD2180 +# +name: Power +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 0C 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 10 00 00 00 +# +name: Mute +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 2C 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 11 00 00 00 +# +name: Prev +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 21 00 00 00 +# +name: Pause +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 31 00 00 00 +# +name: Next +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 20 00 00 00 +# +name: Prev +type: parsed +protocol: RC6 +address: 04 00 00 00 +command: 83 00 00 00 +# +# Model: Pioneer AXD7741 +# +name: Power +type: parsed +protocol: Pioneer +address: A5 00 00 00 +command: 1C 00 00 00 +# +name: Vol_up +type: parsed +protocol: Pioneer +address: A5 00 00 00 +command: 0A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Pioneer +address: A5 00 00 00 +command: 0B 00 00 00 +# +# Model: Pioneer VSX-D1-S +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 06 F9 00 00 +# +# Model: Pioneer XXD3105 +# +name: Play +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 0C 00 00 00 +# +name: Pause +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 5B 00 00 00 +# +# Model: Portta Toslink_Audio_Switcher +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 17 00 00 00 +# +# Model: Pyle P2203ABTU +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1C 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 05 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0B 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 4D 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 54 00 00 00 +# +# Model: Rega IO +# +name: Prev +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 08 00 00 00 +# +# Model: Revo Superconnect_BZAWDFB0315H2 +# +name: Power +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 02 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 01 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 12 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 59 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 18 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 58 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 5B 00 00 00 +# +# Model: Rio Sonic_Blue_059PXC +# +name: Power +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 84 7B 00 00 +# +name: Play +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 85 7A 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 90 6F 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 83 7C 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 87 78 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 80 7F 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 8A 75 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 82 13 00 00 +command: 81 7E 00 00 +# +# Model: SiriusXM Onyx_EZR +# +name: Power +type: parsed +protocol: RC5X +address: 1B 00 00 00 +command: 0C 00 00 00 +# +name: Mute +type: parsed +protocol: RC5X +address: 1B 00 00 00 +command: 0D 00 00 00 +# +# Model: SMSL RC-8A +# +name: Power +type: parsed +protocol: NECext +address: 12 34 00 00 +command: 01 FE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 12 34 00 00 +command: 0A F5 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 12 34 00 00 +command: 0B F4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 12 34 00 00 +command: 09 F6 00 00 +# +# Model: SMSL RC-8C +# +name: Power +type: parsed +protocol: NECext +address: 12 36 00 00 +command: 01 FE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 12 36 00 00 +command: 0A F5 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 12 36 00 00 +command: 0B F4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 12 36 00 00 +command: 09 F6 00 00 +# +# Model: Sony Amp +# +name: Power +type: parsed +protocol: SIRC15 +address: 30 00 00 00 +command: 15 00 00 00 +# +name: Vol_up +type: parsed +protocol: SIRC15 +address: 30 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC15 +address: 30 00 00 00 +command: 13 00 00 00 +# +name: Mute +type: parsed +protocol: SIRC15 +address: 30 00 00 00 +command: 14 00 00 00 +# +# Model: Sony I-WXH-80 +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 02 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 01 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 0B 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 06 00 00 00 +# +# Model: Sony MHC-GS300AV +# +name: Power +type: parsed +protocol: SIRC15 +address: 10 00 00 00 +command: 15 00 00 00 +# +name: Vol_up +type: parsed +protocol: SIRC15 +address: 10 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC15 +address: 10 00 00 00 +command: 13 00 00 00 +# +# Model: Sony RMT-AA320U_AV +# +name: Pause +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 38 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 31 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 30 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 7D 00 00 00 +# +# Model: Sony RM_AMU009_Sony_Audio_System_CMT +# +name: Prev +type: parsed +protocol: SIRC20 +address: 3A 07 00 00 +command: 30 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 3A 07 00 00 +command: 31 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 3A 07 00 00 +command: 34 00 00 00 +# +# Model: Sony STR-DH590 +# +name: Prev +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 33 00 00 00 +# +name: Next +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 34 00 00 00 +# +# Model: Firetv EVG487 +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 67 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 38 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 3C 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 3D 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 8C 00 00 00 +# +# Model: Audac IMEO2 +# +name: Power +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 1C E3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 21 DE 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 2B D4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 1D E2 00 00 +# +name: Play +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 2A D5 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 13 EC 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 14 EB 00 00 +# +# Model: Bestisan7020 +# +name: Power +type: parsed +protocol: NECext +address: 29 A1 00 00 +command: 7F 80 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 29 A1 00 00 +command: 9B 64 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 29 A1 00 00 +command: 9E 61 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 29 A1 00 00 +command: 9F 60 00 00 +# +# Model: Bose CINEMATE_1_SR +# +name: Power +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 4C B3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 03 FC 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 02 FD 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 01 FE 00 00 +# +# Model: Bose Solo_5 +# +name: Next +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 5A A5 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 59 A6 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 56 A9 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 1A E5 00 00 +# +# Model: Bose Solo_Soundbar +# +name: Mute +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 01 FD 00 00 +# +# Model: Bose Soundbar_300 +# +name: Power +type: parsed +protocol: NECext +address: BA 4B 00 00 +command: 4C B3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: BA 4B 00 00 +command: 03 FC 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: BA 4B 00 00 +command: 02 FD 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: BA 4B 00 00 +command: 01 FE 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: BA 4B 00 00 +command: 57 A8 00 00 +# +# Model: Amz snd_bar +# +name: Power +type: parsed +protocol: NEC +address: 35 00 00 00 +command: 09 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 35 00 00 00 +command: 45 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 35 00 00 00 +command: 1B 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 35 00 00 00 +command: 51 00 00 00 +# +# Model: Soundblasterx +# +name: Power +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 08 F7 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 0C F3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 0A F5 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 01 FE 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 07 F8 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 06 F9 00 00 +# +# Model: Canton Smart10 +# +name: Mute +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 1E E1 00 00 +# +name: Power +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 1D E2 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 18 E7 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 0A F5 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 0D F2 00 00 +# +# Model: YARRA 3DX +# +name: Power +type: parsed +protocol: NECext +address: 0A 1D 00 00 +command: 01 FE 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 0A 1D 00 00 +command: 03 FC 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 0A 1D 00 00 +command: 08 F7 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 0A 1D 00 00 +command: 0A F5 00 00 +# +# Model: Craig CHT912 +# +name: Power +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 0C 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 02 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 05 00 00 00 +# +# Model: Craig CHT921 +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 12 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 03 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 01 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1E 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1F 00 00 00 +# +# Model: Craig CHT939 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +# +# Model: Soundbar creative_stage +# +name: Power +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 09 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 06 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 07 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 1E 00 00 00 +# +# Model: Denon RC-1230 +# +name: Power +type: parsed +protocol: Kaseikyo +address: 52 54 32 00 +command: 83 00 00 00 +# +name: Mute +type: parsed +protocol: Kaseikyo +address: 52 54 32 00 +command: 86 00 00 00 +# +name: Vol_up +type: parsed +protocol: Kaseikyo +address: 52 54 32 00 +command: 84 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Kaseikyo +address: 52 54 32 00 +command: 85 00 00 00 +# +# Model: Hisense HS215 +# +name: Power +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 20 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 34 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 34 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 21 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 22 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 23 00 00 00 +# +# Model: Hitachi HSB40B16 +# +name: Power +type: parsed +protocol: NEC +address: 5B 00 00 00 +command: 80 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 5B 00 00 00 +command: 88 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 5B 00 00 00 +command: 82 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 5B 00 00 00 +command: 83 00 00 00 +# +# Model: iLive ITP280B_Remote +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0C 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1E 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 42 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 43 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 41 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 45 00 00 00 +# +# Model: iLive Soundbar +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 14 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 10 00 00 00 +# +# Model: JBL 5_1_Soundbar +# +name: Power +type: parsed +protocol: NECext +address: 84 74 00 00 +command: FF 00 00 00 +# +# Model: JBL CINEMA_SB120 +# +name: Power +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 53 AC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: AD 52 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 26 D9 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 28 D7 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 27 D8 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 25 DA 00 00 +# +# Model: JVC THBY370A +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 00 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 08 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 09 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 01 00 00 00 +# +# Model: Klipsch Soundbar +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 01 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 03 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 06 00 00 00 +# +# Model: Larksound L200 +# +name: Vol_up +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 19 E6 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 16 E9 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 09 F6 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 5E A1 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 0C F3 00 00 +# +name: Play +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 18 E7 00 00 +# +name: Power +type: parsed +protocol: NECext +address: 30 0F 00 00 +command: 45 BA 00 00 +# +# Model: LG SJ4 +# +name: Power +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 1E 00 00 00 +# +name: Vol_up +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 17 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 16 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 1F 00 00 00 +# +name: Play +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 4F 00 00 00 +# +name: Prev +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 06 00 00 00 +# +# Model: LG AKB74815321 +# +name: Next +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 07 00 00 00 +# +# Model: LG NB5541 +# +name: Pause +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 4F 00 00 00 +# +name: Pause +type: parsed +protocol: Samsung32 +address: 2C 00 00 00 +command: 05 00 00 00 +# +# Model: Majority K2_SoundBar +# +name: Power +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 41 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 42 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 43 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 1A 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 4F 00 00 00 +# +# Model: Onn sound_bar_and_subwoofer +# +name: Vol_up +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 16 E9 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 0F F0 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 15 EA 00 00 +# +name: Power +type: parsed +protocol: NECext +address: 83 22 00 00 +command: 0C F3 00 00 +# +# Model: Panasonic SCH-TB8 +# +name: Power +type: parsed +protocol: Kaseikyo +address: A0 02 20 00 +command: D0 03 00 00 +# +# Model: Pheanoo P27 +# +name: Power +type: parsed +protocol: NECext +address: 83 B6 00 00 +command: 4D B2 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 83 B6 00 00 +command: 43 BC 00 00 +# +# Model: Philips HTL2161B_Soundbar +# +name: Power +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 0C 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 10 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 11 00 00 00 +# +# Model: Philips HTL2163_Soundbar +# +name: Mute +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 0D 00 00 00 +# +# Model: Philips TAB5105_79 +# +name: Power +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: C7 00 00 00 +# +name: Next +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 20 00 00 00 +# +name: Prev +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 21 00 00 00 +# +name: Play +type: parsed +protocol: RC6 +address: 10 00 00 00 +command: 2C 00 00 00 +# +# Model: Polk RE9114_1 +# +name: Power +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 00 FF 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 20 DF 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 26 D9 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 21 DE 00 00 +# +name: Next +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 24 DB 00 00 +# +# Model: POLK RE9641_1 +# +name: Vol_up +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 1E E1 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: C8 91 00 00 +command: 1F E0 00 00 +# +# Model: Promethean ActivSoundBar_ASB-40 +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 05 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 02 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 08 00 00 00 +# +# Model: Quantis LSW-1 +# +name: Power +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 12 ED 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 1D E2 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 1A E5 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 03 FC 00 00 +# +# Model: RCA RTS7110B2 +# +name: Power +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 5C 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 45 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 45 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 4E 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 55 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 8A 00 00 00 +command: 59 00 00 00 +# +# Model: Sennheiser Ambeo_Soundbar +# +name: Power +type: parsed +protocol: RC5 +address: 13 00 00 00 +command: 0B 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC5 +address: 13 00 00 00 +command: 0D 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC5 +address: 13 00 00 00 +command: 0E 00 00 00 +# +name: Mute +type: parsed +protocol: RC5 +address: 13 00 00 00 +command: 0C 00 00 00 +# +# Model: Sonos ARC_Beam_Playbar_Playbase +# +name: Vol_up +type: parsed +protocol: NECext +address: 80 D9 00 00 +command: 8A 75 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 80 D9 00 00 +command: 88 77 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 80 D9 00 00 +command: 8C 73 00 00 +# +# Model: Sony Old_XBR +# +name: Power +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 15 00 00 00 +# +name: Vol_up +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 13 00 00 00 +# +name: Mute +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 14 00 00 00 +# +# Model: Sony Soundbar_HT-XT3 +# +name: Play +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 32 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 39 00 00 00 +# +# Model: TaoTronics TT-SK023_Sound_Bar +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 12 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 0D 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1E 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 0A 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1F 00 00 00 +# +# Model: Taotronics TT-SK026 +# +name: Power +type: parsed +protocol: NECext +address: D9 14 00 00 +command: 6D 92 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: D9 14 00 00 +command: 6E 91 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: D9 14 00 00 +command: 4F B0 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: D9 14 00 00 +command: 50 AF 00 00 +# +# Model: TCL TS5010 +# +name: Pause +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 2A D5 00 00 +# +# Model: Teufel Cinebase_Soundbar +# +name: Power +type: parsed +protocol: NECext +address: EF 01 00 00 +command: 25 DA 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: EF 01 00 00 +command: 14 EB 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: EF 01 00 00 +command: 13 EC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: EF 01 00 00 +command: 28 D7 00 00 +# +# Model: Toshiba SBX4250 +# +name: Power +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: 12 ED 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: 1F E0 00 00 +# +name: Play +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: 1F E0 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: BD 42 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: 60 9F 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 45 BD 00 00 +command: 61 9E 00 00 +# +# Model: Vizio SB3651_E6 +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 40 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 41 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 45 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 48 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 8B 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 8A 00 00 00 +# +# Model: Vizio V51-H6 +# +name: Play +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 8E 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 8E 00 00 00 +# +# Model: Binnifa Live1T +# +name: Mute +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 50 00 00 00 +# +# Model: Yamaha BAR400 +# +name: Power +type: parsed +protocol: NEC +address: 78 00 00 00 +command: CC 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 1E 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 1F 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 9C 00 00 00 +# +# Model: Audioengine a5 +# +name: Mute +type: parsed +protocol: NECext +address: 00 FD 00 00 +command: 03 FC 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 FD 00 00 +command: 09 F6 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 FD 00 00 +command: 07 F8 00 00 +# +# Model: Biseoamz DY29S +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1C 00 00 00 +# +# Model: Bumpboxx +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 46 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 45 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 19 00 00 00 +# +# Model: Como audio +# +name: Power +type: parsed +protocol: NEC +address: 77 00 00 00 +command: F1 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 77 00 00 00 +command: F3 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 77 00 00 00 +command: F7 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 77 00 00 00 +command: FB 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 77 00 00 00 +command: FC 00 00 00 +# +# Model: Craig CHT729 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 16 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0C 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 47 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 15 00 00 00 +# +# Model: Craig CHT904 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 0E 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 1A 00 00 00 +# +# Model: Creative z5400 +# +name: Power +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 10 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 1A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 0E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 16 00 00 00 +# +# Model: DollarTec BT5AmpBoard +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 15 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 43 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 40 00 00 00 +# +# Model: EASTERN DA_9000 +# +name: Power +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 1D 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 18 00 00 00 +# +# Model: Edifier AirPulse_A80 +# +name: Power +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 00 FF 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 19 E6 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 1C E3 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 18 E7 00 00 +# +# Model: Edifier R1280DB +# +name: Prev +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 06 F9 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 08 F7 00 00 +# +# Model: Edifier R1700BT +# +name: Vol_up +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 2B D4 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 3C C3 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 1A E5 00 00 +# +# Model: Edifier R1700BTs +# +name: Prev +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 44 BB 00 00 +# +# Model: Edifier R2800 +# +name: Mute +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 09 F6 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 01 FE 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 02 FD 00 00 +# +# Model: Edifier RC80B +# +name: Next +type: parsed +protocol: NECext +address: 10 E7 00 00 +command: 5D A2 00 00 +# +# Model: Edifier S360DB +# +name: Power +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 1C E3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 0C F3 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 0F F0 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 03 FC 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 78 0E 00 00 +command: 40 BF 00 00 +# +# Model: Fluance AI40 +# +name: Power +type: parsed +protocol: NECext +address: 3F 5C 00 00 +command: 18 E7 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 3F 5C 00 00 +command: 55 AA 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 3F 5C 00 00 +command: 59 A6 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 3F 5C 00 00 +command: 15 EA 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 3F 5C 00 00 +command: 16 E9 00 00 +# +# Model: Dream Aurora_AC6923 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 57 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 03 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 10 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 13 00 00 00 +# +# Model: Quacker LED_Speaker +# +name: Prev +type: parsed +protocol: NECext +address: 00 EF 00 00 +command: 0D F2 00 00 +# +# Model: Geneva Sound_System_Model_L +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 06 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0C 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0B 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 0D 00 00 00 +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 11 00 00 00 +# +# Model: IBIZA PORT_15_UHF +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 48 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1D 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 11 00 00 00 +# +# Model: JBL Cinema_CB150 +# +name: Power +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 1B E4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 2A D5 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 14 EB 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 86 FF 00 00 +command: 13 EC 00 00 +# +# Model: JBL LSR4326P +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 14 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +# +# Model: JBL On_Stage_IIIP_Speaker +# +name: Mute +type: parsed +protocol: NECext +address: 40 AF 00 00 +command: 19 E6 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 40 AF 00 00 +command: 12 ED 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 40 AF 00 00 +command: 05 FA 00 00 +# +# Model: JVC D62BM +# +name: Play +type: parsed +protocol: NECext +address: 02 BD 00 00 +command: 0D F2 00 00 +# +# Model: KEF LSX_Speakers +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 02 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 04 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 4B 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 4A 00 00 00 +# +# Model: Klipsch fives +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1A 00 00 00 +# +# Model: Klipsch r15pm +# +name: Power +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 0A 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 0D 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 1C 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 07 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 02 00 00 00 +# +# Model: Logi WD216XM +# +name: Power +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 02 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 08 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 00 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 01 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 05 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 04 00 00 00 +# +# Model: Z906 +# +name: Vol_up +type: parsed +protocol: NECext +address: 02 A0 00 00 +command: AA 55 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 02 A0 00 00 +command: 6A 95 00 00 +# +# Model: Microlab RC071 +# +name: Vol_up +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 11 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 10 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 02 00 00 00 +# +# Model: Microlab SOLO11 +# +name: Prev +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 5A 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 5B 00 00 00 +# +# Model: Naim Muso +# +name: Power +type: parsed +protocol: RC5 +address: 15 00 00 00 +command: 0C 00 00 00 +# +name: Mute +type: parsed +protocol: RC5 +address: 15 00 00 00 +command: 0D 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC5 +address: 15 00 00 00 +command: 10 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC5 +address: 15 00 00 00 +command: 11 00 00 00 +# +name: Next +type: parsed +protocol: RC5 +address: 15 00 00 00 +command: 20 00 00 00 +# +# Model: Sangean RC30 +# +name: Vol_up +type: parsed +protocol: NEC42 +address: 01 00 00 00 +command: 0C 00 00 00 +# +# Model: Sony Amp_STR-DE875 +# +name: Power +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 2E 00 00 00 +# +name: Power +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 2F 00 00 00 +# +name: Play +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 0C 00 00 00 +# +name: Pause +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 0C 00 00 00 +# +# Model: Sony SRS-GU10iP +# +name: Power +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 15 00 00 00 +# +name: Mute +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 14 00 00 00 +# +name: Play +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 28 00 00 00 +# +name: Vol_up +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 13 00 00 00 +# +name: Next +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 29 00 00 00 +# +name: Prev +type: parsed +protocol: SIRC15 +address: 99 00 00 00 +command: 2A 00 00 00 +# +# Model: Steljes Desktop_Speakers +# +name: Power +type: parsed +protocol: NECext +address: 85 23 00 00 +command: 99 66 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 85 23 00 00 +command: 57 A8 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 85 23 00 00 +command: 47 B8 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 85 23 00 00 +command: 97 68 00 00 +# +# Model: Teufel 3SIXTY +# +name: Power +type: parsed +protocol: NEC +address: FD 00 00 00 +command: E2 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: FD 00 00 00 +command: E1 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: FD 00 00 00 +command: E7 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: FD 00 00 00 +command: B9 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: FD 00 00 00 +command: EA 00 00 00 +# +# Model: Teufel CEM500RC +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1C 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 13 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 17 00 00 00 +# +# Model: Toshiba RM-V329 +# +name: Power +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 12 ED 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 11 EE 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 10 EF 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 13 EC 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 03 FC 00 00 +# +name: Prev +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 07 F8 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 2D D3 00 00 +command: 06 F9 00 00 +# +# Model: Technics EUR646496 +# +name: Power +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: D0 03 00 00 +# +name: Play +type: parsed +protocol: Kaseikyo +address: 90 02 20 00 +command: A0 00 00 00 +# +name: Next +type: parsed +protocol: Kaseikyo +address: AA 02 20 01 +command: A0 00 00 00 +# +name: Pause +type: parsed +protocol: Kaseikyo +address: AA 02 20 00 +command: 00 00 00 00 +# +# Model: terratec m3po +# +name: Mute +type: parsed +protocol: RC5X +address: 0A 00 00 00 +command: 2F 00 00 00 +# +name: Play +type: parsed +protocol: RC5X +address: 0A 00 00 00 +command: 31 00 00 00 +# +name: Pause +type: parsed +protocol: RC5X +address: 0A 00 00 00 +command: 0F 00 00 00 +# +name: Pause +type: parsed +protocol: RC5X +address: 0A 00 00 00 +command: 2C 00 00 00 +# +# Model: X4 TECH_TU-1200 +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 04 00 00 00 +# +# Model: YAMAHA AX-380 +# +name: Power +type: parsed +protocol: NEC +address: 7A 00 00 00 +command: 1F 00 00 00 +# +# Model: Yamaha RAS5 +# +name: Power +type: parsed +protocol: NECext +address: 7E 81 00 00 +command: 2A D4 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 7A 85 00 00 +command: 1A E4 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 7A 85 00 00 +command: 1B E5 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 7A 85 00 00 +command: 1C E2 00 00 +# +# Model: Yamaha RAV203_V473170_US +# +name: Mute +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 0D 00 00 00 +# +name: Pause +type: parsed +protocol: RC5 +address: 05 00 00 00 +command: 29 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 7A 00 00 00 +command: 59 00 00 00 +# +name: Play +type: parsed +protocol: RC5 +address: 05 00 00 00 +command: 35 00 00 00 +# +# Model: Yamaha WS19340 +# +name: Power +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 0F 00 00 00 +# +name: Play +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 02 00 00 00 +# +name: Prev +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 04 00 00 00 +# +name: Next +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 03 00 00 00 +# +name: Pause +type: parsed +protocol: NEC +address: 78 00 00 00 +command: 01 00 00 00 +# +# Model: Yamaha ZP45780 +# +name: Prev +type: parsed +protocol: NECext +address: 7F 01 00 00 +command: 6A 95 00 00 +# +name: Next +type: parsed +protocol: NECext +address: 7F 01 00 00 +command: 6B 94 00 00 +# +name: Play +type: parsed +protocol: NECext +address: 7F 01 00 00 +command: 68 97 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 7F 01 00 00 +command: 67 98 00 00 +# +name: Pause +type: parsed +protocol: NECext +address: 7F 01 00 00 +command: 69 96 00 00 diff --git a/applications/main/infrared/resources/infrared/assets/projector.ir b/applications/main/infrared/resources/infrared/assets/projector.ir index 5a161d153..c63d5a312 100644 --- a/applications/main/infrared/resources/infrared/assets/projector.ir +++ b/applications/main/infrared/resources/infrared/assets/projector.ir @@ -798,6 +798,8 @@ protocol: NECext address: 83 F4 00 00 command: 17 E8 00 00 # +# Model: ViewSonic X1_Projector +# name: Vol_up type: raw frequency: 38000 @@ -839,3 +841,351 @@ type: raw frequency: 38000 duty_cycle: 0.330000 data: 9010 4253 564 566 566 1671 566 1699 565 565 539 568 564 566 565 539 566 1699 565 1672 565 566 566 1672 564 567 565 1672 565 567 565 567 564 541 564 1698 566 539 565 567 565 567 562 542 565 1699 564 539 567 1699 565 540 564 1698 566 1672 565 1698 566 1672 565 567 565 1671 565 566 566 +# +# Model: Apeman LC650_ +# +name: Power +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 01 FE 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 6A 95 00 00 +# +# Model: BenQ MH856UST +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 30 00 00 +command: 97 68 00 00 +# +# Model: BenQ TRY01 +# +name: Power +type: parsed +protocol: NECext +address: 04 B1 00 00 +command: 58 A7 00 00 +# +# Model: Generic Universal_Remote +# +name: Power +type: parsed +protocol: NECext +address: 48 50 00 00 +command: 02 FD 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 48 50 00 00 +command: 27 D8 00 00 +# +# Model: Coolux X3S +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 00 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 1A 00 00 00 +# +# Model: Dell projector +# +name: Power +type: parsed +protocol: NECext +address: 4F 50 00 00 +command: 02 FD 00 00 +# +# Model: Dell tsfm_ir01 +# +name: Mute +type: parsed +protocol: NECext +address: 4F 50 00 00 +command: 0F F0 00 00 +# +# Model: Epson 4650 +# +name: Power +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2288 611 571 587 1153 587 572 587 572 1167 572 1168 571 587 573 587 572 587 572 589 570 587 572 587 572 587 572 588 571 77346 2287 611 571 588 1152 588 571 588 571 1168 571 1168 571 588 571 588 571 588 571 589 570 587 572 588 572 587 572 587 572 +# +name: Vol_up +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2288 610 572 588 1151 587 573 588 571 1169 570 586 573 587 572 587 1152 587 573 586 1153 588 572 587 573 586 573 587 572 76771 2289 610 572 588 1151 587 573 587 572 1166 573 587 572 587 572 587 1152 588 571 588 1151 587 573 587 572 587 573 588 571 +# +# Model: Epson EHTW5650 +# +name: Mute +type: parsed +protocol: NECext +address: 83 55 00 00 +command: AD 52 00 00 +# +# Model: Epson EMP822H +# +name: Vol_up +type: parsed +protocol: NECext +address: 83 55 00 00 +command: B1 4E 00 00 +# +# Model: Epson projector_Power_Only +# +name: Power +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 8811 4222 530 1580 531 1579 531 507 531 507 531 507 531 508 531 508 530 1582 528 1583 527 535 503 1608 502 536 501 1609 501 537 501 1610 500 538 500 1611 499 538 500 539 500 538 500 1611 500 539 499 538 500 1611 499 539 499 1611 499 1611 500 1611 499 539 499 1611 500 1611 500 539 499 35437 8784 4252 500 1611 500 1612 500 539 500 539 500 539 500 539 500 539 500 1611 500 1612 499 539 500 1612 500 539 500 1612 499 539 500 1612 500 539 500 1612 499 539 500 539 500 539 499 1612 499 540 499 539 500 1612 499 539 500 1612 499 1613 499 1612 499 539 500 1612 500 1612 500 539 500 +# +# Model: Gateway 210_projextor +# +name: Power +type: parsed +protocol: NEC +address: 30 00 00 00 +command: 0B 00 00 00 +# +# Model: Groview +# +name: Power +type: parsed +protocol: NECext +address: 86 6B 00 00 +command: 0A F5 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 86 6B 00 00 +command: 4A B5 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 86 6B 00 00 +command: 0E F1 00 00 +# +# Model: Infocus Navigator_3 +# +name: Power +type: parsed +protocol: NECext +address: 87 4E 00 00 +command: 17 E8 00 00 +# +# Model: JVC LX-UH1B +# +name: Power +type: parsed +protocol: NECext +address: 00 6A 00 00 +command: 40 BF 00 00 +# +# Model: LG PH300-NA +# +name: Power +type: parsed +protocol: NECext +address: 04 0F 00 00 +command: AD 52 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 04 0F 00 00 +command: 02 FD 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 04 0F 00 00 +command: 03 FC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 04 0F 00 00 +command: 09 F6 00 00 +# +# Model: Maxell MC-EU5001 +# +name: Mute +type: parsed +protocol: NECext +address: 87 45 00 00 +command: 52 AD 00 00 +# +# Model: NexiGo-PJ20 +# +name: Mute +type: parsed +protocol: NEC +address: 03 00 00 00 +command: 02 00 00 00 +# +# Model: Optoma projector +# +name: Vol_up +type: parsed +protocol: NECext +address: 4F 50 00 00 +command: 07 F8 00 00 +# +# Model: Optoma Remote_HOF04K276D6 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 4F 50 00 00 +command: 0A F5 00 00 +# +# Model: Optoma UHZ45 +# +name: Mute +type: parsed +protocol: NEC +address: 32 00 00 00 +command: 03 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 32 00 00 00 +command: 09 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 32 00 00 00 +command: 0C 00 00 00 +# +# Model: Philips PicoPix_Max_PPX620_Projector +# +name: Power +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 12 00 00 00 +# +# Model: PVO YG300Pro +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 40 00 00 00 +# +name: Mute +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 9107 4376 681 1573 681 472 655 472 654 474 652 475 652 476 651 476 652 476 651 476 651 1604 651 1604 651 1604 651 1603 652 1604 651 1604 651 1604 651 1604 650 476 651 477 650 477 650 476 651 477 651 1604 650 476 651 477 650 1604 651 1604 650 1604 651 1604 650 1604 651 477 650 1604 650 39498 9079 2178 651 +# +# Model: RIF6-cube-projector-raw +# +name: Power +type: raw +frequency: 36045 +duty_cycle: 0.330000 +data: 9024 4506 570 582 542 582 518 606 518 606 518 606 518 606 518 606 518 610 518 1698 548 1698 546 1700 546 1700 546 1698 546 1700 546 1696 548 1702 570 1674 546 610 516 1698 546 606 542 582 542 582 544 1674 546 610 520 606 542 1674 570 582 542 1676 546 1698 570 1674 572 582 520 1698 546 +# +name: Mute +type: raw +frequency: 36045 +duty_cycle: 0.330000 +data: 9044 4484 572 580 544 580 544 580 544 580 542 582 544 580 520 604 542 586 544 1674 570 1674 570 1676 570 1674 572 1672 570 1674 546 1700 568 1678 570 582 542 1672 572 580 542 580 542 1674 566 582 542 1672 570 584 538 1674 564 580 534 1674 556 1674 556 580 530 1672 558 582 524 1676 552 +# +# Model: Samsung Freestyle_Gen2 +# +name: Power +type: parsed +protocol: Samsung32 +address: 07 00 00 00 +command: 02 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: 07 00 00 00 +command: D1 00 00 00 +# +# Model: Samsung VG-TM2360E +# +name: Power +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1221 1171 433 566 433 881 433 2381 433 1486 434 565 434 1486 433 1776 433 2380 433 565 434 2381 433 1170 434 87358 1220 1171 433 566 433 883 431 2381 433 1486 433 567 432 1487 432 1775 434 2381 432 566 433 2380 434 1171 433 86252 1221 1172 432 565 434 880 435 2381 433 1486 433 565 434 1487 432 1776 433 2380 434 566 433 2379 434 1170 434 +# +name: Vol_up +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1221 1173 431 566 433 882 432 2382 432 1487 432 566 433 565 434 566 433 2671 432 2670 433 2381 433 566 433 87411 324 937 325 358 325 647 326 +# +name: Vol_dn +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 1221 1172 432 566 433 882 433 2381 432 1486 434 566 433 565 434 882 433 1486 434 2669 434 2065 433 566 433 87779 324 936 326 358 325 647 326 +# +# Model: Sharp RRMCGA664WJSA_Notevision XR-32S-L +# +name: Power +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 293 1801 296 753 295 1801 296 1801 296 752 296 754 294 1801 296 1800 297 752 296 1802 295 752 296 1801 296 753 295 1800 297 752 296 42709 296 1800 297 753 295 1800 297 1800 297 753 295 1802 295 753 295 753 295 1801 296 753 295 1801 296 754 294 1802 295 753 295 1801 296 42694 295 1800 297 752 296 1803 294 1803 294 753 295 753 295 1801 296 1802 295 752 296 1802 295 752 296 1801 296 753 295 1802 295 753 295 42709 295 1802 295 753 295 1803 294 1801 296 753 295 1802 295 752 296 752 296 1801 296 752 296 1803 294 754 294 1803 294 754 294 1804 293 42694 294 1802 294 755 293 1803 294 1804 268 779 269 779 269 1828 269 1828 269 780 268 1829 268 778 270 1829 323 725 268 1829 268 781 324 +# +# Model: SMART Projectors +# +name: Power +type: parsed +protocol: NECext +address: 8B CA 00 00 +command: 12 ED 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 8B CA 00 00 +command: 11 EE 00 00 +# +# Model: Sony RM_PJ27 +# +name: Vol_up +type: parsed +protocol: SIRC15 +address: 54 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC15 +address: 54 00 00 00 +command: 13 00 00 00 +# +# Model: TopVision +# +name: Vol_up +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 11 00 00 00 diff --git a/applications/main/infrared/resources/infrared/assets/tv.ir b/applications/main/infrared/resources/infrared/assets/tv.ir index 724cb90ce..ae3c4d4b4 100644 --- a/applications/main/infrared/resources/infrared/assets/tv.ir +++ b/applications/main/infrared/resources/infrared/assets/tv.ir @@ -1978,3 +1978,1682 @@ type: parsed protocol: NECext address: 00 7F 00 00 command: 18 E7 00 00 +# # Model: FireTV Omni_Series_4K +# +name: Power +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 46 B9 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 0C F3 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 19 E6 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 4C B3 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 0F F0 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 5A A5 00 00 +# +# Model: Android TV_MXQ +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 40 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 10 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 18 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 41 00 00 00 +# +# Model: APEX LE4643T +# +name: Power +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 0A F5 00 00 +# +# Model: BAIRD T15011DLEDDS_RC-6 +# +name: Power +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 10 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 0C 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 0D 00 00 00 +# +# Model: BBK TV_LEM-1071 +# +name: Power +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 1C E3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 4B B4 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 4F B0 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 08 F7 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 09 F6 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 00 DF 00 00 +command: 05 FA 00 00 +# +# Model: BGH BLE2814D +# +name: Power +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 03 FC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 15 EA 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 16 E9 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 1A E5 00 00 +# +# Model: Blaupunkt +# +name: Mute +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 50 AF 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 1E E1 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 5F A0 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 1F E0 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 5C A3 00 00 +# +# Model: Blitzwolf BWPCM2 +# +name: Power +type: parsed +protocol: NECext +address: A0 B7 00 00 +command: E9 16 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: A0 B7 00 00 +command: AF 50 00 00 +# +# Model: Bolva TV +# +name: Ch_prev +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 41 BE 00 00 +# +# Model: Bose TV +# +name: Power +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 4C B3 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: BA A0 00 00 +command: 01 FE 00 00 +# +# Model: BUSH TV_VL32HDLED +# +name: Power +type: parsed +protocol: NEC +address: 08 00 00 00 +command: D7 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 80 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 8E 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 83 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 08 00 00 00 +command: 86 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 08 00 00 00 +command: DF 00 00 00 +# +# Model: CCE RC512_Remote +# +name: Power +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 40 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 04 00 00 00 +command: 12 00 00 00 +# +# Model: ContinentalEdison +# +name: Mute +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 5C A3 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 48 B7 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 44 BB 00 00 +# +# Model: ContinentalEdison CELED32JBL7 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 12 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 14 00 00 00 +# +# Model: Crown 22111 +# +name: Power +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 52 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 53 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 02 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 09 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 03 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 41 00 00 00 +# +# Model: Daewood Parsed +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 82 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 9F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 8B 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 9B 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 8F 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: D0 00 00 00 +# +# Model: Dual DL-32HD-002 +# +name: Vol_up +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 0F F0 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 5A A5 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 0C F3 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 02 7D 00 00 +command: 19 E6 00 00 +# +# Model: Dynex DX-RC01A-12 +# +name: Power +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0F F0 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0C F3 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0D F2 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0A F5 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0B F4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 86 05 00 00 +command: 0E F1 00 00 +# +# Model: DYON Movie_Smart_32_XT +# +name: Power +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 0A F5 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 0F F0 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 15 EA 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 1C E3 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 1F E0 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 40 40 00 00 +command: 1E E1 00 00 +# +# Model: EdenWood TV +# +name: Ch_next +type: parsed +protocol: RC5 +address: 01 00 00 00 +command: 14 00 00 00 +# +# Model: Elitelux L32HD1000 +# +name: Power +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 15 EA 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 1B E4 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 1A E5 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 19 E6 00 00 +# +# Model: Enseo +# +name: Power +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 02 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 06 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 0C 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 08 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 0E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 6E 00 00 00 +command: 04 00 00 00 +# +# Model: Fetch TV_Box_AUS +# +name: Power +type: parsed +protocol: NECext +address: 64 46 00 00 +command: 5D A2 00 00 +# +name: Vol_up +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 13 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 10 00 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 64 46 00 00 +command: DE 21 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 64 46 00 00 +command: DB 24 00 00 +# +# Model: Furrion +# +name: Ch_next +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 02 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 09 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 03 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 20 00 00 00 +command: 41 00 00 00 +# +# Model: AORUS Monitor +# +name: Power +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 1A 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 11 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 00 00 00 00 +command: 33 00 00 00 +# +# Model: Grandin +# +name: Power +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 12 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 1E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 80 00 00 00 +command: 10 00 00 00 +# +# Model: Grandin Unknown_Model +# +name: Vol_up +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 1A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 1E 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 1B 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 40 00 00 00 +command: 1F 00 00 00 +# +# Model: GRUNDIG +# +name: Ch_next +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 20 00 00 00 +# +name: Ch_prev +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 21 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 10 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 11 00 00 00 +# +name: Mute +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 0D 00 00 00 +# +# Model: Hitachi 43140 +# +name: Vol_up +type: parsed +protocol: RC5 +address: 03 00 00 00 +command: 10 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC5 +address: 03 00 00 00 +command: 11 00 00 00 +# +name: Mute +type: parsed +protocol: RC5 +address: 03 00 00 00 +command: 0D 00 00 00 +# +name: Ch_next +type: parsed +protocol: RC5 +address: 03 00 00 00 +command: 20 00 00 00 +# +name: Ch_prev +type: parsed +protocol: RC5 +address: 03 00 00 00 +command: 21 00 00 00 +# +# Model: Hitachi LE46H508 +# +name: Mute +type: parsed +protocol: NEC +address: 50 00 00 00 +command: 0B 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 50 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 50 00 00 00 +command: 15 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 50 00 00 00 +command: 19 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 50 00 00 00 +command: 18 00 00 00 +# +# Model: KRAFT KTV +# +name: Power +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 0A F5 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 0B F4 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 1E E1 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 5F A0 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 1F E0 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 01 3E 00 00 +command: 5C A3 00 00 +# +# Model: LG 27GR95QE_TV +# +name: Power +type: parsed +protocol: NECext +address: 04 F4 00 00 +command: 08 F7 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 04 F4 00 00 +command: 02 FD 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 04 F4 00 00 +command: 03 FC 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 04 F4 00 00 +command: 09 F6 00 00 +# +# Model: LG Hotel_TV_Home2 +# +name: Power +type: parsed +protocol: NECext +address: 69 69 00 00 +command: 01 FE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 69 69 00 00 +command: 0A F5 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 69 69 00 00 +command: 0B F4 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 69 69 00 00 +command: 0E F1 00 00 +# +# Model: LG MR21GC_Magic_Remote +# +name: Ch_next +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 34 00 00 00 +# +name: Ch_prev +type: parsed +protocol: SIRC20 +address: 10 01 00 00 +command: 33 00 00 00 +# +# Model: lodgenet lrc3220 +# +name: Power +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 80 7F 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 8F 70 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 93 6C 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 8D 72 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 91 6E 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 85 7C 00 00 +command: 97 68 00 00 +# +# Model: LOEWE TV +# +name: Ch_next +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 18 00 00 00 +# +name: Ch_prev +type: parsed +protocol: RC5 +address: 00 00 00 00 +command: 17 00 00 00 +# +# Model: Manta +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 48 B7 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 49 B6 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 01 FE 00 00 +# +# Model: Manta TV +# +name: Power +type: parsed +protocol: NECext +address: 00 BF 00 00 +command: 00 FF 00 00 +# +# Model: Manta TV_2 +# +name: Power +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 5F 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 40 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 5D 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 03 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 1F 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 1C 00 00 00 +# +# Model: Matsui 1435b +# +name: Power +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 14 00 00 00 +# +name: Ch_prev +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 11 00 00 00 +# +name: Ch_next +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 10 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 13 00 00 00 +# +name: Vol_up +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 12 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: 17 00 00 00 +command: 15 00 00 00 +# +# Model: Medion MD21302 +# +name: Power +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 18 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 56 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 4F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 0D 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 4C 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 19 00 00 00 +command: 0F 00 00 00 +# +# Model: Mivar LCD_TV +# +name: Power +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 0A F5 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 58 A7 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 4B B4 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 1F E0 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 1E E1 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 FB 00 00 +command: 0F F0 00 00 +# +# Model: NEC E425 +# +name: Power +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 01 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 0C 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 10 00 00 00 +# +name: Ch_next +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 18 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 1C 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 04 00 00 00 +# +# Model: Neo TV +# +name: Mute +type: parsed +protocol: NECext +address: 00 7F 00 00 +command: 16 E9 00 00 +# +# Model: Panasonic 58JX800_Series +# +name: Vol_up +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: 00 02 00 00 +# +name: Vol_dn +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: 10 02 00 00 +# +# Model: Panasonic N2QAYA_152 +# +name: Ch_next +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: 40 03 00 00 +# +name: Mute +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: 20 03 00 00 +# +# Model: Panasonic N2QAYB000705 +# +name: Ch_prev +type: parsed +protocol: Kaseikyo +address: 80 02 20 00 +command: 50 03 00 00 +# +# Model: Panasonic N2QAYB000752_Full +# +name: Ch_prev +type: parsed +protocol: Kaseikyo +address: B0 02 20 00 +command: 50 03 00 00 +# +name: Ch_next +type: parsed +protocol: Kaseikyo +address: B0 02 20 00 +command: 40 03 00 00 +# +# Model: Panasonic TH-43HS550K +# +name: Power +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 0C 00 00 00 +# +name: Vol_up +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 14 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 15 00 00 00 +# +name: Ch_next +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 12 00 00 00 +# +name: Ch_prev +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 13 00 00 00 +# +name: Mute +type: parsed +protocol: Samsung32 +address: 3E 00 00 00 +command: 0D 00 00 00 +# +# Model: Philips 22IT_TV_Monitor +# +name: Power +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 01 FE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 0C F3 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 10 EF 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 18 E7 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 1C E3 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 BD 00 00 +command: 04 FB 00 00 +# +# Model: Philips 32PFL4208T +# +name: Ch_next +type: parsed +protocol: RC6 +address: 00 00 00 00 +command: 4C 00 00 00 +# +name: Ch_prev +type: parsed +protocol: RC6 +address: 00 00 00 00 +command: 4D 00 00 00 +# +# Model: Philips TV_14PV172_08 +# +name: Ch_next +type: parsed +protocol: RC5X +address: 00 00 00 00 +command: 10 00 00 00 +# +name: Ch_prev +type: parsed +protocol: RC5X +address: 00 00 00 00 +command: 11 00 00 00 +# +name: Vol_up +type: parsed +protocol: RC5X +address: 00 00 00 00 +command: 16 00 00 00 +# +name: Vol_dn +type: parsed +protocol: RC5X +address: 00 00 00 00 +command: 15 00 00 00 +# +# Model: Pioneer Kuro_PDP_LX508A +# +name: Power +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 1C 00 00 00 +# +name: Vol_up +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 0A 00 00 00 +# +name: Vol_dn +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 0B 00 00 00 +# +name: Mute +type: parsed +protocol: Pioneer +address: AA 00 00 00 +command: 49 00 00 00 +# +# Model: Samsung +# +name: Ch_next +type: parsed +protocol: Samsung32 +address: 07 00 00 00 +command: 10 00 00 00 +# +# Model: Samsung AA59-00741A +# +name: Ch_prev +type: parsed +protocol: Samsung32 +address: 07 00 00 00 +command: 12 00 00 00 +# +# Model: Samsung BN59-01180A +# +name: Power +type: parsed +protocol: Samsung32 +address: 07 00 00 00 +command: 98 00 00 00 +# +# Model: Samsung Broadband_Hospitality +# +name: Ch_next +type: parsed +protocol: SIRC20 +address: 5A 0E 00 00 +command: 10 00 00 00 +# +name: Ch_prev +type: parsed +protocol: SIRC20 +address: 5A 0E 00 00 +command: 11 00 00 00 +# +# Model: Sanyo DP26640 +# +name: Ch_next +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 0A 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 0B 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 0E 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 0F 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 38 00 00 00 +command: 18 00 00 00 +# +# Model: Sceptre 8142026670003C +# +name: Ch_next +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 10 00 00 00 +# +name: Ch_prev +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 11 00 00 00 +# +name: Mute +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 14 00 00 00 +# +# Model: Sharp g0684cesa_NES_TV +# +name: Ch_next +type: parsed +protocol: NEC +address: 28 00 00 00 +command: 0C 00 00 00 +# +name: Ch_prev +type: parsed +protocol: NEC +address: 28 00 00 00 +command: 0D 00 00 00 +# +name: Vol_up +type: parsed +protocol: NEC +address: 28 00 00 00 +command: 0E 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 28 00 00 00 +command: 0F 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 28 00 00 00 +command: 10 00 00 00 +# +# Model: Silver LE410004 +# +name: Power +type: parsed +protocol: NECext +address: 00 F7 00 00 +command: 0C F3 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 00 F7 00 00 +command: 10 EF 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 00 F7 00 00 +command: 0E F1 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 00 F7 00 00 +command: 11 EE 00 00 +# +# Model: Soniq QSP500TV6 +# +name: Power +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 10 EF 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 11 EE 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 58 A7 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 5B A4 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 5E A1 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: 72 DD 00 00 +command: 56 A9 00 00 +# +# Model: Sony RM-V310 +# +name: Vol_up +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 12 00 00 00 +# +name: Vol_dn +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 13 00 00 00 +# +name: Mute +type: parsed +protocol: SIRC +address: 10 00 00 00 +command: 14 00 00 00 +# +name: Ch_next +type: parsed +protocol: SIRC +address: 0D 00 00 00 +command: 10 00 00 00 +# +name: Ch_prev +type: parsed +protocol: SIRC +address: 0D 00 00 00 +command: 11 00 00 00 +# +# Model: Sony XBR +# +name: Power +type: parsed +protocol: SIRC +address: 01 00 00 00 +command: 2E 00 00 00 +# +# Model: Strong RCU-Z400N +# +name: Power +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 1C 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: A0 00 00 00 +command: 5F 00 00 00 +# +# Model: Sunbrite +# +name: Vol_up +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 1F 00 00 00 +# +name: Vol_dn +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 1E 00 00 00 +# +name: Mute +type: parsed +protocol: NEC +address: 02 00 00 00 +command: 1C 00 00 00 +# +# Model: SWEEX Generic_Monitor +# +name: Mute +type: parsed +protocol: NEC +address: 01 00 00 00 +command: 11 00 00 00 +# +# Model: TCL Roku_TV +# +name: Power +type: parsed +protocol: NECext +address: EA C7 00 00 +command: 97 68 00 00 +# +# Model: Vitec Exterity_IPTV +# +name: Power +type: parsed +protocol: NECext +address: AD ED 00 00 +command: B5 4A 00 00 +# +name: Vol_up +type: parsed +protocol: NECext +address: AD ED 00 00 +command: BA 45 00 00 +# +name: Vol_dn +type: parsed +protocol: NECext +address: AD ED 00 00 +command: BB 44 00 00 +# +name: Ch_next +type: parsed +protocol: NECext +address: AD ED 00 00 +command: B0 4F 00 00 +# +name: Ch_prev +type: parsed +protocol: NECext +address: AD ED 00 00 +command: B1 4E 00 00 +# +name: Mute +type: parsed +protocol: NECext +address: AD ED 00 00 +command: C5 3A 00 00 diff --git a/applications/services/loader/loader.c b/applications/services/loader/loader.c index b76b38c25..72cac4b62 100644 --- a/applications/services/loader/loader.c +++ b/applications/services/loader/loader.c @@ -308,12 +308,14 @@ static void loader_applications_closed_callback(void* context) { furi_message_queue_put(loader->queue, &message, FuriWaitForever); } -static void loader_thread_state_callback(FuriThreadState thread_state, void* context) { +static void + loader_thread_state_callback(FuriThread* thread, FuriThreadState thread_state, void* context) { + UNUSED(thread); furi_assert(context); - Loader* loader = context; - if(thread_state == FuriThreadStateStopped) { + Loader* loader = context; + LoaderMessage message; message.type = LoaderMessageTypeAppClosed; furi_message_queue_put(loader->queue, &message, FuriWaitForever); diff --git a/applications/services/region/region.c b/applications/services/region/region.c index dffcc6b2d..bed676f9b 100644 --- a/applications/services/region/region.c +++ b/applications/services/region/region.c @@ -104,19 +104,12 @@ static int32_t region_load_file(void* context) { return 0; } -static void region_loader_pending_callback(void* context, uint32_t arg) { - UNUSED(arg); - - FuriThread* loader = context; - furi_thread_join(loader); - furi_thread_free(loader); -} - -static void region_loader_state_callback(FuriThreadState state, void* context) { +static void + region_loader_release_callback(FuriThread* thread, FuriThreadState state, void* context) { UNUSED(context); if(state == FuriThreadStateStopped) { - furi_timer_pending_callback(region_loader_pending_callback, furi_thread_get_current(), 0); + furi_thread_free(thread); } } @@ -126,7 +119,7 @@ static void region_storage_callback(const void* message, void* context) { if(event->type == StorageEventTypeCardMount) { FuriThread* loader = furi_thread_alloc_ex(NULL, 2048, region_load_file, NULL); - furi_thread_set_state_callback(loader, region_loader_state_callback); + furi_thread_set_state_callback(loader, region_loader_release_callback); furi_thread_start(loader); } } diff --git a/applications/services/rpc/rpc.c b/applications/services/rpc/rpc.c index 00ec2259c..08a2c3f6d 100644 --- a/applications/services/rpc/rpc.c +++ b/applications/services/rpc/rpc.c @@ -67,7 +67,7 @@ static RpcSystemCallbacks rpc_systems[] = { struct RpcSession { Rpc* rpc; - FuriThread* thread; + FuriThreadId thread_id; RpcHandlerDict_t handlers; FuriStreamBuffer* stream; @@ -172,7 +172,7 @@ size_t rpc_session_feed( size_t bytes_sent = furi_stream_buffer_send(session->stream, encoded_bytes, size, timeout); - furi_thread_flags_set(furi_thread_get_id(session->thread), RpcEvtNewData); + furi_thread_flags_set(session->thread_id, RpcEvtNewData); return bytes_sent; } @@ -220,7 +220,7 @@ bool rpc_pb_stream_read(pb_istream_t* istream, pb_byte_t* buf, size_t count) { break; } else { /* Save disconnect flag and continue reading buffer */ - furi_thread_flags_set(furi_thread_get_id(session->thread), RpcEvtDisconnect); + furi_thread_flags_set(session->thread_id, RpcEvtDisconnect); } } else if(flags & RpcEvtNewData) { // Just wake thread up @@ -347,35 +347,32 @@ static int32_t rpc_session_worker(void* context) { return 0; } -static void rpc_session_thread_pending_callback(void* context, uint32_t arg) { - UNUSED(arg); - RpcSession* session = (RpcSession*)context; - - for(size_t i = 0; i < COUNT_OF(rpc_systems); ++i) { - if(rpc_systems[i].free) { - (rpc_systems[i].free)(session->system_contexts[i]); - } - } - free(session->system_contexts); - free(session->decoded_message); - RpcHandlerDict_clear(session->handlers); - furi_stream_buffer_free(session->stream); - - furi_mutex_acquire(session->callbacks_mutex, FuriWaitForever); - if(session->terminated_callback) { - session->terminated_callback(session->context); - } - furi_mutex_release(session->callbacks_mutex); - - furi_mutex_free(session->callbacks_mutex); - furi_thread_join(session->thread); - furi_thread_free(session->thread); - free(session); -} - -static void rpc_session_thread_state_callback(FuriThreadState thread_state, void* context) { +static void rpc_session_thread_release_callback( + FuriThread* thread, + FuriThreadState thread_state, + void* context) { if(thread_state == FuriThreadStateStopped) { - furi_timer_pending_callback(rpc_session_thread_pending_callback, context, 0); + RpcSession* session = (RpcSession*)context; + + for(size_t i = 0; i < COUNT_OF(rpc_systems); ++i) { + if(rpc_systems[i].free) { + (rpc_systems[i].free)(session->system_contexts[i]); + } + } + free(session->system_contexts); + free(session->decoded_message); + RpcHandlerDict_clear(session->handlers); + furi_stream_buffer_free(session->stream); + + furi_mutex_acquire(session->callbacks_mutex, FuriWaitForever); + if(session->terminated_callback) { + session->terminated_callback(session->context); + } + furi_mutex_release(session->callbacks_mutex); + + furi_mutex_free(session->callbacks_mutex); + furi_thread_free(thread); + free(session); } } @@ -407,12 +404,14 @@ RpcSession* rpc_session_open(Rpc* rpc, RpcOwner owner) { }; rpc_add_handler(session, PB_Main_stop_session_tag, &rpc_handler); - session->thread = furi_thread_alloc_ex("RpcSessionWorker", 3072, rpc_session_worker, session); + FuriThread* thread = + furi_thread_alloc_ex("RpcSessionWorker", 3072, rpc_session_worker, session); + session->thread_id = furi_thread_get_id(thread); - furi_thread_set_state_context(session->thread, session); - furi_thread_set_state_callback(session->thread, rpc_session_thread_state_callback); + furi_thread_set_state_context(thread, session); + furi_thread_set_state_callback(thread, rpc_session_thread_release_callback); - furi_thread_start(session->thread); + furi_thread_start(thread); return session; } @@ -424,7 +423,7 @@ void rpc_session_close(RpcSession* session) { rpc_session_set_send_bytes_callback(session, NULL); rpc_session_set_close_callback(session, NULL); rpc_session_set_buffer_is_empty_callback(session, NULL); - furi_thread_flags_set(furi_thread_get_id(session->thread), RpcEvtDisconnect); + furi_thread_flags_set(session->thread_id, RpcEvtDisconnect); } void rpc_on_system_start(void* p) { diff --git a/applications/system/updater/util/update_task.c b/applications/system/updater/util/update_task.c index cca488475..9db8339ef 100644 --- a/applications/system/updater/util/update_task.c +++ b/applications/system/updater/util/update_task.c @@ -395,14 +395,15 @@ bool update_task_open_file(UpdateTask* update_task, FuriString* filename) { return open_success; } -static void update_task_worker_thread_cb(FuriThreadState state, void* context) { - UpdateTask* update_task = context; +static void + update_task_worker_thread_cb(FuriThread* thread, FuriThreadState state, void* context) { + UNUSED(context); if(state != FuriThreadStateStopped) { return; } - if(furi_thread_get_return_code(update_task->thread) == UPDATE_TASK_NOERR) { + if(furi_thread_get_return_code(thread) == UPDATE_TASK_NOERR) { furi_delay_ms(UPDATE_DELAY_OPERATION_OK); furi_hal_power_reset(); } @@ -427,7 +428,6 @@ UpdateTask* update_task_alloc(void) { furi_thread_alloc_ex("UpdateWorker", 5120, NULL, update_task); furi_thread_set_state_callback(thread, update_task_worker_thread_cb); - furi_thread_set_state_context(thread, update_task); #ifdef FURI_RAM_EXEC UNUSED(update_task_worker_backup_restore); furi_thread_set_callback(thread, update_task_worker_flash_writer); diff --git a/documentation/AppManifests.md b/documentation/AppManifests.md index 98a38ffd8..f0f9d6379 100644 --- a/documentation/AppManifests.md +++ b/documentation/AppManifests.md @@ -1,65 +1,65 @@ -# Flipper Application Manifests (.fam) {#app_manifests} +# FAM (Flipper App Manifests) {#app_manifests} All components of Flipper Zero firmware — services, user applications, and system settings — are developed independently. Each component has a build system manifest file named `application.fam`, which defines the basic properties of that component and its relations to other parts of the system. -When building firmware, `fbt` collects all application manifests and processes their dependencies. Then it builds only those components referenced in the current build configuration. See [FBT docs](fbt.md) for details on build configurations. +When building firmware, `fbt` collects all app manifests and processes their dependencies. Then it builds only those components referenced in the current build configuration. See [FBT docs](fbt.md) for details on build configurations. -## Application definition +## App definition A firmware component's properties are declared in a Python code snippet, forming a call to the `App()` function with various parameters. -Only two parameters are mandatory: **appid** and **apptype**. Others are optional and may only be meaningful for certain application types. +Only two parameters are mandatory: **appid** and **apptype**. Others are optional and may only be meaningful for certain app types. ### Parameters -- **appid**: string, application ID within the build system. It is used to specify which applications to include in the build configuration and resolve dependencies and conflicts. +- **appid**: string, app ID within the build system. It is used to specify which app to include in the build configuration and resolve dependencies and conflicts. - **apptype**: member of FlipperAppType.\* enumeration. Valid values are: | Enum member | Firmware component type | | ----------- | ------------------------------------------------------------------------------------------- | | SERVICE | System service, created at early startup | -| SYSTEM | Application is not being shown in any menus. It can be started by other apps or from CLI | -| APP | Regular application for the main menu | -| PLUGIN | Application to be built as a part of the firmware and to be placed in the Plugins menu | -| DEBUG | Application only visible in Debug menu with debug mode enabled | +| SYSTEM | App is not being shown in any menus. It can be started by other apps or from CLI | +| APP | Regular app for the main menu | +| PLUGIN | App to be built as a part of the firmware and to be placed in the Plugins menu | +| DEBUG | App only visible in Debug menu with debug mode enabled | | ARCHIVE | One and only Archive app | -| SETTINGS | Application to be placed in the system settings menu | +| SETTINGS | App to be placed in the system settings menu | | STARTUP | Callback function to run at system startup. Does not define a separate app | -| EXTERNAL | Application to be built as `.fap` plugin | -| METAPACKAGE | Does not define any code to be run, used for declaring dependencies and application bundles | +| EXTERNAL | App to be built as `.fap` plugin | +| METAPACKAGE | Does not define any code to be run, used for declaring dependencies and app bundles | - **name**: name displayed in menus. -- **entry_point**: C function to be used as the application's entry point. Note that C++ function names are mangled, so you need to wrap them in `extern "C"` to use them as entry points. +- **entry_point**: C function to be used as the app's entry point. Note that C++ function names are mangled, so you need to wrap them in `extern "C"` to use them as entry points. - **flags**: internal flags for system apps. Do not use. -- **cdefines**: C preprocessor definitions to declare globally for other apps when the current application is included in the active build configuration. **For external applications**: specified definitions are used when building the application itself. -- **requires**: list of application IDs to include in the build configuration when the current application is referenced in the list of applications to build. -- **conflicts**: list of application IDs with which the current application conflicts. If any of them is found in the constructed application list, `fbt` will abort the firmware build process. +- **cdefines**: C preprocessor definitions to declare globally for other apps when the current app is included in the active build configuration. **For external apps**: specified definitions are used when building the app itself. +- **requires**: list of app IDs to include in the build configuration when the current app is referenced in the list of apps to build. +- **conflicts**: list of app IDs with which the current app conflicts. If any of them is found in the constructed app list, `fbt` will abort the firmware build process. - **provides**: functionally identical to **_requires_** field. -- **stack_size**: stack size in bytes to allocate for an application on its startup. Note that allocating a stack too small for an app to run will cause a system crash due to stack overflow, and allocating too much stack space will reduce usable heap memory size for apps to process data. _Note: you can use `top` and `free` CLI commands to profile your app's memory usage._ +- **stack_size**: stack size in bytes to allocate for an app on its startup. Note that allocating a stack too small for an app to run will cause a system crash due to stack overflow, and allocating too much stack space will reduce usable heap memory size for apps to process data. _Note: you can use `top` and `free` CLI commands to profile your app's memory usage._ - **icon**: animated icon name from built-in assets to be used when building the app as a part of the firmware. -- **order**: order of an application within its group when sorting entries in it. The lower the order is, the closer to the start of the list the item is placed. _Used for ordering startup hooks and menu entries._ -- **sdk_headers**: list of C header files from this app's code to include in API definitions for external applications. -- **targets**: list of strings and target names with which this application is compatible. If not specified, the application is built for all targets. The default value is `["all"]`. -- **resources**: name of a folder within the application's source folder to be used for packacking SD card resources for this application. They will only be used if application is included in build configuration. The default value is `""`, meaning no resources are packaged. +- **order**: order of an app within its group when sorting entries in it. The lower the order is, the closer to the start of the list the item is placed. _Used for ordering startup hooks and menu entries._ +- **sdk_headers**: list of C header files from this app's code to include in API definitions for external apps. +- **targets**: list of strings and target names with which this app is compatible. If not specified, the app is built for all targets. The default value is `["all"]`. +- **resources**: name of a folder within the app's source folder to be used for packacking SD card resources for this app. They will only be used if app is included in build configuration. The default value is `""`, meaning no resources are packaged. -#### Parameters for external applications +#### Parameters for external apps The following parameters are used only for [FAPs](./AppsOnSDCard.md): -- **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Applications cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**. Paths starting with `"!"` are excluded from the list of sources. They can also include wildcard characters and directory names. For example, a value of `["*.c*", "!plugins"]` will include all C and C++ source files in the app folder except those in the `plugins` (and `lib`) folders. Paths with no wildcards (`*, ?`) are treated as full literal paths for both inclusion and exclusion. -- **fap_version**: string, application version. The default value is "0.1". You can also use a tuple of 2 numbers in the form of (x,y) to specify the version. It is also possible to add more dot-separated parts to the version, like patch number, but only major and minor version numbers are stored in the built .fap. +- **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Apps cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**. Paths starting with `"!"` are excluded from the list of sources. They can also include wildcard characters and directory names. For example, a value of `["*.c*", "!plugins"]` will include all C and C++ source files in the app folder except those in the `plugins` (and `lib`) folders. Paths with no wildcards (`*, ?`) are treated as full literal paths for both inclusion and exclusion. +- **fap_version**: string, app version. The default value is "0.1". You can also use a tuple of 2 numbers in the form of (x,y) to specify the version. It is also possible to add more dot-separated parts to the version, like patch number, but only major and minor version numbers are stored in the built .fap. - **fap_icon**: name of a `.png` file, 1-bit color depth, 10x10px, to be embedded within `.fap` file. -- **fap_libs**: list of extra libraries to link the application against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased `.fap` file size and RAM consumption. +- **fap_libs**: list of extra libraries to link the app against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased `.fap` file size and RAM consumption. - **fap_category**: string, may be empty. App subcategory, also determines the path of the FAP within the apps folder in the file system. -- **fap_description**: string, may be empty. Short application description. -- **fap_author**: string, may be empty. Application's author. -- **fap_weburl**: string, may be empty. Application's homepage. -- **fap_icon_assets**: string. If present, it defines a folder name to be used for gathering image assets for this application. These images will be preprocessed and built alongside the application. See [FAP assets](AppsOnSDCard.md) for details. -- **fap_extbuild**: provides support for parts of application sources to be built by external tools. Contains a list of `ExtFile(path="file name", command="shell command")` definitions. `fbt` will run the specified command for each file in the list. -- **fal_embedded**: boolean, default `False`. Applies only to PLUGIN type. If `True`, the plugin will be embedded into host application's .fap file as a resource and extracted to `apps_assets/APPID` folder on its start. This allows plugins to be distributed as a part of the host application. +- **fap_description**: string, may be empty. Short app description. +- **fap_author**: string, may be empty. App's author. +- **fap_weburl**: string, may be empty. App's homepage. +- **fap_icon_assets**: string. If present, it defines a folder name to be used for gathering image assets for this app. These images will be preprocessed and built alongside the app. See [FAP assets](AppsOnSDCard.md) for details. +- **fap_extbuild**: provides support for parts of app sources to be built by external tools. Contains a list of `ExtFile(path="file name", command="shell command")` definitions. `fbt` will run the specified command for each file in the list. +- **fal_embedded**: boolean, default `False`. Applies only to PLUGIN type. If `True`, the plugin will be embedded into host app's .fap file as a resource and extracted to `apps_assets/APPID` folder on its start. This allows plugins to be distributed as a part of the host app. -Note that commands are executed at the firmware root folder, and all intermediate files must be placed in an application's temporary build folder. For that, you can use pattern expansion by `fbt`: `${FAP_WORK_DIR}` will be replaced with the path to the application's temporary build folder, and `${FAP_SRC_DIR}` will be replaced with the path to the application's source folder. You can also use other variables defined internally by `fbt`. +Note that commands are executed at the firmware root folder, and all intermediate files must be placed in an app's temporary build folder. For that, you can use pattern expansion by `fbt`: `${FAP_WORK_DIR}` will be replaced with the path to the app's temporary build folder, and `${FAP_SRC_DIR}` will be replaced with the path to the app's source folder. You can also use other variables defined internally by `fbt`. Example for building an app from Rust sources: @@ -73,8 +73,8 @@ Example for building an app from Rust sources: ), ``` -- **fap_private_libs**: list of additional libraries distributed as sources alongside the application. These libraries will be built as a part of the application build process. - Library sources must be placed in a subfolder of the `lib` folder within the application's source folder. +- **fap_private_libs**: list of additional libraries distributed as sources alongside the app. These libraries will be built as a part of the app build process. + Library sources must be placed in a subfolder of the `lib` folder within the app's source folder. Each library is defined as a call to the `Lib()` function, accepting the following parameters: - **name**: name of the library's folder. Required. @@ -82,7 +82,7 @@ Example for building an app from Rust sources: - **sources**: list of filename masks to be used for gathering include files for this library. Paths are relative to the library's source root. The default value is `["*.c*"]`. - **cflags**: list of additional compiler flags to be used for building this library. The default value is `[]`. - **cdefines**: list of additional preprocessor definitions to be used for building this library. The default value is `[]`. - - **cincludes**: list of additional include paths to be used for building this library. Paths are relative to the application's root. This can be used for providing external search paths for this library's code — for configuration headers. The default value is `[]`. + - **cincludes**: list of additional include paths to be used for building this library. Paths are relative to the app's root. This can be used for providing external search paths for this library's code — for configuration headers. The default value is `[]`. Example for building an app with a private library: @@ -105,14 +105,14 @@ Example for building an app with a private library: ], ``` -For that snippet, `fbt` will build 2 libraries: one from sources in `lib/mbedtls` folder and another from sources in the `lib/loclass` folder. For the `mbedtls` library, `fbt` will add `lib/mbedtls/include` to the list of include paths for the application and compile only the files specified in the `sources` list. Additionally, `fbt` will enable `MBEDTLS_ERROR_C` preprocessor definition for `mbedtls` sources. -For the `loclass` library, `fbt` will add `lib/loclass` to the list of the include paths for the application and build all sources in that folder. Also, `fbt` will disable treating compiler warnings as errors for the `loclass` library, which can be useful when compiling large 3rd-party codebases. +For that snippet, `fbt` will build 2 libraries: one from sources in `lib/mbedtls` folder and another from sources in the `lib/loclass` folder. For the `mbedtls` library, `fbt` will add `lib/mbedtls/include` to the list of include paths for the app and compile only the files specified in the `sources` list. Additionally, `fbt` will enable `MBEDTLS_ERROR_C` preprocessor definition for `mbedtls` sources. +For the `loclass` library, `fbt` will add `lib/loclass` to the list of the included paths for the app and build all sources in that folder. Also, `fbt` will disable treating compiler warnings as errors for the `loclass` library, which can be useful when compiling large 3rd-party codebases. -Both libraries will be linked with the application. +Both libraries will be linked with the app. ## .fam file contents -The `.fam` file contains one or more application definitions. For example, here's a part of `applications/service/bt/application.fam`: +The `.fam` file contains one or more app definitions. For example, here's a part of `applications/service/bt/application.fam`: ```python App( diff --git a/documentation/AppsOnSDCard.md b/documentation/AppsOnSDCard.md index cb8106fc6..8bc73b1ab 100644 --- a/documentation/AppsOnSDCard.md +++ b/documentation/AppsOnSDCard.md @@ -1,29 +1,29 @@ -# FAP (Flipper Application Package) {#apps_on_sd_card} +# FAP (Flipper App Package) {#apps_on_sd_card} -[fbt](./fbt.md) supports building applications as FAP files. FAPs are essentially `.elf` executables with extra metadata and resources bundled in. +[fbt](./fbt.md) supports building apps as FAP files. FAPs are essentially `.elf` executables with extra metadata and resources bundled in. FAPs are built with the `faps` target. They can also be deployed to the `dist` folder with the `fap_dist` target. FAPs do not depend on being run on a specific firmware version. Compatibility is determined by the FAP's metadata, which includes the required [API version](#api-versioning). -## How to set up an application to be built as a FAP {#fap-howto} +## How to set up an app to be built as a FAP {#fap-howto} -FAPs are created and developed the same way as internal applications that are part of the firmware. +FAPs are created and developed the same way as internal apps that are part of the firmware. -To build your application as a FAP, create a folder with your app's source code in `applications_user`, then write its code the way you'd do when creating a regular built-in application. Then configure its `application.fam` manifest, and set its _apptype_ to FlipperAppType.EXTERNAL. See [Application Manifests](./AppManifests.md#application-definition) for more details. +To build your app as a FAP, create a folder with your app's source code in `applications_user`, then write its code the way you'd do when creating a regular built-in app. Then configure its `application.fam` manifest, and set its `apptype` to `FlipperAppType.EXTERNAL`. See [Flipper App Manifests](AppManifests.md) for more details. -- To build your application, run `./fbt fap_{APPID}`, where APPID is your application's ID in its manifest. +- To build your app, run `./fbt fap_{APPID}`, where APPID is your app's ID in its manifest. - To build your app and upload it over USB to run on Flipper, use `./fbt launch APPSRC=applications_user/path/to/app`. This command is configured in the default [VS Code profile](../.vscode/ReadMe.md) as a "Launch App on Flipper" build action (Ctrl+Shift+B menu). - To build an app without uploading it to Flipper, use `./fbt build APPSRC=applications_user/path/to/app`. This command is also available in VSCode configuration as "Build App". - To build all FAPs, run `./fbt faps` or `./fbt fap_dist`. ## FAP assets -FAPs can include static and animated images as private assets. They will be automatically compiled alongside application sources and can be referenced the same way as assets from the main firmware. +FAPs can include static and animated images as private assets. They will be automatically compiled alongside app sources and can be referenced the same way as assets from the main firmware. -To use that feature, put your images in a subfolder inside your application's folder, then reference that folder in your application's manifest in the `fap_icon_assets` field. See [Application Manifests](AppManifests.md) for more details. +To use that feature, put your images in a subfolder inside your app's folder, then reference that folder in your app's manifest in the `fap_icon_assets` field. See [Flipper App Manifests](AppManifests.md) for more details. -To use these assets in your application, put `#include "{APPID}_icons.h"` in your application's source code, where `{APPID}` is the `appid` value field from your application's manifest. Then you can use all icons from your application's assets the same way as if they were a part of `assets_icons.h` of the main firmware. +To use these assets in your app, put `#include "{APPID}_icons.h"` in your app's source code, where `{APPID}` is the `appid` value field from your app's manifest. Then you can use all icons from your app's assets the same way as if they were a part of `assets_icons.h` of the main firmware. Images and animated icons should follow the same [naming convention](../assets/ReadMe.md) as those from the main firmware. @@ -33,11 +33,11 @@ Images and animated icons should follow the same [naming convention](../assets/R With it, you can debug FAPs as if they were a part of the main firmware — inspect variables, set breakpoints, step through the code, etc. -If debugging session is active, firmware will trigger a breakpoint after loading a FAP it into memory, but before running any code from it. This allows you to set breakpoints in the FAP's code. Note that any breakpoints set before the FAP is loaded may need re-setting after the FAP is actually loaded, since before loading it debugger cannot know the exact address of the FAP's code. +If debugging session is active, firmware will trigger a breakpoint after loading a FAP into memory, but before running any code from it. This allows you to set breakpoints in the FAP's code. Note that any breakpoints set before the FAP is loaded may need re-setting after the FAP is actually loaded, since the debugger cannot know the exact address of the FAP's code before loading the FAP. ### Setting up debugging environment -The debugging support script looks up debugging information in the latest firmware build directory (`build/latest`). That directory is symlinked by `fbt` to the latest firmware configuration (Debug or Release) build directory when you run `./fbt` for the chosen configuration. See [fbt docs](./fbt.md#nb) for details. +The debugging support script looks up debugging information in the latest firmware build directory (`build/latest`). That directory is symlinked by `fbt` to the latest firmware configuration (Debug or Release) build directory when you run `./fbt` for the chosen configuration. See [fbt docs](fbt.md) for details. To debug FAPs, do the following: @@ -45,23 +45,23 @@ To debug FAPs, do the following: 2. Flash it with `./fbt flash` 3. [Build your FAP](#fap-howto) and run it on Flipper -After that, you can attach with `./fbt debug` or VS Code and use all debug features. +After that, you can attach the debugger to the target MCU with `./fbt debug` or VS Code and use all debug features. -It is **important** that firmware and application build type (debug/release) match and that the matching firmware folder is linked as `build/latest`. Otherwise, debugging will not work. +It is **important** that firmware and app build type (debug/release) match and that the matching firmware folder is linked as `build/latest`. Otherwise, debugging will not work. -## How Flipper runs an application from an SD card +## How Flipper runs an app from an SD card -Flipper's MCU cannot run code directly from external storage, so it needs to be copied to RAM first. That is done by the App Loader application responsible for loading the FAP from the SD card, verifying its integrity and compatibility, copying it to RAM, and adjusting it for its new location. +Flipper's MCU cannot run code directly from external storage, so it needs to be copied to RAM first. That is done by the App Loader responsible for loading the FAP from the SD card, verifying its integrity and compatibility, copying it to RAM, and adjusting it for its new location. -Since FAP has to be loaded to RAM to be executed, the amount of RAM available for allocations from heap is reduced compared to running the same app from flash, as a part of the firmware. Note that the amount of occupied RAM is less than the total FAP file size since only code and data sections are allocated, while the FAP file includes extra information only used at app load time. +Since the FAP has to be loaded to RAM to be executed, the amount of RAM available for allocations from heap is reduced compared to running the same app from flash, as a part of the firmware. Note that the amount of occupied RAM is less than the total FAP file size since only code and data sections are allocated, while the FAP file includes extra information only used at app load time. -Applications are built for a specific API version. It is a part of the hardware target's definition and contains a major and minor version number. The App Loader checks if the application's major API version matches the firmware's major API version. +Apps are built for a specific API version. It is a part of the hardware target's definition and contains a major and minor version number. The App Loader checks if the app's major API version matches the firmware's major API version. -The App Loader allocates memory for the application and copies it to RAM, processing relocations and providing concrete addresses for imported symbols using the [symbol table](#symbol-table). Then it starts the application. +The App Loader allocates memory for the app and copies it to RAM, processing relocations and providing concrete addresses for imported symbols using the [symbol table](#symbol-table). Then it starts the app. ## API versioning {#api-versioning} -Not all parts of firmware are available for external applications. A subset of available functions and variables is defined in the "api_symbols.csv" file, which is a part of the firmware target definition in the `targets/` directory. +Not all parts of firmware are available for external apps. A subset of available functions and variables is defined in the "api_symbols.csv" file, which is a part of the firmware target definition in the `targets/` directory. `fbt` uses semantic versioning for the API. The major version is incremented when there are breaking changes in the API. The minor version is incremented when new features are added. @@ -78,6 +78,6 @@ API versioning is mostly automated by `fbt`. When rebuilding the firmware, `fbt` ### Symbol table {#symbol-table} -The symbol table is a list of symbols exported by firmware and available for external applications. It is generated by `fbt` from the API symbols file and is used by the App Loader to resolve addresses of imported symbols. It is build as a part of the `fap_loader` application. +The symbol table is a list of symbols exported by firmware and available for external apps. It is generated by `fbt` from the API symbols file and is used by the App Loader to resolve addresses of imported symbols. It is build as a part of the `fap_loader` app. -`fbt` also checks if all imported symbols are present in the symbol table. If there are any missing symbols, it will issue a warning listing them. The application won't be able to run on the device until all required symbols are provided in the symbol table. +`fbt` also checks if all imported symbols are present in the symbol table. If there are any missing symbols, it will issue a warning listing them. The app won't be able to run on the device until all required symbols are provided in the symbol table. diff --git a/documentation/ExpansionModules.md b/documentation/ExpansionModules.md index fd9703adc..2fbdb738f 100644 --- a/documentation/ExpansionModules.md +++ b/documentation/ExpansionModules.md @@ -29,7 +29,7 @@ Depending on the UART selected for communication, the following pins area availa ## Frame structure -Each frame consists of a header (1 byte), contents (size depends of frame type) and checksum (1 byte) fields: +Each frame consists of a header (1 byte), contents (size depends on frame type) and checksum (1 byte) fields: | Header (1 byte) | Contents (0 or more bytes) | Checksum (1 byte) | |-----------------|----------------------------|-------------------| @@ -79,7 +79,7 @@ CONTROL frames are used to control various aspects of the communication and enab |-----------------|-------------------|-------------------| | 0x04 | Command | XOR checksum | -The `Command` field SHALL have one of the followind values: +The `Command` field SHALL have one of the following values: | Command | Meaning | Note | |---------|--------------------------|:----:| @@ -96,7 +96,7 @@ Notes: ### Data frame -DATA frames are used to transmit arbitrary data in either direction. Each DATA frame can hold up to 64 bytes. If an RPC session is curretly open, all received bytes are forwarded to it. +DATA frames are used to transmit arbitrary data in either direction. Each DATA frame can hold up to 64 bytes. If an RPC session is currently open, all received bytes are forwarded to it. | Header (1 byte) | Contents (1 to 65 byte(s)) | Checksum (1 byte) | |-----------------|----------------------------|-------------------| @@ -110,7 +110,7 @@ The `Data` field SHALL have the following structure: ## Communication flow -In order for the host to be able to detect the module, the respective feature must be enabled first. This can be done via the GUI by going to `Settings -> Expansion Modules` and selecting the required `Listen UART` or programmatically by calling `expansion_enable()`. Likewise, disabling this feature via the same GUI or by calling `expansion_disable()` will result in ceasing all communications and not being able to detect any connected modules. +In order for the host to be able to detect the module, the respective feature must be enabled first. This can be done via the GUI by going to `Settings → Expansion Modules` and selecting the required `Listen UART` or programmatically by calling `expansion_enable()`. Likewise, disabling this feature via the same GUI or by calling `expansion_disable()` will result in ceasing all communications and not being able to detect any connected modules. The communication is always initiated by the module by the means of shortly pulling the RX pin down. The host SHALL respond with a HEARTBEAT frame indicating that it is ready to receive requests. The module then MUST issue a BAUDRATE request within Tto. Failure to do so will result in the host dropping the connection and returning to its initial state. diff --git a/documentation/FuriCheck.md b/documentation/FuriCheck.md index 77a44ca84..ead964af9 100644 --- a/documentation/FuriCheck.md +++ b/documentation/FuriCheck.md @@ -1,13 +1,13 @@ # Run time checks and forced system crash {#furi_check} The best way to protect system integrity is to reduce amount cases that we must handle and crash the system as early as possible. -For that purpose we have bunch of helpers located in Furi Core check.h. +For that purpose, we have a bunch of helpers located in Furi Core `check.h`. ## Couple notes before start -- Definition of Crash - log event, save crash information in RTC and reboot the system. -- Definition of Halt - log event, stall the system. -- Debug and production builds behaves differently: debug build will never reset system in order to preserve state for debugging. +- Definition of Crash — log event, save crash information in RTC and reboot the system. +- Definition of Halt — log event, stall the system. +- Debug and production builds behave differently: debug build will never reset system in order to preserve state for debugging. - If you have debugger connected we will stop before reboot automatically. - All helpers accept optional MESSAGE_CSTR: it can be in RAM or Flash memory, but only messages from Flash will be shown after system reboot. - MESSAGE_CSTR can be NULL, but macros magic already doing it for you, so just don't. @@ -16,10 +16,10 @@ For that purpose we have bunch of helpers located in Furi Core check.h. Assert condition in development environment and crash the system if CONDITION is false. -- Should be used at development stage in apps and services -- Keep in mind that release never contains this check -- Keep in mind that libraries never contains this check by default, use `LIB_DEBUG=1` if you need it -- Avoid putting function calls into CONDITION, since it may be omitted in some builds +- Should be used at development stage in apps and services. +- Keep in mind that release never contains this check. +- Keep in mind that libraries never contain this check by default, use `LIB_DEBUG=1` if you need it. +- Avoid putting function calls into CONDITION, since it may be omitted in some builds. ## `furi_check(CONDITION)` or `furi_check(CONDITION, MESSAGE_CSTR)` @@ -31,10 +31,10 @@ Always assert condition and crash the system if CONDITION is false. Crash the system. -- Use it to crash the system. For example: if abnormal condition detected. +- Use it to crash the system. For example, if an abnormal condition is detected. ## `furi_halt()` or `furi_halt(MESSAGE_CSTR)` Halt the system. -- We use it internally to shutdown flipper if poweroff is not possible. +- We use it internally to shutdown Flipper if poweroff is not possible. diff --git a/documentation/FuriHalBus.md b/documentation/FuriHalBus.md index 12c5a70ec..5e7bb5f40 100644 --- a/documentation/FuriHalBus.md +++ b/documentation/FuriHalBus.md @@ -5,7 +5,7 @@ On system startup, most of the peripheral devices are under reset and not clocked by default. This is done to reduce power consumption and to guarantee that the device will always be in the same state before use. Some crucial peripherals are enabled right away by the system, others must be explicitly enabled by the user code. -**NOTE:** Here and afterwards the word *"system"* refers to any code belonging to the operating system, hardware drivers or built-in applications. +**NOTE:** Here and afterwards, the word *"system"* refers to any code belonging to the operating system, hardware drivers or built-in apps. To **ENABLE** a peripheral, call `furi_hal_bus_enable()`. At the time of the call, the peripheral in question MUST be disabled, otherwise a crash will occur to indicate improper use. This means that any given peripheral cannot be enabled twice or more without disabling it first. @@ -24,7 +24,7 @@ Built-in peripherals are divided into three categories: Below is the list of peripherals that are enabled by the system. The user code must NEVER attempt to disable them. If a corresponding API is provided, the user code must employ it in order to access the peripheral. -*Table 1* - Peripherals enabled by the system +*Table 1* — Peripherals enabled by the system | Peripheral | Enabled at | | :-----------: | :-----------------------: | @@ -49,7 +49,7 @@ Below is the list of peripherals that are enabled and disabled by the system. Th When not using the API, these peripherals MUST be enabled by the user code and then disabled when not needed anymore. -*Table 2* - Peripherals enabled and disabled by the system +*Table 2* — Peripherals enabled and disabled by the system | Peripheral | API header file | | :-----------: | :-------------------: | @@ -69,7 +69,7 @@ Below is the list of peripherals that are not enabled by default and MUST be ena Note that some of these peripherals may also be used by the system to implement its certain features. The system will take over any given peripheral only when the respective feature is in use. -*Table 3* - Peripherals enabled and disabled by user +*Table 3* — Peripherals enabled and disabled by user | Peripheral | System | Purpose | | :-----------: | :-------: | ------------------------------------- | @@ -93,7 +93,7 @@ The DMA1,2 peripherals are a special case in that they have multiple independent Below is the list of DMA channels and their usage by the system. -*Table 4* - DMA channels +*Table 4* — DMA channels | DMA | Channel | System | Purpose | | :---: | :-------: | :-------: | ------------------------- | diff --git a/documentation/FuriHalDebuging.md b/documentation/FuriHalDebuging.md index 5104a9998..bc7d532d2 100644 --- a/documentation/FuriHalDebuging.md +++ b/documentation/FuriHalDebuging.md @@ -1,7 +1,7 @@ # Furi HAL Debugging {#furi_hal_debugging} -Some Furi subsystems got additional debugging features that can be enabled by adding additional defines to firmware compilation. -Usually they are used for low level tracing and profiling or signal redirection/duplication. +Some Furi subsystems have additional debugging features that can be enabled by adding additional defines to firmware compilation. +Usually, they are used for low level tracing and profiling or signal redirection/duplication. ## FuriHalOs @@ -10,9 +10,9 @@ Usually they are used for low level tracing and profiling or signal redirection/ There are 3 signals that will be exposed to external GPIO pins: -- `AWAKE` - `PA7` - High when system is busy with computations, low when sleeping. Can be used to track transitions to sleep mode. -- `TICK` - `PA6` - Flipped on system tick, only flips when no tick suppression in progress. Can be used to track tick skew and abnormal task scheduling. -- `SECOND` - `PA4` - Flipped each second. Can be used for tracing RT issue: time flow disturbance means system doesn't conforms Hard RT. +- `AWAKE` — `PA7` — High when system is busy with computations, low when sleeping. Can be used to track transitions to sleep mode. +- `TICK` — `PA6` — Flipped on system tick, only flips when no tick suppression in progress. Can be used to track tick skew and abnormal task scheduling. +- `SECOND` — `PA4` — Flipped each second. Can be used for tracing RT issue: time flow disturbance means system doesn't conform Hard RT. @@ -22,8 +22,8 @@ There are 3 signals that will be exposed to external GPIO pins: There are 2 signals that will be exposed to external GPIO pins: -- `WFI` - `PB2` - Light sleep (wait for interrupt) used. Basically this is lightest and most non-breaking things power save mode. All function and debug should work correctly in this mode. -- `STOP` - `PC3` - STOP mode used. Platform deep sleep mode. Extremely fragile mode where most of the silicon is disabled or in unusable state. Debugging MCU in this mode is nearly impossible. +- `WFI` — `PB2` — Light sleep (wait for interrupt) used. Basically, this is the lightest and most non-breaking things power save mode. All functions and debug should work correctly in this mode. +- `STOP` — `PC3` — STOP mode used. Platform deep sleep mode. Extremely fragile mode where most of the silicon is disabled or in unusable state. Debugging MCU in this mode is nearly impossible. ## FuriHalSD diff --git a/documentation/HardwareTargets.md b/documentation/HardwareTargets.md index 9c36088ea..e35ee7991 100644 --- a/documentation/HardwareTargets.md +++ b/documentation/HardwareTargets.md @@ -25,20 +25,20 @@ A target definition file, `target.json`, is a JSON file that can contain the fol * `excluded_modules`: list of strings specifying fbt library (module) names to exclude from being used to configure build environment. -## Applications & Hardware +## Apps & Hardware -Not all applications are available on different hardware targets. +Not all apps are available on different hardware targets. -* For applications built into the firmware, you have to specify a compatible application set using `FIRMWARE_APP_SET=...` fbt option. See [fbt docs](./fbt.md) for details on build configurations. +* For apps built into the firmware, you have to specify a compatible app set using `FIRMWARE_APP_SET=...` fbt option. See [fbt docs](./fbt.md) for details on build configurations. -* For applications built as external .faps, you have to explicitly specify compatible targets in application's manifest, `application.fam`. For example, to limit application to a single target, add `targets=["f7"],` to the manifest. It won't be built for other targets. +* For apps built as external FAPs, you have to explicitly specify compatible targets in the app's manifest, `application.fam`. For example, to limit the app to a single target, add `targets=["f7"],` to the manifest. It won't be built for other targets. -For details on application manifests, check out [their docs page](./AppManifests.md). +For details on app manifests, check out [their docs page](./AppManifests.md). ## Building Firmware for a Specific Target -You have to specify TARGET_HW (and, optionally, FIRMWARE_APP_SET) for `fbt` to build firmware for non-default target. For example, building and flashing debug firmware for f18 can be done with +You have to specify TARGET_HW (and, optionally, FIRMWARE_APP_SET) for `fbt` to build firmware for a non-default target. For example, building and flashing debug firmware for f18 can be done with ./fbt TARGET_HW=18 flash_usb_full diff --git a/documentation/KeyCombo.md b/documentation/KeyCombo.md index e3c5e0004..09bbb1ee0 100644 --- a/documentation/KeyCombo.md +++ b/documentation/KeyCombo.md @@ -10,7 +10,7 @@ There are times when your Flipper feels blue and doesn't respond to any of your - Release `LEFT` and `BACK` This combo performs a hardware reset by pulling the MCU reset line down. -Main components involved: Keys -> DD8(NC7SZ32M5X, OR-gate) -> DD1(STM32WB55, MCU). +Main components involved: Keys → DD8(NC7SZ32M5X, OR-gate) → DD1(STM32WB55, MCU). It won't work only in one case: @@ -26,7 +26,7 @@ It won't work only in one case: - Release the `BACK` key This combo performs a reset by switching SYS power line off and then on. -Main components involved: Keys -> DD6(bq25896, charger). +Main components involved: Keys → DD6(bq25896, charger). It won't work only in one case: diff --git a/documentation/OTA.md b/documentation/OTA.md index 9783a7047..1499ab74b 100644 --- a/documentation/OTA.md +++ b/documentation/OTA.md @@ -2,7 +2,7 @@ ## Executing code from RAM -In Flipper firmware, we have a special boot mode that loads a specially crafted system image into RAM and transfers control to it. System image executing in RAM has full write access to Flipper's entire flash memory — something that's not possible when running main code from the same flash. +In Flipper firmware, we have a special boot mode that loads a specially crafted system image into RAM and transfers control to it. The system image executing in RAM has full write access to Flipper's entire flash memory — something that's not possible when running main code from the same flash. We leverage that boot mode to perform OTA firmware updates, including operations on a radio stack running on the second MCU core. diff --git a/documentation/UnitTests.md b/documentation/UnitTests.md index b77cd56c6..5c80e763d 100644 --- a/documentation/UnitTests.md +++ b/documentation/UnitTests.md @@ -5,7 +5,7 @@ Unit tests are special pieces of code that apply known inputs to the feature code and check the results to see if they are correct. They are crucial for writing robust, bug-free code. -Flipper Zero firmware includes a separate application called [unit_tests](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests). +Flipper Zero firmware includes a separate app called [unit_tests](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests). It is run directly on Flipper devices in order to employ their hardware features and rule out any platform-related differences. When contributing code to the Flipper Zero firmware, it is highly desirable to supply unit tests along with the proposed features. @@ -28,13 +28,13 @@ See [test_index.c](https://github.com/flipperdevices/flipperzero-firmware/blob/d #### Entry point -The common entry point for all tests is the [unit_tests](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests) application. Test-specific code is placed into an arbitrarily named subdirectory and is then called from the [test_index.c](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests/test_index.c) source file. +The common entry point for all tests is the [unit_tests](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests) app. Test-specific code is placed into an arbitrarily named subdirectory and is then called from the [test_index.c](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests/test_index.c) source file. #### Test assets Some unit tests require external data in order to function. These files (commonly called assets) reside in the [unit_tests](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/debug/unit_tests/resources/unit_tests) directory in their respective subdirectories. Asset files can be of any type (plain text, FlipperFormat (FFF), binary, etc.). -### Application-specific +### App-specific #### Infrared @@ -50,9 +50,9 @@ To add unit tests for your protocol, follow these steps: Each unit test has three sections: -1. `decoder` - takes in a raw signal and outputs decoded messages. -2. `encoder` - takes in decoded messages and outputs a raw signal. -3. `encoder_decoder` - takes in decoded messages, turns them into a raw signal, and then decodes again. +1. `decoder` — takes in a raw signal and outputs decoded messages. +2. `encoder` — takes in decoded messages and outputs a raw signal. +3. `encoder_decoder` — takes in decoded messages, turns them into a raw signal, and then decodes again. Infrared test asset files have an `.irtest` extension and are regular `.ir` files with a few additions. Decoder input data has signal names `decoder_input_N`, where N is a test sequence number. Expected data goes under the name `decoder_expected_N`. When testing the encoder, these two are switched. @@ -61,4 +61,4 @@ Decoded data is represented in arrays (since a single raw signal may be decoded ##### Getting raw signals -Recording raw IR signals are possible using the Flipper Zero. Launch the CLI session, run `ir rx raw`, then point the remote towards Flipper's receiver and send the signals. The raw signal data will be printed to the console in a convenient format. +Recording raw IR signals is possible using Flipper Zero. Launch the CLI session, run `ir rx raw`, then point the remote towards the Flipper's receiver and send the signals. The raw signal data will be printed to the console in a convenient format. diff --git a/documentation/UniversalRemotes.md b/documentation/UniversalRemotes.md index 360d8a0ab..65f64526f 100644 --- a/documentation/UniversalRemotes.md +++ b/documentation/UniversalRemotes.md @@ -41,11 +41,11 @@ When the user presses a button, a whole set of parameters is transmitted to the In order to add a particular air conditioner to the universal remote, 6 signals must be recorded: `Off`, `Dh`, `Cool_hi`, `Cool_lo`, `Heat_hi`, and `Heat_lo`. Each signal (except `Off`) is recorded using the following algorithm: -1. Get the remote and press the **Power Button** so that the display shows that A/C is ON. +1. Get the remote and press the **POWER** button so that the display shows that A/C is ON. 2. Set the A/C to the corresponding mode (see table below), leaving other parameters such as fan speed or vane on **AUTO** (if applicable). 3. Press the **POWER** button to switch the A/C off. 4. Start learning a new remote on Flipper if it's the first button or press `+` to add a new button otherwise. -5. Point the remote to Flipper's IR receiver as directed and press **POWER** button once again. +5. Point the remote to Flipper's IR receiver as directed and press the **POWER** button once again. 6. Save the resulting signal under the specified name. 7. Repeat steps 2-6 for each signal from the table below. diff --git a/documentation/devboard/Reading logs via the Dev Board.md b/documentation/devboard/Reading logs via the Dev Board.md index e9fc0e2ca..c2daf83ac 100644 --- a/documentation/devboard/Reading logs via the Dev Board.md +++ b/documentation/devboard/Reading logs via the Dev Board.md @@ -8,7 +8,7 @@ The Developer Board allows you to read Flipper Zero logs via UART. Unlike readin ## Setting the log level -Depending on your needs, you can set the log level by going to **Main Menu -> Settings -> Log Level**. To learn more about logging levels, visit [Settings](https://docs.flipperzero.one/basics/settings#d5TAt). +Depending on your needs, you can set the log level by going to **Main Menu → Settings → Log Level**. To learn more about logging levels, visit [Settings](https://docs.flipperzero.one/basics/settings#d5TAt). ![You can manually set the preferred log level](https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/INzQMw8QUsG9PXi30WFS0_monosnap-miro-2023-07-11-13-29-47.jpg) @@ -145,7 +145,7 @@ On Windows, do the following: 3. Connect the developer board to your computer using a USB Type-C cable. ![Connect the developer board with a USB-C cable](https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/iPpsMt2-is4aIjiVeFu5t_hjxs2i1oovrnps74v5jgsimage.png) -4. Find the serial port that the developer board is connected to by going to **Device Manager -> Ports (COM & LPT)** and looking for a new port that appears when you connect the Wi-Fi developer board. +4. Find the serial port that the developer board is connected to by going to **Device Manager → Ports (COM & LPT)** and looking for a new port that appears when you connect the Wi-Fi developer board. ![Find the serial port in your Device Manager](https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/KKLQJK1lvqmI5iab3d__C_image.png) 5. Run the PuTTY application and select **Serial** as the connection type. diff --git a/documentation/doxygen/Doxyfile.cfg b/documentation/doxygen/Doxyfile.cfg index a7838163b..90f36415f 100644 --- a/documentation/doxygen/Doxyfile.cfg +++ b/documentation/doxygen/Doxyfile.cfg @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "Flipper Zero Firmware" +PROJECT_NAME = "Flipper Developer Docs" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version diff --git a/documentation/doxygen/app_publishing.dox b/documentation/doxygen/app_publishing.dox new file mode 100644 index 000000000..747891221 --- /dev/null +++ b/documentation/doxygen/app_publishing.dox @@ -0,0 +1,7 @@ +/** +@page app_publishing Publishing to the Apps Catalog + +You can publish your app in the Flipper Apps Catalog. Users will be able to download your app and install it on their Flipper Zero via [mobile apps](https://flpr.app/) and [Flipper Lab](https://lab.flipper.net/apps). Check out the documentation below: + +- [Apps Catalog: Contribution Guide](https://github.com/flipperdevices/flipper-application-catalog/blob/main/documentation/Contributing.md) — How to publish and update your app in the Apps Catalog +*/ diff --git a/documentation/doxygen/applications.dox b/documentation/doxygen/applications.dox index ad0dfba8d..7c21a6e8d 100644 --- a/documentation/doxygen/applications.dox +++ b/documentation/doxygen/applications.dox @@ -1,12 +1,12 @@ /** -@page applications Application Programming +@page applications App Development -Flipper Zero features full support for custom applications which (usually) do not require any changes to the firmware. +Flipper Zero features full support for custom apps which (usually) do not require any changes to the firmware. -For easy application development, a software tool called [uFBT](https://github.com/flipperdevices/flipperzero-ufbt) is available. +For easy app development, a software tool called [uFBT](https://github.com/flipperdevices/flipperzero-ufbt) is available. -- @subpage vscode - Flipper Zero integration for VS Code -- @subpage apps_on_sd_card - Creating apps that can be dynamically loaded from the SD card -- @subpage app_manifests - How applications announce themselves to the system -- @subpage app_examples - Various application examples, complete with the source code +- @subpage apps_on_sd_card — Creating apps that can be dynamically loaded from the SD card +- @subpage app_manifests — How apps announce themselves to the system +- @subpage app_examples — Various app examples, complete with the source code +- @subpage app_publishing — Learn how to publish and update your app in the Apps Catalog */ diff --git a/documentation/doxygen/dev_board.dox b/documentation/doxygen/dev_board.dox index f9363ed06..6caa44c70 100644 --- a/documentation/doxygen/dev_board.dox +++ b/documentation/doxygen/dev_board.dox @@ -3,8 +3,8 @@ [ESP32-based development board](https://shop.flipperzero.one/collections/flipper-zero-accessories/products/wifi-devboard). -- @subpage dev_board_get_started - Quick start for new users -- @subpage dev_board_reading_logs - Find out what is currently happening on the system -- @subpage dev_board_fw_update - Keep the developer board up to date +- @subpage dev_board_get_started — Quick start for new users +- @subpage dev_board_reading_logs — Find out what is currently happening on the system +- @subpage dev_board_fw_update — Keep the developer board up to date */ diff --git a/documentation/doxygen/dev_tools.dox b/documentation/doxygen/dev_tools.dox index bd7a5c704..e3c589fac 100644 --- a/documentation/doxygen/dev_tools.dox +++ b/documentation/doxygen/dev_tools.dox @@ -3,7 +3,8 @@ Hardware and software tools for all kinds of programming. -- @subpage fbt - Official build and deployment tool for Flipper Zero -- @subpage dev_board - ESP32-based development board -- @subpage ota_updates - Standalone firmware self-update mechanism +- @subpage fbt — Official build and deployment tool for Flipper Zero +- @subpage vscode — Flipper Zero integration for VS Code +- @subpage dev_board — ESP32-based development board +- @subpage ota_updates — Standalone firmware self-update mechanism */ diff --git a/documentation/doxygen/examples.dox b/documentation/doxygen/examples.dox index 9743549a2..43039d2f7 100644 --- a/documentation/doxygen/examples.dox +++ b/documentation/doxygen/examples.dox @@ -1,10 +1,13 @@ /** -@page app_examples Application Examples +@page app_examples App Examples -A collection of examples covering various aspects of application programming for Flipper Zero. +A collection of examples covering various aspects of app development for Flipper Zero. -- @subpage example_app_images - Using images and icons in an application -- @subpage example_app_assets - Using application-specific asset folders -- @subpage example_app_data - Using application-specific data folders -- @subpage example_thermo - Reading data from a 1-Wire thermometer +- @subpage example_number_input — Using a simple keyboard that limits user inputs to a full number (integer) +- @subpage example_app_images — Using images and icons in an app +- @subpage example_app_assets — Using app-specific asset folders +- @subpage example_app_data — Using app-specific data folders +- @subpage example_thermo — Reading data from a 1-Wire thermometer + +You can find more app examples in the [repository on GitHub](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/examples). */ diff --git a/documentation/doxygen/expansion_modules.dox b/documentation/doxygen/expansion_modules.dox index c38bb2923..5e9731b02 100644 --- a/documentation/doxygen/expansion_modules.dox +++ b/documentation/doxygen/expansion_modules.dox @@ -3,6 +3,6 @@ Expansion modules are special pieces of hardware designed to interface with Flipper's GPIO connector, such as the [Video Game Module](https://shop.flipperzero.one/collections/flipper-zero-accessories/products/video-game-module-for-flipper-zero). -- @subpage expansion_protocol - Transport protocol for smart expansion modules +- @subpage expansion_protocol — Transport protocol for smart expansion modules */ diff --git a/documentation/doxygen/file_formats.dox b/documentation/doxygen/file_formats.dox index 47c2362cf..2ec780d01 100644 --- a/documentation/doxygen/file_formats.dox +++ b/documentation/doxygen/file_formats.dox @@ -9,5 +9,6 @@ Descriptions of various file formats used in Flipper Zero, grouped by applicatio - @subpage lfrfid_file_format - @subpage nfc_file_format - @subpage subghz_file_format +- @subpage heatshrink_file_format */ diff --git a/documentation/doxygen/header.html b/documentation/doxygen/header.html index cd3ea49e7..5cc0aba38 100644 --- a/documentation/doxygen/header.html +++ b/documentation/doxygen/header.html @@ -48,11 +48,11 @@ $extrastylesheet - Logo + Logo -
$projectname $projectnumber +
$projectname $projectnumber
$projectbrief
diff --git a/documentation/doxygen/index.dox b/documentation/doxygen/index.dox index 78055caad..7bd9024a1 100644 --- a/documentation/doxygen/index.dox +++ b/documentation/doxygen/index.dox @@ -1,26 +1,26 @@ /** @mainpage Overview -Welcome to the Flipper Zero Firmware Developer Documentation! +Welcome to the Flipper Developer Documentation! -This documentation is intended for developers who want to modify the firmware of the Flipper Zero. +This documentation is intended for developers interested in modifying the Flipper Zero firmware, creating Apps and JavaScript programs, or working on external hardware modules for the device. -If you are looking for the user manual, please visit the [User Documentation](https://docs.flipperzero.one/) instead. +If you are looking for the user manual, please visit the [User Documentation](https://docs.flipper.net/) instead. -The documentation is divided into several sections, with all of them accessible from the sidebar on the left: +The documentation is divided into several sections. All of them are accessible from the sidebar on the left: -- @ref applications - Writing applications for Flipper Zero -- @ref system - Understanding the firmware's internals -- @ref file_formats - Saving and loading data to and from files -- @ref dev_tools - Hardware and software tools for all kinds of programming -- @ref expansion - Additional modules to expand Flipper's consciousness -- @ref misc - Various useful pieces of information -- @ref js - JS-based scripting engine documentation +- @ref dev_tools — Hardware and software tools for all kinds of programming +- @ref system — Understanding the firmware's internals +- @ref applications — Developing apps for Flipper Zero +- @ref js — JS-based scripting engine +- @ref expansion — Additional modules to expand Flipper's consciousness +- @ref file_formats — Saving and loading data to and from files +- @ref misc — Various useful pieces of information -Aside from the manually-written documentation files, there's also a few automatically-generated ones at the bottom of the sidebar: +These sections are all manually written. There are also a few automatically generated ones at the bottom of the sidebar: -- [Data Structures](annotated.html) - Every data structure in a list -- [Files](files.html) - Source file tree with easy navigation +- [Data Structures](annotated.html) — Every data structure in a list +- [Files](files.html) — Source file tree with easy navigation These are generated from the source code and are useful for quickly finding the source code or API documentation for a particular function or data structure. */ diff --git a/documentation/doxygen/js.dox b/documentation/doxygen/js.dox index f4faf668f..33ac078d9 100644 --- a/documentation/doxygen/js.dox +++ b/documentation/doxygen/js.dox @@ -1,21 +1,22 @@ /** @page js JavaScript -This page contains some information on the Flipper Zero scripting engine, which is based on a modified mJS library +This page contains some information on the Flipper Zero scripting engine, which is based on a modified mJS library. - [Brief mJS description](https://github.com/cesanta/mjs/blob/master/README.md) - @subpage js_data_types - @subpage js_builtin -JavaScript Modules -JS modules use the Flipper app plugin system. Each module is compiled into a .fal library file and is located on a microSD card. Here is a list of implemented modules: +## JavaScript modules -- @subpage js_badusb - BadUSB module -- @subpage js_serial - Serial module -- @subpage js_math - Math module -- @subpage js_dialog - Dialog module -- @subpage js_submenu - Submenu module -- @subpage js_textbox - Textbox module -- @subpage js_notification - Notifications module +JS modules use the Flipper app plugin system. Each module is compiled into a `.fal` library file and is located on a microSD card. Here is a list of implemented modules: + +- @subpage js_badusb — BadUSB module +- @subpage js_serial — Serial module +- @subpage js_math — Math module +- @subpage js_dialog — Dialog module +- @subpage js_submenu — Submenu module +- @subpage js_textbox — Textbox module +- @subpage js_notification — Notifications module */ diff --git a/documentation/doxygen/misc.dox b/documentation/doxygen/misc.dox index 0ef232ba2..f49a9524a 100644 --- a/documentation/doxygen/misc.dox +++ b/documentation/doxygen/misc.dox @@ -3,7 +3,7 @@ Various pieces of information that do not fall into other categories. -- @subpage lfrfid_raw - Collecting raw data from LFRFID tags -- @subpage key_combos - Different key combination shortcuts for Flipper Zero -- @subpage universal_remotes - Creating and improving IR universal remote libraries +- @subpage lfrfid_raw — Collecting raw data from LF RFID tags +- @subpage key_combos — Different key combination shortcuts for Flipper Zero +- @subpage universal_remotes — Creating and improving IR universal remote libraries */ diff --git a/documentation/doxygen/system.dox b/documentation/doxygen/system.dox index 328717ea2..d7e42ed4f 100644 --- a/documentation/doxygen/system.dox +++ b/documentation/doxygen/system.dox @@ -1,13 +1,13 @@ /** @page system System Programming -Lower level aspects of software development for Flipper Zero. +Lower-level aspects of software development for Flipper Zero. -- @subpage unit_tests - Automated testing, a crucial part of the development process -- @subpage furi_check - Hard checks for exceptional situations -- @subpage furi_hal_bus - Access the on-chip peripherals in a safe way -- @subpage furi_hal_debugging - Low level debugging features -- @subpage hardware_targets - Support for different hardware platforms -- @subpage firmware_assets - Various files required for building the firmware -- @subpage dolphin_assets - Animations for the Dolphin game +- @subpage unit_tests — Automated testing, a crucial part of the development process +- @subpage furi_check — Hard checks for exceptional situations +- @subpage furi_hal_bus — Access the on-chip peripherals in a safe way +- @subpage furi_hal_debugging — Low-level debugging features +- @subpage hardware_targets — Support for different hardware platforms +- @subpage firmware_assets — Various files required for building the firmware +- @subpage dolphin_assets — Animations for the Dolphin game */ diff --git a/documentation/fbt.md b/documentation/fbt.md index fee003abb..59f6aa154 100644 --- a/documentation/fbt.md +++ b/documentation/fbt.md @@ -3,7 +3,7 @@ FBT is the entry point for firmware-related commands and utilities. It is invoked by `./fbt` in the firmware project root directory. Internally, it is a wrapper around [scons](https://scons.org/) build system. -If you don't need all features of `fbt` - like building the whole firmware - and only want to build and debug a single application, you can use [ufbt](https://pypi.org/project/ufbt/). +If you don't need all features of `fbt` — like building the whole firmware — and only want to build and debug a single app, you can use [ufbt](https://pypi.org/project/ufbt/). ## Environment @@ -40,7 +40,7 @@ To run cleanup (think of `make clean`) for specified targets, add the `-c` optio `fbt` builds updater & firmware in separate subdirectories in `build`, and their names depend on optimization settings (`COMPACT` & `DEBUG` options). However, for ease of integration with IDEs, the latest built variant's directory is always linked as `built/latest`. Additionally, `compile_commands.json` is generated in that folder (it is used for code completion support in IDEs). -`build/latest` symlink & compilation database are only updated upon *firmware build targets* - that is, when you're re-building the firmware itself. Running other tasks, like firmware flashing or building update bundles *for a different debug/release configuration or hardware target*, does not update `built/latest` dir to point to that configuration. +`build/latest` symlink & compilation database are only updated upon *firmware build targets* — that is, when you're re-building the firmware itself. Running other tasks, like firmware flashing or building update bundles *for a different debug/release configuration or hardware target*, does not update `built/latest` dir to point to that configuration. ## VSCode integration @@ -51,7 +51,7 @@ To use language servers other than the default VS Code C/C++ language server, us - On the first start, you'll be prompted to install recommended plugins. We highly recommend installing them for the best development experience. _You can find a list of them in `.vscode/extensions.json`._ - Basic build tasks are invoked in the Ctrl+Shift+B menu. - Debugging requires a supported probe. That includes: - - Wi-Fi devboard with stock firmware (blackmagic). + - Wi-Fi Devboard with stock firmware (blackmagic). - ST-Link and compatible devices. - J-Link for flashing and debugging (in VSCode only). _Note that J-Link tools are not included with our toolchain and you have to [download](https://www.segger.com/downloads/jlink/) them yourself and put them on your system's PATH._ - Without a supported probe, you can install firmware on Flipper using the USB installation method. @@ -62,70 +62,70 @@ To use language servers other than the default VS Code C/C++ language server, us ### High-level (what you most likely need) -- `fw_dist` - build & publish firmware to the `dist` folder. This is a default target when no others are specified. -- `fap_dist` - build external plugins & publish to the `dist` folder. -- `updater_package`, `updater_minpackage` - build a self-update package. The minimal version only includes the firmware's DFU file; the full version also includes a radio stack & resources for the SD card. -- `copro_dist` - bundle Core2 FUS+stack binaries for qFlipper. -- `flash` - flash the attached device over SWD interface with supported probes. Probe is detected automatically; you can override it with `SWD_TRANSPORT=...` variable. If multiple probes are attached, you can specify the serial number of the probe to use with `SWD_TRANSPORT_SERIAL=...`. -- `flash_usb`, `flash_usb_full` - build, upload and install the update package to the device over USB. See details on `updater_package` and `updater_minpackage`. -- `debug` - build and flash firmware, then attach with gdb with firmware's .elf loaded. -- `debug_other`, `debug_other_blackmagic` - attach GDB without loading any `.elf`. It will allow you to manually add external `.elf` files with `add-symbol-file` in GDB. -- `updater_debug` - attach GDB with the updater's `.elf` loaded. -- `devboard_flash` - Update WiFi dev board. Supports `ARGS="..."` to pass extra arguments to the update script, e.g. `ARGS="-c dev"`. -- `blackmagic` - debug firmware with Blackmagic probe (WiFi dev board). -- `openocd` - just start OpenOCD. You can pass extra arguments with `ARGS="..."`. -- `get_blackmagic` - output the blackmagic address in the GDB remote format. Useful for IDE integration. -- `get_stlink` - output serial numbers for attached STLink probes. Used for specifying an adapter with `SWD_TRANSPORT_SERIAL=...`. -- `lint`, `format` - run clang-format on the C source code to check and reformat it according to the `.clang-format` specs. Supports `ARGS="..."` to pass extra arguments to clang-format. -- `lint_py`, `format_py` - run [black](https://black.readthedocs.io/en/stable/index.html) on the Python source code, build system files & application manifests. Supports `ARGS="..."` to pass extra arguments to black. -- `lint_img`, `format_img` - check the image assets for errors and format them. Enforces color depth and strips metadata. -- `lint_all`, `format_all` - run all linters and formatters. -- `firmware_pvs` - generate a PVS Studio report for the firmware. Requires PVS Studio to be available on your system's `PATH`. -- `doxygen` - generate Doxygen documentation for the firmware. `doxy` target also opens web browser to view the generated documentation. -- `cli` - start a Flipper CLI session over USB. +- `fw_dist` — build & publish firmware to the `dist` folder. This is a default target when no others are specified. +- `fap_dist` — build external plugins & publish to the `dist` folder. +- `updater_package`, `updater_minpackage` — build a self-update package. The minimal version only includes the firmware's DFU file; the full version also includes a radio stack & resources for the SD card. +- `copro_dist` — bundle Core2 FUS+stack binaries for qFlipper. +- `flash` — flash the attached device over SWD interface with supported probes. Probe is detected automatically; you can override it with `SWD_TRANSPORT=...` variable. If multiple probes are attached, you can specify the serial number of the probe to use with `SWD_TRANSPORT_SERIAL=...`. +- `flash_usb`, `flash_usb_full` — build, upload and install the update package to the device over USB. See details on `updater_package` and `updater_minpackage`. +- `debug` — build and flash firmware, then attach with gdb with firmware's .elf loaded. +- `debug_other`, `debug_other_blackmagic` — attach GDB without loading any `.elf`. It will allow you to manually add external `.elf` files with `add-symbol-file` in GDB. +- `updater_debug` — attach GDB with the updater's `.elf` loaded. +- `devboard_flash` — Update WiFi dev board. Supports `ARGS="..."` to pass extra arguments to the update script, e.g. `ARGS="-c dev"`. +- `blackmagic` — debug firmware with Blackmagic probe (WiFi dev board). +- `openocd` — just start OpenOCD. You can pass extra arguments with `ARGS="..."`. +- `get_blackmagic` — output the blackmagic address in the GDB remote format. Useful for IDE integration. +- `get_stlink` — output serial numbers for attached STLink probes. Used for specifying an adapter with `SWD_TRANSPORT_SERIAL=...`. +- `lint`, `format` — run clang-format on the C source code to check and reformat it according to the `.clang-format` specs. Supports `ARGS="..."` to pass extra arguments to clang-format. +- `lint_py`, `format_py` — run [black](https://black.readthedocs.io/en/stable/index.html) on the Python source code, build system files & app manifests. Supports `ARGS="..."` to pass extra arguments to black. +- `lint_img`, `format_img` — check the image assets for errors and format them. Enforces color depth and strips metadata. +- `lint_all`, `format_all` — run all linters and formatters. +- `firmware_pvs` — generate a PVS Studio report for the firmware. Requires PVS Studio to be available on your system's `PATH`. +- `doxygen` — generate Doxygen documentation for the firmware. `doxy` target also opens web browser to view the generated documentation. +- `cli` — start a Flipper CLI session over USB. ### Firmware targets -- `faps` - build all external & plugin apps as [`.faps`](AppsOnSDCard.md). +- `faps` — build all external & plugin apps as [`.faps`](AppsOnSDCard.md). - `fbt` also defines per-app targets. For example, for an app with `appid=snake_game` target names are: - - `fap_snake_game`, etc. - build single app as `.fap` by its application ID. - - Check out [`--extra-ext-apps`](#command-line-parameters) for force adding extra apps to external build. - - `fap_snake_game_list`, etc - generate source + assembler listing for app's `.fap`. -- `flash`, `firmware_flash` - flash the current version to the attached device over SWD. -- `jflash` - flash the current version to the attached device with JFlash using a J-Link probe. The JFlash executable must be on your `$PATH`. -- `firmware_all`, `updater_all` - build a basic set of binaries. -- `firmware_list`, `updater_list` - generate source + assembler listing. -- `firmware_cdb`, `updater_cdb` - generate a `compilation_database.json` file for external tools and IDEs. It can be created without actually building the firmware. + - `fap_snake_game`, etc. — build single app as `.fap` by its app ID. + - Check out [--extra-ext-apps](#command-line-parameters) for force adding extra apps to external build. + - `fap_snake_game_list`, etc — generate source + assembler listing for app's `.fap`. +- `flash`, `firmware_flash` — flash the current version to the attached device over SWD. +- `jflash` — flash the current version to the attached device with JFlash using a J-Link probe. The JFlash executable must be on your `$PATH`. +- `firmware_all`, `updater_all` — build a basic set of binaries. +- `firmware_list`, `updater_list` — generate source + assembler listing. +- `firmware_cdb`, `updater_cdb` — generate a `compilation_database.json` file for external tools and IDEs. It can be created without actually building the firmware. ### Assets -- `resources` - build resources and their manifest files - - `dolphin_ext` - process dolphin animations for the SD card -- `icons` - generate `.c+.h` for icons from PNG assets -- `proto` - generate `.pb.c+.pb.h` for `.proto` sources -- `proto_ver` - generate `.h` with a protobuf version -- `dolphin_internal`, `dolphin_blocking` - generate `.c+.h` for corresponding dolphin assets +- `resources` — build resources and their manifest files + - `dolphin_ext` — process dolphin animations for the SD card +- `icons` — generate `.c+.h` for icons from PNG assets +- `proto` — generate `.pb.c+.pb.h` for `.proto` sources +- `proto_ver` — generate `.h` with a protobuf version +- `dolphin_internal`, `dolphin_blocking` — generate `.c+.h` for corresponding dolphin assets ## Command-line parameters {#command-line-parameters} -- `--options optionfile.py` (default value `fbt_options.py`) - load a file with multiple configuration values -- `--extra-int-apps=app1,app2,appN` - force listed apps to be built as internal with the `firmware` target -- `--extra-ext-apps=app1,app2,appN` - force listed apps to be built as external with the `firmware_extapps` target -- `--extra-define=A --extra-define=B=C ` - extra global defines that will be passed to the C/C++ compiler, can be specified multiple times -- `--proxy-env=VAR1,VAR2` - additional environment variables to expose to subprocesses spawned by `fbt`. By default, `fbt` sanitizes the execution environment and doesn't forward all inherited environment variables. You can find the list of variables that are always forwarded in the `environ.scons` file. +- `--options optionfile.py` (default value `fbt_options.py`) — load a file with multiple configuration values +- `--extra-int-apps=app1,app2,appN` — force listed apps to be built as internal with the `firmware` target +- `--extra-ext-apps=app1,app2,appN` — force listed apps to be built as external with the `firmware_extapps` target +- `--extra-define=A --extra-define=B=C ` — extra global defines that will be passed to the C/C++ compiler, can be specified multiple times +- `--proxy-env=VAR1,VAR2` — additional environment variables to expose to subprocesses spawned by `fbt`. By default, `fbt` sanitizes the execution environment and doesn't forward all inherited environment variables. You can find the list of variables that are always forwarded in the `environ.scons` file. ## Configuration Default configuration variables are set in the configuration file: `fbt_options.py`. Values set in the command line have higher precedence over the configuration file. -You can also create a file called `fbt_options_local.py` that will be evaluated when loading default options file, enabling persisent overriding of default options without modifying default configuration. +You can also create a file called `fbt_options_local.py` that will be evaluated when loading default options file, enabling persistent overriding of default options without modifying default configuration. You can find out available options with `./fbt -h`. ### Firmware application set -You can create customized firmware builds by modifying the list of applications to be included in the build. Application presets are configured with the `FIRMWARE_APPS` option, which is a `map(configuration_name:str -> application_list:tuple(str))`. To specify an application set to use in the build, set `FIRMWARE_APP_SET` to its name. +You can create customized firmware builds by modifying the list of apps to be included in the build. App presets are configured with the `FIRMWARE_APPS` option, which is a `map(configuration_name:str → application_list:tuple(str))`. To specify an app set to use in the build, set `FIRMWARE_APP_SET` to its name. For example, to build a firmware image with unit tests, run `./fbt FIRMWARE_APP_SET=unit_tests`. Check out `fbt_options.py` for details. diff --git a/documentation/file_formats/NfcFileFormats.md b/documentation/file_formats/NfcFileFormats.md index 5b08c3471..da0b0a19d 100644 --- a/documentation/file_formats/NfcFileFormats.md +++ b/documentation/file_formats/NfcFileFormats.md @@ -38,7 +38,7 @@ Version differences: ### Description -This file format is used to store the UID, SAK and ATQA of a ISO14443-3A device. +This file format is used to store the UID, SAK and ATQA of an ISO14443-3A device. UID must be either 4 or 7 bytes long. ATQA is 2 bytes long. SAK is 1 byte long. Version differences: diff --git a/documentation/file_formats/TarHeatshrinkFormat.md b/documentation/file_formats/TarHeatshrinkFormat.md index 86c27a698..79b75416b 100644 --- a/documentation/file_formats/TarHeatshrinkFormat.md +++ b/documentation/file_formats/TarHeatshrinkFormat.md @@ -1,6 +1,6 @@ -# Heatshrink-compressed Tarball Format +# Heatshrink-compressed Tarball Format {#heatshrink_file_format} -Flipper supports the use of Heatshrink compression library for .tar archives. This allows for smaller file sizes and faster OTA updates. +Flipper supports the use of Heatshrink compression library for `.tar` archives. This allows for smaller file sizes and faster OTA updates. Heatshrink specification does not define a container format for storing compression parameters. This document describes the format used by Flipper to store Heatshrink-compressed data streams. diff --git a/documentation/js/js_badusb.md b/documentation/js/js_badusb.md index 78c49104c..b21126dfc 100644 --- a/documentation/js/js_badusb.md +++ b/documentation/js/js_badusb.md @@ -67,7 +67,7 @@ badusb.hold("CTRL", "v"); // Press and hold CTRL + "v" combo ``` ## release -Release a previously hold key. +Release a previously held key. ### Parameters Same as `press` diff --git a/documentation/js/js_data_types.md b/documentation/js/js_data_types.md index de1c896dc..bd3bb1f42 100644 --- a/documentation/js/js_data_types.md +++ b/documentation/js/js_data_types.md @@ -1,13 +1,13 @@ # Data types {#js_data_types} Here is a list of common data types used by mJS. -- string - sequence of single byte characters, no UTF8 support +- string — sequence of single byte characters, no UTF8 support - number - boolean -- foreign - C function or data pointer +- foreign — C function or data pointer - undefined - null -- object - a data structure with named fields -- array - special type of object, all items have indexes and equal types -- ArrayBuffer - raw data buffer -- DataView - provides interface for accessing ArrayBuffer contents +- object — a data structure with named fields +- array — special type of object, all items have indexes and equal types +- ArrayBuffer — raw data buffer +- DataView — provides interface for accessing ArrayBuffer contents diff --git a/documentation/js/js_math.md b/documentation/js/js_math.md index 296f01c62..12dae8fb3 100644 --- a/documentation/js/js_math.md +++ b/documentation/js/js_math.md @@ -290,7 +290,7 @@ math.pow(2, 10); // 1024 ``` ## random -Return a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range - which you can then scale to your desired range. +Return a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range. ### Returns A floating-point, pseudo-random number between 0 (inclusive) and 1 (exclusive). diff --git a/furi/core/thread.c b/furi/core/thread.c index 65787c0e0..3990dd63d 100644 --- a/furi/core/thread.c +++ b/furi/core/thread.c @@ -33,7 +33,7 @@ struct FuriThread { StaticTask_t container; StackType_t* stack_buffer; - FuriThreadState state; + volatile FuriThreadState state; int32_t ret; FuriThreadCallback callback; @@ -59,7 +59,6 @@ struct FuriThread { // this ensures that the size of this structure is minimal bool is_service; bool heap_trace_enabled; - volatile bool is_active; }; // IMPORTANT: container MUST be the FIRST struct member @@ -84,7 +83,7 @@ static void furi_thread_set_state(FuriThread* thread, FuriThreadState state) { furi_assert(thread); thread->state = state; if(thread->state_callback) { - thread->state_callback(state, thread->state_context); + thread->state_callback(thread, state, thread->state_context); } } @@ -124,7 +123,7 @@ static void furi_thread_body(void* context) { // flush stdout __furi_thread_stdout_flush(thread); - furi_thread_set_state(thread, FuriThreadStateStopped); + furi_thread_set_state(thread, FuriThreadStateStopping); vTaskDelete(NULL); furi_thread_catch(); @@ -207,7 +206,6 @@ void furi_thread_free(FuriThread* thread) { furi_check(thread->is_service == false); // Cannot free a non-joined thread furi_check(thread->state == FuriThreadStateStopped); - furi_check(!thread->is_active); furi_thread_set_name(thread, NULL); furi_thread_set_appid(thread, NULL); @@ -349,8 +347,6 @@ void furi_thread_start(FuriThread* thread) { uint32_t stack_depth = thread->stack_size / sizeof(StackType_t); - thread->is_active = true; - furi_check( xTaskCreateStatic( furi_thread_body, @@ -368,7 +364,7 @@ void furi_thread_cleanup_tcb_event(TaskHandle_t task) { // clear thread local storage vTaskSetThreadLocalStoragePointer(task, 0, NULL); furi_check(thread == (FuriThread*)task); - thread->is_active = false; + furi_thread_set_state(thread, FuriThreadStateStopped); } } @@ -383,8 +379,8 @@ bool furi_thread_join(FuriThread* thread) { // // If your thread exited, but your app stuck here: some other thread uses // all cpu time, which delays kernel from releasing task handle - while(thread->is_active) { - furi_delay_ms(10); + while(thread->state != FuriThreadStateStopped) { + furi_delay_tick(2); } return true; diff --git a/furi/core/thread.h b/furi/core/thread.h index d90ece85d..c320fdbc1 100644 --- a/furi/core/thread.h +++ b/furi/core/thread.h @@ -21,7 +21,8 @@ extern "C" { * Many of the FuriThread functions MUST ONLY be called when the thread is STOPPED. */ typedef enum { - FuriThreadStateStopped, /**< Thread is stopped */ + FuriThreadStateStopped, /**< Thread is stopped and is safe to release */ + FuriThreadStateStopping, /**< Thread is stopping */ FuriThreadStateStarting, /**< Thread is starting */ FuriThreadStateRunning, /**< Thread is running */ } FuriThreadState; @@ -80,10 +81,11 @@ typedef void (*FuriThreadStdoutWriteCallback)(const char* data, size_t size); * * The function to be used as a state callback MUST follow this signature. * + * @param[in] pointer to the FuriThread instance that changed the state * @param[in] state identifier of the state the thread has transitioned to * @param[in,out] context pointer to a user-specified object */ -typedef void (*FuriThreadStateCallback)(FuriThreadState state, void* context); +typedef void (*FuriThreadStateCallback)(FuriThread* thread, FuriThreadState state, void* context); /** * @brief Signal handler callback function pointer type. diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index e808f0748..7e612de86 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,75.0,, +Version,+,76.0,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index ffc57a840..aba86f720 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,75.0,, +Version,+,76.0,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,,