Skip to content
Snippets Groups Projects
Commit 5dde6690 authored by Keith Thorne's avatar Keith Thorne
Browse files

Bug Fix 1133 - fix cdsEzCaRead/Write implementation in trunk

git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@4867 6dcd42c9-f523-4c6d-aada-af552506706e
parent c52e389a
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,10 @@ Changes for 3.5 (NOT YET RELEASED)
- Set virtualIOP=3 in IOP model Parameter Block
- NOTE: Presently, this only reads ADC modules ie not DAC writes, as it was implemented for PEM DAQ channel.s
==================================================================================================
Changes for 3.4.5
==================================================================================================
- Bug Fix (1133) - Fix cdsEzCaRead/Write implementation
==================================================================================================
Changes for 3.4.3
==================================================================================================
- Changed PCIe real-time network configuration from single Dolphin channel to 2 Dolphin channels
......
......@@ -582,50 +582,51 @@ while (<IN>) {
}
$vardb .= "{\n";
$vardb .= "}\n";
} elsif (substr($_,0,11) eq "EZ_CA_WRITE") {
} elsif (substr($_,0,11) eq "EZ_CA_WRITE") {
($junk, $v_name, $var_name, $v_var) = split(/\s+/, $_);
#$vupdate .= "%% ezcaPut(\"$v_name\", ezcaDouble, 1, &pEpics->${v_var});\n";
$v_name =~ tr/:-/__/;
$v_name_err = $v_name . "_ERR";
# $v_var_err = $v_var . "_ERR";
$v_name_conn = $v_name . "_ERR";
$vdecl .= "double evar_$v_name;\n";
$vdecl .= "assign evar_$v_name to \"${var_name}\";\n";
$vdecl .= "double evar_$v_name_err;\n";
$vdecl .= "double evar_$v_name_conn;\n";
$vinit .= "evar_$v_name = 0.0;\n";
$vinit .= "%% pEpics->${v_var} = evar_$v_name;\n";
$vupdate .= "evar_$v_name_err = pvConnected(evar_$v_name);\n";
# $vupdate .= "%% pEpics->${v_var_err} = evar_$v_name_err;\n";
$vupdate .= "if (evar_$v_name_err) {;\n";
$vupdate .= " if (pvPutComplete(evar_$v_name)) {;\n";
$vinit .= "%% pEpics->${v_var} = evar_$v_name;\n";
$vinit .= "evar_$v_name_conn = 0.0;\n";
$vupdate .= "if (pvConnected(evar_$v_name)) {\n";
$vupdate .= " evar_$v_name_conn = 1;\n";
$vupdate .= " if (pvPutComplete(evar_$v_name)) {\n";
$vupdate .= " evar_$v_name = fpvalidate(pEpics->${v_var});\n";
$vupdate .= " pvPut(evar_$v_name);\n";
$vupdate .= " };\n";
$vupdate .= "};\n";
$vupdate .= " pvPut(evar_$v_name,ASYNC,5.0);\n";
$vupdate .= " }\n";
$vupdate .= "} else {\n";
$vupdate .= " evar_$v_name_conn = 0;\n";
$vupdate .= " pvPutCancel(evar_$v_name);\n";
$vupdate .= "}\n";
print "FOUND EZCAWRITE\n";
} elsif (substr($_,0,10) eq "EZ_CA_READ") {
($junk, $v_name, $var_name, $v_var) = split(/\s+/, $_);
#$vupdate .= "%%ezcaGet(\"$var_name\", ezcaDouble, 1, &pEpics->${v_var});\n";
$v_name =~ tr/:-/__/;
$v_name_err = $v_name . "_ERR";
$v_var_err = $v_var . "_ERR";
$v_name_conn = $v_name . "_CONN";
$v_var_conn = $v_var . "_CONN";
$vdecl .= "double evar_$v_name;\n";
$vdecl .= "double evar_$v_name_conn;\n";
$vdecl .= "assign evar_$v_name to \"${var_name}\";\n";
$vdecl .= "double evar_$v_name_err;\n";
$vdecl .= "monitor evar_$v_name;\n";
$vinit .= "evar_$v_name = 0.0;\n";
$vinit .= "%% pEpics->${v_var} = evar_$v_name;\n";
$vinit .= "pvGet(evar_$v_name);\n";
$vupdate .= "evar_$v_name_err = pvConnected(evar_$v_name);\n";
$vupdate .= "%% pEpics->${v_var_err} = evar_$v_name_err;\n";
$vupdate .= "if (evar_$v_name_err) {;\n";
$vupdate .= " if (pvGetComplete(evar_$v_name)) {;\n";
$vupdate .= "%% pEpics->${v_var} = evar_$v_name;\n";
$vupdate .= " pvGet(evar_$v_name);\n";
$vupdate .= " };\n";
$vupdate .= "};\n";
$vinit .= "evar_$v_name_conn = 0.0;\n";
$vinit .= "%% pEpics->${v_var_conn} = evar_$v_name_conn;\n";
$vupdate .= "if (pvConnected(evar_$v_name)) {\n";
$vupdate .= " evar_$v_name_conn = 1;\n";
$vupdate .= "%% pEpics->${v_var} = evar_$v_name;\n";
$vupdate .= "} else {\n";
$vupdate .= " evar_$v_name_conn = 0;\n";
$vupdate .= "}\n";
$vupdate .= "%% pEpics->${v_var_conn} = evar_$v_name_conn;\n";
print "FOUND EZCAREAD\n";
} elsif (substr($_,0,6) eq "DAQVAR") {
die "Unspecified EPICS parameters" unless $epics_specified;
......
......@@ -19,7 +19,7 @@ sub printHeaderStruct {
$temp =~ s/\-/\_/g;
$temp =~ s/\:/\_/g;
print ::OUTH "\tdouble $temp;\n";
$temp .= "_ERR";
$temp .= "_CONN";
print ::OUTH "\tdouble $temp;\n";
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment