⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc1394_format7.c

📁 DCAM1394相机Linux下的驱动源码
💻 C
📖 第 1 页 / 共 3 页
字号:
 				unsigned int mode, unsigned int *width, 				unsigned int *height){    int retval;    quadlet_t value;    if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval=GetCameraFormat7Register(handle, node, mode,				    REG_CAMERA_FORMAT7_IMAGE_SIZE, &value);    *width= (unsigned int) ( value & 0xFFFF0000UL ) >> 16;    *height = (unsigned int) ( value & 0x0000FFFFUL );           return retval;} intdc1394_query_format7_color_coding_id(raw1394handle_t handle, nodeid_t node, 				     unsigned int mode, unsigned int *color_id){    int retval;    quadlet_t value;       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_COLOR_CODING_ID,				     &value);    value=value>>24;    if (retval==DC1394_SUCCESS) *color_id= (unsigned int)value+COLOR_FORMAT7_MIN;    return retval;} intdc1394_query_format7_color_coding(raw1394handle_t handle, nodeid_t node, 				  unsigned int mode, quadlet_t *value){    int retval;    if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_COLOR_CODING_INQ,				     value);    return retval;} intdc1394_query_format7_pixel_number(raw1394handle_t handle, nodeid_t node, 				  unsigned int mode, unsigned int *pixnum){    int retval;    quadlet_t value;       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_PIXEL_NUMBER_INQ,				     &value);    *pixnum= (unsigned int) value;    return retval;} intdc1394_query_format7_total_bytes(raw1394handle_t handle, nodeid_t node, 				 unsigned int mode, unsigned long long int *total_bytes){    int retval;    unsigned long long int value_hi, value_lo;    quadlet_t value;       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_TOTAL_BYTES_HI_INQ,				     &value);    value_hi=value;    if (retval != DC1394_SUCCESS)      return DC1394_FAILURE;        retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_TOTAL_BYTES_LO_INQ,				     &value);    value_lo=value;        *total_bytes= (value_lo | ( value_hi << 32) );     return retval;} intdc1394_query_format7_packet_para(raw1394handle_t handle, nodeid_t node, 				 unsigned int mode, unsigned int *min_bytes,				 unsigned int *max_bytes){    int retval;    quadlet_t value;    if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_PACKET_PARA_INQ,				     &value);    *min_bytes= (unsigned int) ( value & 0xFFFF0000UL ) >> 16;    *max_bytes= (unsigned int) ( value & 0x0000FFFFUL );           return retval;} intdc1394_query_format7_byte_per_packet(raw1394handle_t handle, nodeid_t node, 				     unsigned int mode,                                     unsigned int *packet_bytes){    int retval;    quadlet_t value;       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_BYTE_PER_PACKET,				     &value);    *packet_bytes= (unsigned int) ( value & 0xFFFF0000UL ) >> 16;    if (packet_bytes==0) {      printf("(%s): BYTES_PER_PACKET is zero. This should not happen.\n", __FILE__);      return DC1394_FAILURE;    }    return retval;} intdc1394_set_format7_image_position(raw1394handle_t handle, nodeid_t node, 				  unsigned int mode, unsigned int left, 				  unsigned int top){    if (SetCameraFormat7Register(handle, node, mode, REG_CAMERA_FORMAT7_IMAGE_POSITION,                                         (quadlet_t)((left << 16) | top)) != DC1394_SUCCESS)      {	printf("(%s) Format7 image position setting failure \n", __FILE__);	return DC1394_FAILURE;      }    else      // IIDC v1.30 handshaking:      return _dc1394_v130_handshake(handle, node, mode);} intdc1394_set_format7_image_size(raw1394handle_t handle, nodeid_t node,                              unsigned int mode, unsigned int width,                              unsigned int height){    if (SetCameraFormat7Register(handle, node, mode, REG_CAMERA_FORMAT7_IMAGE_SIZE,				 (quadlet_t)((width << 16) | height)) != DC1394_SUCCESS)      {	printf("(%s) Format7 image size setting failure \n", __FILE__);	return DC1394_FAILURE;      }    else      // IIDC v1.30 handshaking:      return _dc1394_v130_handshake(handle, node, mode);} intdc1394_set_format7_color_coding_id(raw1394handle_t handle, nodeid_t node, 				   unsigned int mode, unsigned int color_id){    if ( (color_id < COLOR_FORMAT7_MIN) || (color_id > COLOR_FORMAT7_MAX) )    {        return DC1394_FAILURE;    }    color_id-= COLOR_FORMAT7_MIN;    color_id=color_id<<24;    if (SetCameraFormat7Register(handle, node, mode,REG_CAMERA_FORMAT7_COLOR_CODING_ID,				 (quadlet_t)color_id) != DC1394_SUCCESS)      {	printf("(%s) Format7 color coding ID setting failure \n", __FILE__);	return DC1394_FAILURE;      }    else      // IIDC v1.30 handshaking:      return _dc1394_v130_handshake(handle, node, mode);} intdc1394_set_format7_byte_per_packet(raw1394handle_t handle, nodeid_t node, 				   unsigned int mode,                                   unsigned int packet_bytes){    if (SetCameraFormat7Register(handle, node, mode, REG_CAMERA_FORMAT7_BYTE_PER_PACKET,				 (quadlet_t)(packet_bytes) << 16 ) != DC1394_SUCCESS)      {	printf("(%s) Format7 bytes-per-packet setting failure \n", __FILE__);	return DC1394_FAILURE;      }    else      // IIDC v1.30 error checking:      return _dc1394_v130_errflag2(handle, node, mode);}intdc1394_query_format7_value_setting(raw1394handle_t handle, nodeid_t node,				   unsigned int mode,				   unsigned int *present,				   unsigned int *setting1,				   unsigned int *err_flag1,				   unsigned int *err_flag2){    int retval;    quadlet_t value;       dc1394_camerahandle *camera;    camera = (dc1394_camerahandle*) raw1394_get_userdata( handle );       if (camera->sw_version==0x102UL) {      if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )	{	  return DC1394_FAILURE;	}      retval= GetCameraFormat7Register(handle, node, mode,				       REG_CAMERA_FORMAT7_VALUE_SETTING,				       &value);      *present= (unsigned int) ( value & 0x80000000UL ) >> 31;      *setting1= (unsigned int) ( value & 0x40000000UL ) >> 30;      *err_flag1= (unsigned int) ( value & 0x00800000UL ) >> 23;      *err_flag2= (unsigned int) ( value & 0x00400000UL ) >> 22;    }    else {      *present=0;      return DC1394_SUCCESS;    }    return retval;}intdc1394_set_format7_value_setting(raw1394handle_t handle, nodeid_t node,				 unsigned int mode){    return SetCameraFormat7Register(handle, node, mode,                                     REG_CAMERA_FORMAT7_VALUE_SETTING,                                     (quadlet_t)0x40000000UL);} intdc1394_query_format7_recommended_byte_per_packet(raw1394handle_t handle, nodeid_t node,						  unsigned int mode,						  unsigned int *bpp){    int retval;    quadlet_t value;       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )    {        return DC1394_FAILURE;    }    retval= GetCameraFormat7Register(handle, node, mode,				     REG_CAMERA_FORMAT7_BYTE_PER_PACKET,				     &value);    *bpp= (unsigned int) ( value & 0x0000FFFFUL );    return retval;}intdc1394_query_format7_packet_per_frame(raw1394handle_t handle, nodeid_t node,				      unsigned int mode,				      unsigned int *ppf){    int retval;    quadlet_t value;    unsigned int packet_bytes;    unsigned long long int total_bytes;    dc1394_camerahandle *camera;    camera = (dc1394_camerahandle*) raw1394_get_userdata( handle );       if (camera->sw_version==0x102UL) {      if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )	{	  return DC1394_FAILURE;	}      retval= GetCameraFormat7Register(handle, node, mode,				       REG_CAMERA_FORMAT7_PACKET_PER_FRAME_INQ,				       &value);      *ppf= (unsigned int) (value);      return retval;    }    else {      // return an estimate, NOT TAKING ANY PADDING INTO ACCOUNT      if (dc1394_query_format7_byte_per_packet(handle, node, mode, &packet_bytes)!=DC1394_SUCCESS) {	return DC1394_FAILURE;      }      if (packet_bytes==0) {	return DC1394_FAILURE;      }      if (dc1394_query_format7_total_bytes(handle, node, mode, &total_bytes)!=DC1394_SUCCESS) {	return DC1394_FAILURE;      }      if (total_bytes%packet_bytes!=0)	*ppf=total_bytes/packet_bytes+1;      else	*ppf=total_bytes/packet_bytes;      return DC1394_SUCCESS;    }}intdc1394_query_format7_unit_position(raw1394handle_t handle, nodeid_t node,				   unsigned int mode,				   unsigned int *horizontal_pos,				   unsigned int *vertical_pos){    int retval;    quadlet_t value;       dc1394_camerahandle *camera;    camera = (dc1394_camerahandle*) raw1394_get_userdata( handle );       if ( (mode > MODE_FORMAT7_MAX) || (mode < MODE_FORMAT7_MIN) )      {	return DC1394_FAILURE;      }    if (camera->sw_version==0x102UL) {      retval= GetCameraFormat7Register(handle, node, mode,				       REG_CAMERA_FORMAT7_UNIT_POSITION_INQ,				       &value);    }    else {      // if version is not 1.30, use the UNIT_SIZE_INQ register      retval= GetCameraFormat7Register(handle, node, mode,				       REG_CAMERA_FORMAT7_UNIT_SIZE_INQ,				       &value);    }        *horizontal_pos = (unsigned int) (( value & 0xFFFF0000UL )>>16);    *vertical_pos   = (unsigned int) ( value & 0x0000FFFFUL );    return retval;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -