Callback tests
(self, rig)
| 114 | |
| 115 | |
| 116 | def do_test_callback(self, rig): |
| 117 | """Callback tests""" |
| 118 | |
| 119 | # Frequency event callback |
| 120 | def freq_callback(vfo, freq, arg): |
| 121 | assert (1, 144200000.5, 1234567890) == (vfo, freq, arg) |
| 122 | |
| 123 | assert rig.set_freq_callback(freq_callback, 1234567890) is None |
| 124 | assert rig.set_freq(Hamlib.RIG_VFO_CURR, 144200000.5) is None |
| 125 | # TODO assert that freq_callback() is called once |
| 126 | assert rig.set_freq_callback(None) is None |
| 127 | assert rig.set_freq(Hamlib.RIG_VFO_CURR, 144210000) is None |
| 128 | # TODO assert that freq_callback() is called once |
| 129 | |
| 130 | # Mode event callback |
| 131 | def mode_callback(vfo, mode, pbwidth, arg): |
| 132 | assert (1, 32, 5000, 2345678901) == (vfo, mode, pbwidth, arg) |
| 133 | |
| 134 | # FIXME should use a Hamlib.RIG_PASSBAND_* constant but they aren't available in the bindings |
| 135 | RIG_PASSBAND_NOCHANGE = -1 |
| 136 | assert rig.set_mode_callback(mode_callback, 2345678901) is None |
| 137 | assert rig.set_mode(Hamlib.RIG_MODE_FM, 5000) is None |
| 138 | # TODO assert that mode_callback() is called once |
| 139 | assert rig.set_mode_callback(None) is None |
| 140 | assert rig.set_mode(Hamlib.RIG_MODE_FM, 15000) is None |
| 141 | # TODO assert that mode_callback() is called once |
| 142 | |
| 143 | # VFO event callback |
| 144 | def vfo_callback(vfo, arg): |
| 145 | assert (1, 3456789012) == (vfo, arg) |
| 146 | |
| 147 | assert rig.set_vfo(Hamlib.RIG_VFO_B) is None |
| 148 | assert rig.set_vfo_callback(vfo_callback, 3456789012) is None |
| 149 | assert rig.set_vfo(Hamlib.RIG_VFO_A) is None |
| 150 | # TODO assert that vfo_callback() is called once |
| 151 | assert rig.set_vfo_callback(None) is None |
| 152 | assert rig.set_vfo(Hamlib.RIG_VFO_CURR) is None |
| 153 | # TODO assert that vfo_callback() is called once |
| 154 | |
| 155 | # PTT event callback |
| 156 | def ptt_callback(vfo, ptt, arg): |
| 157 | assert (Hamlib.RIG_VFO_CURR, Hamlib.RIG_PTT_ON, 4567890123) == (vfo, ptt, arg) |
| 158 | |
| 159 | assert rig.set_ptt_callback(ptt_callback, 4567890123) is None |
| 160 | assert rig.set_ptt(Hamlib.RIG_VFO_CURR, Hamlib.RIG_PTT_ON) is None |
| 161 | # TODO assert that ptt_callback() is called once |
| 162 | assert rig.set_ptt_callback(None) is None |
| 163 | assert rig.set_ptt(Hamlib.RIG_VFO_CURR, Hamlib.RIG_PTT_OFF) is None |
| 164 | # TODO assert that ptt_callback() is called once |
| 165 | |
| 166 | # DCD event callback |
| 167 | def dcd_callback(vfo, ptt, arg): |
| 168 | print("dcd_callback", vfo, dcd, arg) |
| 169 | assert (1, 5000, 2345678901) == (vfo, arg) |
| 170 | |
| 171 | assert rig.set_dcd_callback(dcd_callback, 5678901234) is None |
| 172 | # TODO simulate dcd events in dummy.c |
| 173 | assert rig.set_dcd_callback(None) is None |