GlobalCache GC-100

From LinuxMCE
Revision as of 01:22, 3 March 2008 by BasolOrico (Talk | contribs) (cnarolellitr)

Jump to: navigation, search

digital slr camera link elected band activated sludge us fiscal policy 2005 anna kournikova sexy domain tenerife weather hydrocortisone most point in a nhl season folate deficiency anemia alliance gaming nfs u2 cheats ps2 3 millionare spot ways keoki boy music wife breeder 3 buy rose shrub zone arrangement basket edible fruit rhonda britten snow plow part importance of economics to man minneapolis dating service camera casio cheap digital mowbray golf club 100 sexiest women india city maps teaching career requirement fact monster.com utah phone directory jag tv show zyprexa attorney yogi tea get regular red vs blue 2 clara county inmate jail santa free live sex cam email reminder relaxation music can you drink too much water land for sale southeast texas computer eblaster emailspy key logger monitoring spector spectorpro spy spy stealth surveillance tech recliner company camera coolpix digital l3 nikon attraction skegness tourist rummy debt reduction tips satellitetv el salvador flag diseny se k700i software link great picture pyrenees undie kidney pain norwegian cruise line reviews natalie portman fake pics god john lennon lyric chord scale finder guitar timothy dalton biography star computer services stoppies walking on sunshine feminizing will template for florida space saver tv food high potassium art cover dvd return superman school jokes nuts nutritional info new york computer software store accessory big dog motorcycle carnival cruise discount tight miniskirts legs county map tennessee hispanic naked woman placements recruitment 30 06 weatherby mercedes benz houston answering dummy dummy interview question tough company search site shipping cars gay firemen kimber handguns for sale listen to pat benatar heartbreaker nice body women sucking nipples i love ny woodlice nj financial planner celebrity home bedroom chaise lounge chaise lounge mmf bisexual porn socket 462 processor car insurance rates cunninglingus bela bhatt bing chen fleck jie mohan vishwa messenger bags wenger wrist watch riled dictionary wdve steeler songs free giantess video clips bi threesome i-9 form pokemonmisty magic springs ar self castration testicle business home opportunity work site links cheap loan long payday term reading beer festival 2006 san clemente site myspace.com baby girl name ten top webmap underlid globe shoes tree ylang ylang futureama link porn x.org ati tv capture software desktop computer 2007 festival florida strawberry pop muzik lyrics lucky chinese numbers numerology air cutting tool sammy davis jr. dive watch petite womens clothing catalog tea time linens wholesale lou armstrong swinging couples homepages gallery jjjs thumbnail belltech punisher apparel carlton stump grinder major difference between windows nt and windows 2000 motorcycle helmets wholesale muscadine big balls advantage comparison difference height domain relationships mcinnes cooper url recreational fishing tv theme park misting homemade male masturbation toys heart beat electric fly swatter free latina porn educational free game kid online real estate leesburg va bang black gang horrible mill puppy san gabriel valley office space for rent losing weight hypnosis tissue paper flowers buy codeine promethazine transfer case bi curious trees loose their leaves free electronic fax kohler sinks interaction between endogenous human capital search exe spyware microsoft anti virus free downloads free online repair manuals mobile phone directory texarea verizon residential phone service nursery rhymes mp3 downloads tiki island underwear http key chain toy mathematical application for the management life and social science osu edu.com california used car dealership bad credit home loan mobile people adult friend finder com teen crush quiz taser guns air soft pellet gun acclaim photography ariston flower u.s. constitution history how to draw spider man count basie making love to a virgin vented gas log set verizon residential phone service find a travel partner lortab buy line vegetable seed adaware free code coupon depot office economics terms glossary wisconsin search engine ranking prints posters art xxx free poker table plan sharper image ultrasonic jewelry cleaner shailendra group

GC100.jpg

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 the GC100, it finds 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.

There are several other devices that support learning of infrared codes : IRTrans, Tira, USB_UIRT.

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.

Sensors

The gc100 jacks are by default configured as IR transmitters, but they can be configured to function as sensors. The sensors are, in their most basic form, two wires connected to a jack plug. When you cross them, a "sensor tripped" event is emitted. I am not currently aware of how this is supposed to function, who will intercept the event and how will it react to it. One idea for using a sensor is attaching a doorbell button to it, which, when pressed, will notify you in some way.

You must go into the gc100's web panel and set the input jack to 'sensor w/ auto notify' to use an i/r jack for a sensor.

How to

Install

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.

Changes in LinuxMCE 0710 beta 4

The way the gc100 is configured in the database changes in LinuxMCE 0710 beta 4. If you are upgrading from a previous release and have a gc100 set up, you will have to reconfigure it.

The device tree will now have children for each relay, transmitter and sensor port. These are autodetected depending on the settings made to the gc100 itself and updated as the settings change.

If until now you would put a TV directly under the gc100, you will have to put it under a transmitter child from now on. This will tell the gc100 which port to use to send the code, instead of sending it using all available transmitters like it did until now. This will allow you to add more IR devices which use the same codes without stepping on each other's toes, since the IR codes will be routed just to the target device. The old functionality is still in place and you can still add a TV directly under the gc100, but make sure you mark the checkbox that says "Don't autoconfigure" if you don't want the gc100 to manage its children, so your device remains in its place.

This is also true for relays. Add your lights, or other devices that support On and Off commands, under the relay children. The On and Off commands will be routed to the right relay this way.

Known Problems

MAC detection

--Nite man 06:03, 25 January 2008 (PST) To solve the MAC detection problem replace the function get_gc100mac() in the script /usr/pluto/bin/gc100-conf.pl by new one below:

sub get_gc100mac {
   my($mac, $page, $ret);

   `curl http://192.168.1.70/Commands.cgi -o gc100mac1 --silent`;
   `curl http://192.168.1.101/Commands.cgi -o gc100mac2 --silent`;

   open FILE, "gc100mac1";
   $ret = read FILE, $page, -s "gc100mac1";
   close FILE;

   unless($page) {
       open FILE, "gc100mac2";
       $ret = read FILE, $page, -s "gc100mac2";
       close FILE;
   }

   ($mac) = $page =~ /((?:[\dA-F]{2}-){5}[\dA-F]{2})/i;

   if($mac) {
       $mac =~ tr/\-/\:/;
       loggc("Mac Found $mac\n");
       system "rm -f gc100mac1 gc100mac2";
       return $mac;
   } else { exit 1 }

}

or apply that [gc100-conf.pl.patch]

Currently the support for the gc100 in LinuxMCE is broken, at least for some models or firmware versions. The /usr/pluto/bin/gc100-conf.pl script is for some reason unable to determine the gc100's MAC Adress after it has been reset to factory defaults. As a result it is only half configured and not added to the system properly.

The only known workaround [1] [2] at this time is to manually edit the perl script, and hardcode the MAC address of your gc100. In short, find this line in the script:

sub get_gc100mac {

Then insert this line immediately following it (replace 00:00:00:00:00:00 with the adress of your gc100):

return "00:00:00:00:00:00";

As a result it should look something like this now:

        exit(4);
  }
} 
    
sub get_gc100mac {
  
  return "00:00:00:00:00:00";
  
  `curl http://192.168.1.70/Commands.cgi -o gc100mac1 --silent`;
  `curl http://192.168.1.101/Commands.cgi -o gc100mac2 --silent`;
  open(FILE,"gc100mac1");
  @data1 = <FILE>;
  close(FILE);

Reset the gc100 to factory defaults if necessary and you should be able to add it from an orbiter as described above.

Another possible workaround might be described on the Plutohome wiki for the gc100, under Complete Manual Install.

Firmware versions known to be affected:

  • 2.4-06 (GC100-06)

Serial Port

The GC100's serial port does not work under LinuxMCE without a small modification, see: Re: GC100 + CM11 setup

The following commands should correct this issue (and make a backup copy just in case):

mv /usr/pluto/bin/gc100-serial-bridge.sh /usr/pluto/bin/gc100-serial-bridge.sh.backup
sed -e 's/false/0/g' /usr/pluto/bin/gc100-serial-bridge.sh.backup >/usr/pluto/bin/gc100-serial-bridge.sh

It basicly replaces false with 0 in the /usr/pluto/bin/gc100-serial-bridge.sh file. Afterwards a reboot may be in order.

Firmware version 3.0 and later

gc100 with firmware version 3.0 and later is Plug&Play, but not yet supported as such by LinuxMCE. It implements a DHCP client and also has a discovery beacon. Because it is able to get an IP address from the DHCP server, you won't be able to add it using the manual method describe here when using a default installation. You either have to use the completely manual installation procedure described on the Plutohome Wiki for gc100, if you know what IP address the DHCP server gave it, or temporarily disable the DHCP server on the core (write down the DHCP settings, because they are erased from the database when you disable the DHCP server from Pluto-Admin - you can also /etc/init.d/dhcp3-server stop, add the gc100 and /etc/init.d/dhcp3-server start, without erasing the database).

Implementation details

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.

Operating the relays, IR transmitters, and sensors

The gc100 software architecture uses two threads to communicate with the gc100 regarding relays, IR transmitters and sensors, one for sending messages (SocketThread) and one for receiving (EventThread). The reason for this is that the gc100 protocol isn't completely a request-reply protocol, even if it seems like that at first. The gc100 can initiate a transmission when a sensor is tripped, enough to break the request-reply paradigm. The program was designed to treat the communication as asynchronous. Messages are sent to the device without expecting a reply, and the replies are treated as independent events and state change reports, without linking a request to a reply in the program logic (except for the initialization phase).