Giter Site home page Giter Site logo

securecloud-biz / irp_classes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from msillano/irp_classes

0.0 1.0 0.0 1013 KB

This is an 'execution process' for IRPs, extended to encode and decode IR remote commands, in php.

License: GNU Lesser General Public License v3.0

C++ 3.02% CSS 0.43% PHP 92.14% HTML 4.41%

irp_classes's Introduction

irp_classes

This php classe implements the core algorithms required for working with IR remote controls, i.e. encode and decode RAW IR commands, using informations about the IR protocol in 'IRP notation'. The irp_classes is an 'execution process' for IRPs, extended to encode and decode processes of IR raw streams.

In this library you also found some methods to handle RAW data streams, without IRP, for 'learn and repeat' applications. irp_classes was designed to help me (and you) to build good applications using IR Remote Control, like media home automation, with known IRPs and not for analysing or reverse-engineering unknown IR protocols, because for that are many better applications (IRremote, IrScrutinizer etc..).

The global desing is different from usual: Arduino (or other hardware) does only very simple tasks: to receive and to transmit RAW IR signals. All the work is done on PHP, and it is universal, based on IRPs, no size or protocols limits. The irp_class can be used with a big database in WAMP environment, as I do in remotesDB (https://github.com/msillano/remotesDB), library and demo application for replica of any IR remote control (air condioners included).

To store and retrieve IR commands you have many options:

  • RAW: big size but fast, car it not requires IRP or processing (format like RAW-0 or any compressed version: RAW-1,RAW-2)
  • HEX: small, but requires an IRP (format like BIN-1 or BIN-2)
  • DATA SET: smallest and significant (like {D=7,F=0x3F})

With this library you have also 2 test pages:

  1. Test cases for the library irp_classes: encode + decode. This test don't requires hardware. It produces a RAW IR stream, then decodes it. See examples/example_Fujitsu_aircon_modified_test.pdf.
  2. (receive) + decode and analyse test. This demo can run with capturing HW (Arduino) or it can use some recorded IR RAW data. See examples/example_NEC1_decode.pdf.

Arduino: the HW schema and the Arduino sketch can be found in the dir 'Arduino'

LIMITS

  • Raw stream receive precision = +/- 1 microsecond (with Arduino uno Rev.3: +/- 2 microseconds)
  • Raw transmit frequencies: no limits (with Arduino uno Rev.3: 30KHz - 57 KHz)
  • Raw receive buffer size: no limits (with Arduino uno Rev.3: 300)
  • Raw transmit size:no limits (with Arduino uno Rev.3: 300)

WORK IN PROGRESS project, now composed of following modules:

  1. irp_classes (https://github.com/msillano/irp_classes): base classes and libray to work with IRP and RAW IR streams. Demo: (receive) + decode and analyse IR commands.

  2. remotesDB (https://github.com/msillano/remotesDB): MySQL DB for IRP applications and related php tools. Demo: replica of any remote control in DB.

  3. remotesDBdiscovery (https://github.com/msillano/remotesDB): This extension of remotesDB is for the management of new remote controls, with 100+ IRP

  4. USBphpTunnel_fifo (https://github.com/msillano/USBphpTunnel_fifo): This Android app allows you to use a TVbox (e.g. MXQ) as stand alone web server running remotesDB, talking via USB with an Arduino board as IR interface.

INSTALLATION

Copy all in web area of your WAMP server: e.g. ' ...\apache\htdocs\www\phpIRPlib'.

optional: If you have Arduino-uno and an IR receiver: - See the dir Arduino

optional: Serial communications php-Arduino in windows: - Download and install 'PHP Serial extension' free from http://www.thebyteworks.com (with some limits).

note: If you have some different IR HW, modify irp_rxtxArduino.php to receive RAW data from your HW.

Arduino IR

irp_classes's People

Contributors

msillano avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.