Beispiel #1
0
/*! determines qso points based on grid squares
 */
void Stew::addQso(Qso *qso)
{
    if (qso->band != BAND160) {
        qso->pts = 0;
        addQsoMult(qso);
        return; // not on 160, does not count
    }

    // qso points
    if (myGrid.size()) {
        double lat, lon;
        locator2longlat(&lon, &lat, qso->rcv_exch[0].data());
        lon *= -1.0;
        double dist, head;
        if (qrb(myLon * -1.0, myLat, lon * -1.0, lat, &dist, &head) != RIG_OK) {
            dist = 0.0;
        }
        qso->pts = ceil(dist / 500.0);
        if (qso->pts <= 0) qso->pts = 1;
    } else {
        // grid entered incorrectly
        qso->pts = 1;
    }
    if (qso->dupe || !qso->valid) qso->pts = 0;
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #2
0
void ARRL10::addQso(Qso *qso)
{
    // must be on 10m for qso to count
    if (qso->band != BAND10) {
        qso->pts=0;
        for (int ii = 0; ii < MMAX; ii++) {
            qso->mult[ii]    = -1;
            qso->newmult[ii] = -1;
        }
        addQsoMult(qso);
        return;
    }
    // 2 pts phone, 4 pts cw
    switch (qso->mode) {
    case RIG_MODE_CW:
    case RIG_MODE_CWR:
        qso->pts = 4;
        break;
        case RIG_MODE_USB:
    case RIG_MODE_LSB:
    case RIG_MODE_AM:
    case RIG_MODE_FM:
        qso->pts = 2;
        break;
    default:
        qso->pts = 2;
        break;
    }
    if (qso->dupe || !qso->valid) qso->pts = 0;
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #3
0
void FD::addQso(Qso *qso)

// determine qso point value, increase nqso, update score
// update mult count
{
    if (!qso->dupe && qso->valid && qso->band<N_BANDS_SCORED) {
        // SSB=1 CW/RTTY=2
        switch (qso->mode) {
        case RIG_MODE_CW:
        case RIG_MODE_CWR:
        case RIG_MODE_RTTY:
        case RIG_MODE_RTTYR:
            qso->pts = 2;
            break;
        case RIG_MODE_USB:
        case RIG_MODE_LSB:
        case RIG_MODE_AM:
        case RIG_MODE_FM:
            qso->pts = 1;
            break;
        default:
            qso->pts = 1;
            break;
        }
        qsoPts += qso->pts;
    } else {
        qso->pts = 0;
    }
    addQsoMult(qso);
}
Beispiel #4
0
void ARRLDX::addQso(Qso *qso)
{
    if (qso->dupe || !qso->valid || qso->band>=N_BANDS_SCORED) {
        qso->pts=0;
    }
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #5
0
void Sprint::addQso(Qso *qso)
{
    if (!qso->dupe && qso->valid && qso->band<N_BANDS_SCORED) {
        qso->pts = 1;
    } else {
        qso->pts = 0;
    }
    qsoPts+=qso->pts;
    addQsoMult(qso);
}
Beispiel #6
0
void Sweepstakes::addQso(Qso *qso)

// determine qso point value, increase nqso, update score
// update mult count
{
    if (!qso->dupe && qso->valid && qso->band<N_BANDS_SCORED) {
        qso->pts = 2;
    } else {
        qso->pts = 0;
    }
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #7
0
void PAQP::addQso(Qso *qso)

// determine qso point value, increase nqso, update score
// update mult count
{
    if (!qso->dupe && qso->valid && qso->band<N_BANDS_SCORED) {
        if (qso->modeType==CWType || qso->modeType==DigiType) {
            qso->pts = 2;
        } else if (qso->modeType==PhoneType) {
            qso->pts = 1;
        }
    } else {
        qso->pts = 0;
    }
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #8
0
/*! IARU add qso

     [0]==2 stations in same country
     [1]==5 stations in different country but same continent, HQ or IARU officials
     [2]=10 stations in different continents
 */
void IARU::addQso(Qso *qso)
{
    if (!qso->dupe && qso->valid && qso->band<N_BANDS_SCORED) {
        if (qso->zone == _myZone || qso->isamult[1]) {
            // same zone, HQ, IARU official : 1 pt
            qso->pts = 1;
        } else if (qso->continent == myContinent) {
            qso->pts = 3;
        } else {
            qso->pts = 5;
        }
    } else {
        qso->pts = 0;
    }
    qsoPts+=qso->pts;
    addQsoMult(qso);
}
Beispiel #9
0
void KQP::addQso(Qso *qso)

// determine qso point value, increase nqso, update score
// update mult count
{
    // bands up to 6M are allowed
    if (!qso->dupe && qso->valid && qso->band<=BAND6) {
        if (qso->modeType==CWType) {
            qso->pts = 3;
        } else if (qso->modeType==PhoneType) {
            qso->pts = 2;
        }
    } else {
        qso->pts = 0;
    }
    qsoPts += qso->pts;
    addQsoMult(qso);
}
Beispiel #10
0
/*! CQWW addqso

   same country = 0 points
   [0]==1 stations in same continent
   [1]==2 stations within North America
   [2]==3 stations on different continents

   */
void CQWW::addQso(Qso *qso)
{
    qso->pts = 0;
    for (int ii = 0; ii < MMAX; ii++) qso->newmult[ii] = -1;

    if (qso->isMM) {
        qso->pts = 3;
    } else if (qso->country == myCountry) {
        qso->pts = 0;
    } else if (myContinent == NA && qso->continent == NA) {
        qso->pts = 2;
    } else if (qso->continent == myContinent) {
        qso->pts = 1;
    } else {
        qso->pts = 3;
    }
    if (qso->dupe || !qso->valid || qso->band>=N_BANDS_SCORED) qso->pts = 0;
    qsoPts += qso->pts;
    addQsoMult(qso);
}