kayasrc: allow for logging FPGA temp if env var GST_KAYA_FPGA_TEMP_LOG is set

This commit is contained in:
Joshua M. Doe 2021-04-02 12:00:52 -04:00
parent f39e48d065
commit 2f19e05e9c

View File

@ -34,6 +34,7 @@
#include "config.h"
#endif
#include <stdio.h>
#include <string.h>
#include <gst/gst.h>
@ -841,9 +842,53 @@ gst_kayasrc_create (GstPushSrc * psrc, GstBuffer ** buf)
{
GstKayaSrc *src = GST_KAYA_SRC (psrc);
gint64 dropped_frames = 0;
static FILE *temperature_file = NULL;
static gint64 temp_log_last_time = 0;
GST_LOG_OBJECT (src, "create");
if (g_getenv ("GST_KAYA_FPGA_TEMP_LOG")) {
if (temperature_file == NULL) {
const char *envvar = g_getenv ("GST_KAYA_FPGA_TEMP_LOG");
gboolean write_header;
gchar *log_filename;
if (atoi (envvar) == 1) {
GDateTime *dt = g_date_time_new_now_local ();
log_filename =
g_date_time_format (dt, "kaya_fgpa_temp_%Y%m%d_%H%M%S.csv");
g_date_time_unref (dt);
} else {
log_filename = g_strdup (envvar);
}
write_header = !g_file_test (log_filename, G_FILE_TEST_EXISTS);
GST_DEBUG_OBJECT (src, "Opening FPGA temp log file (%s)", log_filename);
temperature_file = fopen (log_filename, "a");
if (!temperature_file) {
GST_ERROR_OBJECT (src, "Failed to open log file");
return GST_FLOW_ERROR;
}
g_free (log_filename);
if (write_header) {
fprintf (temperature_file, "IsoTime, UnixTime, KayaFpgaTemp\n");
}
}
if (temperature_file && g_get_real_time () - temp_log_last_time >= 1000000) {
GDateTime *dt = g_date_time_new_now_local ();
gchar *time_str = g_date_time_format (dt, "%Y-%m-%dT%H:%M:%S, %s");
int fg_temp = KYFG_GetGrabberValueInt (src->fg_data->fg_handle,
"DeviceTemperature");
GST_DEBUG_OBJECT (src, "FPGA temp: %d", fg_temp);
fprintf (temperature_file, "%s, %d\n", time_str, fg_temp);
fflush (temperature_file);
g_date_time_unref (dt);
g_free (time_str);
temp_log_last_time = g_get_real_time ();
}
}
if (!src->acquisition_started) {
FGSTATUS ret;
GST_DEBUG_OBJECT (src, "starting acquisition");