gc100 is a device which allows you to have remote connection almost anywhere. It's a network device which will forward all your data to :
- couple of serial ports
- IR senders and/or sensors
- several relays
For more details about the product check manufacturer web site.
Send IR codes
LinuxMCE implementation of GC100 assumes that in device tree we'll have children and the messages are actually addressed to them instead of gc100 itself.
So when you are sending "ON" to TV controlled by gc100, the message is routed to gc100, it fings infrared code for "ON" for that specific TV, sends a command to gc100 to send a specific infrared sequence, which will blink IR sender connected to specific port, and the TV will turn on.
The only two commands that GC100 implements itself are : CMD_Send_Code used to test which IR is suitable for your equipment and CMD_Learn_IR used to learn new IR codes.
Learn IR codes
The learning device is actually unrelated to gc100. It may be plugged into one of gc100's serial ports (don't forget to set them to 9600 bps), or in regular serial port, just be sure you specified right port in gc100 device data.
Learning is done from web page. When clicking "Learn" gc100 will start a thread that will try to get data from the port. If nothing is received in 30 seconds the thread will die. The page will continue to refresh trying to see if anything was added, but after 30 seconds it's useless.
The device is not quite plug&play. You have to perform a factory reset and to add it from orbiter ("Add GC100" button).
A script will do some tricks with ip, will submit some pages on gc100's interface and so on. It will install needed software and after that it should say that device is ready to use (don't forget to quickreload)
Before the first use
- Insert proper wires in relays, devices in serial ports, IR LEDs and/or sensors.
- Go to device's webpage and set proper inputs/outputs, baud rates and so on.
- Add child devices in LinuxMCE-admin webpage and set proper device data to match the wiring.
This should do it.
In gc100.cpp there is a lot of code for format conversion and other stuff. Practically it's not a big deal it receives a command, find a proper IR sequence and sends it to gc100.