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

📄 functions.h

📁 该程序实现FIRE足球机器人竞赛中的3:3比赛源码
💻 H
📖 第 1 页 / 共 4 页
字号:
//-----------------------------------------------------------------------------
//  Company:  Basler Vision Technologies
//  Section:  Vision Components
//  Project:  1394 Driver
//  Subproject:  BcamDrv
//  <b> Visual SourceSafe Information:</b>
//  $Archive: /Software/src/bcamdrv/functions.h $
//  $Author: Moebius, V.$
//  $Revision: 20$
//  $Date: 24.06.2004 16:15:43$
//-----------------------------------------------------------------------------
/**
*  \file     functions.h
*  \brief   Interface to the kernel-mode driver.
*
*  This file defines function codes for the Basler
*  IEEE-1394 camera driver (BCAM). These codes are
*  used to invoke the driver's functions.
*/
//-----------------------------------------------------------------------------

#if !defined(FUNCTIONS_H)
#define FUNCTIONS_H

#if defined(BCAM_DRIVER_BUILD)
#include <wdm.h>
#else
#include <basetyps.h>
#include <winnt.h>
#include <winioctl.h>
#endif

#include "classcode.h"

/**
* Typesafe version of standard macro
*/
#define _CTL_CODE( DeviceType, Function, Method, Access ) (\
  (ULONG)(((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) ) \
  )

/*
* Explicitly specify structure member alignment, to become independent
* of any alignment that may be in effect when this file is included.
*/
#pragma pack(push, 4)

/* Function ordinal numbers, used to construct driver control codes */
enum _BCAM_FUNCTION_ORDINAL_NUMBERS
{
  OrdInitCamera = 0x800,
  OrdGetVideoFormatMask,
  OrdGetVideoModeMask,
  OrdGetFrameRateMask,
  OrdSetVideoFormatModeFrameRate,
  OrdGetCameraID,
  OrdGetString,
  OrdFmt7GetModeDescriptor,
  OrdFmt7SetAOI,
  OrdFmt7GetAOI,
  OrdFmt7GetColorMode,
  OrdFmt7SetColorMode,
  OrdGetBandwidthInfo,
  OrdGrabSingleFrame,
  OrdGrabMultipleFrames,
  OrdCameraControl,
  OrdReceiveData,
  OrdGetVersion,
  OrdSetTestImageCSR,
  OrdQueryDCSFeaturePresence,
  OrdQueryDCSFeatureInq,
  OrdSetDCSFeatureCSR,
  OrdGetDCSFeatureCSR,
  OrdGetDCSFeatureAbsValue,
  OrdGetDCSFeatureAbsRange,
  OrdAllocateResources,
  OrdFreeResources,
  OrdSetCameraBytesPerPacket,
  OrdGetVideoFormatModeFrameRate,
  OrdValidateCameraParameters,
  OrdGetDriverVersionString,
  OrdGetTestImageCSR,
  OrdSetShadingCtrl,
  OrdGetShadingCtrl,
  OrdGetShadingInquiry,
  OrdUploadShadingData,
  OrdFlush,
  OrdGetDcamVersion,
  OrdGetBasicFuncInq,
  OrdSetUserThreadPriority,
  OrdSetQueueServerPriority,
  OrdGetQueueServerPriority,
  OrdGetAuthChallenge,
  OrdAuthorize,
  OrdGetNumMemoryChannels,
  OrdGetCurrentMemoryChannel,
  OrdLoadMemoryChannel,
  OrdSaveMemoryChannel
};



/* Basic type definitions */

/// Camera unique identifier
typedef ULONGLONG CameraUniqueID;

/* Authorization challenge */
typedef UCHAR MD5Sum[16];

/** Rectangle --- used for AOI */
typedef struct _BCAM_RECT
{
  ULONG X0, ///< Left, x-coordinate of top-left corner
    Y0,     ///< Top, y-coordinate of top-left corner
    Xsize,  ///< Width in pixels
    Ysize;  ///< Height in pixels
} BcamRect;

/** Flags denoting rectangle components */
#define BCAM_RECTCOMP_POSITION_X  0x1   ///< X position
#define BCAM_RECTCOMP_POSITION_Y  0x2   ///< Y position
#define BCAM_RECTCOMP_SIZE_X      0x4   ///< X size
#define BCAM_RECTCOMP_SIZE_Y      0x8   ///< Y size
#define BCAM_RECTCOMP_POSITION    (BCAM_RECTCOMP_POSITION_X | BCAM_RECTCOMP_POSITION_Y) ///< both x and y psitions
#define BCAM_RECTCOMP_SIZE        (BCAM_RECTCOMP_SIZE_X | BCAM_RECTCOMP_SIZE_Y)         ///< both x and y sizes
#define BCAM_RECTCOMP_ALL         (BCAM_RECTCOMP_POSITION | BCAM_RECTCOMP_SIZE)         ///< entire rectangle



/** Minimum result buffer size for IOCTL_BCAM_GET_DRIVER_VERSION_STRING */
#define BCAM_MAXIMUM_VERSION_STRING_SIZE 20



/** These are the color modes, as defined by the Digital Camera Specification. */
typedef enum _DCS_COLOR_CODES
{
  DCSColor_Mono8 = 0,     ///< Y component has 8bit data
  DCSColor_YUV8_4_1_1,    ///< 4:1:1 YUV 8 format, each component has 8bit data
  DCSColor_YUV8_4_2_2,    ///< 4:2:2 YUV 8 format, each component has 8bit data
  DCSColor_YUV8_4_4_4,    ///< 4:4:4 YUV 8 format, each component has 8bit data
  DCSColor_RGB8,          ///< RGB 8 format, each component has 8bit data
  DCSColor_Mono16,        ///< Y component has 16bit unsigned data
  DCSColor_RGB16,         ///< RGB 16 format, each component has 16bit unsigned data
  DCSColor_SMono16,       ///< Y component has 16bit signed data
  DCSColor_SRGB16,        ///< RGB 16 format, each component has 16bit signed data
  DCSColor_Raw8,          ///< Raw data output of color filter sensor, 8bit data
  DCSColor_Raw16,          ///< Raw data output of color filter sensor, 16bit data
  DCSColor_VendorSpecific0 = 128,  ///< First of 128 vendor specific color codes
  DCSColor_VendorSpecific1,     ///< 2nd vendor specific color code
  DCSColor_VendorSpecific2,     ///< 3rd vendor specific color code
  DCSColor_VendorSpecific3,     ///< 4th vendor specific color code
  DCSColor_VendorSpecific4,     ///< 5th vendor specific color code
  DCSColor_VendorSpecific5,     ///< 6th vendor specific color code
  DCSColor_VendorSpecific6,     ///< 7th vendor specific color code
  DCSColor_VendorSpecific7,     ///< 8th vendor specific color code
  DCSColor_VendorSpecific8,     ///< 9th vendor specific color code
  DCSColor_VendorSpecific9,     ///< 10th vendor specific color code
  DCSColor_VendorSpecific10,    ///< 11th vendor specific color code
  DCSColor_VendorSpecific11,    ///< 12th vendor specific color code
  DCSColor_VendorSpecific12,    ///< 13th vendor specific color code
  DCSColor_VendorSpecific13,    ///< 14th vendor specific color code
  DCSColor_VendorSpecific14,    ///< 15th vendor specific color code
  DCSColor_VendorSpecific15,    ///< 16th vendor specific color code
  DCSColor_VendorSpecific16,    ///< 17th vendor specific color code
  DCSColor_VendorSpecific17,    ///< 18th vendor specific color code
  DCSColor_VendorSpecific18,    ///< 19th vendor specific color code
  DCSColor_VendorSpecific19,    ///< 20th vendor specific color code
  DCSColor_VendorSpecific20,    ///< 21th vendor specific color code
  DCSColor_VendorSpecific21,    ///< 22th vendor specific color code
  DCSColor_VendorSpecific22,    ///< 23th vendor specific color code
  DCSColor_VendorSpecific23,    ///< 24th vendor specific color code
  DCSColor_VendorSpecific24,    ///< 25th vendor specific color code
  DCSColor_VendorSpecific25,    ///< 26th vendor specific color code
  DCSColor_VendorSpecific26,    ///< 27th vendor specific color code
  DCSColor_VendorSpecific27,    ///< 28th vendor specific color code
  DCSColor_VendorSpecific28,    ///< 29th vendor specific color code
  DCSColor_VendorSpecific29,    ///< 30th vendor specific color code
  DCSColor_VendorSpecific30,    ///< 31th vendor specific color code
  DCSColor_VendorSpecific31,    ///< 32th vendor specific color code
  DCSColor_VendorSpecific32,    ///< 33th vendor specific color code
  DCSColor_VendorSpecific33,    ///< 34th vendor specific color code
  DCSColor_VendorSpecific34,    ///< 35th vendor specific color code
  DCSColor_VendorSpecific35,    ///< 36th vendor specific color code
  DCSColor_VendorSpecific36,    ///< 37th vendor specific color code
  DCSColor_VendorSpecific37,    ///< 38th vendor specific color code
  DCSColor_VendorSpecific38,    ///< 39th vendor specific color code
  DCSColor_VendorSpecific39,    ///< 40th vendor specific color code
  DCSColor_VendorSpecific40,    ///< 41th vendor specific color code
  DCSColor_VendorSpecific41,    ///< 42th vendor specific color code
  DCSColor_VendorSpecific42,    ///< 43th vendor specific color code
  DCSColor_VendorSpecific43,    ///< 44th vendor specific color code
  DCSColor_VendorSpecific44,    ///< 45th vendor specific color code
  DCSColor_VendorSpecific45,    ///< 46th vendor specific color code
  DCSColor_VendorSpecific46,    ///< 47th vendor specific color code
  DCSColor_VendorSpecific47,    ///< 48th vendor specific color code
  DCSColor_VendorSpecific48,    ///< 49th vendor specific color code
  DCSColor_VendorSpecific49,    ///< 50th vendor specific color code
  DCSColor_VendorSpecific50,    ///< 51th vendor specific color code
  DCSColor_VendorSpecific51,    ///< 52th vendor specific color code
  DCSColor_VendorSpecific52,    ///< 53th vendor specific color code
  DCSColor_VendorSpecific53,    ///< 54th vendor specific color code
  DCSColor_VendorSpecific54,    ///< 55th vendor specific color code
  DCSColor_VendorSpecific55,    ///< 56th vendor specific color code
  DCSColor_VendorSpecific56,    ///< 57th vendor specific color code
  DCSColor_VendorSpecific57,    ///< 58th vendor specific color code
  DCSColor_VendorSpecific58,    ///< 59th vendor specific color code
  DCSColor_VendorSpecific59,    ///< 60th vendor specific color code
  DCSColor_VendorSpecific60,    ///< 61th vendor specific color code
  DCSColor_VendorSpecific61,    ///< 62th vendor specific color code
  DCSColor_VendorSpecific62,    ///< 63th vendor specific color code
  DCSColor_VendorSpecific63,    ///< 64th vendor specific color code
  DCSColor_VendorSpecific64,    ///< 65th vendor specific color code
  DCSColor_VendorSpecific65,    ///< 66th vendor specific color code
  DCSColor_VendorSpecific66,    ///< 67th vendor specific color code
  DCSColor_VendorSpecific67,    ///< 68th vendor specific color code
  DCSColor_VendorSpecific68,    ///< 69th vendor specific color code
  DCSColor_VendorSpecific69,    ///< 70th vendor specific color code
  DCSColor_VendorSpecific70,    ///< 71th vendor specific color code
  DCSColor_VendorSpecific71,    ///< 72th vendor specific color code
  DCSColor_VendorSpecific72,    ///< 73th vendor specific color code
  DCSColor_VendorSpecific73,    ///< 74th vendor specific color code
  DCSColor_VendorSpecific74,    ///< 75th vendor specific color code
  DCSColor_VendorSpecific75,    ///< 76th vendor specific color code
  DCSColor_VendorSpecific76,    ///< 77th vendor specific color code
  DCSColor_VendorSpecific77,    ///< 78th vendor specific color code
  DCSColor_VendorSpecific78,    ///< 79th vendor specific color code
  DCSColor_VendorSpecific79,    ///< 80th vendor specific color code
  DCSColor_VendorSpecific80,    ///< 81th vendor specific color code
  DCSColor_VendorSpecific81,    ///< 82th vendor specific color code
  DCSColor_VendorSpecific82,    ///< 83th vendor specific color code
  DCSColor_VendorSpecific83,    ///< 84th vendor specific color code
  DCSColor_VendorSpecific84,    ///< 85th vendor specific color code
  DCSColor_VendorSpecific85,    ///< 86th vendor specific color code
  DCSColor_VendorSpecific86,    ///< 87th vendor specific color code
  DCSColor_VendorSpecific87,    ///< 88th vendor specific color code
  DCSColor_VendorSpecific88,    ///< 89th vendor specific color code
  DCSColor_VendorSpecific89,    ///< 90th vendor specific color code
  DCSColor_VendorSpecific90,    ///< 91th vendor specific color code
  DCSColor_VendorSpecific91,    ///< 92th vendor specific color code
  DCSColor_VendorSpecific92,    ///< 93th vendor specific color code
  DCSColor_VendorSpecific93,    ///< 94th vendor specific color code
  DCSColor_VendorSpecific94,    ///< 95th vendor specific color code
  DCSColor_VendorSpecific95,    ///< 96th vendor specific color code
  DCSColor_VendorSpecific96,    ///< 97th vendor specific color code
  DCSColor_VendorSpecific97,    ///< 98th vendor specific color code
  DCSColor_VendorSpecific98,    ///< 99th vendor specific color code
  DCSColor_VendorSpecific99,    ///< 100th vendor specific color code
  DCSColor_VendorSpecific100,    ///< 101th vendor specific color code
  DCSColor_VendorSpecific101,    ///< 102th vendor specific color code
  DCSColor_VendorSpecific102,    ///< 103th vendor specific color code
  DCSColor_VendorSpecific103,    ///< 104th vendor specific color code
  DCSColor_VendorSpecific104,    ///< 105th vendor specific color code
  DCSColor_VendorSpecific105,    ///< 106th vendor specific color code
  DCSColor_VendorSpecific106,    ///< 107th vendor specific color code
  DCSColor_VendorSpecific107,    ///< 108th vendor specific color code
  DCSColor_VendorSpecific108,    ///< 109th vendor specific color code
  DCSColor_VendorSpecific109,    ///< 110th vendor specific color code
  DCSColor_VendorSpecific110,    ///< 111th vendor specific color code
  DCSColor_VendorSpecific111,    ///< 112th vendor specific color code
  DCSColor_VendorSpecific112,    ///< 113th vendor specific color code
  DCSColor_VendorSpecific113,    ///< 114th vendor specific color code
  DCSColor_VendorSpecific114,    ///< 115th vendor specific color code
  DCSColor_VendorSpecific115,    ///< 116th vendor specific color code
  DCSColor_VendorSpecific116,    ///< 117th vendor specific color code
  DCSColor_VendorSpecific117,    ///< 118th vendor specific color code
  DCSColor_VendorSpecific118,    ///< 119th vendor specific color code
  DCSColor_VendorSpecific119,    ///< 120th vendor specific color code
  DCSColor_VendorSpecific120,    ///< 121th vendor specific color code
  DCSColor_VendorSpecific121,    ///< 122th vendor specific color code
  DCSColor_VendorSpecific122,    ///< 123th vendor specific color code
  DCSColor_VendorSpecific123,    ///< 124th vendor specific color code
  DCSColor_VendorSpecific124,    ///< 125th vendor specific color code
  DCSColor_VendorSpecific125,    ///< 126th vendor specific color code
  DCSColor_VendorSpecific126,    ///< 127th vendor specific color code
  DCSColor_VendorSpecific127 = 255,///< Last of 128 vendor specific color codes
  NumDCSColorCodes
} DCSColorCode;



/** Isochronous speed encoding */
typedef enum _BCAM_ISO_SPEED
{
  IsoSpeed_Unknown,
  IsoSpeed_100,   ///< 100Mbit/s
  IsoSpeed_200,   ///< 200Mbit/s
  IsoSpeed_400,   ///< 400Mbit/s
  IsoSpeed_800,   ///< 800Mbit/s
  IsoSpeed_1600,  ///< 1600Mbit/s
  IsoSpeed_3200   ///< 3200Mbit/s
} BcamIsoSpeed;


/// These are the test image modes
typedef enum _TEST_IMAGE_MODE
{
  TestImage_Disabled,     ///< Test image disabled
  TestImage_1,            ///< Test image 1 active
  TestImage_2,            ///< Test image 2 active
  TestImage_3,            ///< Test image 3 active
  TestImage_4,            ///< Test image 4 active
  TestImage_5,            ///< Test image 5 active
  TestImage_6,            ///< Test image 6 active
  TestImage_7             ///< Test image 7 active
} ImageOnMode;


/// Test image feature
typedef struct _BCAM_TEST_IMAGE
{
  ULONG                 : 13;   
  ULONG ImageOn         :  3;   ///< Test image mode
  ULONG                 :  1;   
  ULONG ImageInq7       :  1;   ///< Presence of test image 7
  ULONG ImageInq6       :  1;   ///< Presence of test image 6

⌨️ 快捷键说明

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