Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Official 5.4 Beta Release Thread
#21
5.3.921
  • The Caseta variant of the Lutron driver has to strip out telnet prompts, because there's no way to disable them in the Caseta, unlike with the RA2. Our method of doing that would fail if they ever changed the prompt, and they probably wouldn't even think it was a problem to do that (hence why telnet protocols suck.) So do a more fail safe scheme for stripping those out.
  • Apparently the Popp thermionic valve Z-Wave unit sends out it's values when it does a wakeup, so there is no need for us to do 'read on wake' on it. That's redundant, since we could only read on wakeup anyway. So mark them as unreadable, which will mean they will only get set by unrequested reports.
  • Put the Popp wakeup interval back to it's default of 15 minutes. We set it just because it doesn't support associations, and setting the wakeup is the only way for us to get us as the target for reports. But we set it a lot higher than its unusually low default.
  • Add a System::GetCurTimeStamp action command. Currently, there's no way to get the current local time stamp in actions, other than maybe using FormatTimeVal perhaps, which an inefficient and awkward way to do it. All times have been assumed in the past to come from fields, but there are uses for the current local time.
  • Update the System::GetDateParts and System::GetTimeParts action commands to accept [local] as a special case time stamp value, to represent the current local time.
  • Make sure that the installer picks up the local host name when upgrading the MS. The name may have changed or they may be migrating to another machine. This had actually already been done but a silly mistake meant the fix never actually got into the actual used data.
  • In the installer panel where you select what components to install, there is a 'use previous options' check box. If you have it checked, it disables the list of options so that you can't make changes. But that also prevents you from scrolling it up and down to see what options you have set. Change that so that double clicks in the list are just ignored when in previous options mode, then we can leave the list box enabled.
  • When the CML parser sees something like If (X+1) or A := X+1, the way that the tokenizer works, it comes out with X and +1, i.e. X and a positive number 1, which is not valid syntax. The + should be an addition operator in those types of cases. Same with subtractions. This requires a little trick to be played at the point where the recursive parsing process parses a left factor and is about to parse the right. If the tokenizer comes back with a numeric literal type, we look at the first character. If + or -, we instead force it to think we saw an add/subtract operator. Then we either eat the full token or just the next character as appropriate. There is never any scenario where a numeric literal is valid at that point. All of my tests and all of the CML drivers still parse just fine, so this tweak should not break anyone's CML code. But, if you have a CML macro that fails to parse after this upgrade, let me know. There is almost certainly be a trivial fix in your CML code; but, if not, I'll pull this change back out and throw up a new version quickly until we can figure out what is going on with your code.
  • In the change over to the 5.x UI, though we catch unhandled exceptions in the main window msg loop, they aren't getting logged, so we wouldn't know if they were happening or not. So do that.
  • Caught another bug in the tray monitor with some more safe enum stuff. Could be a candidate for what's causing it to fall over for some folks. And added more logging and whatnot to try to figure out what is happening. Actually it's the same basically as the previous one, of a status queue collection that was supposed to be type safe not getting set thusly, and also ending up with a very small capacity which might have caused problems. Made worse by the fact that it wasn't taking into account the status queue could be full, which would have effectively never happened but with the very small capacity it might.
Dean Roddey
Explorans limites defectum
Reply
#22
5.3.922
  • Take a first step towards being able to use the new chunked file storage scheme that was added a while back, such that we can drastically reduce the time required for auto-gen/template scaling when you have only changed some files. We need to expose the meta values in all of the read/write methods that wrap the data server client proxy, so that we can can set extra meta values on generated files and store original version info for later checking against the originals to see if we even need to do each file.
  • Use the above stuff to allow the template scaling dialog to only process those templates and images that have changed since the previous output. This will require you do one full scale first to get the previous version info stored of course. There is now a 'clear target' check box. We used to just clear the target scope and then fill it up again, but obviously we can't do that since we need to compare version info (stored in the target files) against the originals. So any no longer used stuff will still be there now. You can use the clear target option to clear the target and do a fresh (full) re-scale when desired.
  • Update the Z-Wave thermostat SP CC to support setting set point range values in the device info file, so that we can set device specific set point ranges. It'll default to something broad but reasonable if not. The owning unit can also set them directly if it's some generic handler (where it can't be set in the device info file, probably it would be from user options.) Force a rescan on any set point enabled devices to pick up these changes.
  • There was a problem in some of the thermo related CCs where a call that was supposed to be passing it on to the parent class was actually calling a different method on the parent class, which was causing problems.
Dean Roddey
Explorans limites defectum
Reply
#23
5.3.923
  • In the Caseta variation of the Lutron driver, check the reply to the password. It's a telnet type protocol and they could change these prompts any time but at least check it for "login>" If we get that, then we assume the name/password was rejected and don't connect.
  • Since we often need a terminal type program, and because there aren't many that are free and most are a lot more complicated than required, create a simple command line based terminal program that we can just ship with CQC. That way there's always something there, and it can understand our virtual ports (GC-100, Just Add Power), and also our remote port server (though I've not yet added the setup for the port server yet.)

The new terminal program, as with all of the 'how to use this program stuff' is in the help under /Tools.
Dean Roddey
Explorans limites defectum
Reply
#24
5.3.924
  • Fix an issue with the encoding of the data format when sending out new thermostat set points in C scale.
  • Increase the Z-Wave driver's output queue size, since it can legitimately get a good number of msgs queued up during startup and we don't want it to get filled up and press the panic button.
  • Tweak the timeout settings on the Z-Stick a bit. We had cranked them up more over time, but probably they were too high now, causing us to waste too much time on responses that are never coming, and backing things up when that happens.
Dean Roddey
Explorans limites defectum
Reply
#25
5.3.925
  • Finally get around to upgrading our development system to Visual Studio 2017, and go through the usual horrendous process of figuring out where everything went to, what disappeared, what appeared, etc... and getting our development environment and release build process back up again.
  • Get rid of the dialog based low level popup in CIDKernel, and the old .rc file support we used to create. That lets us dump a fair amount of fiddly bits down in the lowest level platform area. Just use a simple message box to display the info. It won't look as good. If it's not acceptable we can always build a dialog on the fly. Either way we get rid of build steps and files.
  • Update the IDL compiler's enum support, now that we support the 'enum class' scheme, to allow the underlying type to be indicated since that is available now and is something useful.
  • The V2 Elk M1's client side driver had a goober in the thermocouple info class. The equality operator was returning a reversed result. So, if you defined any thermocouples, if there was no change, it would show up as a change you could never get rid of. If you actually changed it, it would then seem unchanged and so that modification wouldn't get saved.
  • In the system config stuff, if you add a custom tile, and select an overlay to go with it, the X button to remove that selected overlay doesn't do anything because it's not being looked for. So you can never remove that selection.
Dean Roddey
Explorans limites defectum
Reply
#26
5.3.926
  • The action trace window has a display glitch where it is scrolling the bottom line of the window along with the the content, so every line is underlined until you resize and make it redraw.
  • Finally finished a massive binge of updating the code base to support safe enums, and the related changes to the collection classes that that also involved. Lots of testing to find any glitches I might have introduced.
  • Update the V2 security device class to include Bypassed in the available zone statuses. This means that zone status triggers will now go out upon going into or our of bypass mode since it's now one of the zone statuses. In the vast majority of cases this should not affect anyone, but it's possible you are handling the states such that you assume you know all values and this is now an un-handled case. If you have a driver of your own that is to be V2 compatible, just add Bypassed as a valid zone state. Even if you don't initially (or cannot ever) make use of it, just add it as a state. If you do set it, be sure to report it as a trigger now.
  • Update the Elk V2 driver to support the above security zone status changes.
  • Update the HAI Omni V2 driver to support the above security zone changes. In this case since bypass is an arming state and not a security state, so we have to look at both now to get the state. If not bypassed arming mode, then use the regular zone status.
  • Update the DSC IT-100 driver to reflect the above security zone changes. Doesn't really report bypass I don't think, so ultimately no code changes. It uses the V2 helper to get the zone fields, which will now include the Bypassed state in the limits, it just won't ever be reported. It can be looked at again later to see about reporting bypass.
  • Update the security device simulator driver to reflect the above security zone changes.
  • The HAI Omni TCP2 driver has an issue in the limits for the zone arming mode. It's using the area arming mode limits instead of the zone arming mode limits. That works until you bypass a zone, then it tries to store a value that isn't in the limits string.
  • The web camera widget doesn't allow SetURL/SetWebURL in the OnPreload so that it can be set up dynamically during the template loading for subsequent use as the default URL in the load.
  • There can be some response issues in the interface editor if you have a field selected and its driver no longer exists. When you select that widget the field is used to do some things and they time out because the driver isn't there. This is because the various helper methods have timeouts to deal with the possibility that the thing just isn't quite there yet and to handle possible slow responses in unusual conditions. But in this case, there's no failure, we get a reply and the entry just isn't there. So we need a 'quick check' mode for these things. If we get a valid response from the name server and it just says no, then give up right then. If there are comm failures we can retry because something is probably wrong. Just applied it a couple known places where it can help, others may show up in the future.
  • Uggh... Somewhere during the new chunked file format changes, the setting of the interface engine to designer mode during the upgrading of the template files by the installer got lost. When the interfaces are loaded in non-designer mode, it assigns default ids to all widgets that don't have explicit ones. If we read/write a template in non-designer mode, these get written into the templates, which is really annoying. I've fixed the setting of the flag but I'm going to have to get these stupid default ids removed by going through every template during the upgrade and finding any with default ids and seeing if they are actually referenced anywhere and removing the ids if not. I can't just blindly remove them since this has happened in the past and someone may have ended up actually using those ids. AND I JUST NOTICED it didn't work in the actual release build, so they are still there. Oh well, I'll try again next time.
  • The CQC services are made dependent on some basic networking related services, so that it won't come up too early in the system startup process. One of them is DHCP, which prevents that service from being stopped without stopping the CQC services. It's one that we can probably do without, so remove it from the dependency list. This will only happen on new installs since it doesn't recreate the service entry if it exists.
  • As access to network resources gets weirder and weirder between Win10 and Win7, and since some folks will use a NAS and such, add support for making a connection to a remote directory with login info. As a first test of this, update the CQSL repo driver to take a username/password. This means that the App Shell service doesn't have to be logged in under an account that has rights to the target path (though general rights to access shared resources may still require you use some non-default account for the service.) Leave them blank if you don't need them and the credentials of the account the driver (app shell service) is running in will be used, as has been the case up till now. If this is found to be working well, we can update some others like the file tag repo maybe. You'll have to do a reconfigure to pick up the new driver prompts if you already have the CQSL repo driver installed.
Dean Roddey
Explorans limites defectum
Reply
#27
5.3.927
  • The recent work related to safe enums broke the Squeeze Center. These changes caused us to have to set max sizes of collections, whereas before they were often just left to grow. That's good and bad, since we now catch something growing out of control. But apparently in this case I set the limits on locals a bit too small. This driver had a method with a large number of locals.
  • Have the ORB generate bitwise AND and OR operators for enums that are marked as the bitmapped kind. This will let us more naturally do some types of checks than the current scheme of using some bit testing helper methods. We could do logical versions, but they aren't as useful generally as the helpers.
Dean Roddey
Explorans limites defectum
Reply
#28
5.3.928
  • There are some bits in the triggered event filter evaluation that can use the new 'quick check mode' stuff I added a couple drops back, to prevent a reference to a non-existent driver moniker from slowing things down.
  • Add a 'Serialized execution' flag to triggered events, and update the editing tab to include setting/clearing this flag. Setting this means that each instance of that triggered event that passes the filters and gets queued up, will be processed one at a time, they can't overlap. This can help avoid some significant complications that might otherwise arise. In other cases, you may want them to, since they represent unrelated things.
  • Update the event server to correctly handle the new serialized triggered event capability. This involves a fairly significant restructuring of the logic, but it was also significantly cleaned up in the process. It seems to be working well.
  • Add a new statistic to the event server, to track number of worker threads busy. This might help with diagnosing issues in the field.
  • There's not any higher level discussion of global actions. There's just the stuff in the tools section about the editing of them. So add a section in More Details and refer to that in the Big Picture action stuff.
Dean Roddey
Explorans limites defectum
Reply
#29
5.3.929
  • The Scintilla editor engine doesn't handle the standard Ctrl-C/V/X/Y/Z key combinations. I tried previously to handle this by having the CML editor main window provide accellerator keys for those and call to the editor to push them in from the outside. However, this doesn't work right because it also prevents the entry fields in the search/replace tab from seeing those keys. So I got rid of that and intercepted those keys instead via sub-class of the Scintilla window. This now works correct.
  • The last round of enumeration stuff broke the PDL driver and I didn't catch that.
  • Make the remote port server's client and server side chat stuff generate a notification sound when a message comes in. Otherwise you have to watch it constantly.
  • The new Z-Wave driver's unit report generation guy doesn't catch it is you ask for a report on a unit that has not been id'd yet, which causes an error because the unit handler hasn't yet been set.
Dean Roddey
Explorans limites defectum
Reply
#30
5.3.930
  • Oops the changes to support serialized triggered events introduced an issue where it used the wrong class to store the event, one that doesn't handle generating the right type of runtime values object when the action engine asks for it, so only the base runtime values were available, not the ones related to the event trigger info that caused the event to be run.
Dean Roddey
Explorans limites defectum
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Official 5.4 Beta Discussion Thread Dean Roddey 334 22,612 02-15-2019, 03:20 PM
Last Post: Dean Roddey
  Official 5.3 Beta Discussion Thread Dean Roddey 815 119,220 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.3 Release Thread Dean Roddey 27 6,193 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.2 Beta Discussion Thread Dean Roddey 244 77,407 10-14-2017, 07:57 PM
Last Post: Dean Roddey
  Official 5.2 Beta Release Thread Dean Roddey 13 7,650 10-09-2017, 06:49 PM
Last Post: Dean Roddey
  Official 5.1 Beta Discussion Thread Dean Roddey 453 176,218 05-16-2017, 03:45 PM
Last Post: Dean Roddey
  Official 5.1 Beta Release Thread Dean Roddey 28 17,518 05-12-2017, 05:44 PM
Last Post: Dean Roddey
  Official 5.0 Beta Discussions Dean Roddey 2,019 453,903 11-09-2016, 04:34 PM
Last Post: Dean Roddey
  Official 5.0 Beta Release Thread Dean Roddey 15 12,370 11-01-2016, 10:32 AM
Last Post: Dean Roddey
  How to obtain Beta versions? willsauter 3 3,197 07-15-2016, 04:57 PM
Last Post: willsauter

Forum Jump:


Users browsing this thread: 1 Guest(s)