summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--device-functions.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/device-functions.c b/device-functions.c
index 6381f59..f2b3cd3 100644
--- a/device-functions.c
+++ b/device-functions.c
@@ -3945,8 +3945,9 @@ int go_cal(CalStruct *caldata)
int i, status, points;
float meas, nom_val, change;
float min_val, max_val, chk_val;
- char lcd_msg[LCD_cols+1];
- char prefix[LCD_cols+1];
+
+ gchar *lcd_msg = NULL;
+ gchar *prefix = NULL;
points = Get_VI_Num_Pnts(caldata->cal_type,caldata->channel);
@@ -3981,14 +3982,16 @@ int go_cal(CalStruct *caldata)
LCD_write(0,0,"Self-calibration in progress.");
if (caldata->cal_type == pwl_period_values) {
- sprintf (prefix, "CH%d PER %d:",caldata->channel+1,i);
+ prefix = g_strdup_printf ("CH%d PER %d:",caldata->channel+1,i);
} else if (caldata->cal_type == pwl_pw_values) {
- sprintf (prefix, "CH%d PW %d:",caldata->channel+1,i);
+ prefix = g_strdup_printf ("CH%d PW %d:",caldata->channel+1,i);
} else if (caldata->cal_type == pwl_delay_values) {
- sprintf (prefix, "CH%d DLY %d:",caldata->channel+1,i);
+ prefix = g_strdup_printf ("CH%d DLY %d:",caldata->channel+1,i);
}
- sprintf (lcd_msg, "%s %.3e",prefix,nom_val);
+
+ lcd_msg = g_strdup_printf ("%s %.3e",prefix,nom_val);
LCD_write(2,0,lcd_msg);
+ g_free (lcd_msg);
if (caldata->cal_type == pwl_period_values) {
I2C_Self_Cal (caldata->channel, MEAS_PRF, &meas, 1.0 / globals.ChannelState[caldata->channel].frequency);
@@ -4012,10 +4015,17 @@ int go_cal(CalStruct *caldata)
LCD_clear();
LCD_write(0,0,"Self-calibration in progress.");
- sprintf (lcd_msg, "%s %.3e -> %.3e",prefix,nom_val,meas);
+
+ lcd_msg = g_strdup_printf ("%s %.3e -> %.3e",prefix,nom_val,meas);
LCD_write(2,0,lcd_msg);
- sprintf (lcd_msg, "changed %6.2f%%, err: %d",change,status);
+ g_free (lcd_msg);
+
+ lcd_msg = g_strdup_printf ("changed %6.2f%%, err: %d",change,status);
LCD_write(3,0,lcd_msg);
+ g_free (lcd_msg);
+
+ g_free (prefix);
+
g_usleep (2e6);
}
}