OSD firmware auto-update software architectural design
From The Neuros Technology Wiki
More specifically, this functionality was replaced by the on-board software auto update system completely integrated into the osd main application, which uses some of the concepts illustrated here.
This project is used for OSD product firmware automatic update from web server to the customerâ€™s computer. When the client application checks there is new version of firmware in the web server, then it will ask the customer to download the new version automatically.
Design major concept:
The main question focus on how to check whether there is new version firmware in the web server. The version number is stored in the local computer and our web server, when new firmware is deployed to web server, the version number in the web server will also be changed. Through comparing two version numbers, if the version number in the local computer is older than in the web server, it means there is new version firmware, so need to download the new firmware.
Save the firmware version number in XML file, the file includes the firmware version number, firmware storage location in web server. The XML fileâ€™s content is just like followings, but not all.
<â€¦â€¦> <OSDFirmware> <OSDFirmwareVersion>1.2.0</OSDFirmwareVersion> <OSDFirmwareLocation>softwaredownload/OSD/120</ OSDFirmwareLocation > </OSDFirmware> <â€¦â€¦>
After the customer start the software-auto-update application in his computer, the application connect to the web server which deployed the OSD firmware automatically, check whether there exist new version firmware, if exist then the application ask the customer to download new firmware, if he choose yes then the application will download the new firmware to local computer. If any error happens during downloading, the application will show error message to him and exit the download, otherwise after successful download the application will show firmware update success to him. The application also provides manual update function, that the customer can make his choice to update firmware. During the application running, it will connect to web server to check if there is new version firmware every one hour, the interval time can be set by the customer, but the minimum value is one hour, because if the interval is to short, it will cause heavy load to web server.
The following graphic shows the process flow.