MCPcopy Create free account
hub / github.com/Hamlib/Hamlib / rig_mW2power

Function rig_mW2power

src/rig.c:6799–6850  ·  view source on GitHub ↗

* \brief conversion utility from absolute in mW to relative range * \param rig The rig handle * \param power The location where to store the converted relative power * \param mwpower The power in mW * \param freq The frequency where the conversion should take place * \param mode The mode where the conversion should take place * * Converts a power value expressed in the real transmit p

Source from the content-addressed store, hash-verified

6797 * \sa rig_power2mW()
6798 */
6799int HAMLIB_API rig_mW2power(RIG *rig,
6800 float *power,
6801 unsigned int mwpower,
6802 freq_t freq,
6803 rmode_t mode)
6804{
6805 const freq_range_t *txrange;
6806 int limited = 0;
6807
6808 if (!rig || !rig->caps || !power || mwpower == 0)
6809 {
6810 return -RIG_EINVAL;
6811 }
6812
6813 ENTERFUNC2;
6814
6815 if (rig->caps->mW2power != NULL)
6816 {
6817 RETURNFUNC2(rig->caps->mW2power(rig, power, mwpower, freq, mode));
6818 }
6819
6820 txrange = rig_get_range(STATE(rig)->tx_range_list, freq, mode);
6821
6822 if (!txrange)
6823 {
6824 /*
6825 * freq is not on the tx range!
6826 */
6827 RETURNFUNC2(-RIG_EINVAL); /* could be RIG_EINVAL ? */
6828 }
6829
6830 if (txrange->high_power == 0)
6831 {
6832 *power = 0.0;
6833 RETURNFUNC2(RIG_OK);
6834 }
6835
6836 *power = (float)mwpower / (float) txrange->high_power;
6837
6838 if (*power > 1.0)
6839 {
6840 *power = 1.0;
6841 limited = 1;
6842 }
6843 else if (*power < 0.0)
6844 {
6845 *power = 0;
6846 limited = 1;
6847 }
6848
6849 RETURNFUNC2(limited ? RIG_ETRUNC : RIG_OK);
6850}
6851
6852
6853/**

Callers 3

mW2powerMethod · 0.85
callbackFunction · 0.85
rigctl_parse.cFile · 0.85

Calls 2

rig_get_rangeFunction · 0.85
mW2powerMethod · 0.80

Tested by 1

callbackFunction · 0.68