Fixed a problem with “set picture” verb on 10.5 and 10.6
Fixed a potential crash when dragging a unit from one list to another.
lots of work behind the scenes in the “views” section, these are in progress and unfinished and you should test your views to make sure they all still work.
added a new view feature of “control” which at the moment offers only 1 setting for an iPhone style toggle that you can add to a view by just dragging the unit out of any list and into a new view.
created a default setting for the unit being dragged into a view rather than just being an invisible rectangle like previously.
Begin support for the RFX Transmitter.
Fixed a few dangling apple event descriptor leaks.
New weeder plugin version now sends updates at startup rather than events so that you wont get an ON for any weeder digital IO deivces that are already on, but any that are not will be conformed to the current state.
New weeder plugin support for analog output card, beta support now.
Added “kaku house address” field to the RFX Transmitter screen if you have Kaku devices to control.
Added 2 kaku device types to the device type popup for the RFX Transmitter interface, Kaku and Legacy Kaku.
renamed “lastditch” to “xtension background helper” to avoid confusion and fear
added preference to not run the background helper and restart during daylight savings time
included fix for truncated packets from the USB RFX device. This fixes a specific problem, but not likely every problem. You will still see packets occasionally that will not parse and this is OK, but you wont see nearly as many of them anymore.
Improved the usability of the manage script window so that you can type ahead to select one by name and hit return to edit it.
Added “bytesAsList” option to data sent to a DIY interface script. It's now the same as the data passed to the interface error script. 2 parameters are passed, (DataAsString, BytesAsList) it's the same data but the second one is an apple script list of the individual byte values to make numerical processing easier.
Added a list of bitwise and byte manipulation verbs to make such low level handling of bytes and bits easier in AppleScript
number to hex: pass any number and returns a string with the value in hex
hex to number: takes any string containing hex values and returns an integer
bitwiseAND: pass a list of 2 numbers or number strings and returns the integer of them added together. For example:
write log (bitwiseAND {32, ”&b00101100”} –with ”&b” denoting binary and ”&h” denoting hex and ”&o” denoting octal and ”&d” denoting decimal (but decimal is assumed if there is no prefix)
bitwiseOR (same as AND)
bitwiseXOR (same as AND)
shift left 32 by 2
shift right 8 by 1
text to number (takes any string as described in the bitwiseAND entry and returns a number.
number to binary (takes any byte and returns the binary number in a string of 0's and 1's can be used to check individual bits of a byte by looking at (if the second item of TheBinaryString is “1” then it's on)
re-enables the checking for large time changes in the heartbeat script. This was originally to catch the daylight savings time change and restart the program but it caused more pain than pleasure because it could also have been triggered by long script timeouts and on some machines it failed to restart silently. This version re-enables this check but at a better calculated interval to make it better immune to both of those problems. It has the added benefit of making the program more robust to crashes of any type. I dont get many reports of issues that cause actual crashes, but if one were to happen to you after updating to this version the program will restart within a few seconds. Try just force quitting it for a bit of fun.
removed the auto restart if the program is held out for a long period of time as this was causing problems for some folks and didn't really solve the problem it was supposed to for the others.
Now attempts to load global scripts even if the creator/file type is set wrong on them for some reason inside the database.
Improved handling of unknown packets, more things that aren't obviously oregon packets are now passed properly through to the handler created in build 777. NOTE one important change though is that the “length” byte of the oregon packet is now also passed through so if you built other handling based on the data as passed in 777 you will receive one extra byte at the beginning. Packets like those from HomeEasy devices and other devices currently not directly supported by XTension but supported by the RFX interface should now be passed properly though. Several of the startup packets also fall into this group though so you may receive more packets in the handler than before.
In order to manually process packets that XTension currently only logs an error for you first need a global script named “Interface Error Script” which is run in response to any interface error with the verb “ThisInterface” set to the name of the interface that called it. Next you need to create a handler in the script to receive the packets like:
on UnknownPacket( ThePacketAsString, ThePacketAsArrayOfBytes)
this passes 2 parameters, the first is an unprocessed string of the data. But since some packets are not really characters and applescript makes it hard to deal with bytes sometimes given text encoding and all that I am also passing the same data as a list of numbers corresponding to the bytes. like {12, 45, 15, 0, 0, 99, 250… etc}
If you wish you can just return from the handler at any time and a regular error with the debug information will be printed to the log. However, if you wish to suppress the error message because you've handled it then you can return true from the end of the handler telling XTension that you took care of it and it doesn't need to log the error. An error may still be logged from the ISF handler if the packet is not recognized at least as a known protocol. This error cannot be suppressed, but the debug output with the byte lists can be. Keep in mind though that if you create a blank handler that does nothing but return true it will reduce your log clutter but at the cost of collecting data that might lead to figuring out what it is you're receiving.
on MakeBottleSpin()
then in any other script in the program you can do a
tell xInterface “Bottle Interface” to MakeBottleSpin()
Note that inside the handlers of an interface script the ThisInterface verb is always set to the interface you're telling even if you're doing so from an event triggered by another interface. This makes it easier to share scripts between multiple interfaces.
beta support for the weeder technologies Solid State Relay module (WTSSR-M)
Continued updates to the UPB subsystem with the ability to program most light switches to change their address, set their dimmable flag and default ramp rate as well as turn on and off the reporting of local state changes via the switch.
Update to the CM15 interface to support sending X10 wireless commands.
numerous UPB related fixes and additions
fixed packet length calculation so that it now works with only a single repeat specified
implemented the blink applescript verb. See dictionary blink (unit name) rate (10)
add link and delete link verbs now work but linked units do not update in the database by themselves yet
no longer requires manually placing a unit in setup mode before issuing the add or delete link command
fixes a UI problem with the transmit count increasing by one every time you edited the unit.
Changes include:
Sorted out the error displayed when a truncated or corrupted Oregon Scientific packet is received. Instead of a full page of stack trace you just get a single line of standard error message.
In the Unit Properties window you can now manually edit a double precision number in the UI where before it told you this data type was not editable.
Changes include:
Fixed the receiving of wind speed and wind direction from Oregon scientific weather stations.
Fixed the annoying tendency of the manage global scripts window to redraw itself loosing your selection just as you were looking for something.
Added a percent resize parameter to the applescript verb to get the current frame from a video stream.