コード例 #1
0
ファイル: procedures.c プロジェクト: dcobas/banctest
int Set_csr (unsigned short pat, char *st)
{
    unsigned short csr = 0;
    unsigned short str1[20], str2[20];

    if (log_print != 2)
        sleep (1);
    print (2, "Mise a 1 du BIT %s\r", st);
    csr = pat;
    if (set_csr (bc, rt, &csr, &status) == (-1)) {
        print (1, "Probleme systeme [%d] avec set_csr", errno);
        return (1);
    }
    if (get_csr (bc, rt, &csr, &status) == (-1)) {
        print (1, "Probleme systeme [%d] avec get_csr", errno);
        return (1);
    }
    if ((csr & pat) != pat) {
        convbin (pat, (char *) str1);
        convbin (csr, (char *) str2);
        print (1, " Set bit of CSR faild. Pattern: [%s] CSR: [%s]\n", (char *) str1, (char *) str2);
        return (1);
    }
    return (0);
}
コード例 #2
0
ファイル: DBEncrypt.c プロジェクト: bochaqos/tol
void xorbin(char *pInval,char *pMaskval)
{
	unsigned int i, j, TmpVal, divis;
	char ConvInval[9]="";
	char ConvMaskval[9]="";
	
	/* Run on the encrypted/unencrypted characters. */
	for (i=0; i < strlen(pInval) ; i++)
	{
		// Convert the password and mask strings to binary presentation. */
		convbin((char *)&ConvInval,(pInval+i));
		convbin((char *)&ConvMaskval,(pMaskval+i));
		divis = 128;
		TmpVal = 0;
		// Unencrypt/encrypt the password binary string.
		for (j=0; j < 8 ; j++)
			{
				if ((ConvInval[j]-'0' + ConvMaskval[j]-'0')==1)
					TmpVal+=divis;
				divis/=2;
			}
		*(pInval+i) = TmpVal;
	}
	// End the converted string.
	*(pInval+i) ='\0';
}
コード例 #3
0
ファイル: convbin.c プロジェクト: jpieper/RTKLIB
/* main ----------------------------------------------------------------------*/
int main(int argc, char **argv)
{
    rnxopt_t opt={{0}};
    int format;
    char *ifile="",*ofile[7]={0},*dir=".";
    
    /* analyize command line options */
    format=cmdopts(argc,argv,&opt,&ifile,ofile,&dir);
    
    if (!*ifile) {
        fprintf(stderr,"no input file\n");
        return -1;
    }
    if (format<0) {
        fprintf(stderr,"input format can not be recognized\n");
        return -1;
    }
    sprintf(opt.prog,"%s %s",PRGNAME,VER_RTKLIB);
    sprintf(opt.comment[0],"log: %-55.55s",ifile);
    sprintf(opt.comment[1],"format: %s",formatstrs[format]);
    if (*opt.rcvopt) {
        strcat(opt.comment[1],", option: ");
        strcat(opt.comment[1],opt.rcvopt);
    }
    return convbin(format,&opt,ifile,ofile,dir);
}
コード例 #4
0
ファイル: procedures.c プロジェクト: dcobas/banctest
int reset (void)
{
    char st[20];
    unsigned short csr;

    print (2, "\rReset (MC8) du bc[%d] rt[%d] ", bc, rt);
    if (mdrop (bc, rt, 1, 0, 8, &status, (char *) &csr) != 0) {
        print (1, "\nReset:System error for mdrop mode_code:RESET");
        return (-1);
    }
    convbin (status, st);
    print (1, "    MC(8) - Status: %s\n", st);
    sleep (4);
    if (get_csr (bc, rt, &csr, &status) == (-1)) {
        print (1, "\nReset:System error for get_csr");
        return (-1);
    }
    return (status);
}
コード例 #5
0
ファイル: buffer.c プロジェクト: dcobas/banctest
int tst_rst_pointer (short flg,	/* bit du csr (RRP ou RTP) */
		     int (*fun_wr) (short, short, short, char *, unsigned short *),	/* ecrire dans le buffer (set_tx_buf ou set_rx_buf) */
		     int (*fun_rd) (short, short, short, char *, unsigned short *),	/* lire dans le buffer (get_tx_buf ou get_rx_buf) */
		     int (*fun_rst) (short, short, unsigned short *,
				     unsigned short *))
{				/* faire reset pointer (set_csr ou clr_csr) */
    unsigned short buf[4096], *pt, csr;
    unsigned short i, seuil;
    char str1[20], str2[20];
    int Fl_buf = 0;

    seuil = 128;		/* size in 16-bits words */
    if (flg & 0x80)
	Fl_buf = 0;
    /* Clear buffer */
    for (pt = buf, i = 0; i < seuil; i++)
	*pt++ = 0;
    if (fun_wr (bc, rt, seuil * 2, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in write_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in write_R_buf\n");
    }
    /* reset pointer */
    csr = flg;
    if (fun_rst (bc, rt, &csr, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in reset_T_pointer\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in reset_R_pointer\n");
    }
    /* write 32 words */
    for (pt = buf, i = 0; i < 32; i++)
	*pt++ = i;
    if (fun_wr (bc, rt, 64, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in write_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in write_R_buf\n");
    }
    /* reset pointer */
    csr = flg;
    if (fun_rst (bc, rt, &csr, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in reset_T_pointer\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in reset_R_pointer\n");
    }
    /* read 16 words and compare */
    for (pt = buf, i = 0; i < 16; i++)
	*pt++ = 0;
    if (fun_rd (bc, rt, 32, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in read_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in read_R_buf\n");
    }
    for (pt = buf, i = 0; i < 16; i++, pt++) {
	if (*pt != i) {
	    convbin (*pt, str1);
	    convbin (i, str2);
	    print (1, "\nDATA error in tst_rst_pointer:\n read [%s] write [%s]\n", str1, str2);
	    erreur++;
	    if (t_err)
		return (erreur);
	}
    }
    /* Set local bit and play with the pointer */
    csr = LM_BIT;
    if (set_csr (bc, rt, &csr, &status) == (-1))
	BAD1 ("\rtst_rst_pointer:System error in set LOCAL bit\n");
    /* reset pointer */
    csr = flg;
    if (fun_rst (bc, rt, &csr, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in reset_T_pointer\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in reset_R_pointer\n");
    }
    /* write 8 words */
    for (pt = buf, i = 0; i < 8; i++)
	*pt++ = (i * 4) + i;	/* other pattern */
    if (fun_wr (bc, rt, 16, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in write_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in write_R_buf\n");
    }
    /* read 8 words and compare. They should be 0xFFFF */
    for (pt = buf, i = 0; i < 8; i++)
	*pt++ = 0;
    if (fun_rd (bc, rt, 16, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in read_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in read_R_buf\n");
    }
    for (pt = buf, i = 0; i < 8; i++, pt++) {
	if (*pt != 0xFFFF) {
	    convbin (*pt, str1);
	    convbin (0xffff, str2);
	    print (1, "\nDATA error in tst_rst_pointer:\n read [%s] write [%s]\n", str1, str2);
	    erreur++;
	    if (t_err)
		return (erreur);
	}
    }
    /* Reset local bit and read again the buffer */
    csr = LM_BIT;
    if (clr_csr (bc, rt, &csr, &status) == (-1))
	BAD1 ("\rtst_rst_pointer:System error in reset LOCAL bit\n");
    /* read 16 words and compare */
    for (pt = buf, i = 0; i < 16; i++)
	*pt++ = 0;
    if (fun_rd (bc, rt, 32, (char *) buf, &status) == (-1)) {
	if (Fl_buf == 0)
	    BAD1 ("\rtst_rst_pointer:System error in read_T_buf\n")
	else
	    BAD1 ("\rtst_rst_pointer:System error in read_R_buf\n");
    }
    for (pt = buf, i = 16; i < 32; i++, pt++) {
	if (*pt != i) {
	    convbin (*pt, str1);
	    convbin (i, str2);
	    print (1, "\nDATA error in tst_rst_pointer:\n read [%s] write [%s]\n", str1, str2);
	    erreur++;
	    if (t_err)
		return (erreur);
	}
    }
    return 0;
}
コード例 #6
0
ファイル: buffer.c プロジェクト: dcobas/banctest
int tst_buffer (short flg,	/* bit du csr (RRP ou RTP) */
		int (*fun_wr) (short, short, short, char *, unsigned short *),	/* fonction pour ecrire dans le buffer (set_tx_buf ou set_rx_buf) */
		int (*fun_rd) (short, short, short, char *, unsigned short *),	/* fonction pour lire dans le buffer (get_tx_buf ou get_rx_buf) */
		char *str)
{

    unsigned short buf1[4096], buf2[4096], *pt, *pt1, csr;
    short i;
    char str1[20], str2[20];
    int data_code, sycle_pass, lim, size_of_portion, Fl_buf = 0;

    sycle_pass = 0;
    data_code = 1;
    if (flg & 0x80)
	Fl_buf = 0;
    do {
	full_buff (data_code, buf1);
	for (size_of_portion = 2; size_of_portion <= 256;
	     size_of_portion += 2) {

	    /* clear buffer */
	    print (2, "clear buffer\n");
	    for (pt = buf2, i = 0; i < 128; i++)
		*pt++ = 0;	/* clear buffer */
	    if (fun_wr (bc, rt, size_of_portion, (char *) buf2, &status) ==
		(-1)) {
		if (Fl_buf == 0)
		    BAD1 ("\rtst_rst_pointer:System error in write_T_buf\n")
		else
		    BAD1 ("\rtst_rst_pointer:System error in write_R_buf\n");
	    }
	    /* reset pointer */
	    csr = flg;
	    print (2, "reset pointer; ");
	    if (set_csr (bc, rt, &csr, &status) == (-1)) {
		if (Fl_buf == 0)
		    BAD1 ("\rtst_buffer:System error in reset_T_pointer\n")
		else
		    BAD1 ("\rtst_buffer:System error in reset_R_pointer\n");
	    }
	    /* Send data in one chunk */
	    print (2, "writing %d words to the buffer\n", size_of_portion);
	    if (fun_wr (bc, rt, size_of_portion, (char *) buf1, &status) ==
		(-1)) {
		if (Fl_buf == 0)
		    BAD1 ("\rtst_buffer:System error in write_T_buf\n")
		else
		    BAD1 ("\rtst_buffer:System error in write_R_buf\n");
	    }
	    /* reset pointer */
	    csr = flg;
	    print (2, "reset pointer; ");
	    if (set_csr (bc, rt, &csr, &status) == (-1)) {
		if (Fl_buf == 0)
		    BAD1 ("\rtst_buffer:System error in reset_T_pointer\n")
		else
		    BAD1 ("\rtst_buffer:System error in reset_R_pointer\n");
	    }
	    /* Read data in one chunk */
	    print (2, "reading %d words to the buffer\n", size_of_portion);
	    if (fun_rd (bc, rt, size_of_portion, (char *) buf2, &status) ==
		(-1)) {
		if (Fl_buf == 0)
		    BAD1 ("\rtst_buffer:System error in read_T_buf\n")
		else
		    BAD1 ("\rtst_buffer:System error in read_R_buf\n");
	    }
	    /* compare data */
	    lim = size_of_portion / 2;
	    print (2, "compare data\n");
	    for (pt = buf1, pt1 = buf2, i = 0; i < lim; i++, pt++, pt1++)
		if (*pt != *pt1) {
		    convbin (*pt, str1);
		    convbin (*pt1, str2);
		    print (1, "\rDATA error in tst_buffer:\tPointer %d\n  read [%s]\n write [%s]\n", i, str1, str2);
		    erreur++;
		}
	    if (data_code == 6)
		size_of_portion += 8;
	    if (go_on == 0)
		break;
	}
	if (data_code == 6) {
	    data_code--;
	    if (++sycle_pass == 16)
		data_code++;
	}
    } while ((++data_code < 7) && (go_on != 0));
    return (erreur);
}
コード例 #7
0
ファイル: bounce.c プロジェクト: dcobas/banctest
int bounce (void)
{
    unsigned short csr;
    unsigned short buff[4096], data[4096], *pts, *ptd;
    int i, l = 0, flag = 0;
    int seuil = 0;
    unsigned char str1[20], str2[20];
    char dir;

    seuil = 128;
    dir = 8;
    /* tell G64 to start bounce with LRR and NEM set */
    csr = LRREQ_BIT + NEM_BIT;
    if (set_csr (bc, rt, &csr, &status) == -1)
	BAD1 ("system error in set LRR+NEM");

    /* reset bit TB et RB */
    csr = TB_BIT + RB_BIT;
    if (clr_csr (bc, rt, &csr, &status) == -1)
	BAD1 ("system error in clr RB+TB");

    /* fill data */
    for (i = 0; i < seuil; i++)
	data[i] = (i * (0xffff / seuil)) + ((0xffff / seuil) * l + l);

    l = 1;
    while (go_on) {
	print (1, "%c%c", '|' + (l & 0xfffe), dir);
	print (2, "Test avec %4d mots\n", l);

	/* reset receive pointer */
	csr = RRP_BIT;
	if (set_csr (bc, rt, &csr, &status) == -1)
	    BAD ("system error in set RRP");

	/* fill buffer */
	if (set_rx_buf (bc, rt, l * 2, (char *) data, &status) != 0)
	    BAD ("system error in set_rc_buf");

	/* set bits RB */
	csr = RB_BIT;
	if (set_csr (bc, rt, &csr, &status) == -1)
	    BAD ("system error in set RB");

	/* wait for reponse */
	if (wait_for_csr (TB_BIT, TB_BIT, 20000, 0) == 0) {
	    print (1, "TIME_OUT a l'attente du Transmit Buffer plein.\n");
	    erreur++;
	    if (t_err)
		continue;
	}

	/* reset transmit pointer */
	csr = RTP_BIT;
	if (set_csr (bc, rt, &csr, &status) == -1)
	    BAD ("system error in set RTP");

	/* read reponse */
	for (i = 0; i < l; i++)
	    buff[i] = 0;
	if (get_tx_buf (bc, rt, l * 2, (char *) buff, &status) != 0)
	    BAD ("system error in get_tx_buf");

	/* reset bit TB */
	csr = TB_BIT;
	if (clr_csr (bc, rt, &csr, &status) == -1)
	    BAD ("system error in clr TB");

	/* compare */
	flag = 0;
	i = l;
	pts = data;
	ptd = buff;
	do {
	    if (*pts != *ptd) {
		flag++;
		erreur++;
		convbin (*pts, (char *) str1);
		convbin (*ptd, (char *) str2);
		print (1, "DATA error in test_BOUNCE:\tPointer %d\n  read [%s]\n write [%s]\n", i, str2, str1);
		break;
	    }
	    pts++;
	    ptd++;
	} while (--i);
	if (++l > seuil)
	    break;
    }
    /* clear collision pattern LRR and NEM set */
    csr = LRREQ_BIT + NEM_BIT;
    if (clr_csr (bc, rt, &csr, &status) == -1)
	BAD1 ("system error in clr LRR+NEM");

    if (get_csr (bc, rt, &csr, &status) == -1)
	BAD1 ("system error in get_csr");
    if ((csr & INV_BIT) == INV_BIT) {
	print (0, "Le G64 a detecte une ou plusieurs erreurs au cours du test collision\n");
	erreur++;
	csr = INV_BIT;
	if (clr_csr (bc, rt, &csr, &status) == -1)
	    BAD1 ("system error in clr INV");
	if (t_err)
	    return t_err;
    }
    return (erreur);
}