一段程序,两个线程:一个完成usb摄像头图像的采集,另一个借助网络实现远程传输。图像采集线程通过调用获取图像的程序完成采集任务;网络传输就是socket编程了。:-)。
/*******************************************************
* Filename: soket_image.c
* Description:Send image by gprs
* Author: ly44770
* History: 1.0
* Date: 07/06/27
*******************************************************/
#include
#include
#include
#include
#include
//#include
#include
#include
#include
#include
#include
#include
#include
//#include
#include
#include
#include
#include
#define TRUE 1
#define FALSE 0
#define SERVPORT 9009
#define SERVER_IP "192.168.1.202"
//#define SERVER_IP "192.168.0.21"
typedef char BOOL;
BOOL bDataOK;
#define SIZE_PACKET 512
#define STR_HEAD "MY_IMG"
#define GH_DBNAME "MY_IMG_ARM"
#define Group_Devide_Flag "|"
#define STR_TAIL "AT91RM"
#define NAME_LEN strlen(GH_DBNAME)
typedef struct
{
unsigned short ID; // Command ID
char Parameter1; // Parameter1
char Parameter2; // Parameter2
char Parameter3; // Parameter3
char Parameter4; // Parameter4
} _comedia_CMD;
//_comedia_CMD comedia_CMD;
_comedia_CMD comedia_CMD2;
typedef struct
{
unsigned short ID;
unsigned short DataSize;
char data[506];
unsigned short VerifyCode;
} _PKG;
_PKG PKG;
_PKG PKG2;
#pragma pack(1)
typedef struct
{
char BufHead[6];
char BufDevide1[1];
char BufDbName[NAME_LEN];
char BufDevide2[1];
_PKG m_Pkg;
char BufDevide3[1];
char BufTail[4];
} GH_PKG ;
#pragma pack()
GH_PKG SendPkg;
//unsigned long ulImageBuffer;
//unsigned long ulIndex;
void InitPackage()
{
memset(SendPkg.BufHead,'\0',6);
memcpy(SendPkg.BufHead,STR_HEAD,strlen(STR_HEAD));
memset(SendPkg.BufDevide1,'\0',1);
memcpy(SendPkg.BufDevide1,Group_Devide_Flag,strlen(Group_Devide_Flag));
memset(SendPkg.BufDbName,'\0',11);
memcpy(SendPkg.BufDbName,GH_DBNAME,strlen(GH_DBNAME));
linux 网络编程 基于arm的网络图像传输(1)
最新推荐文章于 2024-06-29 17:38:35 发布
本文主要探讨了在基于ARM的Linux系统上进行网络图像传输的编程技术。通过介绍网络编程的基本概念和图像处理原理,展示了如何实现从摄像头获取图像并经由网络发送到远程接收端的过程。涉及的知识点包括套接字编程、图像压缩和ARM平台优化等。
摘要由CSDN通过智能技术生成