亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? can_send.c

?? can4linux-3.5.3.gz can4 linux
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* can driver*  test programm*  send messages commissioned via command line* * To do:* - more sequences for -t * - -debug schaltet mit debug level auch Treiber in debug mode* - ..* - do configuration of test with a special file format (can_send.rc)* - use nanosleep() see test3() ?** - CAN Errors are shown only in the basic mode.*   use it in all test modes*   and make an automatic reset in case of bus-off configurable** all activities has normally be finished before the progrmm can exit* and close the driver. Typiclyy the transmitt buffer is filled.* The programm has to wait for tx buffer empty before exiting.* At the momnt the program has some sleep() only.*/#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <stddef.h>#include <string.h>#include <signal.h>#include <sys/time.h>#include <time.h>#include <sys/ioctl.h>#include <math.h>#ifdef USE_RT_SCHEDULING# include <sched.h># include <sys/mman.h>#endif#include <errno.h>#include "can4linux.h"#if defined(EMBED)# if defined(COLDFIRE)/* IGW900 */#  define STDDEV "/home/bin/can0"# else#  define STDDEV "/dev/can0"# endif#else# define STDDEV "/dev/can1"#endif#define VERSION "1.9"#ifndef TRUE# define TRUE  1# define FALSE 0#endifextern int errno;canmsg_t message;void sbuf(unsigned char *s, int n);void usage(char *s);int can_fd;int node                 = 8;int debug                = FALSE;int extd                 = FALSE;int load		 = 50;		/* default bus-load */int doload		 = FALSE;		/* default bus-load */int stresstest           = FALSE;int testtype             = 1;  int sleeptime            = 1;		/* default: 1ms */int errwaittime		 = 1000;	/* waittime after error */int cstdout              = FALSE;	/* use stdout for CAN message */long int test_count_soll = 1;		/* single message */int rtr                  = FALSE;int baud		 = -1;		/* dont change baud rate */int priority		 = -1;		/* dont change priority rate */int canreset		 = FALSE;int endless		 = 0;		/* endlees test *//* functions */void clean_process(void);void test1(void);void test2(void);void test3(void);void test10(void);void test11(void);void test12(void);void test20(void);void test30(void);void test31(void);void test40(void);/************************************************************************* set_bitrate - sets the CAN bit rate*** Changing these registers only possible in Reset mode.** RETURN:**/int	set_bitrate(	int fd,			/* device descriptor */	int baud		/* bit rate */	){Config_par_t  cfg;volatile Command_par_t cmd;int ret;    cmd.cmd = CMD_STOP;    ioctl(fd, CAN_IOCTL_COMMAND, &cmd);    cfg.target = CONF_TIMING;     cfg.val1   = baud;    ret = ioctl(fd, CAN_IOCTL_CONFIG, &cfg);    cmd.cmd = CMD_START;    ioctl(fd, CAN_IOCTL_COMMAND, &cmd);    if (ret < 0) {	perror("set_bitrate");	exit(-1);    } else {	ret = 0;    }    return ret;}#include "getstat.c"int can_reset(void) {int ret;volatile Command_par_t cmd;    cmd.cmd = CMD_RESET;    ret = ioctl(can_fd, CAN_IOCTL_COMMAND, &cmd);    return ret;}int can_start(void) {int ret;volatile Command_par_t cmd;    cmd.cmd = CMD_CLEARBUFFERS;    ret = ioctl(can_fd, CAN_IOCTL_COMMAND, &cmd);    cmd.cmd = CMD_START;    ret = ioctl(can_fd, CAN_IOCTL_COMMAND, &cmd);    return ret;}void displayerror(canmsg_t *rx){/* static int boffcnt = 0; */	printf("Flags 0x%02x,", rx->flags);	if( 0 == (rx->flags & MSG_ERR_MASK)) {		printf(" CAN Error Free");	}	if( rx->flags & MSG_WARNING) {		printf(" CAN Warning Level,");	}	if( rx->flags & MSG_PASSIVE) {		printf(" CAN Error Passive,");	}	if( rx->flags & MSG_BUSOFF) {		printf(" CAN Bus Off,");		can_reset();		/* sleep 100ms */		usleep (100000);		can_start();	}	printf("\n");}	    /**** The main program**/int main(int argc, char **argv){int ret;int cnt;int c;char *pname;extern char *optarg;extern int optind;char device[40] = STDDEV;int max_priority;int increment = 0;long int test_count = 0;    pname = *argv;#ifdef USE_RT_SCHEDULING    max_priority = sched_get_priority_max(SCHED_RR) - 1;#else     max_priority = 1;#endif    /* our default 8 byte message */    message.id      = 100;    message.cob     = 0;    message.flags   = 0;    message.length  = 8;    message.data[0] = 0x55;    message.data[1] = 2;    message.data[2] = 3;    message.data[3] = 4;    message.data[4] = 5;    message.data[5] = 6;    message.data[6] = 7;    message.data[7] = 0xaa;    /* parse command line */    while ((c = getopt(argc, argv, "b:dehl:rp:s:n:D:t:T:VR")) != EOF) {	switch (c) {	    case 'r':		rtr = TRUE;		break;	    case 'e':		extd = TRUE;		break;	    case 'b':		baud = atoi(optarg);		break;	    case 'l':		load = atoi(optarg);		doload = TRUE;		break;	    case 'p':	        {#ifdef USE_RT_SCHEDULING	        struct sched_param mysched;		    priority = atoi(optarg);		    if (priority < 0 ) {		      fprintf(stderr, "Priority < 0 not allowed\n");		    }		    if (priority > max_priority) {		      fprintf(stderr, "Priority > %d not allowed\n",		      					max_priority);		    }		    mysched.sched_priority =		    		sched_get_priority_max(SCHED_RR) - 1;		    ret = sched_setscheduler(0,SCHED_FIFO,&mysched);		    if ( debug == TRUE ) {			printf("sched_setscheduler() = %d\n", ret);		    }		    /* lock all currently and in future			allocated memory blocks in physical ram */		    ret = mlockall(MCL_CURRENT | MCL_FUTURE);		    if ( debug == TRUE ) {			printf("mlockall() = %d\n", ret);		    }#endif		}		break;	    case 's':		sleeptime = atoi(optarg);		endless |= 0x01;		break;	    case 'n':		node = atoi(optarg);		sprintf(device, "/dev/canp%d", node);		break;	    case 'D':	        if (0 == strcmp(optarg, "stdout")) {	            cstdout = TRUE;		} else if (		    /* path ist starting with '.' or '/', use it as it is */			optarg[0] == '.'			|| 			optarg[0] == '/'			) {		    sprintf(device, "%s", optarg);	        } else {		    sprintf(device, "/dev/%s", optarg);		}		break;	    case 'd':		debug = TRUE;		break;	    case 't':		stresstest = TRUE;		testtype   = atoi(optarg);		break;	    case 'T':		test_count_soll = atoi(optarg);		endless |= 0x02;		break;	    case 'V':		printf("can_send V " VERSION ", " __DATE__ "\n");		exit(0);		break;	    case 'R':		canreset = TRUE;		break;	    case 'h':	    default: usage(pname); exit(0);	}    }    /* look for additional arguments given on the command line */    if ( argc - optind > 0 ) {        /* at least one additional argument, the message id is given */	message.id =  strtol(argv[optind++], NULL, 0);    	memset(message.data, 0, 8);	message.length = 0;    }    if ( argc - optind > 0 ) {    	/* also data bytes areg given with the command */	cnt = 0;	while(optind != argc) {	    message.data[cnt++] = strtol(argv[optind++], NULL, 0);	}	message.length = cnt;    }    if (rtr) {	message.flags |= MSG_RTR;    }    if (extd) {	message.flags |= MSG_EXT;    }    if (endless != 0x01) {        /* only the value 1 means endless, all other values means,         * additional options used -> no endless         */        endless = 0;    }    if ( debug == TRUE ) {	printf("can_send V " VERSION ", " __DATE__ "\n");	printf("(c) 1996-2006 port GmbH\n");	printf(" using canmsg_t with %d bytes\n", sizeof(canmsg_t));	printf("  data at offset %d\n", offsetof(canmsg_t, data));	printf(" max process priority is \"-p %d\"\n", max_priority);	if (stresstest) {	    printf("should send one of the test sequences\n");	} else {	    printf("should send mess %ld with: %s", message.id,		message.length > 0 ? ": " : "out data");	    sbuf(message.data, message.length);	}    }    sleeptime *= 1000;    if ( debug == TRUE ) {	printf("Sleeptime between transmit messages= %d us\n", sleeptime);    }    srand(node * 100);    if(sleeptime > 0) {    	errwaittime = sleeptime;    } else {    	errwaittime = 1000;    }    if (cstdout == FALSE) {        /* really use CAN, open the device driver */	if ( debug == TRUE ) {	    printf("Open device %s\n", device);	}	/* can_fd = open(device, O_WRONLY | O_NONBLOCK); */	can_fd = open(device, O_RDWR | O_NONBLOCK);	if (can_fd == -1) {	    fprintf(stderr, "open error %d;", errno);	    perror(device);	    exit(1);	}	if ( canreset == TRUE ) {	    ret = can_reset();	    if ( ret == -1 ) {		perror("CAN Reset");		exit(EXIT_FAILURE);	    }	    if ( debug == TRUE) {		printf("Reset successfull\n");	    }	    exit(EXIT_SUCCESS);	}		if (baud > 0) {	    if ( debug == TRUE ) {		printf("change Bit-Rate to %d Kbit/s\n", baud);	    }	    set_bitrate(can_fd, baud);	}    } else {	can_fd = 1;		/* use stdout */    }    if ( debug == TRUE ) {	printf("opened %s succesful, got can_fd = %d\n", device, can_fd);    }    if (doload == TRUE) {	test20();	exit(0);    }    if (stresstest) {	switch(testtype) {	    case 1:  test1(); exit(0); break;	    case 2:  test2(); exit(0); break;	    case 3:  test3(); exit(0); break;	    case 4:  increment = 1; break;	    case 10: test10(); exit(0); break;	    case 11: test11();	    	sleep(2); printf("finito\n");	    		exit(0); break;	    case 12: test12(); exit(0); break;	    case 30: test30(); exit(0); break;	    case 31: test31(); exit(0); break;	    case 40: test40(); exit(0); break;	    default:	    fprintf(stderr, "test type %d is not defined\n", testtype);	    exit(0); break;	}    }    /* else */    /* the default can_send, simply send a message */    /* no special test, send the normal message, (old behaviouur) */    do {        canmsg_t rx;        int i;        if(debug == TRUE) {	     printf(" transmit message %ld\n", message.id ); 	}	ret = write(can_fd, &message, 1);	if(ret == -1) {	    /* int e = errno; */	    perror("write error");	    /* if ( e == ENOSPC) { */		usleep(errwaittime); 		continue;	    /* } */	} else if(ret == 0) {	    printf("transmit timed out\n");		usleep(errwaittime); 		continue;	} else {	    ;	}	/* now read the rx queue, it may contain	 * frames with id -1, which signals an error */	do {	    i = read(can_fd, &rx, 1);	    if(-1 == i) {		perror("read error");	    } else if((i > 0) && (CANDRIVERERROR == rx.id)) {		displayerror(&rx);	    }	}	while(i > 0);	if( debug == TRUE ) {	     showCANStat(can_fd); 	}	if(sleeptime > 0) usleep(sleeptime);	message.id += increment;		test_count++;	        if(endless != 1) {	    if(test_count == test_count_soll) {		break;	    }	}    }    while(1);    if (sleeptime == 0) {        /* do not close while the controller is sending a message         * sleep() then close()         */        usleep(50000);        /* sleep(1); */    }    ret = close(can_fd);    if (ret == -1) {	fprintf(stderr, "close error %d;", errno);	perror("");	exit(1);    }    if ( debug == TRUE ) {	printf("closed fd = %d succesful\n", can_fd);    }    return 0;}/* show buffer in hex */void sbuf(unsigned char *s, int n){int i;    for(i = 0; i< n; i++) {	fprintf(stdout, "%02x ", *s++);    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品免费观看| 亚洲成av人片在www色猫咪| 93久久精品日日躁夜夜躁欧美| 亚洲一区欧美一区| 国产女主播视频一区二区| 色噜噜狠狠成人中文综合| 狠狠色丁香九九婷婷综合五月| 一区二区三区精品视频在线| 国产清纯在线一区二区www| 欧美丰满少妇xxxxx高潮对白| 成人免费福利片| 国内精品视频一区二区三区八戒| 亚洲综合视频在线| 国产精品嫩草久久久久| 精品va天堂亚洲国产| 欧美日韩成人综合天天影院 | 在线观看日韩电影| 国产精品白丝av| 蜜臀国产一区二区三区在线播放 | 色香蕉久久蜜桃| 国产乱人伦精品一区二区在线观看 | 日韩欧美中文字幕一区| 色综合网站在线| 91精品欧美一区二区三区综合在 | 亚洲电影欧美电影有声小说| 国产精品久久久一区麻豆最新章节| 日韩精品一区国产麻豆| 欧美精品粉嫩高潮一区二区| 欧美视频精品在线| 一本一道久久a久久精品综合蜜臀| 粉嫩av亚洲一区二区图片| 精彩视频一区二区| 日本aⅴ精品一区二区三区 | 日韩电影在线免费观看| 一区二区激情小说| 亚洲最新视频在线播放| 亚洲婷婷在线视频| 中文字幕日韩一区| 国产精品麻豆一区二区| 中文无字幕一区二区三区| 国产亚洲欧美日韩日本| 国产午夜精品一区二区三区四区| www国产亚洲精品久久麻豆| 精品国产人成亚洲区| 欧美va亚洲va在线观看蝴蝶网| 91精品午夜视频| 欧美二区三区91| 777亚洲妇女| 日韩一级成人av| 精品久久久久久无| 国产午夜亚洲精品不卡| 中文字幕+乱码+中文字幕一区| 国产精品天美传媒沈樵| √…a在线天堂一区| 一区二区三区久久| 亚洲超丰满肉感bbw| 免费美女久久99| 国产在线精品一区二区不卡了| 国产成人av在线影院| 99热精品一区二区| 欧美性感一类影片在线播放| 91麻豆精品国产综合久久久久久 | 欧美精品一区二| 欧美国产亚洲另类动漫| 亚洲免费伊人电影| 天天av天天翘天天综合网| 久久99精品视频| 成人永久aaa| 欧美伊人久久久久久久久影院 | 麻豆视频观看网址久久| 国产精品18久久久久| 99re热视频精品| 欧美日韩亚洲丝袜制服| 久久丝袜美腿综合| 亚洲欧美国产77777| 日本一不卡视频| 国产不卡高清在线观看视频| 91国偷自产一区二区三区观看 | 亚洲伊人伊色伊影伊综合网| 蜜桃一区二区三区在线| 成人国产精品免费观看动漫| 欧美三日本三级三级在线播放| 欧美一级搡bbbb搡bbbb| 中文字幕精品一区| 午夜视频在线观看一区二区| 国产精品88av| 欧美女孩性生活视频| 久久综合九色综合97婷婷女人| 亚洲免费伊人电影| 国产乱国产乱300精品| 欧美在线免费观看视频| 国产三级精品在线| 日韩经典一区二区| 99久久国产综合精品色伊| 日韩欧美一二三四区| 亚洲男人的天堂在线aⅴ视频| 久久国内精品自在自线400部| 91社区在线播放| 久久午夜色播影院免费高清| 亚洲第一久久影院| a亚洲天堂av| 久久综合久久综合九色| 天天综合天天综合色| 成人高清视频在线| 精品三级在线看| 五月天激情综合| 99免费精品在线| 久久青草欧美一区二区三区| 香蕉加勒比综合久久| 99精品欧美一区| 久久看人人爽人人| 美女国产一区二区三区| 欧美午夜精品一区| 国产精品美女久久久久久久网站| 久久 天天综合| 制服丝袜国产精品| 亚洲成av人片在线观看| 在线看一区二区| 亚洲欧洲一区二区三区| 国产91精品免费| 精品国产sm最大网站| 人人狠狠综合久久亚洲| 欧美日韩夫妻久久| 亚洲国产成人porn| 欧美三级三级三级爽爽爽| 亚洲猫色日本管| 97se亚洲国产综合自在线| 亚洲国产成人私人影院tom| 国产一区二三区| 日韩免费视频线观看| 日本三级亚洲精品| 91精品国产一区二区三区蜜臀 | 日韩手机在线导航| 首页国产欧美日韩丝袜| 欧美日韩国产一二三| 亚洲大尺度视频在线观看| 欧美视频一区二区| 亚洲线精品一区二区三区 | 久久综合国产精品| 国产一区二区三区四区五区美女| 精品国产乱码久久久久久闺蜜| 另类欧美日韩国产在线| 精品福利视频一区二区三区| 久久国产福利国产秒拍| 久久嫩草精品久久久久| 国产精品一区免费在线观看| 国产视频一区二区在线| 国产成人av资源| 日韩一区欧美一区| 97久久人人超碰| 亚洲视频在线一区二区| 97成人超碰视| 亚洲妇熟xx妇色黄| 欧美日韩高清一区| 精久久久久久久久久久| 国产欧美视频一区二区| 色综合天天狠狠| 亚洲18女电影在线观看| 91精品国产欧美一区二区| 久草在线在线精品观看| 国产色综合久久| 99re视频这里只有精品| 亚洲国产日日夜夜| 精品国产伦一区二区三区观看方式| 国产一区二区精品久久99 | 精品一区二区成人精品| 国产日韩欧美激情| 色偷偷久久人人79超碰人人澡| 亚洲成人动漫av| 精品国产一区a| 99国产一区二区三精品乱码| 调教+趴+乳夹+国产+精品| 久久综合成人精品亚洲另类欧美| 99re66热这里只有精品3直播| 香蕉乱码成人久久天堂爱免费| 久久亚洲精华国产精华液| 91色|porny| 美腿丝袜亚洲三区| 国产精品美女久久福利网站 | 精品人在线二区三区| 成人福利视频在线| 日本午夜精品一区二区三区电影 | 国产精品国产成人国产三级| 欧美日韩精品一区二区三区 | 69p69国产精品| 制服丝袜亚洲色图| 国产成人午夜精品5599| 亚洲第一成年网| 国产精品久久久久精k8| 日韩三级中文字幕| 色婷婷久久久亚洲一区二区三区| 久久国产精品99精品国产| 一区二区三区在线观看动漫| 久久久久国产精品免费免费搜索| 欧美午夜精品一区| 成人h版在线观看| 久久91精品国产91久久小草 | 亚洲色图视频免费播放| 精品88久久久久88久久久| 精品视频一区 二区 三区|