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

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

?? adcm1670_library.m

?? MatLab圖像傳感器網(wǎng)絡(luò)仿真平臺(tái)WiSNAP
?? M
字號(hào):
function status = adcm1670_library(command);
%Agilent ADCM-1670 Camera Module Library.
%   STATUS = ADCM1670_LIBRARY(COMMAND);
%
%   Input Parameters:
%   ================
%
%      command -----------> Library function (string):
%                           'open'  - Open communications session.
%                           'init'  - Initialize camera module.
%                           'frame' - Capture current frame.
%                           'close' - Close communications session.
%
%   Output Parameters:
%   =================
%
%      status ------------> Success status (-1 = error, +1 = success).
%
%   See also N/A.

% Stephan Hengstler
% Stanford Wireless Sensor Networks Lab
% December 22, 2005
%
% Last modified: 02-09-2005

%************************ Agilent ADCM-1670 Camera Module Library *************************

%--- Section: Global Variables ------------------------------------------------------------

global		colorm;							% color map
global		handle;							% device handle
global		imager;							% image array
global 		PORT;								% communications port

%--- Section: System Parameters -----------------------------------------------------------

CM_CFG_JPEG_GRAY     = ...             % Configuration: JPEG downsampling gray.
   bin2dec('0010000000000000');
CM_CFG_JPEG_444      = ...             % Configuration: JPEG downsampling 444.
   bin2dec('0010000001000000');
CM_CFG_JPEG_422      = ...             % Configuration: JPEG downsampling 442.
   bin2dec('0010000010000000');

CM_INT_BAUDRATE		= 115200;			% Interface: serial baud rate.

CM_MSK_AEWBFB    		= ...					% Bit mask: Auto exposure/white balance convergence
   hex2dec('00C0');							% 				and frame buffer content.
CM_MSK_IA	     		= ...					% Bit mask: Image abort.
   hex2dec('1000');
CM_MSK_JPEG_CFG      = ...             % Bit mask: JPEG configuration.
   bin2dec('0010000011000000');
CM_MSK_SNAP     		= ...					% Bit mask: Capture snapshot.
   hex2dec('0001');

CM_REG_REV				= '0000';			% Register: IC revision number.
CM_REG_CMD_1			= '0002';			% Register: Main command register 1.
CM_REG_CMD_2			= '0004';			% Register: Main command register 2.
CM_REG_VIDEO_CONFIG	= '000C';			% Register: Video configuration register.
CM_REG_STILL_CONFIG	= '000E';			% Register: Still configuration register.
CM_REG_UART_CREDITS	= '0024';			% Register: UART credits.
CM_REG_SZR_OUT_W_STL = '0032';         % Register: Sizer output width, still mode.
CM_REG_SZR_OUT_H_STL = '0034';         % Register: Sizer output height, still mode.
CM_REG_STATUS_FLAGS	= '0074';			% Register: General status flags.

CM_SEQ_BAUD				= ['55';'55'];		% Sequence: baud rate auto detection.
CM_SEQ_INIT				= ...					% Sequence: image pipeline initialization.
	['00';'00';'20';'04';'00';'02';...	% UART_PCKT_SIZE		The size of one packet.
    '00';'00';'24';'00';'00';'02';...	% UART_CREDITS			Number of current UART credits.
    '00';'00';'0C';'B9';'40';'02';...	% VIDEO_CONFIG			Video configuration.
    '00';'00';'0E';'B9';'40';'02';...	% STILL_CONFIG			Still configuration.
    '00';'00';'26';'01';'60';'02';...	% SZR_IN_W_VID			Sizer input width, video mode.
    '00';'00';'28';'01';'60';'02';...	% SZR_IN_H_VID			Sizer input height, video mode.
    '00';'00';'2A';'01';'60';'02';...	% SZR_OUT_W_VID		Sizer output width, video mode.
    '00';'00';'2C';'01';'60';'02';...	% SZR_OUT_H_VID		Sizer output width, video mode.
    '00';'00';'2E';'01';'60';'02';...	% SZR_IN_W_STL			Sizer input width, still mode.
    '00';'00';'30';'01';'60';'02';...	% SZR_IN_H_STL			Sizer input height, still mode.
    '00';'00';'32';'01';'60';'02';...	% SZR_OUT_W_STL		Sizer output width, still mode.
    '00';'00';'34';'01';'60';'02';...	% SZR_OUT_H_STL		Sizer output height, still mode.
    '00';'00';'3A';'00';'00';'02';...	% UFL_LIMIT_VID		JPEG underflow limit, video mode.
    '00';'00';'3E';'03';'C0';'02';...	% OFL_TARGET_VID		JPEG overflow target, video mode.
    '00';'00';'40';'03';'C0';'02';...	% OFL_LIMIT_VID		JPEG overflow limit, video mode.
    '00';'00';'42';'00';'00';'02';...	% UFL_LIMIT_STL		JPEG underflow limit, still mode.
    '00';'00';'46';'03';'C0';'02';...	% OFL_TARGET_STL		JPEG overflow target, still mode.
    '00';'00';'48';'03';'C0';'02';...	% OFL_LIMIT_STL		JPEG overflow limit, still mode.
    '00';'01';'08';'00';'00';'02'];		% T_DGEN_M				Test data generator mode.

CM_SOP_VIEW_GRAY		= hex2dec('2D');	% Start of packet viewfinder: Y only - grayscale.
CM_SOP_VIEW_JPEG		= hex2dec('30');	% Start of packet viewfinder: JPEG.
CM_SOP_SNAP_GRAY		= hex2dec('4D');	% Start of packet snapshot: Y only - grayscale.
CM_SOP_SNAP_JPEG		= hex2dec('50');	% Start of packet snapshot: JPEG.
CM_SOB_CODE				= hex2dec('11');	% Start of block code.
CM_EOB_CODE				= hex2dec('04');	% End of block code.
CM_EOP_CODE				= hex2dec('02');	% End of packet code.

%--- Command: Open Communications Session -------------------------------------------------

if (~isempty(strmatch('open',command,'exact')))
   
	% open serial port to camera module
	handle 		= com_open(PORT,CM_INT_BAUDRATE);
   if (handle < 0), status = -1, return, end
   
	% perform autobaud detection
	packet 		= char(hex2dec(CM_SEQ_BAUD)');
	status		= com_send(handle,packet);
   if (status < 0), return, end
   
   % return status
   status		= 1;
   
%--- Command: Initialize Camera Module ----------------------------------------------------

elseif (~isempty(strmatch('init',command,'exact')))

	% initialize camera module
	packet 		= char(hex2dec(CM_SEQ_INIT)');
	status		= com_send(handle,packet);
   if (status < 0), return, end

	% configure image output format
	% status		= cm_write_register(handle,CM_REG_VIDEO_CONFIG,'9D80');
	% status		= cm_write_register(handle,CM_REG_STILL_CONFIG,'9D80');

   % enable viewfinder mode
	status		= cm_write_register(handle,CM_REG_CMD_1,'0001');
   if (status < 0), return, end

	% get camera revision id
	camera_id	= cm_read_register(handle,CM_REG_REV)
   
   % return status
   status		= 1;

%--- Command: Capture Current Frame -------------------------------------------------------

elseif (~isempty(strmatch('frame',command,'exact')))

	% repeat until good image (TODO: temporary workaround for corrupt jpeg data)
	while (1)

      % wait until image abort is complete
      while (bitand(hex2dec(cm_read_register(handle,CM_REG_CMD_2)),CM_MSK_IA))
      end
      
      % check auto exposure/white balance convergence and frame buffer content
      while (~bitand(hex2dec(cm_read_register(handle,CM_REG_STATUS_FLAGS)),CM_MSK_AEWBFB))
      end
      
      % capture snapshot
      status		= cm_write_register(handle,CM_REG_CMD_2,dec2hex(CM_MSK_SNAP,4));
   	if (status < 0), return, end
      
      % get image type and size
      type        = hex2dec(cm_read_register(handle,CM_REG_STILL_CONFIG));
      width       = hex2dec(cm_read_register(handle,CM_REG_SZR_OUT_W_STL));
      height      = hex2dec(cm_read_register(handle,CM_REG_SZR_OUT_H_STL));
      
      % initialize image array
      imager 		= [];
      
      % read image data until EOP
      while (1)
         
         % set current uart credits to 1
         status		= cm_write_register(handle,CM_REG_UART_CREDITS,'0001');
		   if (status < 0), return, end
         
         % read-out image data
         packet 		= [];
			timeout		= 0;
			while (isempty(packet) & (timeout < 10))
            pause(0.010)
            packet		= com_recv(handle,1027);
		   	timeout		= timeout + 1;
			end   
         
			% check for error
			if (isempty(packet))
			   status		= -1;
		   	return;
			end

			% convert response packet
         packet 		= dec2hex(bitand(double(packet),255),2);
         
         % check response packet prefix
         switch (hex2dec(packet(1,:)))
            
            % start of block (SOB)?
         case CM_SOB_CODE
            offset        = 2;
            % disp('SOB')
            
            % start of packet (SOP)?
         case {CM_SOP_VIEW_GRAY,CM_SOP_VIEW_JPEG,CM_SOP_SNAP_GRAY,CM_SOP_SNAP_JPEG}
            SOP			  = hex2dec(packet(1,:));
            offset        = 1;
            % disp(['SOP 0x',packet(1,:)])
            
         end
         
         % build image array
         imager		= [imager uint8(hex2dec(packet(offset:end-2,:)))'];
         
         % check response packet suffix
         switch (hex2dec(packet(end-1,:)))
            
            % end of packet (EOP)?
         case CM_EOP_CODE
            % disp('EOP')
            break;
            
            % end of block (EOB)?
         case CM_EOB_CODE
            % disp('EOB')
         end
         
      end
      
      % discard current still frame to avoid double buffering
      status		= cm_write_register(handle,CM_REG_CMD_2,dec2hex(CM_MSK_IA,4));
   	if (status < 0), return, end

      % typecast image array to double
      imager      = double(imager);
      
      % reset warning messages
      lastwarn('');

      % decode image array according to output format
      switch (SOP)
         
         % output format: jpeg
      case {CM_SOP_VIEW_JPEG,CM_SOP_SNAP_JPEG}
         
         % get jpeg downsampling
         type        = bitand(type,CM_MSK_JPEG_CFG);
         
         % add jpeg header to image array
         jpeg        = cmJpgHdrBuild(imager,type,width,height);
         
         % write jpeg image to file
         fid         = fopen(['frame',PORT(end:end),'.jpg'],'w');
         count       = fwrite(fid,jpeg,'uchar');
         status      = fclose(fid);
		   if (status < 0), return, end
         
         % read jpeg image from file
         [imager,colorm]	= imread(['frame',PORT(end:end),'.jpg'],'JPEG');
         
         % output format: y only - grayscale
      case {CM_SOP_VIEW_GRAY,CM_SOP_SNAP_GRAY}
         
         % reshape image array accoding to image size
         imager      = (reshape(imager(1:end-1),width,height))';
         
      end
      
      % check for good image data
      if (isempty(lastwarn))
         break;
      end
   
   end
   
   % typecast image array to double
   imager		= double(imager);

   % return status
   status		= 1;

%--- Command: Close Communications Session ------------------------------------------------

elseif (~isempty(strmatch('close',command,'exact')))

	% close serial port
	com_close(handle);

   % return status
   status		= 1;

%--- Command: Undefined -------------------------------------------------------------------

else

   % return status
   status		= -1;

end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜乳av一区二区| 精品国产一区二区精华| 国产视频视频一区| 国产中文字幕一区| 日韩欧美在线1卡| 精品无人码麻豆乱码1区2区 | 韩国毛片一区二区三区| 日韩欧美亚洲国产另类| 国产乱码一区二区三区| 中文乱码免费一区二区| 色av成人天堂桃色av| 亚洲一区二区三区在线看| 91精品国产综合久久精品| 精油按摩中文字幕久久| 中文字幕日韩精品一区| 欧美视频一区二区三区四区| 久久精品理论片| 国产女人水真多18毛片18精品视频| av成人老司机| 日本午夜一区二区| 久久久91精品国产一区二区三区| 成人在线一区二区三区| 亚洲美女屁股眼交3| 91精品国产综合久久福利软件 | 国产一区二区女| 中文字幕一区二区三区在线不卡| 欧美日韩视频在线观看一区二区三区| 日韩av在线免费观看不卡| 国产精品天天看| 欧美日韩精品系列| 成人综合在线观看| 欧美一区二区免费观在线| 一区二区三区欧美日韩| 欧美一级国产精品| 成人av网站免费| 日韩有码一区二区三区| 国产欧美一区二区三区沐欲 | 99久久国产免费看| 日韩电影在线免费| 中文字幕一区二区三| 日韩一区二区视频| 91电影在线观看| 国产精品影视天天线| 亚洲国产毛片aaaaa无费看 | 欧美一区二区三区免费大片| 成人精品视频.| 美腿丝袜亚洲综合| 亚洲欧美日韩成人高清在线一区| 精品日韩成人av| 欧美系列一区二区| 成人午夜视频网站| 国产乱码精品一区二区三区忘忧草 | 中文乱码免费一区二区| 91精品国产日韩91久久久久久| 99精品在线观看视频| 九色|91porny| 日韩电影在线免费看| 一区二区三区在线观看动漫 | 国产精品久久久久aaaa| 欧美不卡在线视频| 欧美丰满少妇xxxxx高潮对白 | 国产在线精品国自产拍免费| 污片在线观看一区二区| 亚洲男帅同性gay1069| 国产精品污www在线观看| 国产丝袜欧美中文另类| 久久综合色鬼综合色| 日韩精品自拍偷拍| 日韩欧美亚洲一区二区| 欧美一级xxx| 欧美一二三区在线| 欧美一区二视频| 欧美一区在线视频| 91精品久久久久久久99蜜桃 | 久久日韩粉嫩一区二区三区| 欧美videos中文字幕| 日韩视频一区二区三区在线播放| 7777女厕盗摄久久久| 欧美精品第1页| 欧美性生活久久| 欧美日韩mp4| 91精品国产入口| 精品久久久久久最新网址| 日韩精品一区二区在线观看| 欧美精品一区二区三区在线播放| 精品免费国产一区二区三区四区| 日韩女优av电影| 精品成人免费观看| 国产欧美一区二区精品婷婷| 日本一区免费视频| 中文字幕在线一区二区三区| 成人免费在线播放视频| 一区二区三区日本| 国产精品嫩草99a| 国产成a人亚洲精| 国产盗摄一区二区| 成人美女视频在线看| av亚洲精华国产精华精| 99热在这里有精品免费| 欧美综合视频在线观看| 欧美猛男男办公室激情| 欧美精品一区二区久久久| 国产精品入口麻豆原神| ...xxx性欧美| 午夜精品福利一区二区三区蜜桃| 日本成人在线不卡视频| 国产精品资源在线| 91在线视频免费91| 欧美日韩久久一区二区| 精品国产一区a| 亚洲欧洲日韩一区二区三区| 亚洲成在线观看| 久久97超碰色| 91精品免费观看| 久久精品水蜜桃av综合天堂| 国产精品麻豆久久久| 一区二区三区在线观看视频| 男人操女人的视频在线观看欧美| 国产在线精品视频| 欧美一二三四在线| 成人夜色视频网站在线观看| 99久久99久久久精品齐齐| 欧美中文一区二区三区| 日韩欧美亚洲另类制服综合在线| 国产精品成人在线观看| 天使萌一区二区三区免费观看| 国产成人精品免费视频网站| 欧美性videosxxxxx| 欧美韩国日本一区| 日韩精品一级二级 | 国产成人综合网| 欧美视频在线一区| 国产日产精品1区| 日韩精品乱码av一区二区| 成人深夜福利app| 日韩一卡二卡三卡| 亚洲综合色噜噜狠狠| 国产精品99久久久久久宅男| 91超碰这里只有精品国产| 中文字幕日韩欧美一区二区三区| 另类调教123区 | 日韩成人免费在线| 91麻豆免费视频| 久久九九久久九九| 日韩黄色免费电影| 在线观看一区二区精品视频| 国产精品久久久久一区| 九九精品一区二区| 91精品国产入口在线| 亚洲一级电影视频| 99精品欧美一区二区三区小说| 精品剧情v国产在线观看在线| 亚洲国产成人av| 日本韩国视频一区二区| 国产精品免费视频网站| 国产剧情在线观看一区二区| 91精品国产综合久久福利软件| 视频在线观看一区二区三区| 久久成人久久鬼色| 欧美人成免费网站| 亚洲一区二区三区中文字幕| 91在线精品一区二区三区| 国产视频一区二区在线| 经典三级一区二区| 精品欧美一区二区三区精品久久 | 免费在线观看精品| 91精品国产综合久久久久久久| 亚洲国产视频网站| 91成人免费网站| 一级日本不卡的影视| 91日韩一区二区三区| 亚洲人吸女人奶水| 91麻豆.com| 亚洲精品中文字幕乱码三区 | 在线免费观看视频一区| 亚洲日本在线视频观看| 91免费在线播放| 一区二区三区四区乱视频| 日本高清免费不卡视频| 亚洲欧美日韩国产综合在线| 在线视频欧美精品| 亚洲高清一区二区三区| 7777精品伊人久久久大香线蕉的 | 国产精品国产自产拍高清av | 日本最新不卡在线| 欧美一区欧美二区| 久久成人av少妇免费| 久久精品人人做| 成人app软件下载大全免费| 亚洲婷婷国产精品电影人久久| 91免费国产在线| 亚洲电影视频在线| 欧美成人精品1314www| 国产精品原创巨作av| 中文字幕欧美一| 欧美午夜一区二区| 久久国产欧美日韩精品| 欧美国产综合一区二区| 在线中文字幕一区二区| 蜜臀久久久久久久|