~ubuntu-branches/ubuntu/wily/flrig/wily

« back to all changes in this revision

Viewing changes to src/rigs/FT950.cxx

  • Committer: Package Import Robot
  • Author(s): Kamal Mostafa
  • Date: 2014-10-25 11:17:10 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20141025111710-n32skgya3l9u1brw
Tags: 1.3.17-1
* New upstream release (Closes: #761839)
* Debian Standards-Version: 3.9.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
#define WVALS_LIMIT -1
27
27
 
 
28
#define FL950_WAIT_TIME 200
 
29
 
28
30
enum mFT950 {
29
31
  mLSB, mUSB, mCW, mFM, mAM, mRTTY_L, mCW_R, mPKT_L, mRTTY_U, mPKT_FM, mFM_N, mPKT_U, mAM_N };
30
32
//  0,    1,    2,   3,   4,   5,       6,     7,      8,       9,       10,    11,     12      // mode index
217
219
 
218
220
// "MRnnn;" if valid, returns last channel used, "mrlll...;", along with channel nnn info.
219
221
        cmd = "MR118;";
220
 
        waitN(27, 100, "Read UK 60m Channel Mem", ASC);
 
222
        wait_char(';', 27, FL950_WAIT_TIME, "Read UK 60m Channel Mem", ASC);
221
223
        size_t p = replystr.rfind("MR");
222
224
        if (p == string::npos) {
223
225
                Channels_60m = US_60m_chan;
235
237
        }
236
238
        opSelect60->index(m_60m_indx);
237
239
 
238
 
//      cmd = "EX035;";
239
 
//      waitN(11,100,"Read Vfo Adjust", ASC);
240
 
//      size_t p = replystr.rfind("EX035");
241
 
 
242
240
}
243
241
 
244
242
void RIG_FT950::post_initialize()
251
249
{
252
250
        cmd = rsp = "FA";
253
251
        cmd += ';';
254
 
        waitN(11, 100, "get vfo A", ASC);
 
252
        wait_char(';',11, FL950_WAIT_TIME, "get vfo A", ASC);
255
253
 
256
254
        size_t p = replystr.rfind(rsp);
257
255
        if (p == string::npos) return freqA;
278
276
{
279
277
        cmd = rsp = "FB";
280
278
        cmd += ';';
281
 
        waitN(11, 100, "get vfo B", ASC);
 
279
        wait_char(';',11, FL950_WAIT_TIME, "get vfo B", ASC);
282
280
 
283
281
        size_t p = replystr.rfind(rsp);
284
282
        if (p == string::npos) return freqB;
314
312
{
315
313
        cmd = rsp = "EX035";
316
314
        sendCommand(cmd.append(";"));
317
 
        waitN(9, 100, "get Vfo Adjust", ASC);
 
315
        wait_char(';',9, FL950_WAIT_TIME, "get Vfo Adjust", ASC);
318
316
 
319
317
        size_t p = replystr.rfind(rsp);
320
318
        if (p == string::npos) return 0;
394
392
// tx vfo
395
393
        cmd = rsp = "FT";
396
394
        cmd.append(";");
397
 
        waitN(4, 100, "get split tx vfo", ASC);
 
395
        wait_char(';',4, FL950_WAIT_TIME, "get split tx vfo", ASC);
398
396
        p = replystr.rfind(rsp);
399
397
        if (p == string::npos) return false;
400
398
        tx = replystr[p+2] - '0';
402
400
// rx vfo
403
401
        cmd = rsp = "FR";
404
402
        cmd.append(";");
405
 
        waitN(4, 100, "get split rx vfo", ASC);
 
403
        wait_char(';',4, FL950_WAIT_TIME, "get split rx vfo", ASC);
406
404
 
407
405
        p = replystr.rfind(rsp);
408
406
        if (p == string::npos) return false;
418
416
{
419
417
        cmd = rsp = "SM0";
420
418
        cmd += ';';
421
 
        waitN(7, 100, "get smeter", ASC);
 
419
        wait_char(';',7, FL950_WAIT_TIME, "get smeter", ASC);
422
420
 
423
421
        size_t p = replystr.rfind(rsp);
424
422
        if (p == string::npos) return 0;
432
430
{
433
431
        cmd = rsp = "RM6";
434
432
        cmd += ';';
435
 
        waitN(7, 100, "get swr", ASC);
 
433
        wait_char(';',7, FL950_WAIT_TIME, "get swr", ASC);
436
434
 
437
435
        size_t p = replystr.rfind(rsp);
438
436
        if (p == string::npos) return 0;
445
443
{
446
444
        cmd = rsp = "RM4";
447
445
        cmd += ';';
448
 
        waitN(7, 100, "get alc", ASC);
 
446
        wait_char(';',7, FL950_WAIT_TIME, "get alc", ASC);
449
447
 
450
448
        size_t p = replystr.rfind(rsp);
451
449
        if (p == string::npos) return 0;
458
456
{
459
457
        cmd = rsp = "RM5";
460
458
        sendCommand(cmd.append(";"));
461
 
        waitN(7, 100, "get pout", ASC);
 
459
        wait_char(';',7, FL950_WAIT_TIME, "get pout", ASC);
462
460
 
463
461
        size_t p = replystr.rfind(rsp);
464
462
        if (p == string::npos) return 0;
476
474
{
477
475
        cmd = rsp = "PC";
478
476
        cmd += ';';
479
 
        waitN(6, 100, "get power", ASC);
 
477
        wait_char(';',6, FL950_WAIT_TIME, "get power", ASC);
480
478
 
481
479
        size_t p = replystr.rfind(rsp);
482
480
        if (p == string::npos) return progStatus.power_level;
503
501
{
504
502
        cmd = rsp = "AG0";
505
503
        cmd += ';';
506
 
        waitN(7, 100, "get vol", ASC);
 
504
        wait_char(';',7, FL950_WAIT_TIME, "get vol", ASC);
507
505
 
508
506
        size_t p = replystr.rfind(rsp);
509
507
        if (p == string::npos) return progStatus.volume;
547
545
//  if rig "Tuner" light is on internal else external
548
546
        cmd = rsp = "AC";
549
547
        cmd.append(";");
550
 
        waitN(6, 100, "is Int. Tuner Enabled", ASC);
 
548
        wait_char(';',6, FL950_WAIT_TIME, "is Int. Tuner Enabled", ASC);
551
549
        size_t p = replystr.rfind(rsp);
552
550
        if (p == string::npos) return;
553
551
        if ((p + 5) >= replystr.length()) return;
615
613
{
616
614
        cmd = rsp = "RA0";
617
615
        cmd += ';';
618
 
        waitN(5, 100, "get att", ASC);
 
616
        wait_char(';',5, FL950_WAIT_TIME, "get att", ASC);
619
617
 
620
618
        size_t p = replystr.rfind(rsp);
621
619
        if (p == string::npos) return progStatus.attenuator;
656
654
{
657
655
        cmd = rsp = "PA0";
658
656
        cmd += ';';
659
 
        waitN(5, 100, "get pre", ASC);
 
657
        wait_char(';',5, FL950_WAIT_TIME, "get pre", ASC);
660
658
 
661
659
        size_t p = replystr.rfind(rsp);
662
660
        if (p != string::npos)
756
754
{
757
755
        cmd = rsp = "MD0";
758
756
        cmd += ';';
759
 
        waitN(5, 100, "get mode A", ASC);
 
757
        wait_char(';',5, FL950_WAIT_TIME, "get mode A", ASC);
760
758
 
761
759
        size_t p = replystr.rfind(rsp);
762
760
        if (p != string::npos) {
795
793
{
796
794
        cmd = rsp = "MD0";
797
795
        cmd += ';';
798
 
        waitN(5, 100, "get mode B", ASC);
 
796
        wait_char(';',5, FL950_WAIT_TIME, "get mode B", ASC);
799
797
 
800
798
        size_t p = replystr.rfind(rsp);
801
799
        if (p != string::npos) {
847
845
        if (modeA == mPKT_FM) {
848
846
                cmd = rsp = "NA0";
849
847
                cmd += ';';
850
 
                waitN(5, 100, "get bw A narrow", ASC);
 
848
                wait_char(';',5, FL950_WAIT_TIME, "get bw A narrow", ASC);
851
849
                p = replystr.rfind(rsp);
852
850
                if (p == string::npos) { bwA = 0; return bwA; }
853
851
                if (p + 4 >= replystr.length()) { bwA = 0; return bwA; }
857
855
        }
858
856
        cmd = rsp = "SH0";
859
857
        cmd += ';';
860
 
        waitN(6, 100, "get bw A", ASC);
 
858
        wait_char(';',6, FL950_WAIT_TIME, "get bw A", ASC);
861
859
 
862
860
        p = replystr.rfind(rsp);
863
861
        if (p == string::npos) return bwA;
914
912
        if (modeB == mPKT_FM) {
915
913
                cmd = rsp = "NA0";
916
914
                cmd += ';';
917
 
                waitN(5, 100, "get bw B narrow", ASC);
 
915
                wait_char(';',5, FL950_WAIT_TIME, "get bw B narrow", ASC);
918
916
                p = replystr.rfind(rsp);
919
917
                if (p == string::npos) { bwB = 0; return bwB; }
920
918
                if (p + 4 >= replystr.length()) { bwB = 0; return bwB; }
924
922
        }
925
923
        cmd = rsp = "SH0";
926
924
        cmd += ';';
927
 
        waitN(6, 100, "get bw B", ASC);
 
925
        wait_char(';',6, FL950_WAIT_TIME, "get bw B", ASC);
928
926
 
929
927
        p = replystr.rfind(rsp);
930
928
        if (p == string::npos) return bwB;
966
964
{
967
965
        cmd = rsp = "IS0";
968
966
        cmd += ';';
969
 
        waitN(9, 100, "get if shift", ASC);
 
967
        wait_char(';',9, FL950_WAIT_TIME, "get if shift", ASC);
970
968
 
971
969
        size_t p = replystr.rfind(rsp);
972
970
        val = progStatus.shift_val;
1014
1012
        bool ison = false;
1015
1013
        cmd = rsp = "BP00";
1016
1014
        cmd += ';';
1017
 
        waitN(8, 100, "get notch on/off", ASC);
 
1015
        wait_char(';',8, FL950_WAIT_TIME, "get notch on/off", ASC);
1018
1016
 
1019
1017
        size_t p = replystr.rfind(rsp);
1020
1018
        if (p == string::npos) return ison;
1024
1022
                val = progStatus.notch_val;
1025
1023
                cmd = rsp = "BP01";
1026
1024
                cmd += ';';
1027
 
                waitN(8, 100, "get notch val", ASC);
 
1025
                wait_char(';',8, FL950_WAIT_TIME, "get notch val", ASC);
1028
1026
                p = replystr.rfind(rsp);
1029
1027
                if (p == string::npos)
1030
1028
                        val = 10;
1051
1049
int  RIG_FT950::get_auto_notch()
1052
1050
{
1053
1051
        cmd = "BC0;";
1054
 
        waitN(5, 100, "get auto notch", ASC);
 
1052
        wait_char(';',5, FL950_WAIT_TIME, "get auto notch", ASC);
1055
1053
        size_t p = replystr.rfind("BC0");
1056
1054
        if (p == string::npos) return 0;
1057
1055
        if (replystr[p+3] == '1') return 1;
1082
1080
{
1083
1081
        cmd = rsp = "NB0";
1084
1082
        cmd += ';';
1085
 
        waitN(5, 100, "get NB", ASC);
 
1083
        wait_char(';',5, FL950_WAIT_TIME, "get NB", ASC);
1086
1084
 
1087
1085
        size_t p = replystr.rfind(rsp);
1088
1086
        if (p == string::npos) return FT950_blanker_level;
1116
1114
{
1117
1115
        cmd = rsp = "MG";
1118
1116
        cmd += ';';
1119
 
        waitN(6, 100, "get mic", ASC);
 
1117
        wait_char(';',6, FL950_WAIT_TIME, "get mic", ASC);
1120
1118
 
1121
1119
        size_t p = replystr.rfind(rsp);
1122
1120
        if (p == string::npos) return progStatus.mic_gain;
1150
1148
        int rfval = 0;
1151
1149
        cmd = rsp = "RG0";
1152
1150
        cmd += ';';
1153
 
        waitN(7, 100, "get rfgain", ASC);
 
1151
        wait_char(';',7, FL950_WAIT_TIME, "get rfgain", ASC);
1154
1152
 
1155
1153
        size_t p = replystr.rfind(rsp);
1156
1154
        if (p == string::npos) return progStatus.rfgain;
1275
1273
{
1276
1274
        int chan_mem_on = false;
1277
1275
        cmd = "IF;";
1278
 
        waitN(27, 100, "get vfo mode in set_band_selection", ASC);
 
1276
        wait_char(';',27, FL950_WAIT_TIME, "get vfo mode in set_band_selection", ASC);
1279
1277
        size_t p = replystr.rfind("IF");
1280
1278
        if (p == string::npos) return;
1281
1279
        if ((p + 26) >= replystr.length()) return;
1317
1315
        int val = 1;
1318
1316
        cmd = rsp = "RL0";
1319
1317
        cmd.append(";");
1320
 
        waitN(6, 100, "GET noise reduction val", ASC);
 
1318
        wait_char(';',6, FL950_WAIT_TIME, "GET noise reduction val", ASC);
1321
1319
        size_t p = replystr.rfind(rsp);
1322
1320
        if (p == string::npos) return val;
1323
1321
        val = atoi(&replystr[p+3]);
1337
1335
        int val;
1338
1336
        cmd = rsp = "NR0";
1339
1337
        cmd.append(";");
1340
 
        waitN(5, 100, "GET noise reduction", ASC);
 
1338
        wait_char(';',5, FL950_WAIT_TIME, "GET noise reduction", ASC);
1341
1339
        size_t p = replystr.rfind(rsp);
1342
1340
        if (p == string::npos) return 0;
1343
1341
        val = replystr[p+3] - '0';
1350
1348
 
1351
1349
        cmd = rsp = "PS";
1352
1350
        cmd.append(";");
1353
 
        waitN(4, 100, "Test: Is Rig ON", ASC);
 
1351
        wait_char(';',4, FL950_WAIT_TIME, "Test: Is Rig ON", ASC);
1354
1352
        size_t p = replystr.rfind(rsp);
1355
1353
        if (p == string::npos) {        // rig is off, power on
1356
1354
                cmd = "PS1;";