DAQinator
What a wild ride this program has been. It’s been my first time ever making a GUI. First with EGUI
and then with Tauri
.
It’s a rust rewrite of Colin’s ADAP. ADAP was very slow and buggy, and he always said he should rewrite it in rust, although he never did. That’s why I took into my own hands to rewrite the program.
My first prototype was already massively faster than the python version: It went from a couple of minutes to a few seconds. DAQinator also quickly became much more robust than it’s predecessor. It’s basically impossible to make it behave like it’s not supposed to, and it uses a much better system for graphing templates.
Graphing templates use TOML instead of CSV, and they’re much easier to create thanks to serde
. It also fixes some really goofy mistakes Colin made: To convert from column number to the letters spreadsheets use, he manually wrote a dictionary! That should be a crime! I did it procedurally instead:
fn num_to_col(number: usize) -> String {
let mut result = String::new();
let mut num = number + 2;
while num > 0 {
let rem = (num - 1) % 26;
let ch = (rem as u8 + b'A') as char;
result.insert(0, ch);
num = (num - 1) / 26;
}
result
}
There are 26 letters in the english abecedary, so what I made is a base 10 to base 26 converter, where the first number in the base 26 system is ‘A’ and the 26th is ‘Z’.
I also tried to document my rewrite extensively so it can be mainained by anyone later on.
Earlier I mentioned EGUI
and Tauri
. I started making the program with EGUI
, the premise being it was just a temporary UI for developenent, and that Colin would make a propper UI later on. …But he never did, for various reasons I can’t blame him for. (And he also went on a rant on why he would never deploy my program while using my EGUI
UI) So recently having decorated my website, and with a little bit of HTML and CSS knowledge, I decided trying out Tauri
was a good idea.
Thanks to Tauri
(and Colin’s help) i’ve been able to make a GUI which is much more intuitive and, to put it lightly, easier on the eyes. I bet even my grandma could use it without any instructions.