open-insight/LSL2/STPROC/OBJ_TEST_POINT_MAP.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

198 lines
5.1 KiB
Plaintext

COMPILE FUNCTION obj_Test_Point_Map(Method,Parms)
/*
Methods for Test_Point_Map object
05/17/2006 JCH - Initial Coding
Properties:
Methods:
PointToResult(MapID,PointIDs,Thick,SheetRho,HgCV1,HgCV2) ;* Sort readings by ResultNos - This is the raw readings sort
ResultToPoint(MapID,ResultNos,Thick,SheetRho,HgCV1,HgCV2) ;* Sort readings by PointIDs - This is the format in the RDS_TEST (Metrology) window.
*/
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, obj_Notes, ErrMsg
$INSERT TEST_POINT_MAP_EQUATES
$INSERT MSG_EQUATES
ErrTitle = 'Error in Stored Procedure "obj_Test_Point_Map"'
ErrorMsg = ''
IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
IF NOT(ASSIGNED(Parms)) THEN Parms = ''
IF ErrorMsg NE '' THEN
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
RETURN ''
END
Result = ''
BEGIN CASE
CASE Method = 'PointToResult' ; GOSUB PointToResult
CASE Method = 'ResultToPoint' ; GOSUB ResultToPoint
CASE 1
END CASE
IF ErrorMsg NE '' THEN
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
RETURN ''
END
RETURN Result
* * * * * * *
PointToResult:
* * * * * * *
MapID = Parms[1,@RM]
PointIDs = Parms[COL2()+1,@RM]
ThickReadsIn = Parms[COL2()+1,@RM]
SheetRhoReadsIn = Parms[COL2()+1,@RM]
HgCV1ReadsIn = Parms[COL2()+1,@RM]
HgCV2ReadsIn = Parms[COL2()+1,@RM]
IF MapID = '' THEN ErrorMsg = 'Null Parameter "MapID" passed to routine. (':Method:')'
IF PointIDs = '' THEN ErrorMsg = 'Null Parameter "PointIDs" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN
MapRec = XLATE('TEST_POINT_MAP',MapID,'','X')
IF MapRec = '' THEN
ErrorMsg = 'Invalid TestPointMap "MapID" passed to routine. (':Method:')'
RETURN
END
ResultNosOut = ''
ThickReadsOut = ''
SheetRhoReadsOut = ''
HgCV1ReadsOut = ''
HgCV2ReadsOut = ''
FOR I = 1 TO COUNT(PointIDs,@VM) + (PointIDs NE '')
PointID = PointIDs<1,I>
LOCATE PointID IN MapRec<TEST_POINT_MAP_POINT_ID$> USING @VM SETTING Pos THEN
ReadNo = MapRec<TEST_POINT_MAP_RESULT_NO$,Pos>
ResultNosOut<1,ReadNo> = MapRec<TEST_POINT_MAP_RESULT_NO$,Pos>
ThickReadsOut<1,ReadNo> = ThickReadsIn<1,I>
END
NEXT I
* Sheet Row uses map "4PP"
IF MapID = 'HTR5' THEN
NULL
END ELSE
MapRec = XLATE('TEST_POINT_MAP','4PP','','X')
END
FOR I = 1 TO COUNT(PointIDs,@VM) + (PointIDs NE '')
PointID = PointIDs<1,I>
LOCATE PointID IN MapRec<TEST_POINT_MAP_POINT_ID$> USING @VM SETTING Pos THEN
ReadNo = MapRec<TEST_POINT_MAP_RESULT_NO$,Pos>
SheetRhoReadsOut<1,ReadNo> = SheetRhoReadsIn<1,I>
END
NEXT I
* Resistivity uses map "HGCV"
MapRec = XLATE('TEST_POINT_MAP','HGCV','','X')
FOR I = 1 TO COUNT(PointIDs,@VM) + (PointIDs NE '')
PointID = PointIDs<1,I>
LOCATE PointID IN MapRec<TEST_POINT_MAP_POINT_ID$> USING @VM SETTING Pos THEN
ReadNo = MapRec<TEST_POINT_MAP_RESULT_NO$,Pos>
HgCV1ReadsOut<1,ReadNo> = HgCV1ReadsIn<1,I>
HgCv2ReadsOut<1,ReadNo> = HgCV2ReadsIn<1,I>
END
NEXT I
Result = ResultNosOut:@FM:ThickReadsOut:@FM:SheetRhoReadsOut:@FM:HgCV1ReadsOut:@FM:HgCV2ReadsOut
RETURN
* * * * * * *
ResultToPoint:
* * * * * * *
MapID = Parms[1,@RM]
ResultNos = Parms[COL2()+1,@RM]
ThickReadsIn = Parms[COL2()+1,@RM]
SheetRhoReadsIn = Parms[COL2()+1,@RM]
HgCV1ReadsIn = Parms[COL2()+1,@RM]
HgCV2ReadsIn = Parms[COL2()+1,@RM]
IF MapID = '' THEN ErrorMsg = 'Null Parameter "MapID" passed to routine. (':Method:')'
IF ResultNos = '' THEN ErrorMsg = 'Null Parameter "ResultNos" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN
MapRec = XLATE('TEST_POINT_MAP',MapID,'','X')
IF MapRec = '' THEN
ErrorMsg = 'Invalid TestPointMap "MapID" passed to routine. (':Method:')'
RETURN
END
MapResultNos = MapRec<TEST_POINT_MAP_RESULT_NO$>
MapPointIDs = MapRec<TEST_POINT_MAP_POINT_ID$>
PointIDsOut = ''
ThickReadsOut = ''
SheetRhoReadsOut = ''
HgCV1ReadsOut = ''
HgCV2ReadsOut = ''
FOR I = 1 TO COUNT(ResultNos,@VM) + (ResultNos NE '')
ResultNo = ResultNos<1,I>
LOCATE ResultNo IN MapResultNos USING @VM SETTING Pos THEN
PointIDsOut<1,Pos> = MapPointIDs<1,Pos>
ThickReadsOut<1,Pos> = ThickReadsIn<1,I>
END
NEXT I
* Sheet Row uses map "4PP"
IF MapID = 'HTR5' THEN
NULL
END ELSE
MapRec = XLATE('TEST_POINT_MAP','4PP','','X')
END
FOR I = 1 TO COUNT(ResultNos,@VM) + (ResultNos NE '')
ResultNo = ResultNos<1,I>
LOCATE ResultNo IN MapRec<TEST_POINT_MAP_RESULT_NO$> USING @VM SETTING Pos THEN
SheetRhoReadsOut<1,Pos> = SheetRhoReadsIn<1,I>
END
NEXT I
MapRec = XLATE('TEST_POINT_MAP','HGCV','','X')
FOR I = 1 TO COUNT(ResultNos,@VM) + (ResultNos NE '')
ResultNo = ResultNos<1,I>
LOCATE ResultNo IN MapRec<TEST_POINT_MAP_RESULT_NO$> USING @VM SETTING Pos THEN
MapPointID = MapRec<TEST_POINT_MAP_POINT_ID$,Pos>
LOCATE MapPointID IN PointIDsOut USING @VM SETTING PointPos THEN
HgCV1ReadsOut<1,PointPos> = HgCV1ReadsIn<1,I>
HgCV2ReadsOut<1,PointPos> = HgCV2ReadsIn<1,I>
END
END
NEXT I
Result = PointIDsOut:@FM:ThickReadsOut:@FM:SheetRhoReadsOut:@FM:HgCV1ReadsOut:@FM:HgCv2ReadsOut
RETURN