don't save multiple values for the same caldac channel
This commit is contained in:
parent
4a028b8012
commit
5c505d7b57
1 changed files with 14 additions and 0 deletions
|
@ -157,6 +157,20 @@ comedi_calibration_setting_t* sc_alloc_calibration_setting( calibration_setup_t
|
|||
|
||||
void sc_push_caldac( comedi_calibration_setting_t *saved_cal, caldac_t caldac )
|
||||
{
|
||||
int i;
|
||||
|
||||
/* check if caldac is already listed, in which case we just update */
|
||||
for( i = 0; i < saved_cal->num_caldacs; i++ )
|
||||
{
|
||||
if( saved_cal->caldacs[ i ].subdevice != caldac.subdev ) continue;
|
||||
if( saved_cal->caldacs[ i ].channel != caldac.chan ) continue;
|
||||
break;
|
||||
}
|
||||
if( i < saved_cal->num_caldacs )
|
||||
{
|
||||
saved_cal->caldacs[ i ].value = caldac.current;
|
||||
return;
|
||||
}
|
||||
saved_cal->caldacs = realloc( saved_cal->caldacs,
|
||||
( saved_cal->num_caldacs + 1 ) * sizeof( caldac_t ) );
|
||||
if( saved_cal->caldacs == NULL )
|
||||
|
|
Loading…
Add table
Reference in a new issue