From: David H, L. Jr. <dh...@co...> - 2005-12-05 06:01:38
|
Neil Cherry wrote: > > So the answer is: 'I'm confused!'. Looks like it depends. What we > need is to define an interface to a device. > > So to properly add an interface we need to modify mh, modify > Serial_Item.pm and create an interface.pm file. This is very > ugly! What am I going to do when I add an Insteon_Item to all > this? > I have played with mh off and on for several years, but I have not contributed much to this group. I spent most of this weekend working on a TI103.pm interface. I presumed the CM11.pm interface was the "holy grail" and decided that as best as humanly possible that I would make what I did in TI103.pm accept anything CM11.pm would accept. I found two test routines - test_cm11.pl and eg_cm11.plx. test_cm11.pl runs the CM11.pm interface through something like 98 different input strings. It overloads the serial I/O routines with dummies. basically test_cm11.pl verifies that CM11.pm properly parse legitimate input and returns the right results for alot of combinations of valid and invlid input. eg_cm11.plx runs the CM11.pm interface and lets it driver output to a serial device. eg_cm11.plx allows testing the ability of CM11.pm to properly driver hardware without the overhead of misterhouse. I created a test_ti103.pl from test_cm11.pl and basically have my TI103.pm almost to the point were it accepts all the same input as test_cm11.pl. It accepts the same stuff and bitches about the same stuff. That means I am atleast parsing the same input strings. From what I can tell there are no easy generalizations about the legitimate input to CM11.pm there is documentation inside CM11.pm explaining many commands, but nothing says the command strings will always come in pairs, or quads, or follow any specific format. There are just strings that are legitimate and those that are not. There are specs for particular "phrases", and there are some sort of macros that are more human readable forms of some commands - that also have to work. I have the actual X-10 commands that are critical to me mostly working (as tested by eg_ti103.plx) as well as possibly a few others that I do not really care about. What I have so far is far from finished, but it is fairly close to being able to do what I need. |