/*! 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); }
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); }
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); }
void ARRLDX::addQso(Qso *qso) { if (qso->dupe || !qso->valid || qso->band>=N_BANDS_SCORED) { qso->pts=0; } qsoPts += qso->pts; addQsoMult(qso); }
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); }
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); }
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); }
/*! 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); }
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); }
/*! 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); }