5 !The following raw program code example is written in HP BASIC and is explained, stey-by-step, in 10 !the getting started guide. This program is a fully functional cdma2000 control program. You can 15 !use these as a starting point for developing your own programs. 16 ! 20 !This program registers a IS-95 phone, sets up a call, and measures waveform quality, 21 !frame error rate,maximim power,minimum power, gated power, TX Spurious, Range of Open Loop Power 22 !Range of Closed Loop Power, Receiver Sensitivity, Receiver Dymanic Range, Demodulation of Traffic 23 !Channel with AWGN 24 ! 25 !The simple test executive allows you to set the test sequence by using gosubs to various tests 26 ! 35 !***************************************************************** 36 ! INITIALIZE VARIABLES 37 !***************************************************************** 38 ! 39 ! 40 COM Testset,Result_file$[30] !Declare common variables 42 COM /File/Openfile_flag !Results file open flag, 1=Open, 0=no results file open 43 ! 44 !initialize flags 45 ! 46 Openfile_flag=0 47 ! 49 Testset=714 ! Set "Testset" to equal GPIB address of 8960 50 ! 51 ! 59 CLEAR SCREEN 60 ! 61 !***************************************************************** 62 ! SET UP GPIB TIMEOUT 63 !***************************************************************** 64 ! 65 ON TIMEOUT 7,30 CALL Timeout! Calls "Timeout" routine 66 ! 67 ! 68 !***************************************************************** 69 ! TURN ON 8960 GP-IB DEBUGGER - COMMENT OUT WHEN DONE DEBUGGING PROGRAM 70 !***************************************************************** 71 ! 72 ! OUTPUT Testset;"SYST:COMM:GPIB:DEB:STAT ON"!Turns debug state on 73 ! 74 ! 75 ! 76 !***************************************************************** 77 ! VARIABLE DECLARATIONS FOR CALL SET UP - MOBILE SPECIFIC 78 !***************************************************************** 79 ! 80 Systype$="DIG95" !Cell System Type 81 Band$="USCELLULAR" !Cell band 82 Primary_channel=384 !RF Channelfor call setup 83 Handoff_band$="USCELLULAR" !Default Band for hard handoff 84 Handoffchan=500 !Default Channel for hard handoff 85 Handoff_sys$="DIG95" !Default Handoff system type 90 Sid=1 !System Identification 100 Nid=1 !Network Identification 120 Service_opt$="SO2" !Service Option for tests 121 P_rev$="TSB74" !Set protocol revision 122 Loss_frequency$=" 851 MHZ,896 MHZ" !Reverse channel, forward channel frequencies for amplitude offset (path loss) 123 Expected_loss$=" -2,-2" !Path loss at reverse channel, forward channel frequencies 124 ! 125 ! 126 ! 127 !***************************************************************** 128 ! Test Executive 129 !***************************************************************** 131 ! 132 ! 133 GOSUB Preset_test_set 134 GOSUB Set_path_loss 135 GOSUB Set_call_parms 136 ! 137 Openfile_flag=1 ! Store results in text file, file Name= ESN+current time 138 ! 140 GOSUB Register 142 ! 143 GOSUB Start_time 144 ! 145 GOSUB Connect 146 ! 147 ! 148 GOSUB Waveform_qual 149 GOSUB Max_power 150 GOSUB Min_pow 151 GOSUB Rng_open_loop 152 GOSUB Rng_closed_loop 153 GOSUB Sensitivity 154 GOSUB Dynamic_range 155 GOSUB Traf_fer_awgn 156 ! 157 ! Handoff_chan=1023 158 ! GOSUB Handoff 159 ! 160 ! GOSUB Waveform_qual 161 ! GOSUB Gated_power 162 ! GOSUB Max_pow_spur 163 ! GOSUB Min_pow 164 ! GOSUB Rng_open_loop 165 ! GOSUB Rng_closed_loop 166 ! GOSUB Sensitivity 167 ! GOSUB Dynamic_range 168 ! GOSUB Traf_fer_awgn 169 ! 170 ! Handoff_chan=799 171 ! GOSUB Handoff 172 ! 173 ! GOSUB Waveform_qual 174 ! GOSUB Gated_power 175 ! GOSUB Max_pow_spur 176 ! GOSUB Min_pow 177 ! GOSUB Rng_open_loop 178 ! GOSUB Rng_closed_loop 179 ! GOSUB Sensitivity 180 ! GOSUB Dynamic_range 181 ! GOSUB Traf_fer_awgn 182 ! 183 GOSUB End_time 184 ! 185 GOTO End_program !Jumps to end of program. Do not remove this line. 186 ! Must jump over the sub-routines to end. 187 !************************************************************************************* 188 ! 189 ! 190 ! 191 ! 192 !******************************************************************************************* 193 ! Beginning of Subroutines 194 !******************************************************************************************* 195 ! 196 ! 197 Start_time:! 198 !***************************************************************** 199 ! Start Test Timer 200 !***************************************************************** 201 ! 202 Start_time=TIMEDATE 203 ! 204 RETURN 205 ! 206 End_time:! 207 !***************************************************************** 208 ! End Test Time 209 !***************************************************************** 210 ! 211 End_time=TIMEDATE 212 ! 213 RETURN 214 ! 215 ! 216 ! 217 Preset_test_set:! 218 !***************************************************************** 219 ! PRESET TEST SET 220 !***************************************************************** 221 ! 222 IF FNConnected THEN 223 OUTPUT Testset;"CALL:CONN:TIM 10 S" 224 OUTPUT Testset;"CALL:CONN:ARM" 225 OUTPUT Testset;"CALL:END"! END ANY CALLS CURRENTLY IN PROGRESS 226 DISP "ENDING CURRENT CALL" 227 OUTPUT Testset;"CALL:CONN:STAT?" 228 ENTER Testset;Call_status 229 DISP "CALL ENDED" 230 END IF 231 ! 232 OUTPUT Testset;"*RST" !RESET TEST SET 233 OUTPUT Testset;"*OPC?" 234 ENTER Testset;Opc$ 235 RETURN 236 ! 237 Set_path_loss:! 238 !***************************************************************** 239 ! SET PATH LOSS VALUES 240 !***************************************************************** 241 ! 242 OUTPUT Testset;"SYST:CORR:FREQ";Loss_frequency$ !Sets the frequencies for amplitude offset 243 OUTPUT Testset;"SYST:CORR";Expected_loss$ !Sets the amplitude offsets for above frequencies 244 RETURN 245 ! 246 Set_call_parms:! 247 !***************************************************************** 253 ! SET UP CALL PARAMETERS 254 !***************************************************************** 255 ! 256 DISP "Setting up Test Set Parameters" 257 ! 270 OUTPUT Testset;"CALL:SYSTEM ";Systype$!Sets System Type 280 OUTPUT Testset;"CALL:BAND ";Band$!Sets Cell Band for selected System Type 290 OUTPUT Testset;"CALL:CHAN ";Primary_channel!Sets RF Channel for selected System Type and Cell Band 300 OUTPUT Testset;"CALL:POW -50"!Sets and turns on Cell Power 310 OUTPUT Testset;"CALL:SID ";Sid! Sets System Identification 320 OUTPUT Testset;"CALL:NID ";Nid! Sets Network Identification 330 OUTPUT Testset;"CALL:REG:TIMER:STATE OFF" ! Sets timer based registration to off 340 OUTPUT Testset;"CALL:SOPTION ";Service_opt$!Sets service option for selected System Type and Radio Configuration 350 OUTPUT Testset;"CALL:PROT ";P_rev$!Sets Protocol Revision for the selected System Type 360 OUTPUT Testset;"CALL:PAG:DRAT FULL"!Sets Paging data rate to full rate 370 OUTPUT Testset;"CALL:PIL -7"!Sets pilot to default 380 OUTPUT Testset;"CALL:SYNC -16"!Sets sync to default 390 OUTPUT Testset;"CALL:PAG -12"!Sets paging to default 400 OUTPUT Testset;"CALL:TRAFFIC -15.6"!Sets traffic to default 401 ! OUTPUT Testset;"DISP:MODE FAST"!Sets display mode to fast 403 ! 404 !***Turn off all measurements and setup timeouts 405 ! 406 OUTPUT Testset;"SETUP:DAPOWER:CONTINUOUS OFF" !Sets trigger arm state to single 407 OUTPUT Testset;"SETUP:DAPOWER:TIMEOUT .5" !Sets DIGITAL Power timeout to 0.5 sec 408 OUTPUT Testset;"SETUP:CTXS:CONTINUOUS OFF" !Sets trigger arm state to single 409 OUTPUT Testset;"SETUP:CTXS:TIMEOUT .5" !Sets TX Spur Power timeout to 0.5 sec 410 OUTPUT Testset;"SETUP:WQUALITY:CONTINUOUS OFF" !Sets trigger arm state to single 411 OUTPUT Testset;"SETUP:GPOWER:CONTINUOUS OFF" !Sets trigger arm state to single 412 OUTPUT Testset;"SETUP:GPOWER:TIMEOUT:STIME 10 S" !Sets Gated Power measurement timeout to 10 seconds 413 OUTPUT Testset;"SETUP:CPOWER:CONTINUOUS OFF" !Sets Channel Power trigger arm state to single 414 OUTPUT Testset;"SETUP:CPOWER:MSP FAST" !Sets Channel Power measurement speed to fast 415 OUTPUT Testset;"SETUP:CPOWER:TIMEOUT .5" !Sets Channel Power timeout to 0.5 sec 416 ! 417 ! 418 OUTPUT Testset;"SYST:SYNC?" !Syst Sync ensures previous GPIB commands have excuted before moving on 419 ENTER Testset;Syst_sync$ 420 ! 421 RETURN ! Sub-routine return 422 ! 423 Register:! 424 !***************************************************************** 425 ! REGISTER MOBILE 426 !***************************************************************** 427 ! 428 ! 429 BEEP 430 DISP "Connect Mobile Station and power up mobile station. Press Continue (F2) When Mobile Shows Service" 431 PAUSE 432 DISP "Waiting for Mobile to Register" 433 OUTPUT Testset;"CALL:MS:REPORTED:CLEAR:ALL" ! Clear MS reported database of any previous registration data 434 OUTPUT Testset;"CALL:REG" 440 Reg_timer=TIMEDATE 441 LOOP !This loop tests for the begining of registration 442 ! 443 OUTPUT Testset;"CALL:MS:REP:ESN:HEX?" 444 ENTER Testset;Esn$ 446 Reg_time=TIMEDATE-Reg_timer 448 ! 469 EXIT IF LEN(Esn$)>3 OR Reg_time>30 470 END LOOP 471 ! 472 IF Reg_time>30 THEN !Test for registration timeout, set for 30 seconds in EXIT IF statement above 473 PRINT "Registration Timed Out, Check Phone Setup" 474 End_program 475 END IF 476 ! 477 DISP "Mobile Registration Complete" 478 ! 480 WAIT 2! Waits for any timer-based registrations to clear out 481 ! 482 ! 483 ! 485 ! 486 !***************************************************************** 487 ! PRINT MOBILE REGISTRATION INFO 488 !***************************************************************** 489 ! 490 !Read registration information 491 ! 492 OUTPUT Testset;"CALL:MS:REP:ESN:HEX?" 493 ENTER Testset;Esn$ 494 OUTPUT Testset;"CALL:MS:REP:MCC?" 495 ENTER Testset;Mcc$ 496 OUTPUT Testset;"CALL:MS:REP:MNC?" 497 ENTER Testset;Mnc$ 498 OUTPUT Testset;"CALL:MS:REP:PNUM?" 499 ENTER Testset;Msin 502 OUTPUT Testset;"CALL:MS:REP:CPCLASS?" 503 ENTER Testset;Eirp 504 OUTPUT Testset;"CALL:MS:REP:DUAL:MODE?" 505 ENTER Testset;Opmode$ 506 OUTPUT Testset;"CALL:MS:REP:PREV?" 507 ENTER Testset;Prev 508 ! 509 IF Openfile_flag THEN GOSUB Open_rslts_file! open the results file if openfile_flag is true 519 ! 520 ! 521 Print_title("Mobile Registration Information:") 522 PRINT 523 Print_res_str("Mobile ESN:",Esn$) 524 Print_res_str("Mobile MCC:",Mcc$) 525 Print_res_str("Mobile MNC:",Mnc$) 526 Print_results("Mobile MSIN:",Msin,"") 528 Print_results("Mobile Pwr Class:",Eirp,"") 529 Print_res_str("Mobile OP MODE:",Opmode$) 530 Print_results("Mobile P_REV:",Prev,"") 531 ! 532 PRINT 533 ! 534 RETURN 535 ! 536 Connect:! 537 !***************************************************************** 538 ! CONNECT CALL 539 !***************************************************************** 540 ! 541 ! 542 !***Page the mobile station*** 543 ! 544 OUTPUT Testset;"SET:CPOW:CONT ON" 545 OUTPUT Testset;"SET:WQU:CONT ON" 546 OUTPUT Testset;"INIT:CPOW" 547 OUTPUT Testset;"INIT:WQU" 548 ! 549 Connect_tries=0 550 LOOP 551 PRINT "Paging mobile station..." 552 OUTPUT Testset;"CALL:ORIG"!Pages the mobile station 553 OUTPUT Testset;"CALL:CONNECTED:STATE?"!Queries for connected/idle state...hangs until state change detector is disarmed 554 ENTER Testset;Call_connected 555 Connect_tries=Connect_tries+1 556 IF NOT Call_connected THEN 557 !OUTPUT Testset;"CALL:END" 558 WAIT 2 559 END IF 560 EXIT IF Call_connected OR Connect_tries=3 !try 3 times to connect 561 END LOOP 562 ! 563 IF NOT Call_connected THEN 564 PRINT "Call attempt failed" 565 GOTO End_program 566 ELSE 570 PRINT "Call connected" 571 Current_chan=Primary_channel 580 END IF 581 ! 582 OUTPUT Testset;"SET:CPOW:CONT OFF" 584 OUTPUT Testset;"SET:WQU:CONT OFF" 585 OUTPUT Testset;"INIT:CPOW:OFF" 586 OUTPUT Testset;"INIT:WQU:OFF" 587 ! 588 ! 589 RETURN 590 ! 591 Handoff:! 592 !***************************************************************** 593 ! Hard Handoff 594 !***************************************************************** 595 ! 600 !***Set up a hard handoff*** 610 OUTPUT Testset;"CALL:SETUP:BAND "&Handoff_band$!Specifies the cell band which call will be handed off to 620 OUTPUT Testset;"CALL:SETUP:CHANNEL ";Handoff_chan !Specifies the channel number of the selected band which call will be handed off to 630 OUTPUT Testset;"CALL:SETUP:SYSTEM "&Handoff_sys$ 631 ! 640 !***Perform a hard handoff*** 650 OUTPUT Testset;"CALL:HANDOFF"!Initiates a hard handoff 660 OUTPUT Testset;"CALL:CONNECTED:STATE?"!Queries for connected/idle state...hangs until state change detector is disarmed 670 ENTER Testset;Call_connected 680 IF NOT Call_connected THEN 690 DISP "Handoff attempt failed, program stopped" 700 GOTO End_program 710 ELSE 720 PRINT 721 Print_results("Handoff completed to channel: ",Handoff_chan,"") 722 PRINT "Call connected" 723 PRINT 731 Current_chan=Handoff_chan 740 END IF 741 ! 742 RETURN 743 ! 744 ! 745 ! 746 Waveform_qual:! 747 !***************************************************************** 748 ! WAVEFORM QUALITY TEST 749 !***************************************************************** 750 ! 751 !***Specify test parameters for waveform quality test*** 752 ! 754 Ior=-75!Cell power 755 Pilot=-7!Pilot channel code domain power level for waveform quality test 756 Traffic=-7.4!Traffic channel code domain power level for waveform quality test 758 ! 759 ! 760 !***Set up measurement parameters*** 761 ! 770 OUTPUT Testset;"CALL:POW ";Ior!Sets Cell Power for Test 800 OUTPUT Testset;"CALL:PIL ";Pilot!Sets Pilot channel level 810 OUTPUT Testset;"CALL:TRAFFIC ";Traffic!Sets Fundamental (Traffic) channel level 811 OUTPUT Testset;"SETUP:WQU:TIMEOUT:STIME 10 S" !Sets waveform quality measurement timeout to 10 seconds 812 ! 820 ! 830 !***Obtain and display measurement results*** 831 ! 840 OUTPUT Testset;"SYST:SYNC?" !SYST:SYNC? ensures that previous sequencial commands have executed before going on in program 841 ENTER Testset;Syst_sync$ 842 ! 850 OUTPUT Testset;"INITIATE:WQUALITY"!Initiates a Waveform Quality measurement 911 OUTPUT Testset;"FETCh:WQUALITY?"!Queries the test set for waveform quality measurement results 920 ENTER Testset;Integrity,Rho,Freq_error,Time_error,Carr_feed,Phase_err,Mag_err,Evm 921 ! 930 !***Print Waveform Quality Results 931 ! 932 Print_title("Waveform Quality Test Results:") 933 Print_results("Channel= ",Current_chan,"") 934 PRINT 935 ! 936 Print_results("Integrity indicator = ",Integrity,"") 940 Print_results("Rho = ",Rho,"") 941 Print_results("Frequency error = ",Freq_error,"Hz") 942 Print_results("Time error = ",Time_error,"us") 943 Print_results("Carrier feedthrough = ",Carr_feed,"dBc") 950 Print_results("Phase error = ",Phase_err,"deg") 951 Print_results("Magnitude error = ",Mag_err,"%") 952 Print_results("Error vector magnitude = ",Evm,"%") 953 PRINT 960 PRINT "Waveform Quality Test complete" 970 PRINT 980 ! 981 ! 982 OUTPUT Testset;"INIT:WQU:OFF" 983 ! 984 RETURN 985 ! 986 ! 987 Gated_power:! 988 !***************************************************************** 989 ! GATED POWER TEST 990 !***************************************************************** 991 ! 992 !***Specify test parameters for gated power test*** 993 ! 994 Ior=-75 !Cell power 995 Pilot=-7 !Pilot channel code domain power level for Gated Power test 996 Traffic=-7.4 !Traffic channel level for Gated Power test 997 ! 998 ! 999 !***Set up measurement parameters*** 1000 ! 1001 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power for Test 1004 OUTPUT Testset;"CALL:PIL ";Pilot !Sets Pilot channel level 1005 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets Fundamental (Traffic) channel level 1006 OUTPUT Testset;"CALL:TRAFFIC:DRATE EIGHTH" !Sets Traffic Channel Data Rate to eighth 1007 ! 1008 OUTPUT Testset;"SYST:SYNC?" !SYST:SYNC? ensures that previous sequencial commands have executed before going on in program 1009 ENTER Testset;Syst_sync$ 1010 WAIT .5 !Experimentation has shown this wait needed to allow eighth rate to take effect 1011 ! 1012 ! 1013 !***Obtain and display measurement results*** 1014 ! 1015 OUTPUT Testset;"INITIATE:GPOWER" !Initiates a Gated Power measurement 1016 OUTPUT Testset;"FETCh:GPOWER?" !Queries the test set for Gated Power measurement results 1017 ENTER Testset;Integrity,Gpow_p_f 1018 ! 1019 SELECT Gpow_p_f !Assign CTXS pass/fail results to a string 1020 CASE 0 1021 Pass_fail$="PASSED" 1022 CASE 1 1023 Pass_fail$="FAILED" 1024 ! 1025 END SELECT 1026 ! 1027 !***Print Gated Power Results 1028 ! 1029 Print_title("Gated Power Test Results:") 1030 Print_results("Channel= ",Current_chan,"") 1031 PRINT 1032 ! 1033 Print_results("Integrity indicator = ",Integrity,"") 1034 Print_res_str("Gated Power Test Result: ",Pass_fail$) 1035 ! 1036 PRINT 1037 PRINT "Gated Power Test complete" 1038 PRINT 1039 ! 1040 !*** Post Test clean up 1041 ! 1042 OUTPUT Testset;"CALL:TRAFFIC:DRATE FULL" !Sets Traffic Channel Data Rate back to full 1043 OUTPUT Testset;"INITIATE:GPOWER:OFF" !TURNS OFF MEAS 1045 DISP "" 1046 ! 1047 RETURN 1048 ! 1049 ! 1050 Max_pow_spur:! 1051 !***************************************************************** 1052 !Max Power and TX Spurious Test 1053 !***************************************************************** 1054 ! 1055 !***Set up test parameters*** 1056 ! 1057 DISP "Measuring Max Power and TX Spurious" 1058 ! 1059 Ior=-104 ! This should be -104, however interference in test development required this level 1060 !change to -104 in real application 1061 Pilot=-7 1062 Traffic=-7.4 1063 ! 1064 OUTPUT Testset;"CALL:APAR:POW:NOM 7" !Set Access paramters for test 1067 OUTPUT Testset;"CALL:APAR:POW:INIT 15" !Set Access paramters for test 1068 OUTPUT Testset;"CALL:APAR:POW:STEP 7" !Set Access paramters for test 1069 OUTPUT Testset;"CALL:APAR:SEQ:RESP 15" !Set Access paramters for test 1070 OUTPUT Testset;"CALL:APAR:SEQ:REQ 15" !Set Access paramters for test 1071 OUTPUT Testset;"CALL:PIL ";Pilot !Sets pilot channel level 1072 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets traffic channel level 1073 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power Test 1074 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE UP" !Starts transmission of All Up (0) power control bits 1075 ! 1076 !***Obtain measurement results*** 1077 ! 1078 WAIT 1 !Settling time to allow mobile power to slew up to maximum power 1079 OUTPUT Testset;"INITIATE:DAPOWER;CTXS" !Initiates Average Power and TX Spurious measurements 1080 OUTPUT Testset;"FETCh:DAPOWER?" 1081 ENTER Testset;Integrity,Avg_power_dbm 1082 OUTPUT Testset;"FETCH:CTXS?" 1083 ENTER Testset;Ctxs_integ,Ctxs_p_f,Lower_adj,Upper_adj,Lower_alt,Upper_alt 1084 ! 1085 Avg_power_dbw=Avg_power_dbm-30 !Convert dBm to dBW 1086 ! 1087 SELECT Ctxs_p_f !Assign CTXS pass/fail results to a string 1088 CASE 0 1089 Pass_fail$="PASSED" 1090 CASE 1 1091 Pass_fail$="FAILED" 1092 ! 1093 END SELECT 1094 ! 1095 ! 1096 !***Display measurements if the mobile station did not drop the call*** 1097 ! 1098 OUTPUT Testset;"CALL:STATUS?" 1099 ENTER Testset;Call_status$ 1100 IF Call_status$<>"CONN" THEN 1101 PRINT "Mobile station dropped call, invalid results" 1102 GOTO End_program 1103 END IF 1104 ! 1105 !***Print Max Power Test Results 1106 ! 1107 PRINT 1108 Print_title("Max Power Test Results:") 1109 Print_results("Channel= ",Current_chan,"") 1110 PRINT 1111 ! 1112 Print_results("Integrity indicator = ",Integrity,"") 1113 Print_results("Maximum Power dBm:",Avg_power_dbm,"dBm") 1114 Print_results("Maximum Power dBW:",Avg_power_dbw,"dBW") 1115 ! 1116 PRINT "Max Power Test complete" 1117 PRINT 1118 ! 1119 !***Print TX Spurious Test Results 1120 ! 1121 PRINT 1122 Print_title("TX Spurious Test Results:") 1123 Print_results("Channel= ",Current_chan,"") 1124 PRINT 1125 ! 1126 Print_results("Integrity indicator = ",Ctxs_integ,"") 1127 Print_res_str("Test Result: ",Pass_fail$) 1128 Print_results("Lower Adjacent Power",Lower_adj,"dBc") 1129 Print_results("Upper Adjacent Power",Upper_adj,"dBc") 1130 Print_results("Lower Alternate Power",Lower_alt,"dBc") 1131 Print_results("Upper Alternate Power",Upper_alt,"dBc") 1132 ! 1133 PRINT "TX Spurious Test complete" 1134 PRINT 1135 ! 1136 !***Post Test clean up*** 1137 ! 1138 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ACTIVE" ! Returns to active power control bits 1139 OUTPUT Testset;"CALL:APAR:POW:NOM 0" !Set Access paramters back to default 1140 OUTPUT Testset;"CALL:APAR:POW:INIT 0" !Set Access paramters back to default 1141 OUTPUT Testset;"CALL:APAR:POW:STEP 3" !Set Access paramters back to default 1142 OUTPUT Testset;"CALL:APAR:SEQ:RESP 1" !Set Access paramters back to default 1143 OUTPUT Testset;"CALL:APAR:SEQ:REQ 1" !Set Access paramters back to default 1144 OUTPUT Testset;"INIT:DAP:OFF" !Turns Digital ave power off 1145 OUTPUT Testset;"INIT:CTXS:OFF" !Turns TX Spurious off 1146 ! 1147 ! 1148 DISP "" 1149 ! 1150 RETURN 1151 ! 1152 Max_power:! 1153 !***************************************************************** 1154 !Max Power Test 1155 !***************************************************************** 1156 ! 1157 !***Set up test parameters*** 1158 ! 1159 DISP "Measuring Max Power" 1160 ! 1161 Ior=-104 ! This should be -104, however interference in test development required this level 1162 !change to -104 in real application 1163 Pilot=-7 1164 Traffic=-7.4 1165 ! 1166 OUTPUT Testset;"CALL:APAR:POW:NOM 7" !Set Access paramters for test 1167 OUTPUT Testset;"CALL:APAR:POW:INIT 15" !Set Access paramters for test 1168 OUTPUT Testset;"CALL:APAR:POW:STEP 7" !Set Access paramters for test 1169 OUTPUT Testset;"CALL:APAR:SEQ:RESP 15" !Set Access paramters for test 1170 OUTPUT Testset;"CALL:APAR:SEQ:REQ 15" !Set Access paramters for test 1171 OUTPUT Testset;"CALL:PIL ";Pilot !Sets pilot channel level 1172 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets traffic channel level 1173 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power Test 1174 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE UP" !Starts transmission of All Up (0) power control bits 1175 ! 1176 !***Obtain measurement results*** 1177 ! 1178 WAIT 1 !Settling time to allow mobile power to slew up to maximum power 1179 OUTPUT Testset;"INITIATE:DAPOWER" !Initiates Average Power and TX Spurious measurements 1180 OUTPUT Testset;"FETCh:DAPOWER?" 1181 ENTER Testset;Integrity,Avg_power_dbm 1182 ! 1184 ! 1185 Avg_power_dbw=Avg_power_dbm-30 !Convert dBm to dBW 1186 ! 1194 ! 1195 ! 1196 !***Display measurements if the mobile station did not drop the call*** 1197 ! 1198 OUTPUT Testset;"CALL:STATUS?" 1199 ENTER Testset;Call_status$ 1200 IF Call_status$<>"CONN" THEN 1201 PRINT "Mobile station dropped call, invalid results" 1202 GOTO End_program 1203 END IF 1204 ! 1205 !***Print Max Power Test Results 1206 ! 1207 PRINT 1208 Print_title("Max Power Test Results:") 1209 Print_results("Channel= ",Current_chan,"") 1210 PRINT 1211 ! 1212 Print_results("Integrity indicator = ",Integrity,"") 1213 Print_results("Maximum Power dBm:",Avg_power_dbm,"dBm") 1214 Print_results("Maximum Power dBW:",Avg_power_dbw,"dBW") 1215 ! 1216 PRINT "Max Power Test complete" 1217 PRINT 1218 ! 1219 ! 1235 ! 1236 !***Post Test clean up*** 1237 ! 1238 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ACTIVE" ! Returns to active power control bits 1239 OUTPUT Testset;"CALL:APAR:POW:NOM 0" !Set Access paramters back to default 1240 OUTPUT Testset;"CALL:APAR:POW:INIT 0" !Set Access paramters back to default 1241 OUTPUT Testset;"CALL:APAR:POW:STEP 3" !Set Access paramters back to default 1242 OUTPUT Testset;"CALL:APAR:SEQ:RESP 1" !Set Access paramters back to default 1243 OUTPUT Testset;"CALL:APAR:SEQ:REQ 1" !Set Access paramters back to default 1244 OUTPUT Testset;"INIT:DAP:OFF" !Turns Digital ave power off 1247 ! 1248 DISP "" 1249 ! 1250 RETURN 1251 ! 1252 ! 1253 ! 1254 Min_pow:! 1255 !***************************************************************** 1256 !Minimum Power Test 1257 !***************************************************************** 1258 ! 1259 DISP "Measuring Minimum Power" 1260 ! 1261 !***Set up measurement parameters*** 1262 ! 1263 Ior=-25 1264 Pilot=-7 1265 Traffic=-7.4 1266 ! 1267 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 0" !Turns off call drop timer 1268 OUTPUT Testset;"CALL:PIL ";Pilot !Sets pilot channel level 1269 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets traffic channel level 1270 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power for test 1271 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE DOWN" !Starts transmission of All Down (1) power control bits 1272 ! 1273 ! 1274 !***Obtain measurement results*** 1275 ! 1276 WAIT 1 !Settling time for mobile output power to slew down 1277 ! 1278 GOSUB Meas_chan_pow 1279 ! 1280 ! 1281 DISP "Minimum Power Test complete" 1282 ! 1283 !***Print measurement results 1284 ! 1285 Print_title("Minimum Power Test Results:") 1286 Print_results("Channel= ",Current_chan,"") 1287 PRINT 1288 Print_results("Integrity indicator = ",Integrity,"") 1289 Print_results("Minimum Power dBm:",Channel_power,"dBm/1.23 MHz") 1290 PRINT 1291 PRINT "Minimum Power Test complete" 1292 ! 1293 !***Post Minimum Power Test Cleanup*** 1294 ! 1295 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ACTIVE" !Returns to active power control bits 1296 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 1" !Returns call drop timer to ON 1297 OUTPUT Testset;"RFANALYZER:CONTROL:POWER:AUTO ON" 1298 OUTPUT Testset;"INIT:CPOW:OFF" !Turns Channel Power off 1299 ! 1300 DISP "" 1301 ! 1302 RETURN 1303 ! 1304 Rng_open_loop:! 1305 !***************************************************************** 1306 !Range of Open Loop Power Test 1307 !***************************************************************** 1308 ! 1309 DISP "Range of Open Loop Power" 1310 ! 1311 !***Set up measurement parameters*** 1312 ! 1313 Ior=-50 !Starting power level for test 1314 Ior1=-25 !First level for test 1315 Ior2=-65 !Second level for test 1316 Ior3=-104 !Third level for test 1317 Pilot=-7 1318 Traffic=-7.4 1319 ! 1320 ! 1321 ! 1322 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 0"!Turns off call drop timer 1323 OUTPUT Testset;"CALL:PIL ";Pilot !Sets pilot channel level 1324 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets traffic channel level 1325 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power for test 1326 WAIT .5 !Settling time for mobile power to slew 1327 ! 1328 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ALT" !Starts transmission of Alternating power control bits 1329 ! 1330 ! 1331 !***Obtain measurement results*** 1332 ! 1333 OUTPUT Testset;"CALL:POW ";Ior1 !Sets Cell Power for test 1 1334 WAIT .1 !Settling time for mobile output power to slew 1335 GOSUB Meas_chan_pow 1336 Test1=Channel_power 1337 OUTPUT Testset;"CALL:POW ";Ior2 !Sets Cell Power for test 2 1338 WAIT .1 !Settling time for mobile output power to slew 1339 GOSUB Meas_chan_pow 1340 Test2=Channel_power 1341 OUTPUT Testset;"CALL:POW ";Ior3 !Sets Cell Power for test 3 1342 WAIT .1 !Settling time for mobile output power to slew 1343 GOSUB Meas_chan_pow 1344 Test3=Channel_power 1345 ! 1346 ! 1347 Print_ol_res:! 1348 DISP "Range of Open Loop Power Control Test Complete" 1349 ! 1350 !***Print measurement results 1351 PRINT 1352 Print_title("Range of Open Loop Power Control Results:") 1353 Print_results("Channel= ",Current_chan,"") 1354 PRINT 1355 Print_results("Integrity indicator = ",Integrity,"") 1356 Print_results("Test 1 @ "&VAL$(Ior1)&" dBm:",Test1,"dBm/1.23 MHz") 1357 Print_results("Test 2 @ "&VAL$(Ior2)&" dBm:",Test2,"dBm/1.23 MHz") 1358 Print_results("Test 3 @ "&VAL$(Ior3)&" dBm:",Test3,"dBm/1.23 MHz") 1359 ! 1360 PRINT 1361 PRINT "Range of Open Power Test Complete" 1362 PRINT 1363 ! 1364 !***Post test clean up 1365 ! 1366 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ACTIVE"!Returns to active power control bits 1367 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 1"!Returns call drop timer to ON 1368 OUTPUT Testset;"RFANALYZER:CONTROL:POWER:AUTO ON" 1369 OUTPUT Testset;"INIT:CPOW:OFF" 1370 ! 1371 DISP "" 1372 ! 1373 RETURN 1374 ! 1375 Rng_closed_loop:! 1376 !***************************************************************** 1377 !Range of Closed Loop Power Test 1378 !***************************************************************** 1379 ! 1380 ! 1381 !***Set up measurement parameters*** 1382 ! 1383 Ior=-58 !Power level for test which results in -15 dBm mobile power 1384 Traffic=-7.4 1385 ! 1386 ! 1387 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 0"!Turns off call drop timer 1388 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets traffic channel level 1389 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power for test 1390 WAIT .2 1391 ! 1392 ! 1393 ! 1394 ! 1395 !***Start of test loop at data rates defined in data statement above*** 1396 ! 1397 FOR J=1 TO 4 1398 ! 1399 ! 1400 !***Determine wait time for 100 pc groups at selected data rate 1401 ! 1402 ! 1403 ! 1404 SELECT J 1405 ! 1406 CASE 1 1407 Tc_drate$="FULL" 1408 Wait_time=.125 1409 ! 1410 CASE 2 1411 Tc_drate$="HALF" 1412 Wait_time=.250 1413 ! 1414 CASE 3 1415 Tc_drate$="QUARTER" 1416 Wait_time=.5 1417 ! 1418 CASE 4 1419 Tc_drate$="EIGHTH" 1420 Wait_time=1 1421 ! 1422 END SELECT 1423 ! 1424 IF I>1 THEN 1425 OUTPUT Testset;"SETUP:CPOWER:MSP NORMAL"!Sets Channel Power measurement speed to NORMAL 1426 END IF 1427 ! 1428 OUTPUT Testset;"CALL:TRAFFIC:DRATE "&Tc_drate$ !Sets Traffic Channel Data Rate 1429 WAIT .1 !Settling time for data rate change 1430 ! 1431 ! 1432 !***Obtain measurement results*** 1433 ! 1434 GOSUB Meas_chan_pow 1435 Closed_strt=Channel_power 1436 ! 1437 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE UP" !Starts transmission of UP control bits 1438 WAIT Wait_time !Wait 125 ms for 100 up PC groups 1439 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ALT" !Starts transmission of Alternating power control bits 1440 GOSUB Meas_chan_pow 1441 Closed_up_rng=Channel_power 1442 ! 1443 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE DOWN" !Starts transmission of UP control bits 1444 WAIT Wait_time !Wait 125 ms for 100 up PC groups 1445 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ALT" !Starts transmission of Alternating power control bits 1446 GOSUB Meas_chan_pow 1447 Closed_dn_rng=Channel_power 1448 ! 1449 OUTPUT Testset;"CALL:CLPCONTROL:REVERSE:MODE ACTIVE"!Returns to active power control bits 1450 OUTPUT Testset;"CALL:TRAFFIC:DRATE FULL" !Sets Traffic Channel Data Rate to full to ramp back for next test faster 1451 OUTPUT Testset;"RFANALYZER:MANUAL:POWER:SELECTED -15 DBM" !Set receiver control from Auto 1452 ! 1453 WAIT .1 !Wait for power to ramp back to -15 dBm for next test 1454 ! 1455 Print_cl_res:! 1456 DISP "Range of Closed Loop Power Control Test @"&Tc_drate$&" Rate Complete" 1457 ! 1458 !***Print measurement results 1459 ! 1460 Print_title("Range of Closed Loop Power Control @"&Tc_drate$&" Rate Results:") 1461 Print_results("Channel= ",Current_chan,"") 1462 PRINT 1463 Print_results("Integrity indicator = ",Integrity,"") 1464 Print_results("Closed Loop Up Range:",Closed_up_rng-Closed_strt,"dB") 1465 Print_results("Closed Loop Dn Range:",Closed_strt-Closed_dn_rng,"dB") 1466 PRINT 1467 ! 1468 NEXT J 1469 ! 1470 PRINT "Range of Closed Loop Power Test Complete" 1471 ! 1472 !***Post Test Clean up *** 1473 ! 1474 OUTPUT Testset;"CALL:CONNECTED:DROP:TIMER:STATE 1"!Returns call drop timer to ON 1475 OUTPUT Testset;"RFANALYZER:CONTROL:POWER:AUTO ON" 1476 OUTPUT Testset;"CALL:TRAFFIC:DRATE FULL" !Sets Traffic Channel Data Rate to full 1477 OUTPUT Testset;"SETUP:CPOWER:MSP FAST" !Sets Channel Power measurement speed to fast 1478 DISP "" 1479 ! 1480 RETURN 1481 ! 1482 ! 1483 Sensitivity:! 1484 ! 1485 !***************************************************************** 1486 ! SENSITIVITY FRAME ERROR RATE TEST 1487 !***************************************************************** 1488 ! 1489 ! 1490 ! 1491 !***Set up measurement parameters*** 1492 ! 1493 Ior=-104 ! This should be -104, however interference in test development required this level 1494 !change to -104 in real application 1495 Pilot=-7 1496 Traffic=-15.6 1497 Max_frames=1000 !Maximum frames 1498 Conf_limit=.5 !0.5% confidence limit 1499 Time_out=25 !Timeout for FER measurement 1500 ! 1501 ! 1502 OUTPUT Testset;"SETUP:CFERROR:CONTINUOUS OFF" !Sets trigger arm state to single 1503 OUTPUT Testset;"SETUP:CFERROR:COUNT ";Max_frames !Sets MAXIMUM FRAMES FOR TEST 1504 OUTPUT Testset;"SETUP:CFERROR:CONF:REQ ";Conf_limit !Sets CONFIDENCE LIMIT 1505 OUTPUT Testset;"SETUP:CFERROR:TIM ";Time_out !Sets mesurement timeout 1506 OUTPUT Testset;"CALL:POW ";Ior! Sets Cell Power for Test 1507 OUTPUT Testset;"CALL:PIL ";Pilot!Sets Pilot channel level 1508 OUTPUT Testset;"CALL:TRAFFIC ";Traffic!Sets Traffic channel level 1509 ! 1510 WAIT .5 ! Open Loop Time Response settling time after cell power change 1511 ! 1512 !***Obtain measurement results*** 1513 ! 1514 OUTPUT Testset;"INITIATE:CFERROR"!Initiates a frame error rate measurement 1515 DISP "Measuring FER" 1516 OUTPUT Testset;"FETCh:CFERROR?"!Queries the test set for frame error rate measurement results 1517 ENTER Testset;Integrity,Fer_test,Fer_ratio,Fer_count,Frames_tested 1518 ! 1519 SELECT Fer_test!Assign pass/fail results to a string 1520 CASE 0 1521 Pass_fail$="PASSED" 1522 CASE 1 1523 Pass_fail$="FAILED" 1524 CASE 2 1525 Pass_fail$="MAXIMUM FRAMES REACHED" 1526 CASE 3 1527 Pass_fail$="UNKNOWN" 1528 END SELECT 1529 ! 1530 !***Print FER Results*** 1531 ! 1532 PRINT 1533 Print_title("Sensitivity Frame Error Rate Test Results:") 1534 Print_results("Channel= ",Current_chan,"") 1535 ! 1536 Print_results("Integrity indicator = ",Integrity,"") 1537 Print_res_str("Sensitivity FER Test Results",Pass_fail$) 1538 Print_results("FER Ratio",Fer_ratio,"%") 1539 Print_results("FER Errors Count",Fer_count,"frames") 1540 Print_results("Frames Tested",Frames_tested,"") 1541 ! 1542 PRINT 1543 PRINT "Sensitivity FER Test complete" 1544 PRINT 1545 ! 1546 !***Post Test Clean up 1547 ! 1548 DISP "" 1549 ! 1550 RETURN 1551 ! 1552 ! 1553 Dynamic_range:! 1554 !***************************************************************** 1555 ! DYNAMIC RANGE FRAME ERROR RATE TEST 1556 !***************************************************************** 1557 ! 1558 ! 1559 ! 1560 !***Set up measurement parameters*** 1561 ! 1562 Ior=-25 1563 Pilot=-7 1564 Traffic=-15.6 1565 Max_frames=1000 !Maximum frames 1566 Conf_limit=.5 !0.5% confidence limit 1567 Time_out=25 !Timeout for FER measurement 1568 ! 1569 ! 1570 OUTPUT Testset;"SETUP:CFERROR:CONTINUOUS OFF" !Sets trigger arm state to single 1571 OUTPUT Testset;"SETUP:CFERROR:COUNT ";Max_frames !Sets MAXIMUM FRAMES FOR TEST 1572 OUTPUT Testset;"SETUP:CFERROR:CONF:REQ ";Conf_limit !Sets CONFIDENCE LIMIT 1573 OUTPUT Testset;"SETUP:CFERROR:TIM ";Time_out !Sets mesurement timeout 1574 OUTPUT Testset;"CALL:POW ";Ior! Sets Cell Power for Test 1575 OUTPUT Testset;"CALL:PIL ";Pilot!Sets Pilot channel level 1576 OUTPUT Testset;"CALL:TRAFFIC ";Traffic!Sets Traffic channel level 1577 ! 1578 WAIT .2 ! Open Loop Time Response settling time after cell power change 1579 ! 1580 !***Obtain measurement results*** 1581 ! 1582 OUTPUT Testset;"INITIATE:CFERROR"!Initiates a frame error rate measurement 1583 DISP "Measuring FER" 1584 OUTPUT Testset;"FETCh:CFERROR?"!Queries the test set for frame error rate measurement results 1585 ENTER Testset;Integrity,Fer_test,Fer_ratio,Fer_count,Frames_tested 1586 ! 1587 SELECT Fer_test!Assign pass/fail results to a string 1588 CASE 0 1589 Pass_fail$="PASSED" 1590 CASE 1 1591 Pass_fail$="FAILED" 1592 CASE 2 1593 Pass_fail$="MAXIMUM FRAMES REACHED" 1594 CASE 3 1595 Pass_fail$="UNKNOWN" 1596 END SELECT 1597 ! 1598 !***Print FER Results*** 1599 ! 1600 PRINT 1601 Print_title("Dynamic Range Frame Error Rate Test Results:") 1602 Print_results("Channel= ",Current_chan,"") 1603 ! 1604 Print_results("Integrity indicator = ",Integrity,"") 1605 Print_res_str("Dynamic Rng FER Test: ",Pass_fail$) 1606 Print_results("FER Ratio",Fer_ratio,"%") 1607 Print_results("FER Errors Count",Fer_count,"frames") 1608 Print_results("Frames Tested",Frames_tested,"") 1609 ! 1610 PRINT 1611 PRINT "Dynamic Range FER Test complete" 1612 PRINT 1613 ! 1614 RETURN 1615 ! 1616 ! 1617 Traf_fer_awgn:! 1618 !*********************************************************************** 1619 ! TRAFFIC FRAME ERROR RATE WITH AWGN TEST 1 - Eb/Nt = 3.77, FULL RATE 1620 !*********************************************************************** 1621 ! 1622 ! 1623 ! 1624 !***Set up measurement parameters*** 1625 ! 1626 Ior=-55 !FORWARD CHANNEL POWER 1627 Ioc=-54 !AWGN POWER 1628 Max_frames=1000 !Maximum frames 1629 Time_out=25 !Timeout for FER measurement 1630 ! 1631 ! 1632 OUTPUT Testset;"SETUP:CFERROR:CONTINUOUS OFF" !Sets trigger arm state to single 1633 OUTPUT Testset;"SETUP:CFERROR:COUNT ";Max_frames !Sets MAXIMUM FRAMES FOR TEST 1634 OUTPUT Testset;"SETUP:CFERROR:TIM ";Time_out !Sets mesurement timeout 1635 OUTPUT Testset;"CALL:POW ";Ior !Sets Cell Power for Test 1636 OUTPUT Testset;"CALL:AWGN:POW ";Ioc !Sets AWGN POWER level 1637 ! 1638 ! 1639 FOR I=1 TO 6 1640 ! 1641 SELECT I 1642 ! 1643 CASE 1 1644 Traffic=-16.3 1645 Tc_drate$="FULL" 1646 Conf_limit=3 1647 Eb_nt$="3.77" 1648 CASE 2 1649 Traffic=-15.8 1650 Tc_drate$="FULL" 1651 Conf_limit=1 1652 Eb_nt$="4.27" 1653 CASE 3 1654 Traffic=-15.6 1655 Tc_drate$="FULL" 1656 Conf_limit=.5 1657 Eb_nt$="4.47" 1658 CASE 4 1659 Traffic=-19.1 1660 Tc_drate$="HALF" 1661 Conf_limit=1 1662 Eb_nt$="4.0" 1663 CASE 5 1664 Traffic=-21.6 1665 Tc_drate$="QUARTER" 1666 Conf_limit=1 1667 Eb_nt$="4.5" 1668 CASE 6 1669 Traffic=-24.5 1670 Tc_drate$="EIGHTH" 1671 Conf_limit=1 1672 Eb_nt$="4.6" 1673 ! 1674 END SELECT 1675 ! 1676 ! 1677 OUTPUT Testset;"CALL:TRAFFIC:DRATE "&Tc_drate$ !Sets Traffic Channel Data Rate 1678 WAIT .1 !Settling time for data rate change 1679 OUTPUT Testset;"CALL:TRAFFIC ";Traffic !Sets Traffic channel level 1680 OUTPUT Testset;"SETUP:CFERROR:CONF:REQ ";Conf_limit!Sets CONFIDENCE LIMIT 1681 ! 1682 !***Obtain measurement results*** 1683 ! 1684 DISP "Measuring Demod of TC with AWGN, "&Tc_drate$&" Rate, Traffic= "&VAL$(Traffic)&", Eb/Nt= "&Eb_nt$ 1685 ! 1686 OUTPUT Testset;"INITIATE:CFERROR"!Initiates a frame error rate measurement 1687 OUTPUT Testset;"FETCh:CFERROR?"!Queries the test set for frame error rate measurement results 1688 ENTER Testset;Integrity,Fer_test,Fer_ratio,Fer_count,Frames_tested 1689 ! 1690 SELECT Fer_test!Assign pass/fail results to a string 1691 CASE 0 1692 Pass_fail$="PASSED" 1693 CASE 1 1694 Pass_fail$="FAILED" 1695 CASE 2 1696 Pass_fail$="MAXIMUM NUMBER OF FRAMES WERE TESTED" 1697 CASE 3 1698 Pass_fail$="UNKNOWN" 1699 END SELECT 1700 ! 1701 !***Print FER Results*** 1702 ! 1703 PRINT 1704 Print_title("Results Demod of TC with AWGN, "&Tc_drate$&" Rate, Traffic= "&VAL$(Traffic)&", Eb/Nt= "&Eb_nt$) 1705 Print_results("Channel= ",Current_chan,"") 1706 ! 1707 Print_results("Integrity indicator = ",Integrity,"") 1708 Print_res_str("Dynamic Rng FER Test: ",Pass_fail$) 1709 Print_results("FER Ratio",Fer_ratio,"%") 1710 Print_results("FER Errors Count",Fer_count,"frames") 1711 Print_results("Frames Tested",Frames_tested,"") 1712 ! 1713 PRINT 1714 ! 1715 NEXT I 1716 ! 1717 PRINT "FER with AWGN Tests complete" 1718 PRINT 1719 ! 1720 !***Post Test Clean up 1721 ! 1722 OUTPUT Testset;"CALL:AWGN:POW:STATE OFF" !Sets AWGN POWER level 1723 OUTPUT Testset;"CALL:TRAF:DRAT FULL" !Sets traffic drate to FULL 1724 OUTPUT Testset;"CALL:TRAFFIC -15.6" !Sets Traffic channel level 1725 ! 1726 DISP "" 1727 ! 1728 RETURN 1729 ! 1730 ! 1731 ! 1732 !*************************************************************************************** 1733 ! MEASURE CHANNEL POWER SUB-ROUTINE. IMPLEMENTS SIMPLE RANGING IN CASE OVER/UNDER RANGE 1734 !*************************************************************************************** 1735 ! 1736 Meas_chan_pow:! 1737 FOR I=1 TO 5 1738 OUTPUT Testset;"INITIATE:CPOWER" !Initiates a channel power measurement 1739 ! 1740 OUTPUT Testset;"FETCh:CPOWER?" !Read channel power measurement 1741 ENTER Testset;Integrity,Channel_power ! Read Integrity bit and channel power result 1742 ! 1743 IF (Integrity=6 OR Integrity=5) AND 30>Channel_power>-80 THEN !Measuement out of-range, recover by setting Receiver control to manual and entering measured level 1744 !as expected level 1745 OUTPUT Testset;"RFANALYZER:CONTROL:POWER:AUTO OFF" 1746 OUTPUT Testset;"RFANALYZER:MANUAL:POWER:SELECTED ";INT(Channel_power);" DBM" !Set receiver control from Auto 1747 !to manual to the measured level 1748 ELSE 1749 I=5 1750 END IF 1751 ! 1752 NEXT I 1753 RETURN 1754 ! 1755 ! 1756 !*************************************************************************************** 1757 ! Open text file to save test results to, file name is ESN plus current time 1758 !*************************************************************************************** 1759 ! 1760 Open_rslts_file:! 1761 ! 1762 ON ERROR RECOVER Make_dir 1763 MASS STORAGE IS "C:\RESULTS" 1764 GOTO Skip_create 1765 Make_dir: CREATE DIR "C:\RESULTS" 1766 Skip_create: OFF ERROR 1767 ! 1768 Cur_tm$=TIME$(TIMEDATE) 1769 Cur_tm$[3]="_"&Cur_tm$[4] !Replace the : in TIME$ to _ 1770 Cur_tm$[6]="_"&Cur_tm$[7] 1771 ! 1772 Result_file$=Esn$[2,11]&" "&Cur_tm$&".txt" 1773 ! 1774 CREATE Result_file$,130 1775 ASSIGN @File TO Result_file$ !Create data file using Esn and current time 1776 ! 1777 COM /File/@File 1778 ! 1779 Openfile_flag=1 !Set open file flag to true 1780 ! 1781 RETURN 1782 ! 1783 ! 1784 ! 1785 End_program: ! 1786 ! 1787 !***************************************************************** 1788 ! End of All Testing Cleanup 1789 !***************************************************************** 1790 ! 1791 !***End Call and Return to default call processing settings*** 1792 ! 1793 OUTPUT Testset;"CALL:POW -50"! Returns cell power to -50 dBm/1.23 MHz 1794 OUTPUT Testset;"CALL:REGISTER:TIMER:STATE ON" !Turns on timer-based registrations 1795 OUTPUT Testset;"CALL:END" 1796 OUTPUT Testset;"CALL:STAT:STAT?" 1797 ENTER Testset;Call_status$ 1798 PRINT "Call Ended, Status:",Call_status$ 1799 Print_title("End of Test") 1800 Print_results("Total Test Time= ",End_time-Start_time," Seconds") 1801 ! 1802 OUTPUT Testset;"CALL:CHAN ";Primary_channel!Sets Primary RF Channel for selected System Type and Cell Band 1803 ! 1804 IF Openfile_flag THEN ASSIGN @File TO *!Close the data file 1805 ! 1806 PRINT "End of Program" 1807 END 1808 ! 1809 !***************************************************************** 1810 ! Sub-program Section 1811 !***************************************************************** 1812 ! 1813 Timeout: SUB Timeout ! Global timeout handler (from Step 1) 1814 COM Testset,Result_file$ 1815 PRINT "Program timed out" 1816 CLEAR 7 1817 CLEAR Testset 1818 STOP 1819 SUBEND 1820 Print_results: SUB Print_results(Meas_name$,Res1,OPTIONAL Units$) 1821 COM Testset,Result_file$ 1822 COM /File/Openfile_flag 1824 ! 1826 ! 1829 PRINT USING "5X,30A,5X,M4D.2D,1X,15A";Meas_name$;Res1;Units$ 1830 ! 1831 IF Openfile_flag THEN 1832 COM /File/@File 1833 OUTPUT @File USING "5X,30A,5X,M4D.2D,1X,15A";Meas_name$;Res1;Units$ 1834 END IF 1835 ! 1836 SUBEND 1837 Print_res_str: SUB Print_res_str(String_name$,OPTIONAL Results$) 1838 COM Testset,Result_file$ 1839 COM /File/Openfile_flag 1840 ! 1841 ! 1842 PRINT USING "5X,30A,5X,20A";String_name$;Results$ 1843 IF Openfile_flag THEN 1844 COM /File/@File 1845 OUTPUT @File USING "5X,30A,5X,20A";String_name$;Results$ 1846 END IF 1847 ! 1848 SUBEND 1849 ! 1850 DEF FNConnected 1851 COM Testset,Result_file$ 1852 OUTPUT Testset;"CALL:CONN:STAT?" 1853 ENTER Testset;Call_status 1854 RETURN Call_status 1855 ! 1856 FNEND 1857 Print_title: SUB Print_title(Title$) 1858 COM Testset,Result_file$ 1859 COM /File/Openfile_flag 1860 ! 1861 PRINT USING "3X,72A";Title$ 1862 IF Openfile_flag THEN 1863 COM /File/@File 1865 OUTPUT @File USING "2A,/";" " 1866 OUTPUT @File USING "3X,72A,/";Title$ 1867 END IF 1868 ! 1869 SUBEND