Example #1
0
void char_array_pktize(char array[][MAX_SIZE]){
    int n = 0;
    for(;n<100;n++){
        if(strlen(array[n])>0)
            make_pkt(n,"PACKET",array[n],array[n]);
        else{
            make_pkt(n,"CLOSE","\n",array[n]);
            break;
        }
    }

}
Example #2
0
int do_cmd_1_arg(QSP_ARG_DECL  Cmd_Index cmd_index, int data_word)
{
	u_short len;
	char pkt[20];
	USB2000_Cmd_Def *ucdp;

	ucdp = &usb2000_cmd_tbl[cmd_index];

	make_pkt( pkt, ucdp->ucd_cmd, data_word );

	send_pkt(QSP_ARG  pkt);

	len = strlen(pkt);

	if( get_echo(QSP_ARG  pkt) < 0 )
		return -1;

	if ( recv_a_byte(SINGLE_QSP_ARG) != ACK ) {
		WARN("ERROR: no ACK received");
		return -1;
	}

	if( get_tail(SINGLE_QSP_ARG) < 0 )
		return -1;

	return 0;
}
Example #3
0
static void queue_pkt_with_ack(struct peer *peer, Pkt__PktCase type,
			       const void *msg,
			       void (*ack_cb)(struct peer *peer, void *arg),
			       void *ack_arg)
{
	queue_raw_pkt(peer, make_pkt(peer, type, msg), ack_cb, ack_arg);
}
Example #4
0
void send_nack(int caller, struct pkt *pkt_to_nack)
{
    int seqnum = pkt_to_nack->seqnum;
    char msg[MSGSIZE] = {'N','A','C','K',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    struct pkt *nack_pkt = make_pkt(seqnum, msg);
    nack_pkt->acknum = 0;
    tolayer3(caller, *nack_pkt);
}
Example #5
0
Pkt *pkt_err(struct peer *peer, const char *msg, ...)
{
	Error *e = tal(peer, Error);
	va_list ap;

	error__init(e);
	va_start(ap, msg);
	e->problem = tal_vfmt(e, msg, ap);
	va_end(ap);

	return make_pkt(peer, PKT__PKT_ERROR, e);
}
Example #6
0
/* called from layer 5, passed the data to be sent to other side */
void A_output(struct msg message)
{
    printf("CCH> A_output> Got message\n");
    struct pkt *out_pkt;
    int seqnum;

    seqnum = (last_pkt && last_pkt->seqnum < 1) ? 1 : 0;
    out_pkt = make_pkt(seqnum, message.data);
    last_pkt = out_pkt;

    send_pkt(A, out_pkt);
}
Example #7
0
int test_wnd(char **wnd, void *pkt, uint32_t seq){
    int err;
    pkt = malloc(MAX_PKT_SIZE);
    make_pkt(pkt, ACK, advwin, NULL, 0);
    print_hdr((struct xtcphdr*)pkt);
    err = add_to_wnd(seq, pkt, (const char **)wnd);
    if(err < 0) {
        _DEBUG("%s\n", "ERROR");
        free(wnd);
        return err;
    }
    print_wnd((const char**)wnd);
    return 0;
}
Example #8
0
void array_pktize(char strarr[][MAX_SIZE]){
    char temp[78]="";
    int n = 0;
    while(n<100){
        strcpy(temp,strarr[n]);
        if(strlen(temp)>0){
            make_pkt(n,temp,strarr[n]);
            n++;
        }else{
            make_pkt_close(n,strarr[n]);
            break;
        }
    }
    //print_chararray(strarr);

}
Example #9
0
int get_scan(QSP_ARG_DECL  Spectral_Data *sdp)
{
	char pkt[6];		/* will contain either "Z1\n" or "Z0001" */
	int data_word = 1;	/* pg.12, 1 or 0 doesn't matter */
	char cmd[] = "Z";
	u_short len;
	u_short n_spec_recvd[1];
	Pxl_Mode_Info pxl_mode_info;

	/* BUG: we should have a routine here that checks
	 * if we have scans in memory or not.
	 * This will be better than sending a pkt
	 * and getting a NAK due to absence of spectra
	 * in data memory.
	 */

	make_pkt( pkt, cmd, data_word );

	send_pkt(QSP_ARG  pkt);

	len = strlen(pkt);

	if( get_echo(QSP_ARG  pkt) < 0 )
		return -1;

	if ( recv_a_byte(SINGLE_QSP_ARG) != ACK ) {
		WARN("ERROR: no ACK received");
		return -1;
	}

	if( get_spectrum(QSP_ARG  sdp, n_spec_recvd, &pxl_mode_info) < 0 )
		return -1;

	if( get_tail(SINGLE_QSP_ARG) < 0 )
		return -1;

	do_wavlen_crktion(sdp, n_spec_recvd[0], &pxl_mode_info);
	do_non_linear_crktion(sdp, n_spec_recvd[0]);

	return n_spec_recvd[0];

}
Example #10
0
int get_n_of_scans(SINGLE_QSP_ARG_DECL)
{
	char pkt[6];	/* will contain either "W1\n" or "W0001" */
	u_short len;
	int is_ack;
	int data_value;
	char cmd[] = "W";

	make_pkt( pkt, cmd, 1 );

	len = strlen(pkt);

	send_pkt(QSP_ARG  pkt);

	if( get_echo(QSP_ARG  pkt) < 0 )
		return -1;

	if ( ( is_ack = recv_a_byte(SINGLE_QSP_ARG) ) != ACK ) {
		if( is_ack == NAK ) {
			if( get_tail(SINGLE_QSP_ARG) < 0 )
				return -1;

		} else {

			sprintf(ERROR_STRING,"ERROR: Unexpected char 0x%x received instead of ACK/NAK", is_ack);
			WARN(ERROR_STRING);

		}
		return -1;
	}

	if( ( data_value = recv_a_value(SINGLE_QSP_ARG) ) < 0 )
		return -1;

	if( get_tail(SINGLE_QSP_ARG) < 0 )
		return -1;

	return data_value;
}
Example #11
0
static void queue_pkt(struct peer *peer, Pkt__PktCase type, const void *msg)
{
	queue_raw_pkt(peer, make_pkt(peer, type, msg));
}