- Home
- Documentation
- Lua
- Reports
SatVUE Portal - LUA Reports
Lua/SatVUE Report Examples
The Lua report engine allows for the generation of reports in any text format that you think of, it just requires a bit of code.
TSV Report
Tab Seperated Values (TSV) are essentially CSV files that use a TAB character instead of a comma to seperate values.
-- if there is no data, print a note and return if (table.getn(report_data) == 0) then print 'No data points' return end -- create the header row for name, value in ipairs(report_data['data'][0]) do print name..'\t' end print '\r\n' -- Windows line ending -- loop over all the records for index, row in ipairs(report_data['data']) do for name, value in ipairs(row) do print value..'\t' end end print '\n' -- Unix/Mac line endingWhich would generate a report like:
Timestamp Field1 Field2 Field3 2017-12-05 12:00:00 1 2 3 2017-12-06 12:00:00 1.1 2.1 3.1 2017-12-07 12:00:00 3.3 4.4 5.5
Custom Format Report
Lua report are completly customizable, for example, if you wanted to just
know when a water level was too high or too low. The following report code
could be used to generate an exception report.
-- if there is no data, print a note and return if (table.getn(report_data) == 0) then print 'No data points' return end -- Print the Report title print 'SatVUE Exception Report (Generated '..formatDateTime(getEpochUTC(), 'Y-m-d H:i:s')..')\r\n' print 'Date Range: '..report_data['start']..' to '..report_data['end'].'\r\n\r\n' -- Find all the water levels that exceed 10m or are under 1m for index, row in ipairs(report_data['data']) do -- if the water level is above 10m if (row['Water Level'] > 10) then print 'Water level dangerously high, '..row['Water Level']..'m, at '..row['_timestamp_']..'\r\n' end -- if the water level is below 1m if (row['Water Level'] < 1) then print 'Water level low, '..row['Water Level']..'m, at '..row['_timestamp_']..'\r\n' end endWhich would generate a report like:
SatVUE Exception Report (Generated 2018-01-01 12:00:00) Date Range: 2017-12-01 00:00:00 to 2018-01-01 00:00:00 Water level dangerously high, 15.4m, at 2017-12-05 12:10:00 Water level dangerously high, 12.6m, at 2017-12-06 12:10:00 Water level low, 0.5m, at 2017-12-20 12:10:00