The latest release of The Server Framework is now available. This release includes the following changes.
Note that this is mainly a bug fix release.
The following changes were made to the libraries.
Admin Library - 6.1.1
New build configuration options. All of these are enabled by defining the option to 1 in Config.h and disabled by defining them to 0; the default state if you do not do anything in Config.
Previously published
This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here.
For those of you interested in the kind of thing that this blog is about you might also find ChipHacker.com useful. It’s a ‘stackoverflow’ for embedded programming and electronics people. Hopefully it will become a useful resource!
Previously published
This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here.
The test code for the serial command processing code for my serial servo controller is turning out to be the largest piece of assembly language that I’ve written. This means that all of a sudden I’m coming across “Relative branch out of reach” errors during the compile.
In the great tradition of explaining your problem to someone else as a way of fixing it yourself without their help…
I’ve nailed the rotating file log 16010101 bug! The problem was to do with the fact that when there was a new log ready for use and a log message switched it to be the active log it also set the ’next log time’ to zero. If a time change notification came along just after this, whilst the ’next log time’ was zero then it created a new log due to a bug in the time change handler; a test was missing a ’next log time !
It’s been a bit of a week for bugs. First I had a bug report for the really rather old CodeProject socket server COM object. This allows people using VB to create a socket server that uses the free version of The Server Framework. It works well, for what it is, and has been the basis for several custom objects that various clients have needed over the years. The bug involves the ‘read string’ functionality and either the ATL headers (specifically the narrow to wide character conversion macros) have changed since the code was originally written in 2002 in VC 6.
We’re working with VEXIS Systems Inc. again to extend the high performance pluggable server platform that we built for them back in 2008 using The Server Framework.
This time around we’re adding to the plugin system within the server so that it can host plugins written in .Net managed code. The server now hosts a instance of the CLR, using The Server Framework’s CLR Hosting Option, and we have built a managed plugin system that integrates with the existing unmanaged system so that now they can write their business logic in either unmanaged code or in a managed language such as C#.
Previously published
This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here.
The AVR assembly language unit tests that I spoke of last week are going well. I decided to explore the idea of unit testing by writing tests for the easier to test aspects of the serial protocol code and then, as this went well, I decided to write tests for the serial protocol code in order rather that simply jumping to write tests for the code that I know is broken.
I’m currently looking at the new concurrency profiling tools that come with Visual Studio 2010. It’s interesting and useful stuff. The tools provide what I have attempted to develop in the past by using API Hooking but it’s vastly superior in speed and functionality.
One of the big problems for me with my API Hooking concurrency tools (Deadlock detector and Lock Explorer) was that the instrumentation often caused the target process to run pretty slowly.
I’ve been playing with Visual Studio 2010 Beta 2 and .Net 4.0, building code, running tests, playing with the IDE, etc. The first issue that I’ve come across with my existing codebase is that the .Net 2.0 hosting APIs (such as CorBindToRuntimeEx)are now deprecated and there’s a whole new way of hosting the CLR.
We’ve been quite successful in hosting the CLR from within our C++ servers, either to provide servers that support a mix of managed/unmanaged plugins as a pluggable high performance windows application server or to provide network protocol support in C++ (such as ENet) with ‘business logic’ being written in managed code.
Previously published
This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here.
As I mentioned yesterday the servo controller project has got to the point where being able to unit test the code would be useful to me. In my day job as a C++ server developer I’ve been using unit tests for several years and most of the code that I write is written in a Test Driven Development style.