08-17-2014, 06:52 PM
So, work has been busy the past 18 months and I've been neglecting my HA - it just works!
Anyway, I had a moment and I decided to give the latest beta a burl and I was pleasantly surprised at how smooth it was! Not least considering how big of a jump I was making (4.2 to 4.6 beta)
I have a handful of home-grown drivers in my setup - some of them I've published before but they're a bit esoteric so never made it into the main build. Two of them were unhappy about the upgrade, but the fixes were simple.
First, one driver was trying to register two fields with the same name. Pretty dumb, but older versions of CQC ignored it. It doesn't anymore. In this case, they were just duplicates, so I deleted one.
The other was a more subtle. It's a driver for the Elexol EtherIO24 board which uses UDP. Because it needs to receive packets from the board, the local end of the socket needs to be bound. I force the binding so I can log the IP and port that was bound in the debug output, but the methods in the newer CML runtime has changed. DefBindLocal() has gone, instead I used BindLocal() and passed in an IPEndPoint("0.0.0.0", 0). In chatting with Dean by email he's also suggested I look at the other Bind() functions, which I will do later.
Other than that, nothing else seems to be unhappy at this point. All my templates seem to have transferred just fine. Will look at events and stuff later.
Good work Dean!
Chris.
Anyway, I had a moment and I decided to give the latest beta a burl and I was pleasantly surprised at how smooth it was! Not least considering how big of a jump I was making (4.2 to 4.6 beta)
I have a handful of home-grown drivers in my setup - some of them I've published before but they're a bit esoteric so never made it into the main build. Two of them were unhappy about the upgrade, but the fixes were simple.
First, one driver was trying to register two fields with the same name. Pretty dumb, but older versions of CQC ignored it. It doesn't anymore. In this case, they were just duplicates, so I deleted one.
The other was a more subtle. It's a driver for the Elexol EtherIO24 board which uses UDP. Because it needs to receive packets from the board, the local end of the socket needs to be bound. I force the binding so I can log the IP and port that was bound in the debug output, but the methods in the newer CML runtime has changed. DefBindLocal() has gone, instead I used BindLocal() and passed in an IPEndPoint("0.0.0.0", 0). In chatting with Dean by email he's also suggested I look at the other Bind() functions, which I will do later.
Other than that, nothing else seems to be unhappy at this point. All my templates seem to have transferred just fine. Will look at events and stuff later.
Good work Dean!
Chris.