I have a project where I use a cRIO-9063 to acquire data from a thermocouple. In the current system, there is a log that stores the events that occur in the system (alerts, warnings, etc) which is saved as a file. The program reads the previously saved file to get the events that have occurred for a predetermined period of time (currently 2 weeks). The problem with this is that read/write problems can occur that corrupt the file, thus losing the registry that we have. I would like to know if programming a database in the cRIO, using the embedded Linux system that it has, we can optimize the process that has been used.
Solved! Go to Solution.
Checking on to the community documenation there is not such as database engine for running on cRIOs OS as shown here:
Have you thought in using another type of text format such as TDMS?
Yes, I considered using a TDMS format, but there are some libraries like Dr Powell's SQlite or LVS-Tools' SQlite that I wanted to try to do the data logging I needed. Currently I want to compare between the performance of the program using a database and the performance using TDMS files to know which of them is best to implement.
As far as performance on writing, TDMS is going to have to be the clear winner. TDMS support is also obviously native and most likely going to come with more support from NI. The TDMS file format itself is sorta made to work with as low overhead as possible when it comes to writing data. When reading data, performance isn't quite as good, and lacks fancy select features that SQL has. DMA streaming from DAQmx hardware to the disk can mean crazy fast logging rates for TDMS. If you want to convert from TDMS to a database once the data gets over to the host I can agree that has some benefits. Of course NI would likely recommend DIAdem instead. I'm also not certain but I think most, if not all, SQLite relies on some built libraries that might be Windows only. Support for database logging can likely be added with the installation of OPKG packages.