[Hamlib-cvs-digest] CVS: hamlib/yaesu ft747.c,1.2,1.3
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Frank S. <jav...@us...> - 2001-01-05 02:03:31
|
Update of /cvsroot/hamlib/hamlib/yaesu In directory usw-pr-cvs1:/tmp/cvs-serv12062 Modified Files: ft747.c Log Message: general cleanup, added _send_priv_cmd Index: ft747.c =================================================================== RCS file: /cvsroot/hamlib/hamlib/yaesu/ft747.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** ft747.c 2001/01/04 07:03:58 1.2 --- ft747.c 2001/01/05 02:03:33 1.3 *************** *** 31,40 **** * TODO - FS * ! * 1. Rentrant code, remove static stuff from all functions. ! * 2. rationalise code, more helper functions. * 3. Allow cached reads ! * 4. Fix crappy 25Hz resolution handling * - * */ --- 31,40 ---- * TODO - FS * ! * 1. Rentrant code, remove static stuff from all functions [started] ! * 2. rationalise code, more helper functions [started] * 3. Allow cached reads ! * 4. Fix crappy 25Hz resolution handling of FT747 aaarrgh ! ! * 5. Put variant of ftxxx_send_cmd in yaesu.c * */ *************** *** 56,62 **** ! /* prototypes */ static int ft747_get_update_data(RIG *rig); /* Native ft747 cmd set prototypes. These are READ ONLY as each */ --- 56,63 ---- ! /* Private helper function prototypes */ static int ft747_get_update_data(RIG *rig); + static int ft747_send_priv_cmd(RIG *rig, unsigned char ci); /* Native ft747 cmd set prototypes. These are READ ONLY as each */ *************** *** 205,212 **** p = (struct ft747_priv_data*)malloc(sizeof(struct ft747_priv_data)); ! if (!p) { ! /* whoops! memory shortage! */ return -RIG_ENOMEM; - } rig_debug(RIG_DEBUG_VERBOSE,"ft747:ft747_init called \n"); --- 206,211 ---- p = (struct ft747_priv_data*)malloc(sizeof(struct ft747_priv_data)); ! if (!p) /* whoops! memory shortage! */ return -RIG_ENOMEM; rig_debug(RIG_DEBUG_VERBOSE,"ft747:ft747_init called \n"); *************** *** 276,287 **** int ft747_close(RIG *rig) { ! struct rig_state *rig_s; ! if (!rig) return -RIG_EINVAL; - - rig_s = &rig->state; ! /* TODO */ return RIG_OK; --- 275,283 ---- int ft747_close(RIG *rig) { ! if (!rig) return -RIG_EINVAL; ! rig_debug(RIG_DEBUG_VERBOSE,"ft747:ft747_close called \n"); return RIG_OK; *************** *** 339,342 **** --- 335,340 ---- freq_t f; + rig_debug(RIG_DEBUG_VERBOSE,"ft747:ft747_get_freq called \n"); + if (!rig) return -RIG_EINVAL; *************** *** 374,388 **** int ft747_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width ) { - struct rig_state *rig_s; - struct ft747_priv_data *p; - unsigned char *cmd; /* points to sequence to send */ unsigned char cmd_index; /* index of sequence to send */ if (!rig) return -RIG_EINVAL; ! ! p = (struct ft747_priv_data*)rig->state.priv; ! rig_s = &rig->state; ! ft747_set_vfo(rig, vfo); /* select VFO first , new API */ --- 372,380 ---- int ft747_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width ) { unsigned char cmd_index; /* index of sequence to send */ if (!rig) return -RIG_EINVAL; ! ft747_set_vfo(rig, vfo); /* select VFO first , new API */ *************** *** 449,454 **** */ ! cmd = (unsigned char *) p->pcs[cmd_index].nseq; /* get native sequence */ ! write_block(rig_s->fd, cmd, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); rig_debug(RIG_DEBUG_VERBOSE,"ft747: cmd_index = %i \n", cmd_index); --- 441,445 ---- */ ! ft747_send_priv_cmd(rig,cmd_index); rig_debug(RIG_DEBUG_VERBOSE,"ft747: cmd_index = %i \n", cmd_index); *************** *** 520,525 **** struct rig_state *rig_s; struct ft747_priv_data *p; - - unsigned char *cmd; /* points to sequence to send */ unsigned char cmd_index; /* index of sequence to send */ --- 511,514 ---- *************** *** 569,574 **** */ ! cmd = (unsigned char *) p->pcs[cmd_index].nseq; /* get native sequence */ ! write_block(rig_s->fd, cmd, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); return RIG_OK; --- 558,562 ---- */ ! ft747_send_priv_cmd(rig,cmd_index); return RIG_OK; *************** *** 610,628 **** int ft747_set_ptt(RIG *rig,vfo_t vfo, ptt_t ptt) { - struct rig_state *rig_s; - struct ft747_priv_data *p; - unsigned char *cmd; /* points to sequence to send */ unsigned char cmd_index; /* index of sequence to send */ - if (!rig) return -RIG_EINVAL; - p = (struct ft747_priv_data*)rig->state.priv; - rig_s = &rig->state; - ft747_set_vfo(rig,vfo); /* select VFO first */ - switch(ptt) { case RIG_PTT_OFF: --- 598,608 ---- *************** *** 640,645 **** */ ! cmd = (unsigned char *) p->pcs[cmd_index].nseq; /* get native sequence */ ! write_block(rig_s->fd, cmd, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); return RIG_OK; /* good */ --- 620,624 ---- */ ! ft747_send_priv_cmd(rig,cmd_index); return RIG_OK; /* good */ *************** *** 679,712 **** - - - #if 0 - - /* - * private helper function. Retrieves update data from rig. - * Uses ft747_get_update_data() to get status flag - */ - - static int ft747_get_status_flags(RIG *rig, int sf_order) { - struct rig_state *rig_s; - struct ft747_priv_data *p; - unsigned char status; /* ft747 status flags */ - - - if (!rig) - return -RIG_EINVAL; - - p = (struct ft747_priv_data*)rig->state.priv; - rig_s = &rig->state; - - ft747_get_update_data(rig); /* get whole shebang from rig */ - - status = p->update_data[FT747_STATUS_UPDATE_STATUS_OFFSET]; - - return status & SF_RXTX; - } - - #endif - /* * private helper function. Retrieves update data from rig. --- 658,661 ---- *************** *** 719,726 **** struct rig_state *rig_s; struct ft747_priv_data *p; ! int n; /* counter */ ! ! static unsigned char cmd_pace[] = { 0x00, 0x00, 0x00, 0x00, 0x0e }; /* pacing set */ ! static unsigned char cmd_update[] = { 0x00, 0x00, 0x00, 0x00, 0x10 }; /* request update from rig */ if (!rig) --- 668,673 ---- struct rig_state *rig_s; struct ft747_priv_data *p; ! unsigned char *cmd; /* points to sequence to send */ ! int n; /* for read_ */ if (!rig) *************** *** 730,743 **** rig_s = &rig->state; ! cmd_pace[3] = p->pacing; /* get pacing value */ rig_debug(RIG_DEBUG_VERBOSE,"ft747: read pacing = %i \n",p->pacing); ! write_block(rig_s->fd, cmd_pace, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); ! rig_debug(RIG_DEBUG_VERBOSE,"ft747: read timeout = %i \n",FT747_DEFAULT_READ_TIMEOUT); ! write_block(rig_s->fd, cmd_update, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); /* request data */ ! n = read_sleep(rig_s->fd,p->update_data, FT747_STATUS_UPDATE_DATA_LENGTH, FT747_DEFAULT_READ_TIMEOUT); ! /* n = read_block(rig_s->fd,p->update_data, FT747_STATUS_UPDATE_DATA_LENGTH, FT747_DEFAULT_READ_TIMEOUT); */ return 0; --- 677,699 ---- rig_s = &rig->state; ! /* ! * Copy native cmd PACING to private cmd storage area ! */ ! ! memcpy(&p->p_cmd,&ncmd[FT_747_NATIVE_PACING].nseq,YAESU_CMD_LENGTH); ! p->p_cmd[3] = p->pacing; /* get pacing value, and store in private cmd */ rig_debug(RIG_DEBUG_VERBOSE,"ft747: read pacing = %i \n",p->pacing); + + /* send PACING cmd to rig */ ! cmd = p->p_cmd; ! write_block(rig_s->fd, cmd, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); ! ! /* send UPDATE comand to fetch data*/ ! ft747_send_priv_cmd(rig,FT_747_NATIVE_UPDATE); ! /* n = read_sleep(rig_s->fd,p->update_data, FT747_STATUS_UPDATE_DATA_LENGTH, FT747_DEFAULT_READ_TIMEOUT); */ ! n = read_block(rig_s->fd,p->update_data, FT747_STATUS_UPDATE_DATA_LENGTH, FT747_DEFAULT_READ_TIMEOUT); return 0; *************** *** 750,753 **** --- 706,710 ---- * init_ft747 is called by rig_backend_load */ + int init_ft747(void *be_handle) { rig_debug(RIG_DEBUG_VERBOSE, "ft747: _init called\n"); *************** *** 756,758 **** --- 713,750 ---- } + + + /* + * private helper function to send a private command + * sequence . Must only be complete sequences. + * TODO: place variant of this in yaesu.c + */ + + static int ft747_send_priv_cmd(RIG *rig, unsigned char ci) { + + struct rig_state *rig_s; + struct ft747_priv_data *p; + unsigned char *cmd; /* points to sequence to send */ + unsigned char cmd_index; /* index of sequence to send */ + + if (!rig) + return -RIG_EINVAL; + + + p = (struct ft747_priv_data*)rig->state.priv; + rig_s = &rig->state; + + cmd_index = ci; /* get command */ + + if (! p->pcs[cmd_index].ncomp) { + rig_debug(RIG_DEBUG_VERBOSE,"ft747: Attempt to send incomplete sequence \n"); + return -RIG_EINVAL; + } + + cmd = (unsigned char *) p->pcs[cmd_index].nseq; /* get native sequence */ + write_block(rig_s->fd, cmd, YAESU_CMD_LENGTH, rig_s->write_delay, rig_s->post_write_delay); + + return RIG_OK; + + } |