这是普泰通信的一个RS485摄像机,主要也是通过相关协议进行一个开发使用。大概就是这样的。相应的摄像头规格和通信协议资料我也相应的贴在资源里面。

直接根据协议写功能函数。

1、130 万/200 万像素串口摄像头通讯协议(指令的数字均为 16 进制)

上电后需要 3s 启动时间,在此期间,发送指令,摄像头没有回应。用户程序在上电延时 3s 后,可发送复位指令,看摄像头是否有响应,如有响应,说明已经初始化完成,串口会输出如下信息,即可正常拍照了。
Version:PTC2M0 1.02
MEID_Num:00
ImageWidth:1920,ImageHeight:1080
Init end

1.1、查询版本指令

发送:56 00 11 00 返回:76 00 11 00 0B 50 54 43 32 4D 30 20 31 2E 30 30
0B — 是版本字符串长度 11
50 54 43 32 4D 30 20 31 2E 30 30 转字符串表示 PTC2M0 1.02
型号:PTC2M0+空格+主版本 1.次版本号 02(版本号可能会因功能优化而变化),可通过查版本指令验证通讯是否已准备好。

/************************************************
名称:void query_version(uint8_t camera_addres)
功能:摄像机版本查询
输入:摄像机地址(默认0x00)
输出:成功:C_query_version_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Query_version(uint8_t camera_addres)
{uint16_t num=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x11;CAMER_TX_BUF[num++]=0x00; RS485_Send_String(CAMER_TX_BUF,num);
}

1.2、复位指令

发送:56 00 26 00 返回:76 00 26 00 //发送复位指令约 2-3s 后,会显示这么一串字符,相当于系统重启一次。

/************************************************
名称:void camera_rest(uint8_t camera_addres)
功能:复位摄像头
输入:摄像机地址(默认0x00)
输出:成功:C_take_photos_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Camera_rest(uint8_t camera_addres)
{uint16_t num=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x26;CAMER_TX_BUF[num++]=0x00; RS485_Send_String(CAMER_TX_BUF,num);send_string_uart2_len(Uart1_rcvbuff,Uart1_rcvindex);
}

1.3、拍照指令

发送:56 00 36 01 00 拍照成功返回:76 00 36 00 00
注意:上电,复位后立即进行拍照效果不佳,需等待 2-3s,使摄像头稳定下来后拍照效果即稳定。130 万像素需等待 2s,200 万像素需等待 3s。

/************************************************
名称:void take_photos(uint8_t camera_addres)
功能:拍照控制
输入:摄像机地址(默认0x00)
输出:成功:C_take_photos_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Take_photos(uint8_t camera_addres)
{uint16_t num=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x36;CAMER_TX_BUF[num++]=01;CAMER_TX_BUF[num++]=00; RS485_Send_String(CAMER_TX_BUF,num);
}

1.4、读取所拍图片长度指令

发送:56 00 34 01 + II 返回:76 00 34 00 04 XX XX XX XX
II -------1 个字节表示读取不同的图片缓存,有效范围 0-5,其中 0 号图片缓存固定
为当前拍照的图片,1-5 号的图片缓存空间由移动侦测触发的连拍以及多张连拍指令所共享。
XX XX XX XX -------4 个字节表示图片数据长度。
举例说明:
发送:56 00 34 01 00 返回:76 00 34 00 04 00 01 4B C6
长度说明:0x00014BC6 / 1024 约等于 82.9K 的图片长度

/************************************************
名称:void Read_photo_len(uint8_t camera_addres,uint8_t Cache_block)
功能:读取照片长度
输入:camera_addres:摄像头485地址。Cache_block:照片缓存块 范围0-5
输出:成功:C_read_photo_len_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Read_photo_len(uint8_t camera_addres,uint8_t cache_block)
{uint16_t num=0;if(cache_block>5)cache_block=5;
//  else if(Cache_block<0)Cache_block=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x34;CAMER_TX_BUF[num++]=01;CAMER_TX_BUF[num++]=cache_block; //照片缓存块RS485_Send_String(CAMER_TX_BUF,num);send_string_uart2_len(CAMER_TX_BUF,num);
}

1.5、读取所拍图片数据指令

发送:56 00 32 0C II 0A SS SS SS SS LL LL LL LL 00 FF
返回:76 00 32 00 00 FF D8 。。。。。。FF D9 76 00 32 00 00
II ---------------1 个字节表示读取不同的图片缓存,有效范围 0-5,其中 0 号图片缓存固定为
当前拍照的图片,1-5 号的图片缓存空间由移动侦测触发的连拍以及多张连拍指令所共享。
SS SS SS SS —起始地址 4 个字节(必须是 8 的倍数)。
LL LL LL LL —本次读取数据长度 4 个字节,请看下面的举例说明。
注意:完整的 JPEG 图片文件一定是以 FF D8 开始,FF D9 结束。如果是一次性读出整张图片数据,则起始地址是:00 00 00 00 ,本次读取的数据长度为 4.4 指令读出的整张图片的字节长度。读出的数据以 FF D8 开头,FF D9 结尾。
如果要分多次读取图片数据,则第一次读取的起始地址是:00 00 00 00,后几次读取的起始地址是上一次读取数据的末尾地址。
举例说明:
发送:56 00 32 0C 00 0A 00 00 00 00 00 01 4B C6 00 FF
返回:76 00 32 00 00 FF D8 … FF D9 76 00 32 00 00
解释说明:

表示从 0x00000000 起始位置读取长度为 0x00014BC6 的图片长度数据。

/************************************************
名称:void Read_photo_data(uint8_t camera_addres,uint8_t Cache_block,uint32_t start_address,uint32_t data_len)
功能:读取照片数据
输入:camera_addres:摄像头485地址。Cache_block:照片缓存块 范围0-5start_address:数据起始位置data_len:需要读取的数据长度
输出:成功:C_read_photo_data_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Read_photo_data(uint8_t camera_addres,uint8_t cache_block,uint32_t start_address,uint32_t data_len)
{uint16_t num=0;if(cache_block>5)cache_block=5;
//  else if(Cache_block<0)Cache_block=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x32;CAMER_TX_BUF[num++]=0x0C;CAMER_TX_BUF[num++]=cache_block;  //照片缓存块CAMER_TX_BUF[num++]=0x0A;
//  CAMER_TX_BUF[num++]=start_address>>24;
//  CAMER_TX_BUF[num++]=start_address>>16;
//  CAMER_TX_BUF[num++]=start_address>>8;
//  CAMER_TX_BUF[num++]=start_address;CAMER_TX_BUF[num++]=0x00;CAMER_TX_BUF[num++]=0x00;CAMER_TX_BUF[num++]=0x00;CAMER_TX_BUF[num++]=0x00;CAMER_TX_BUF[num++]=data_len>>24;CAMER_TX_BUF[num++]=data_len>>16;CAMER_TX_BUF[num++]=data_len>>8;CAMER_TX_BUF[num++]=data_len;CAMER_TX_BUF[num++]=0x00;CAMER_TX_BUF[num++]=0xff;RS485_Send_String(CAMER_TX_BUF,num);send_string_uart2_len(CAMER_TX_BUF,num);
}

1.6、清空图片缓存指令

发送:56 00 36 01 03 返回:76 00 36 00 00

/************************************************
名称:void Clear_photo_cache(uint8_t camera_addres)
功能:清除图片缓存
输入:camera_addres:摄像头485地址。
输出:成功:C_clear_photo_cache; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Clear_photo_cache(uint8_t camera_addres)
{uint16_t num=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x36;CAMER_TX_BUF[num++]=0x01;CAMER_TX_BUF[num++]=0x03; //RS485_Send_String(CAMER_TX_BUF,num);send_string_uart2_len(Uart1_rcvbuff, Uart1_rcvindex);
}

1.7、设置拍照图片压缩率指令

发送:56 00 31 05 01 01 12 04 XX 返回:76 00 31 00 00
XX 一般选 36 (范围:0x36 ----0x90) 数值越大,图片质量越低,占用空间越小
低于 0x36 时摄像头会默认设置成 0x36,高于 0x90 时,默认会设置成 0x90
建议值:0x36(图片质量高) 0x54(图片质量中) 0x72(图片质量低)
注意:上电默认压缩率 0x36,设置的压缩率掉电不保存,修改图片大小时压缩率会恢复默认 0x36

/************************************************
名称:void Set_photo_compressibility(uint8_t camera_addres,uint8_t ratio)
功能:设置图片压缩率
输入:camera_addres:摄像头485地址。ratio:压缩率 范围:0x36 ----0x90    低于 0x36 时摄像头会默认设置成 0x36,高于 0x90 时,默认会设置成 0x90
输出:成功:C_set_photo_compressibility_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Set_photo_compressibility(uint8_t camera_addres,uint8_t ratio)
{uint16_t num=0;if(ratio>0x90)ratio=0x90;else if(ratio<0x36)ratio=0x36;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x31;CAMER_TX_BUF[num++]=0X05;CAMER_TX_BUF[num++]=0X01; //CAMER_TX_BUF[num++]=0X01; CAMER_TX_BUF[num++]=0X12;CAMER_TX_BUF[num++]=0X04;CAMER_TX_BUF[num++]=ratio; //RS485_Send_String(CAMER_TX_BUF,num);
}

1.8、设置拍照图片大小指令

(130 万像素系列图片默认大小为:1280960;200 万像素系列图片默认大小为 19201080)
发送:56 00 31 05 04 01 00 19 11 (320240) 返回:76 00 31 01 00//图片长度约 11.2K
56 00 31 05 04 01 00 19 00 (640
480) //图片长度约 36K
56 00 31 05 04 01 00 19 22 (160120) //图片长度约 4.5K
56 00 31 05 05 01 00 19 33 (1024
768) //图片长度约 80K
56 00 31 05 05 01 00 19 44 (1280720) //图片长度约 92K
56 00 31 05 05 01 00 19 55 (1280
960) //图片长度约 136K
56 00 31 05 05 01 00 19 66 (19201080) //图片长度约 520K
注意:1920
1080 仅支持 200 万像素摄像头及模块,设置图片大小指令后,无需复位,设置后可立即生效,设置数值保存在 flash 中,下次上电同样有效!如需对模块进行初始图片大小设置,也可使用谱泰通信公司专门设计的上位机软件串口摄像头测试工具 V1.08 直接进行设置,一张图片的长度除了与图片尺寸有关,还由实际场景的亮度和色彩所决定。上图图片长度仅为参考。

/************************************************
名称:void Set_photo_resolution(uint8_t camera_addres,uint8_t resolution)
功能:设置图片大小
输入:camera_addres:摄像头485地址。resolution:分辨率
输出:成功:C_read_photo_len_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Set_photo_resolution(uint8_t camera_addres,uint8_t resolution)
{uint16_t num=0;uint8_t photo_size = 0x05;if(resolution ==0x00 || resolution ==0x11 || resolution == 0x22)photo_size=0x04;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x31;CAMER_TX_BUF[num++]=0X05;CAMER_TX_BUF[num++]=photo_size; CAMER_TX_BUF[num++]=0X01;CAMER_TX_BUF[num++]=0X00;CAMER_TX_BUF[num++]=0X19;CAMER_TX_BUF[num++]=resolution; //RS485_Send_String(CAMER_TX_BUF,num);
}

1.12、OSD 字符显示设置

发送:56 00 86 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC DD DD … DD 返回:76 00 86 01 ZZ
ZZ 最后一个字节表示 OSD 行数,共 4 行,值为 0-3,表示第 N 行。
发送字段描述:
56 1byte 固定帧头
00 1byte 序号(0-255),默认 0
86 1byte OSD 设置命令
B0 1byte 命令长度,根据文字内容动态变化,固定 12 字节+文字内容总长度
B1 1byte OSD 显示开关,1:启用;0:禁用
B2 1byte 第 N 行(0-3),最多可显示 4 行
B3 1byte 字号 0:字体 16x16;字号 1:字体 24x24;字号 2:字体 32x32
B4B5 2byte X 坐标,130W(10 进制 0-1279)坐标需偶数;200W(10 进制 0-1918)坐标需偶数
B6B7 2byte Y 坐标,130W(10 进制 0-959)坐标需偶数;200W(10 进制 0-1078)坐标需偶数
B8B9 2byte 字体颜色 RGB555 顺序
BABB 2byte 背景颜色 RGB555 顺序
BC 1byte 文字长度,最长限制 160 个字符,即 80 个汉字
DD…DD Nbyte 文字内容,仅支持 GB2312 编码汉字和 ASCII
举例说明:
发送:56 00 86 16 01 00 01 00 00 00 00 00 7C FF FF 0A 30 31 32 33 34 35 36 37 38 39
返回:76 00 86 01 00
发送字段描述:
0x56, //固定帧头
0x00, //序号
0x86, //OSD 设置命令
0x16, //命令长度,根据文字内容动态变化,固定 12 字节+文字内容总长度
0x01, //OSD 显示开关,1:启用;0:禁用
0x00, //第 N 行,(0-3)
0x01, //字号 0:字体 16x16;1:字体 24x24;2:字体 32x32
0x00,0x00, //x 坐标,130W(10 进制 0-1279)坐标需偶数;200W(10 进制 0-1918),坐标需偶数
0x00,0x00, //y 坐标,130W(10 进制 0-959)坐标需偶数;200W(10 进制 0-1078),坐标需偶数
0x00,0x7C, //字体颜色,蓝色 RGB555 顺序
0xff,0xff, //背景颜色,白色
0x0A, //文字长度,最长限制 160 个字符,即 80 个汉字
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, //文字内容 ASCII“0123456789”
注意:如果是中文,要以 GB2312 编码方式,一个汉字占 2 字节。
返回字段描述:
0x76, //固定返回帧头
0x00, //序号
0x86, //命令
0x01, //固定数据长度 1
0x00, //设置行数 0-3

/************************************************
名称:void Set_photo_resolution(uint8_t camera_addres,uint8_t resolution)
功能:OSD 字符显示设置
输入:camera_addres:摄像头485地址。str_len:写入数据长度str_buf:写入数据
输出:成功:C_read_photo_len_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void Set_OSD(uint8_t camera_addres,uint8_t str_len,uint8_t *str_buf)
{uint16_t num=0;uint8_t i;if(str_len>160)str_len=160;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x86;CAMER_TX_BUF[num++]=0X00;//后续数据长度CAMER_TX_BUF[num++]=0X01; //OSD显示开关 0:禁用   1:启用CAMER_TX_BUF[num++]=0X00; //第几行显示(0-3),最多可显示 4 行CAMER_TX_BUF[num++]=0X02;//字号 0:字体 16x16;字号 1:字体 24x24;字号 2:字体 32x32CAMER_TX_BUF[num++]=0X00;//2byte X 坐标,130W(10 进制 0-1279)坐标需偶数;200W(10 进制 0-1918)坐标需偶数CAMER_TX_BUF[num++]=0X00;//CAMER_TX_BUF[num++]=0X00;//2byte Y 坐标,130W(10 进制 0-959)坐标需偶数;200W(10 进制 0-1078)坐标需偶数CAMER_TX_BUF[num++]=0X00;//CAMER_TX_BUF[num++]=0X00;//2byte 字体颜色 RGB555 顺序CAMER_TX_BUF[num++]=0X00;//CAMER_TX_BUF[num++]=0X00;//2byte 背景颜色 RGB555 顺序CAMER_TX_BUF[num++]=0X00;//CAMER_TX_BUF[num++]=str_len;  // 1byte 文字长度,最长限制 160 个字符,即 80 个汉字for(i=0;i<str_len;i++){CAMER_TX_BUF[num++]=str_buf[i];         //Nbyte 文字内容,仅支持 GB2312 编码汉字和 ASCII}CAMER_TX_BUF[3]=num-4;//数据长度RS485_Send_String(CAMER_TX_BUF,num);
}

1.16、多张连拍指令

发送:56 00 88 03 B0 B1 B2 返回:76 00 88 01 ZZ
B0 — 1byte 拍照数量,范围 0-5
B1B2 — 2byte 连续拍照间隔时间,单位毫秒,范围 0-65535
ZZ — 1byte 表示设置参数是否有效,0x00有效,0x01无效,例如拍照数量超过有效范 0-5时为
无效返回 0x01
举例说明:
发送:56 00 88 03 03 00 64 返回:76 00 88 01 00
发送字段描述:
0x56 //固定发送帧头
0x00 //序号
0x88 //连拍命令
0x03 //数据长度固定 3 字节
0x03 //连拍图片数量 3 张,有效范围 0-5
0x00 0x64 //连续拍照间隔时间 100 毫秒,范围 0-10000,10 秒
返回字段描述:
0x76 //固定返回帧头
0x00 //序号
0x88 //命令
0x01 //固定数据长度 1
0x00 //表示参数设置成功
注意:
(1)多张连拍指令与移动侦测连拍指令功能相似,是单张拍照指令的扩展,使用更自由方便;
(2)多张连拍指令与移动侦测连拍指令共享 1-5 号图片缓存,不能同时使用,不然会覆盖已缓存的图片,且断电不保存,使用读图片长度指令和读图片数据指令可将 1-5 号图片缓存读取出来;
(3)多张连拍指令的返回时间与连拍间隔时间有关,连拍间隔时间不宜设置过长,因为这段时间串口处于阻塞状态,无法响应其他指令,只有等待应答返回后才可执行其他新指令;
(4)最多支持缓存 6 张图片,先执行多张连拍指令,再执行单张拍照指令:56 00 36 01 00,然后分别读取 0-5 号缓存即可,最后再执行清空缓存指令。

/************************************************
名称:void more_take_photos(uint8_t camera_addres,uint8_t photos_num,uint16_t interval)
功能:多张连拍
输入:camera_addres:摄像头485地址。photos_num:;连拍数量interval:拍照间隔
输出:成功:C_read_photo_len_success; 失败:C_error
日期:2021-09-13
作者:liuguizhou
************************************************/
void More_take_photos(uint8_t camera_addres,uint8_t photos_num,uint16_t interval)
{uint16_t num=0;if(photos_num>5)photos_num=5;
//  else if(photos_num<0)photos_num=0;if(interval>10000)interval=10000;
//  else if(interval<0)interval=0;CAMER_TX_BUF[num++]=0x56;CAMER_TX_BUF[num++]=Camera_addres; //485地址CAMER_TX_BUF[num++]=0x88;CAMER_TX_BUF[num++]=0X03;CAMER_TX_BUF[num++]=photos_num; //CAMER_TX_BUF[num++]=interval>>8; CAMER_TX_BUF[num++]=interval;RS485_Send_String(CAMER_TX_BUF,num);
}

总结

以上就是对摄像机的各个功能函数的编写,剩下就是将他们组合完成我们后续功能。后期可能会将拍摄的照片通过FTP上传到平台。哪里的话,还需要对图片数据进行处理,可能一包数据无法完全上传一张图片,所以可能一张图片还需要分成几包数据上传。这一块的处理还在测试完善,就不上贴了。
以下资料已经上传的我的资源中心,有需要可以免费下载!

模块学习3:PTC052A-200串口摄像头拍照等功能编写相关推荐

  1. 如何在SAP UI5应用里添加使用摄像头拍照的功能

    昨天Jerry的文章 纯JavaScript实现的调用设备摄像头并拍照的功能 介绍了纯JavaScript借助WebRTC API来开发支持调用设备的摄像头拍照的web应用.而我同事遇到的实际情况是, ...

  2. 合宙Air105|摄像头|capture|SPI|Serial 串口|TFTLCD|Micro SD卡|GC032A|USB转TTL|官方demo|学习(2-1):摄像头camera-capture

    目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 软件使用 接线示意图 功能1:捕捉图片并存入SPI接口外置SD卡 lcd初始化 摄像头初始化 指定capture按钮 SD卡初始化 图片存储 功 ...

  3. python摄像头拍照比对_如何使用Python控制摄像头拍照并发邮件?

    这个实现起来非常容易,主要分为2步,首先控制摄像头拍照,然后将拍到的照片作为邮件附件发送就行,下面我简单介绍一下实现过程,实验环境win7+python3.6+pycharm5.0,主要内容如下: 控 ...

  4. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

  5. js调用本地摄像头拍照截图,提交后台

    今天有个需求,需要在前端界面调用本地摄像头,然后拍照结束后可以截取预览,最后将结果提交到后台.查了网上很多的插件,发现适合的非常少,于是决定自己修改一个. 这里我修改了一个jquery插件,把摄像头拍 ...

  6. 纯JavaScript实现的调用设备摄像头并拍照的功能

    这篇文章本来不在Jerry计划内的,咱们SAP中国研究院今天已经正式上班了,Jerry也回到工作岗位开始搬砖了. 今天一位同事问我关于本文标题描述的功能如何实现,Jerry在网上随便搜了一下,类似的例 ...

  7. 模块学习2:基于PELCO-D协议对云台进行定点控制

    开发手上的一个云台,使用的就是PELCO-D协议.这个协议开始网上找了一圈,发现下载完整版的协议大多是还都要收费,后面在官方下载了一份原版完整版协议的协议内容,配合网上搜索到的资料完成对手上这块云台的 ...

  8. 树莓派开发笔记(九):基于CSI口的摄像头拍照程序(同样适用USB摄像头)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  9. 树莓派android摄像头驱动开发,树莓派开发笔记(九):基于CSI口的摄像头拍照程序(同样适用USB摄像头)...

    前话 前面开发完GPIO口的功能,还剩下2个接口,一个是摄像头,一个是显示屏.本篇我们开发一个基于CSI接口的摄像头拍照程序. Demo:摄像头CSI的拍照程序 树莓派摄像头 笔者买的不是USB网络摄 ...

  10. php调用本地摄像头,javascript 调用本地摄像头拍照 ajax提交上传

    最近在做一个小应用,里面有一个功能就是需要打开摄像头拍照并且上传,今天就记录一下这个小功能. HTML篇: 这里我是用的layui的样式,需要先引用layui的样式,才会有上图的效果. * 照片: 点 ...

最新文章

  1. Windows下Git Bash的基本使用
  2. MongoDB图形化管理工具
  3. git reset git stash
  4. php批量采集电视剧,如何通过PHP多线程批量采集下载远程网站图片代码实例
  5. 怎样做一个卓越的程序员
  6. RHEL5下编译ACE 5.5
  7. 偏差、方差和噪声的权衡关系
  8. 虚拟服务器连接监控,方案:浅谈虚拟化平台的监控管理
  9. 2019年小米软件开发《异数》笔试题
  10. mysql实验四数据库查询和视图_数据库实验四答案
  11. 带无线驱动的linux版本,CentOS 5.6 上安装支持802.11b/g无线网卡驱动具体过程
  12. java 上传文件 md5_上传到文件选择器时的md5校验和
  13. 证明厄米矩阵不同特征值对应特征向量正交
  14. unity摄像头实物识别_MAD Gaze推出人脸识别AR智能眼镜+AI安防方案赋能智慧城市...
  15. 将 ERP 与 PPM 系统集成的 5 个理由
  16. EFS加密的注意细节
  17. 照度计的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. lz78算法c语言,LZW数据压缩算法研究
  19. 华为matebook电脑屏幕亮度动态变化的解决办法
  20. 【数学建模】11 数学建模常用算法和计算机辅助软件

热门文章

  1. 组态王报警历史存MySQL_组态王6.55报警存储与历史数据查询设置全过程
  2. Android:日志系统
  3. EOJ 2527 Fj haozi【dfs】
  4. 订餐系统(饿了某)java程序实现
  5. 基于JavaWeb的订餐管理系统的设计与实现
  6. 使用Zxing及豆瓣API
  7. JavaScript高级程序设计[美]Nicholas C.Zakas著 读书笔记(二)
  8. 滴滴章文嵩:一个人的20年开源热情和国内互联网开源运动
  9. Vector CANoe Option Car2X利用Car2X场景编辑器创建车联网交通场景与应用示例剖析
  10. Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示