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

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

?? xmodem.c

?? 在LINUX中實(shí)現(xiàn)USB攝像頭視頻監(jiān)控的完整源代碼!全部是自己移值的
?? C
字號(hào):
/* * vivi/deriver/serialxmodem.c: *     - an implementation of the xmodem protocol from the spec. * * Based on bootldr/xmodem.c (C) 2000 Compaq Computer Coporation. * * Copyright (C) 2001 MIZI Research, Inc. * * * 1999-01-xx: Edwin Foo <efoo@crl.dec.com> *    - Initial code * * 2001-10-04: Janghoon Lyu <nandy@mizi.com> *    - Modified a little bit. * * 2002-07-04: Janghoon Lyu <nandy@mizi.com> */#include "config.h"#include "machine.h"#include "serial.h"#include "priv_data.h"#include <types.h>/* XMODEM parameters */#define BLOCK_SIZE	128	/* size of transmit blocks */#define RETRIES		20	/* maximum number of RETRIES *//* Line control codes */#define SOH		0x01	/* start of header */#define ACK		0x06	/* Acknowledge */#define NAK		0x15	/* Negative acknowledge */#define CAN		0x18	/* Cancel */#define EOT		0x04	/* end of text */#define GET_BYTE_TIMEOUT 10000000/* global error variable */char *xmodem_errtxt = NULL;int get_byte_err = 0;__u8 volatile rbuffer[BLOCK_SIZE];/* prototypes of helper functions */int get_record(void);__u8 get_byte(void);enum{	SAC_SEND_NAK = 0,	SAC_SENT_NAK = 1,	SAC_PAST_START_NAK = 2};static volatile int seen_a_char = SAC_SEND_NAK;static int one_nak = 0;static unsigned long xmodem_timeout = GET_BYTE_TIMEOUT;char debugbuf[4096];int db_idx = 0;void bufputs(char *s){	size_t len = strlen(s) + 1;	if (len + db_idx > sizeof(debugbuf))		len = sizeof(debugbuf) - db_idx;	if (len) {		memcpy(&debugbuf[db_idx], s, len);		db_idx += len;	}}void reset_debugbuf(void){	memset(debugbuf, 0x2a, sizeof(debugbuf));	db_idx = 0;}__u32 xmodem_receive(char *dldaddr, size_t len){	char ochr;	int r = 0, rx_block_num = 0, error_count = 0;	__u32 foffset = 0;	int i;	int ret;	xmodem_errtxt = NULL;	seen_a_char = 0;	one_nak = get_param_value("xmodem_one_nak", &ret);	if (ret) one_nak = 0;	xmodem_timeout = get_param_value("xmodem_initial_timeout", &ret);	if (ret) xmodem_timeout = GET_BYTE_TIMEOUT;	rx_block_num = 1;	error_count = RETRIES;	do {		if ((r = get_record()) == (rx_block_num & 255)) {			error_count = RETRIES;			for (i = 0; i <BLOCK_SIZE; i++)				*(__u8 *)(dldaddr+foffset+i) = rbuffer[i];			xmodem_errtxt = "RX PACKET";			rx_block_num++;			ochr = ACK;			foffset += BLOCK_SIZE;		} else {			switch (r) {			case -1: /* TIMEOUT */				xmodem_errtxt = "TIMEOUT";				ochr = NAK;				break;			case -2: /* Bad block */				xmodem_errtxt = "BAD BLOCK#";				/* eat teh rest of the block */				get_byte_err = 0;				while (get_byte_err != -1) get_byte();				ochr = NAK;				break;			case -3: /* Bad checksum */				xmodem_errtxt = "BAD CHKSUM";				ochr = NAK;				break;			case -4: /* End of file */				xmodem_errtxt = "DONE";				ochr = ACK;				break;			case -5: /* Cancel */				xmodem_errtxt = "ABORTED";				ochr = ACK;				break;			default: /* Block out of sequence */				xmodem_errtxt = "WRONG BLK";				ochr = NAK;			}			error_count--;		}		putc(ochr);	} while ((r > -3) && error_count);	if ((!error_count) || (r != -4)) {		foffset = 0;	/* indicate failure to caller */		/*printk("x-modem error: %s\n", xmodem_errtxt); */	}	return foffset;}/* * Read a record in the XMODEM protocol, return the block number * (0-255) if successful, or one of the following return codes: * 	-1 = Bad byte * 	-2 = Bad block number * 	-3 = Bad block checksum * 	-4 = End of file * 	-5 = Canceled by remote */int get_record(void){	int c, block_num = 0;	int i;	__u32 check_sum;	/* clear the buffer */	for (i = 0; i < BLOCK_SIZE; i++)		rbuffer[i] = 0x00;	check_sum = 0;	i = -2;	c = get_byte();	if (get_byte_err)		return -1;	switch (c) {	case SOH:	/* Receive packet */		for (;;) {			c = get_byte();			if (get_byte_err)				return -1;			switch (i) {			case -2: 				block_num = c;				break;			case -1:#if 0#ifdef CHECK_NEGATED_SECTNUM				if (c != (-block_num -1))					return -2;#endif#endif				break;			case BLOCK_SIZE:				if ((check_sum & 0xff) != c)					return -3;				else					return block_num;				break;			default:				rbuffer[i] = c;				check_sum += c;			}			i++;		}	case EOT:	/* end of file encountered */		return -4;	case CAN:	/* cancel protocol */		return -5;	default:		return -5;	}}/* get_byte should use one of the timer's for a CPU clock independent timeout */__u8 get_byte(){	int c, ret;again:	c = 0;	get_byte_err = 0; /* reset errno */	c = awaitkey(xmodem_timeout, &get_byte_err);	if (get_byte_err) {		if (seen_a_char == SAC_SEND_NAK || !one_nak) {			bufputs("timeout nak");			putc(NAK);	/* make the sender go */		}		if (seen_a_char < SAC_PAST_START_NAK) {			bufputs("goto again");			seen_a_char = SAC_SENT_NAK;			xmodem_timeout = get_param_value("xmodem_timeout", &ret);			if (ret) xmodem_timeout = GET_BYTE_TIMEOUT;			goto again;		}	}	if (get_byte_err == 0)		seen_a_char = SAC_PAST_START_NAK;	return (c);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区二区久久婷婷| 国产成人综合精品三级| 91美女视频网站| 国产精品久久久久久亚洲伦 | 国产精品污污网站在线观看| 国产精品一区一区| 国产欧美日韩不卡| 99精品视频在线播放观看| 亚洲日本va在线观看| 色av一区二区| 日韩电影在线一区二区| 日韩情涩欧美日韩视频| 国产一区二区三区四区在线观看| 国产天堂亚洲国产碰碰| 不卡视频在线看| 亚洲国产日韩一区二区| 欧美一区二区精品在线| 国产成人精品免费一区二区| 国产精品久久久久影院老司| 色婷婷国产精品综合在线观看| 亚洲动漫第一页| 精品国产网站在线观看| av电影在线观看不卡| 五月激情综合网| 久久精品综合网| 色欧美片视频在线观看在线视频| 视频在线观看一区二区三区| 久久久久久久av麻豆果冻| 91啪亚洲精品| 裸体健美xxxx欧美裸体表演| 国产精品无码永久免费888| 在线观看www91| 国产在线精品国自产拍免费| 亚洲青青青在线视频| 欧美一区二区三级| www.视频一区| 美女国产一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 91精品国产综合久久久久久漫画| 成人性视频网站| 日韩av不卡在线观看| 国产精品不卡在线| 日韩欧美在线影院| 色爱区综合激月婷婷| 国产精品自拍av| 日一区二区三区| 亚洲天堂免费在线观看视频| 精品免费99久久| 精品视频在线看| 91麻豆国产自产在线观看| 激情五月婷婷综合| 性做久久久久久免费观看欧美| 国产精品久久毛片| 欧美成人综合网站| 欧美日韩精品一区二区在线播放| 成人app网站| 国产高清亚洲一区| 奇米色一区二区三区四区| 中文字幕一区二区三区在线播放 | 午夜久久久影院| 国产精品久久三| 国产日韩精品一区二区浪潮av| 欧美日韩免费观看一区三区| 91麻豆自制传媒国产之光| 国产精品亚洲一区二区三区妖精 | 毛片一区二区三区| 视频在线观看一区二区三区| 亚洲精品免费在线| 日韩码欧中文字| 中文字幕亚洲不卡| 国产亚洲成年网址在线观看| 精品国免费一区二区三区| 欧美一区中文字幕| 欧美电影一区二区三区| 欧美日本国产一区| 欧美日韩一级片网站| 欧美三级三级三级| 欧美三级中文字| 欧美人牲a欧美精品| 欧美精品在线观看一区二区| 欧美日韩国产首页| 717成人午夜免费福利电影| 欧美精品在欧美一区二区少妇| 欧美视频在线观看一区二区| 欧美视频中文字幕| 欧美高清激情brazzers| 欧美一区二区国产| 欧美本精品男人aⅴ天堂| 精品福利视频一区二区三区| 久久久精品2019中文字幕之3| 久久影院午夜论| 久久精品一区二区三区不卡牛牛| 国产午夜久久久久| 中文字幕中文字幕中文字幕亚洲无线 | 日韩福利电影在线| 日本不卡视频在线| 韩国欧美国产1区| 国产91精品久久久久久久网曝门| 成人动漫av在线| 97精品久久久久中文字幕 | 欧美日韩高清在线| 91精品国产入口在线| 精品久久久久久久久久久久久久久 | 精品久久久久久久久久久久久久久久久 | 亚洲国产精品天堂| 蜜桃传媒麻豆第一区在线观看| 精品亚洲成a人| 不卡一区中文字幕| 欧美日韩一区二区电影| 久久久久久久网| 亚洲精品国产高清久久伦理二区| 亚洲国产精品自拍| 国产原创一区二区| 色偷偷久久一区二区三区| 欧美一级理论片| 国产精品麻豆网站| 肉肉av福利一精品导航| 国产成人精品免费看| 色av综合在线| 久久九九99视频| 亚洲午夜成aⅴ人片| 国产精品白丝av| 欧美色欧美亚洲另类二区| 欧美国产一区在线| 天堂av在线一区| 成人av网站免费| 日韩欧美中文字幕精品| 亚洲男同性恋视频| 激情综合网激情| 欧美性生活影院| 国产日韩欧美一区二区三区乱码 | 免费在线视频一区| 成+人+亚洲+综合天堂| 欧美伦理电影网| 国产精品久久久久影视| 麻豆成人免费电影| 欧美三级韩国三级日本一级| 国产欧美日韩在线观看| 奇米四色…亚洲| 欧美日韩免费观看一区三区| 综合在线观看色| 国产在线一区二区| 日韩视频中午一区| 一区二区三区日韩欧美| 成人免费高清视频| 久久亚洲综合色| 日韩高清在线不卡| 在线视频观看一区| 亚洲婷婷国产精品电影人久久| 国产一二精品视频| 日韩欧美国产一区在线观看| 一区二区三区**美女毛片| 91在线观看美女| 国产精品亲子乱子伦xxxx裸| 国产一区二区三区免费在线观看| 91精品国产综合久久香蕉的特点| 亚洲一区电影777| 色综合色综合色综合| 国产精品美女久久久久久2018| 国产成人亚洲综合a∨婷婷| 精品日韩欧美一区二区| 久久99久久精品欧美| 欧美日韩国产美女| 午夜影院久久久| 在线看国产一区| 夜夜亚洲天天久久| 欧美性受xxxx黑人xyx| 一级中文字幕一区二区| 在线国产电影不卡| 亚洲五月六月丁香激情| 欧美亚洲综合在线| 亚洲成人综合视频| 欧美精品久久久久久久多人混战 | 欧美a一区二区| 欧美一区二区三区视频免费| 天堂成人免费av电影一区| 欧美精品xxxxbbbb| 免费成人在线播放| 久久众筹精品私拍模特| 国产电影一区在线| 国产精品护士白丝一区av| 91视频www| 天天色天天爱天天射综合| 日韩一区二区三区高清免费看看| 日韩av中文字幕一区二区三区| 日韩精品一区二区三区中文精品| 久久精品久久久精品美女| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲欧美成aⅴ人在线观看| 日本乱码高清不卡字幕| 亚洲福利一二三区| 欧美α欧美αv大片| 国产精品1区2区| 亚洲男人的天堂在线观看| 欧美系列亚洲系列| 免费人成精品欧美精品| 国产亚洲一区二区三区四区 | 久久久高清一区二区三区| 成人中文字幕合集| 国内精品国产三级国产a久久|