Wrong type definitions in cdsAdcx<n>.mdl files
The library .mdl files for cdsAdcx parts in src/epics/simLink/lib list the following descriptions:
-
cdsAdcx0.mdl:
"type=GSC16AI64SSA\ncard_num=0 "
-
cdsAdcx1.mdl:
"type-GSC_16AI64SSA\ncard_num=1 "
-
cdsAdcx2.mdl:
"type-GSC_16AI64SSA\ncard_num=2 "
-
cdsAdcx3.mdl:
"type-GSC_16AI64SSA\ncard_num=3 "
-
cdsAdcx4.mdl:
"type-GSC_16AI64SSA\ncard_num=4 "
-
cdsAdcx5.mdl:
"type-GSC_16AI64SSA\ncard_num=5 "
-
cdsAdcx6.mdl:
"type-GSC_16AI64SSA\ncard_num=6 "
-
cdsAdcx7.mdl:
"type-GSC_16AI64SSA\ncard_num=7 "
-
cdsAdcx8.mdl:
"type-GSC_16AI64SSA\ncard_num=8 "
-
cdsAdcx9.mdl:
"type-GSC_16AI64SSA\ncard_num=9 "
The first one is wrong because the type GSC16AI64SSA
misses the required underscore (GSC_16AI64SSA
). All others are wrong because they should read type=
instead of type-
. The parser module src/epics/util/lib/Adc.pm processes these with
my ($type) = $desc =~ m/type=([^,]+)/g;
printf "board type is $type\n";
my ($num) = $desc =~ m/card_num=([^,]+)/g;
my ($srcnum) = $src =~ m/ADC([^,]+)/g;
my ($namenum) = $name =~ m/ADC([^,]+)/g;
if ($type eq undef) {
$type = $default_board_type;
}
So this is probably remedied by falling back to the default board type later.