int ft817_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { unsigned char data[YAESU_CMD_LENGTH - 1]; if (vfo != RIG_VFO_CURR) return -RIG_ENTARGET; rig_debug(RIG_DEBUG_VERBOSE,"ft817: requested freq = %"PRIfreq" Hz\n", freq); /* fill in the frequency */ to_bcd_be(data, (freq + 5) / 10, 8); return ft817_send_icmd(rig, FT817_NATIVE_CAT_SET_FREQ, data); }
int ft817_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs) { unsigned char data[YAESU_CMD_LENGTH - 1]; if (vfo != RIG_VFO_CURR) return -RIG_ENTARGET; rig_debug(RIG_DEBUG_VERBOSE, "ft817: set repeter offs = %li\n", offs); /* fill in the offset freq */ to_bcd_be(data, offs / 10, 8); return ft817_send_icmd(rig, FT817_NATIVE_CAT_SET_RPT_OFFSET, data); }
int ft857_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { unsigned char data[YAESU_CMD_LENGTH - 1]; if (vfo != RIG_VFO_CURR) return -RIG_ENTARGET; rig_debug(RIG_DEBUG_VERBOSE,"ft857: requested freq = %"PRIfreq" Hz\n", freq); /* fill in the frequency */ to_bcd_be(data, (freq + 5) / 10, 8); rig_force_cache_timeout(&((struct ft857_priv_data *) rig->state.priv)->fm_status_tv); return ft857_send_icmd(rig, FT857_NATIVE_CAT_SET_FREQ, data); }
int ft847_set_dcs_sql (RIG *rig, vfo_t vfo, tone_t code) { unsigned char p_cmd[YAESU_CMD_LENGTH]; /* sequence to send */ int ret; ret = opcode_vfo(rig, p_cmd, FT_847_NATIVE_CAT_SET_DCS_CODE_MAIN, vfo); if (ret != RIG_OK) return ret; /* TODO: FT_847_NATIVE_CAT_SET_DCS_ON_MAIN here or with new RIG_FUNC_DCS? */ /* DCS Code # (i.e. 07, 54=DCS Code 754) */ to_bcd_be(p_cmd, code,4); /* store bcd format in in p_cmd */ return write_block(&rig->state.rigport, (char*)p_cmd, YAESU_CMD_LENGTH); }
int ft847_set_rptr_offs (RIG *rig, vfo_t vfo, shortfreq_t rptr_offs) { unsigned char p_cmd[YAESU_CMD_LENGTH]; /* sequence to send */ if (rig->caps->rig_model == RIG_MODEL_FT847UNI) { return -RIG_ENIMPL; } if (vfo != RIG_VFO_CURR) return -RIG_ENTARGET; memcpy(p_cmd,&ncmd[FT_847_NATIVE_CAT_SET_RPT_OFFSET].nseq,YAESU_CMD_LENGTH); to_bcd_be(p_cmd,rptr_offs/10,8); /* store bcd format in in p_cmd */ return write_block(&rig->state.rigport, (char*)p_cmd, YAESU_CMD_LENGTH); }
int ft847_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { struct rig_state *rig_s; unsigned char p_cmd[YAESU_CMD_LENGTH]; /* sequence to send */ int ret; if (!rig) return -RIG_EINVAL; rig_s = &rig->state; rig_debug(RIG_DEBUG_VERBOSE,"ft847: requested freq = %"PRIfreq" Hz, vfo=%s\n", freq, rig_strvfo(vfo)); ret = opcode_vfo(rig, p_cmd, FT_847_NATIVE_CAT_SET_FREQ_MAIN, vfo); if (ret != RIG_OK) return ret; to_bcd_be(p_cmd,freq/10,8); /* store bcd format in in p_cmd */ rig_debug(RIG_DEBUG_VERBOSE,"ft847: requested freq after conversion = %"PRIll" Hz \n", from_bcd_be(p_cmd,8)* 10 ); return write_block(&rig_s->rigport, (char*)p_cmd, YAESU_CMD_LENGTH); }
int main (int argc, char *argv[]) { unsigned char b[(MAXDIGITS+1)/2]; freq_t f=0; int digits = 10; int i; if (argc != 2 && argc != 3) { fprintf(stderr,"Usage: %s <freq> [digits]\n",argv[0]); exit(1); } f = (freq_t)atoll(argv[1]); if (argc > 2) { digits = atoi(argv[2]); if (digits > MAXDIGITS) exit(1); } printf("Little Endian mode\n"); printf("Frequency: %"PRIfreq"\n",f); to_bcd(b, f, digits); printf("BCD: %2.2x",b[0]); for (i = 1; i < (digits+1)/2; i++) printf(",%2.2x",b[i]); printf("\nResult after recoding: %llu\n", from_bcd(b, digits)); printf("\nBig Endian mode\n"); printf("Frequency: %"PRIfreq"\n",f); to_bcd_be(b, f, digits); printf("BCD: %2.2x",b[0]); for (i = 1; i < (digits+1)/2; i++) printf(",%2.2x",b[i]); printf("\nResult after recoding: %llu\n", from_bcd_be(b, digits)); return 0; }