1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| Function ComputeLoss(sName As String, sSSI As String, _
sTemp As String, sPerfo As String) As Double
Dim LNA As String, DOCON As String, CHAN As String
Dim RXCOV As String, UPCON As String, Freq As String
Dim Imux_FA As String, i As Integer, DC_OK As String, UC_OK As String
RXCOV = Left(sSSI, 4)
LNA = Right(Left(sSSI, 7), 3)
DOCON = Right(Left(sSSI, 10), 3)
CHAN = Right(Left(sSSI, 21), 4)
UPCON = Right(Left(sSSI, 13), 3)
If ((Asc(Left(sName, 1)) > 48) And (Asc(Left(sName, 1)) < 58)) Then
'Premiere lettre de sName est un chiffre de 1-9
'1BC/9CP/1DA/1PF/1CT/xSC/xSD/1TP/1TP/1HP/1DP/1CL
Select Case Right(Left(sName, 3), 2)
Case "BC"
ComputeLoss = IsoLoss(sName, LNA, CHAN)
Case "CP"
ComputeLoss = CoupleurLoss(sName, CHAN, sTemp)
Case "DA"
ComputeLoss = DividerAssemblyLoss(sName, RXCOV, DOCON, UPCON, sTemp, CHAN)
Case "PF"
ComputeLoss = PreselectFilterLoss(sName, CHAN, RXCOV, DOCON, sTemp)
Case "CT"
ComputeLoss = InputTestCoupleurLoss(sName)
Case "SC"
ComputeLoss = SwitchLoss(sName, sSSI)
Case "SD"
ComputeLoss = SwitchLoss(sName, sSSI)
Case "ST"
ComputeLoss = SwitchLoss(sName, sSSI)
Case "SR"
ComputeLoss = SwitchLoss(sName, sSSI)
Case "TP"
ComputeLoss = -0.02
Case "CL"
ComputeLoss = CampLoss(sName, sTemp)
Case "HP"
ComputeLoss = HPILoss(sName, sTemp)
Case "DP"
ComputeLoss = DiplexerLoss(sName, sSSI, sTemp)
Case "TG"
ComputeLoss = -0.12
Case "TW"
ComputeLoss = HPALoss(sName, sSSI, sTemp, sPerfo)
Case "FL"
ComputeLoss = BandPassFilterLoss(sName, sTemp)
Case "FE"
ComputeLoss = InputFilterLoss(sName, sSSI, sTemp)
Case "NF"
ComputeLoss = NRFLoss(sName, sTemp)
Case "MS"
ComputeLoss = OmuxLoss(sName, sSSI, sTemp)
Case "RE"
DC_OK = False
ComputeLoss = ExtractValue_LNARX(sName, sSSI, sPerfo, sTemp)
Case "LN"
ComputeLoss = ExtractValue_LNARX(sName, sSSI, sPerfo, sTemp)
Case "DC"
If UPCON = "" Then
UC_OK = True
End If
DC_OK = True
ComputeLoss = ExtractValue_DOCON(sName, sSSI, sPerfo, sTemp)
Case "UC"
UC_OK = True
ComputeLoss = ExtractValue_UPCON(sName, sSSI, sPerfo, sTemp)
End Select
Else
'Le premier caractère de sName est une lettre
'Axxx/Wxxx/Cxxx/Exxx/
Select Case Left(sName, 1)
Case "I"
'C'est un imux ou un FA
Imux_FA = Right(Left(sName, 6), 2)
Select Case Imux_FA
Case "ME"
ComputeLoss = ImuxFALoss(sName, sSSI, sTemp)
Case "FA"
ComputeLoss = ImuxFALoss(sName, sSSI, sTemp)
End Select
Case "A"
ComputeLoss = AttenLoss(sName)
Case "W"
'Guide
ComputeLoss = GuideLoss(sName)
Case "C"
'Coax
ComputeLoss = CoaxLoss(sName, sTemp, CHAN, sSSI, DOCON, UPCON)
Case "E"
'Negligé
ComputeLoss = 0
End Select
End If
End Function |
Partager