Louis Pearson Home Contact

Spectrophotometer Batch Generator


niche utility application

Overview

A spectrophotometer is a device used in optics to measure the how light is changed when passing through a material. Wasatch Photonics makes use of one to measure the diffraction gratings they manufacture.
Spectrophotometer Batch Generator (Batch Gen for short) is a small application that aids in the creation of new test procedures for the spectrophotometer. Before Batch Gen, operators would input paramters into a spreadsheet and then manually copy the data for the procedure into the spectrophotometer UI.
With Batch Gen, operators can input the data directly into the UI and export a file with all the steps of the procedure. This avoids a lot of tedium and reduces the probability of accidentally entering incorrect data.

Technical Details

I wrote Batch Gen in Zig and made use of the open source library LibUI for the User Interface. In this process of writing Batch Gen, I ported LibUI to the zig build system, wrote a zig wrapper for LibUI, added support for Floating Point Spinboxes to LibUI, revived a pull request adding features to LibUI's file dialog API, and wrote a comptime wrapper for LibUI's advanced Table widget in Zig. At the time of writing, none of my patches have been merged upstream, so I maintain a fork for Batch Gen and other projects.