Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Official 5.5 Beta Release Thread
#1
This thread is not for discussion, so please don't post here. It is for official 5.5 beta release information. There is a separate sticky thread for discussion.

To get across the 5.3.903 boundary (which introduced some significant internal plumbing changes) you have to first be on 5.3.2 or beyond, so upgrade to one of those first, then you can take the next step to the latest beta.

-------------------

Latest Version: 5.4.914
Confidence Level: 90

Download Link: https://www.charmedquark.com/Web2/Downlo..._4_914.exe

The subsequent posts list changes in each beta version...
Dean Roddey
Explorans limites defectum
Reply
#2
5.4.900
  • The CIDLib assert mechanism wasn't setting the file/line of the location that invoked the assert, it was doing the file/line of the handler that was invoked to build and throw the exception, which made it hard to figure out where the assert occurred.
  • Lower the minimum 5.x firmware version check in the Elk V2 driver that it uses to decide if counter queries are supported. Move it down to 5.2, which we know is working based on user systems.
  • Make it optional for TModule to adopt the installed program logger object. This allows for things like having the facility object (or some other thing) implement MLogger and install itself as the program logger. Previously it assumed it was receiving a dynamically allocated object and it would delete it.
  • There was a bug in the old Homeworks driver client interface, which was caused by the collection maximum element stuff being removed and me not getting it fully tested out.
  • Get rid of the old RIVA system, server and client. And we have to update the installer to get rid of it there, and the app shell since it no longer runs that server, and the release image builder.
  • Look at adding support for the Honeywell TH8320 thermo to the Z-Wave driver. This is by eye, but it looks pretty conventional and should work with the existing thermostat handler.
  • The old Lutron HW client side driver will time out when you save new config and have a large number of defined items. The server side is re-doing the processor setup and query of initial field values in the context of the config setting method, because there's nothing else that's going to make those initial field value queries happen. It takes so long the client times out. Normally that stuff happens in Connect() before the driver is online. Changing that will be a good bit of work, but first just try only doing the processor setup and login stuff from Connect() and skip that on config storage. See if that reduces the time enough to make the client happy.
Dean Roddey
Explorans limites defectum
Reply
#3
  • Get rid of a couple of the wee bits of ASM left in the code base, for the rotate left/right methods, and just move those up to platform platform independent, inline code done in C++. One less thing to worry about porting. The bulk byte swapping methods are still platform dependent since they can potentially get big speedups using local hardware.
  • Now that I'm using Visual Studio Code and it has syntax checking, I need to move the UNICODE define from the compiler command line generated by the build tool into the Windows per-platform defines header, so that it's seen by the syntax checking during editing. Otherwise, the IDE sees all ASCII versions of the APIs, which are not compatible with the wide character stuff I'm sending them and it marks lots of stuff as in error when it's not.
  • The SimpleFldClient CML class didn't get the new TimedFldChange2() method documented, which allows for sub-minute resolution.
  • Now that 5.4 is out, complete the previously begun work of creating a standard CQC server framework, so as to factor out most of the grunt work of setup and cleanup that the various CQC back-end services do, plus callbacks to let them customize where needed. This will make it easier to maintain and to change how servers work in the future, and it gets rid of probably the most significant code redundancy in CQC.
  • The installer is generating some no longer needed options for some of the servers, so get rid of those.
  • Update the data, event, logic, web, event, and driver servers to use the new server framework from above. A good bit of work, but it was well worth it.
  • Fix a silly error in the our core UPnP service action invocation method. Don't know if it really ever caused any issues, but it could have. It's used pretty much for all UPnP action invocation so that we can do them all generically, so it had plenty of opportunity.
  • Re-address the IV editor's alignment stuff to support align to initial selection again, which got lost in the previous version due to complexity in catching that up to a lot of changes. We need it to act reasonably both when lasso selection is done and when manual one at a time selection is done. In the latter case it should us the first one selected as the anchor for aligns. For spacing it's always the farthest ones used.
Dean Roddey
Explorans limites defectum
Reply
#4
5.4.902
  • Add support for namespaces to the CIDDocComp processor
  • The CQC Web Server which, along with the other CQC servers was updated in the previous drop to use the new 'server framework' I created to standardize the setup/cleanup of those programs, was still using some old data of his own when he should have been using stuff from the framework. So actions invoked from within the web server could fail due to insufficient rights.
  • Move more of the raw string stuff up out of the per-platform code to the platform independent code, to help minimize per-platform work.
  • Get the build tool mostly building on Linux. Not linking yet, and there are a few stubbed out methods, but the files are compiling, which was a big step of getting the build environment set up correctly.
  • Implement 'placement' style adding of elements to the by-value collections. This makes some things more convenient to do, and you get efficiency improvements out of it as well. Instead of constructing objects just to copy them into the collection, you just construct them in place. Making use of this will be an ongoing thing.
  • A long-hiding bug in the Z-Wave driver was found finally. If we get more than one nonce backed up from a unit, the method that finds the right nonce can get hung up.
  • There's a bug in the old Lutron Homeworks (non-QS) client side driver, which causes the attempt to add new items to fail.
Dean Roddey
Explorans limites defectum
Reply
#5
5.4.903
  • The composited style on the AI's main client window got lost somewhere along the line, making things flickery when resizing and whatnot.
  • Add support for the FortezZ MIMOLite Z-Wave unit.
  • Update the binary input stream system to support pushback. This will allow us to use streams in some places where currently we can't and have to use raw buffers.
  • The sys config global tab should be using + for the 'add new' buttons, not ... which means 'select'.
Dean Roddey
Explorans limites defectum
Reply
#6
5.4.904
  • All of the media renderer drivers derive from a common class. It sets up and initializes all of the standard renderer fields. It currently doesn't create some movie oriented ones, because they may not be used in all of them. But it knows what media types the derived renderer supports, so it should create and initialize those fields if movies are supported.
  • My changing over to use my new 'emplace' style collection element insertion support caused the Layout Template attribute for CABs to be in the attribute editor twice due to leaving a stray old insertion call.
  • Add a Busy flag to the SMS driver so actions can wait lock until it's sent the current message.
  • Rework the CIDBuild project definition file to make the stuff that projects use to indicate what platformats they support simpler (and allow that same stuff to be used by various blocks within projects where we might need platform specific things like tools options and include paths. And make it just skip altogether things that aren't for the current platform being built, otherwise it tries to expand macros and such that may not be defined on the current platform.
  • Update CIDLib to support weak pointers and deleters for counted and weak pointers. Not made use of yet, but it will be eventually to hopefully good effect.
  • If you do a save-all in the AI, all of the tabs that actually save need to redraw their headers to get rid of the asterisk.
  • Finish dealing with some side effects of trying to hunker down and get the inclusive/exclusive area issues really worked out. I was making it more complicated than it needed to be.
  • A lot of work on Linux support. CIDBuild is working now and I've been able to start working on add a Linux driver for the lowest level library, CIDKernel, which provides 85% or so of the platform encapsulation. That'll be an ongoing undertaking for a bit.
  • Bump the Z-Stick's UIRT timeouts up a bit to see if it helps with some timeout issues that some folks see. I'm guessing it doesn't and that it's units not responding or some such, but we'll see.
  • Add support for the Somfy ZRTSI blinds controllers to the Z-Wave driver, just two channels initially to see how this works.
  • The in place editor window is clipping the top border line off when invoked by the tree browser (as mostly seen in the AI's tree browser pane.) This is likely due to the above inclusive/exclusive work, so we come up one pixel short on vertical size now in the popup editor window when it's sizing to the tree slots.
  • The log monitor has developed a tick after an apparent fix to something else caused it to start picking up old messages when it loads up new incoming ones. Redo it to make use of our fancy new strong/weak pointer stuff that lets us avoid the problem previously being worked around, and make it work right again in the process.
  • The event server is trying to wait for paused event monitors to stop, but they were never started. So it makes it take longer to shutdown and logs an error because the thread stop failed.
  • Have the Explore Logs tab set the time column as the initial sort column.
  • The logic server should set its fields to error state initially so that, if values can't be stored for any fields, we don't get the warning about uninitialized fields when it comes online.
  • The logic server tab would continually push the focus back to any field whose config is in error each time it was asked to report its good/bad configuration status. It should only do that when you save, not during the periodic validity checks.
  • The logic server should provide better initial setup of the per-source field expressions based on the logic server field type.
  • When you add a new field to the logic server that takes an expression, the expression oriented controls should be disabled until at least one source field has been added, and disabled again if you delete the last source field.
Dean Roddey
Explorans limites defectum
Reply
#7
5.4.905
  • Add support for Insteon leak sensors (2852-222) to the ISY V2 driver.
  • Update the SMS driver to better support throttling of msgs. It has a Busy flag now which will remain set for five seconds after sending a message. It will reject msgs if they are sent while the Busy flag is set. So use a Devices::WaitFieldValue() to wait for the Busy Field to be False before you send. If you send faster than then the modem or the target service or someone along the line will generally just ignore the message.
  • Get rid of a fair bit of per-platform code by moving the file system tree deletion stuff up to the platform independent layer, working in terms of the more basic, underlying per-platform functionality.
  • More Linux platform support work, working through more CIDKernel Linux stuff.
  • Various performance improvements using new C++ capabilities implemented lately.
  • Add a new parameter parsing mechanism that will be very useful moving forward and save redundancy.
  • The fix to make all tabs clear their 'changes' indicator when a Save All is done created an unforeseen issue where saved triggered/scheduled events get saved to the Master Server but don't get pushed out to the Event Server, so you don't see them until a system restart. This has been fixed.
  • The client service is logging too much stuff if a media repo is configured but not online. So slow it down and log less when not in verbose mode.
  • Make the time column the initial sort column for the log monitor program, as was previously done in the log explorer tab in the AI.
  • Currently the logging core stuff is synchronous and the plugin loggers can queue and spool if they want. But this prevents a lot of optimizations. So move that queue and spool stuff into the core and let the spooler derivatives just be passive, and update to take advantage of a lot of optimization with new C++ capabilities.
  • Since we don't return the special . and .. directories from the kernel layer directory searches anymore, get rid of any checking for those in the higher level code.
Dean Roddey
Explorans limites defectum
Reply
#8
  • The System::HTMLEMail and System::EMail commands are sending the target address as the subject field. This was broken during recent optimization work.
  • Make the driver wizard dialog resizable, which means adding correct anchors to all of the controls of all those panels. They were all created before that auto-resizing stuff was implemented.
  • Add the line end prompt to the 'RP6' driver. It's just a manifest that loads the generic serial trigger drive, which supports the line end type selection. I didn't originally add it because I thought the RTI just used fixed CR/LF line ends, which is the default if the prompt isn't present, but actually it can be configured on the RTI side. So might as well make the selection available.
  • Update the IDL compiler to support some move semantics on the server side for better efficiency in those cases where a buffer or string or collection is being passed in and the values are being kept. The server side has to create a temp to stream the values in, so it's always safe to move that temp into the called server side API if it's advantageous.
  • The new core server framework (from which most of the CQC servers now derive) wasn't checking for failure to get a remote interface that it was trying to get, which could cause an exception. It wouldn't fail, but it would log bogus messages because it looked like more than just we couldn't find the remote server.
  • The system config tab doesn't see changes to the driver configuration after you open it, so it will prevent you from saving changes even if you make them valid by adding missing drivers and such.
Dean Roddey
Explorans limites defectum
Reply
#9
5.4.907
  • Move the socket ping functionality of CIDKernel up to the platform independent layer. It can work in terms of the underlying fundamental socket capabilities and avoid a good chunk of per-platform code. It just requires adding support for RAW socket types to the socket support, which probably should have been there to begin with.
  • Update all of the CIDKernel system wrapper classes that aren't using the handle class mechanism to use a forward declared structure for per-platform data instead of a void pointer that gets cast internally. Some were doing that, but it's much cleaner so make them all do that.
  • Drop the Firewire media changer support in CIDLib. It's not used anymore so not worth keeping around and having to try to deal with on the Linux side.
  • Long ago I gave up on using pre-compiled headers for reasons I don't really even remember. But it's been a long time so update CIDBuild to support them again on Windows and see how they work out. I could probably get builds as fast as now without the parallel build stuff which is awkward.
  • Update the RadioRA2 driver to use the 'call status' message to get the thermo operating mode, since the regular mode only shows the set mode, which is usually just Auto.
  • Update the IDL compiler to spit out fundamental typed constants to be constexpr instead of just const.
  • My push lately towards implementing static analysis on my code base finally turned up an actual bug. Gamma support never worked in the CQC image editor, and it caught the bug that was messing that up.
  • Upgrade to Visual Studio 2019 now that it's been out a while.
  • Add support for the Visor's contact closures to the Radio RA2 driver.
  • Do a first whack at a control-only version of the Dune driver, i.e. a V2 Media Player, for folks who don't need a formal Media Renderer.
  • Update the IDL compiler to generated deleted move constructors and operators, which the static analyzer prefers (define, delete or default all of the magic methods.)
  • Add more stats to the ORB engine to help diagnose issues in the field, and simplify that stuff by having the facility object just create a monitor thread that watches things and updates stats periodically. This will reduce overhead relative to the current scheme of trying to keep them up to date as things are actually changing (which can be quite rapidly.)
  • Update the IDL generator to initialize output parameters in the generated server side stub to make the static analysis tool happy. While in there clean up and consolidate some stuff related to data types info that is used in various places and so could be simpler.
  • Improve the docs page about how to take an existing driver and adapt it to create a new one, or how to create a new one.
  • It looks like perhaps the task scheduler may be closing the tray monitor if it is the one that starts it up on system startup, because there's a setting still checked on the scheduled task entry that makes it think this is something that should eventually stop and that it should kill it if it doesn't stop after a few days. Update the installer to turn that option off.
  • There's an issue with the web cam widget where settings the URL in the preload won't always get it initially loaded.
Dean Roddey
Explorans limites defectum
Reply
#10
5.4.908
  • I screwed up in the previous drop. A new socket protocol type was added, and it wasn't added to the end of the list, so it messed up any existing persisted data that stored one.
  • When I removed the old RIVA stuff from the installer, I forgot to adjust the list of text values that hold the text that displays under the components list when you select one, so it was displaying the wrong text for some of them.
Dean Roddey
Explorans limites defectum
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  5.5 Beta Discussions Thread Dean Roddey 150 15,919 04-18-2020, 06:27 AM
Last Post: Dean Roddey
  Official 5.4 Beta Discussion Thread Dean Roddey 441 80,436 06-15-2019, 02:33 AM
Last Post: Bugman
  Official 5.4 Beta Release Thread Dean Roddey 55 15,447 06-07-2019, 07:02 PM
Last Post: Dean Roddey
  Official 5.3 Beta Discussion Thread Dean Roddey 815 213,825 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.3 Release Thread Dean Roddey 27 12,262 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.2 Beta Discussion Thread Dean Roddey 244 107,487 10-14-2017, 07:57 PM
Last Post: Dean Roddey
  Official 5.2 Beta Release Thread Dean Roddey 13 10,645 10-09-2017, 06:49 PM
Last Post: Dean Roddey
  Official 5.1 Beta Discussion Thread Dean Roddey 453 229,187 05-16-2017, 03:45 PM
Last Post: Dean Roddey
  Official 5.1 Beta Release Thread Dean Roddey 28 22,539 05-12-2017, 05:44 PM
Last Post: Dean Roddey
  Official 5.0 Beta Discussions Dean Roddey 2,019 560,197 11-09-2016, 04:34 PM
Last Post: Dean Roddey

Forum Jump:


Users browsing this thread: 1 Guest(s)