Skip to content

Commit

Permalink
Merge branch 'link_console_refactorying' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
eddiecohen committed May 30, 2013
1 parent 7c02dcf commit b4546a5
Show file tree
Hide file tree
Showing 26 changed files with 1,668 additions and 1,246 deletions.
165 changes: 118 additions & 47 deletions Include/PSLink.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,30 @@ enum
LINK_PROP_VERSIONS_INFO_COUNT = 0x12000002, // "VersionsInfoCount"
/* General - array - XnComponentVersion * count elements, get only */
LINK_PROP_VERSIONS_INFO = 0x12000003, // "VersionsInfo"
/* General. XnPropUploadFile. Set only. */
LINK_PROP_UPLOAD_FILE = 0x12000006, // "UploadFile"
/* General. XnPropDownloadFile. Set only. */
LINK_PROP_DOWNLOAD_FILE = 0x12000007, // "DownloadFile"
/* Int - 0 means off, 1 means on. */
LINK_PROP_EMITTER_ACTIVE = 0x12000008, // "EmitterActive"
/* Int - 0 means off, 1 means on. */
LINK_PROP_FW_LOG = 0x12000009, // "FWLog"
/* String. Set only */
LINK_PROP_PRESET_FILE = 0x1200000a, // "PresetFile"
/* Int. Set only */
LINK_PROP_FORMAT_ZONE = 0x1200000f, // "FormatZone"
/* Get only */
LINK_PROP_BOOT_STATUS = 0x1200000b,

/**** Device commands ****/
/* XnCommandGetFwStreams */
LINK_COMMAND_GET_FW_STREAM_LIST = 0x1200F001,
/* XnCommandCreateStream */
LINK_COMMAND_CREATE_FW_STREAM = 0x1200F002,
/* XnCommandDestroyStream */
LINK_COMMAND_DESTROY_FW_STREAM = 0x1200F003,
/* XnCommandStartStream */
LINK_COMMAND_START_FW_STREAM = 0x1200F004,
/* XnCommandStopStream */
LINK_COMMAND_STOP_FW_STREAM = 0x1200F005,
/* XnCommandGetFwStreamVideoModeList */
LINK_COMMAND_GET_FW_STREAM_VIDEO_MODE_LIST = 0x1200F006,
/* XnCommandSetFwStreamVideoMode */
LINK_COMMAND_SET_FW_STREAM_VIDEO_MODE = 0x1200F007,
/* XnCommandGetFwStreamVideoMode */
LINK_COMMAND_GET_FW_STREAM_VIDEO_MODE = 0x1200F008,

/**** Stream properties ****/
/* Int. 1 - Shifts 9.3, 2 - Grayscale16, 3 - YUV422, 4 - Bayer8 */
Expand Down Expand Up @@ -57,6 +69,50 @@ enum
LINK_PROP_DEPTH_TO_SHIFT_TABLE = 0x1200200a, // "D2S"
};

typedef enum XnFileZone
{
XN_ZONE_FACTORY = 0x0000,
XN_ZONE_UPDATE = 0x0001,
} XnFileZone;

typedef enum XnBootErrorCode
{
XN_BOOT_OK = 0x0000,
XN_BOOT_BAD_CRC = 0x0001,
XN_BOOT_UPLOAD_IN_PROGRESS = 0x0002,
XN_BOOT_FW_LOAD_FAILED = 0x0003,
} XnBootErrorCode;

typedef enum XnFwStreamType
{
XN_FW_STREAM_TYPE_COLOR = 0x0001,
XN_FW_STREAM_TYPE_IR = 0x0002,
XN_FW_STREAM_TYPE_SHIFTS = 0x0003,
XN_FW_STREAM_TYPE_AUDIO = 0x0004,
XN_FW_STREAM_TYPE_DY = 0x0005,
XN_FW_STREAM_TYPE_LOG = 0x0008,
} XnFwStreamType;

typedef enum XnFwPixelFormat
{
XN_FW_PIXEL_FORMAT_NONE = 0x0000,
XN_FW_PIXEL_FORMAT_SHIFTS_9_3 = 0x0001,
XN_FW_PIXEL_FORMAT_GRAYSCALE16 = 0x0002,
XN_FW_PIXEL_FORMAT_YUV422 = 0x0003,
XN_FW_PIXEL_FORMAT_BAYER8 = 0x0004,
} XnFwPixelFormat;

typedef enum XnFwCompressionType
{
XN_FW_COMPRESSION_NONE = 0x0000,
XN_FW_COMPRESSION_8Z = 0x0001,
XN_FW_COMPRESSION_16Z = 0x0002,
XN_FW_COMPRESSION_24Z = 0x0003,
XN_FW_COMPRESSION_6_BIT_PACKED = 0x0004,
XN_FW_COMPRESSION_10_BIT_PACKED = 0x0005,
XN_FW_COMPRESSION_11_BIT_PACKED = 0x0006,
XN_FW_COMPRESSION_12_BIT_PACKED = 0x0007,
} XnFwCompressionType;

#pragma pack (push, 1)

Expand All @@ -70,58 +126,73 @@ typedef struct XnDetailedVersion
char m_strModifier[XN_MAX_VERSION_MODIFIER_LENGTH];
} XnDetailedVersion;

typedef struct XnPropReadAHB
typedef struct XnBootStatus
{
XnFileZone zone;
XnBootErrorCode errorCode;
} XnBootStatus;

typedef struct XnFwStreamInfo
{
XnFwStreamType type;
char creationInfo[80];
} XnFwStreamInfo;

typedef struct XnFwStreamVideoMode
{
uint32_t m_nXRes;
uint32_t m_nYRes;
uint32_t m_nFPS;
XnFwPixelFormat m_nPixelFormat;
XnFwCompressionType m_nCompression;
} XnFwStreamVideoMode;

typedef struct XnCommandGetFwStreamList
{
uint32_t count; // in: number of allocated elements in streams array. out: number of written elements in the array
XnFwStreamInfo* streams;
} XnCommandGetFwStreamList;

typedef struct XnCommandCreateStream
{
uint32_t m_nAddress;
uint32_t m_nBitOffset; //Offset in bits of value to read within address
uint32_t m_nBitWidth; //Width in bits of value to read
uint32_t m_nValue; //Output parameter - the value that was actually read
} XnPropReadAHB;
XnFwStreamType type;
const char* creationInfo;
uint32_t id; // out
} XnCommandCreateStream;

typedef struct XnPropWriteAHB
typedef struct XnCommandDestroyStream
{
uint32_t m_nAddress;
uint32_t m_nValue;
uint32_t m_nBitOffset; //Offset in bits of value to write within address
uint32_t m_nBitWidth; //Width in bits of value to write
} XnPropWriteAHB;
uint32_t id;
} XnCommandDestroyStream;

typedef struct XnPropReadI2C
typedef struct XnCommandStartStream
{
uint32_t m_nDeviceID;
uint32_t m_nAddressSize;
uint32_t m_nValueSize;
uint32_t m_nAddress;
uint32_t m_nValue; //Output parameter - the value that was actually read
} XnPropReadI2C;
uint32_t id;
} XnCommandStartStream;

typedef struct XnPropWriteI2C
typedef struct XnCommandStopStream
{
uint32_t m_nDeviceID;
uint32_t m_nAddressSize;
uint32_t m_nValueSize;
uint32_t m_nAddress;
uint32_t m_nValue;
uint32_t m_nMask;
} XnPropWriteI2C;
uint32_t id;
} XnCommandStopStream;

typedef struct XnPropUploadFile
typedef struct XnCommandGetFwStreamVideoModeList
{
char* m_nFileName;
uint32_t m_nbOverrideFactorySettings;
} XnPropUploadFile;
int streamId;
uint32_t count; // in: number of allocated elements in videoModes array. out: number of written elements in the array
XnFwStreamVideoMode* videoModes;
} XnCommandGetFwStreamVideoModeList;

typedef struct XnPropDownloadFile
typedef struct XnCommandSetFwStreamVideoMode
{
uint16_t m_nZone;
char* m_nStrFirmwareFileName;
char* m_nStrTargetFile;
} XnPropDownloadFile;
int streamId;
XnFwStreamVideoMode videoMode;
} XnCommandSetFwStreamVideoMode;

typedef struct XnPropFormatZone
typedef struct XnCommandGetFwStreamVideoMode
{
uint8_t m_nZone;
} XnPropFormatZone;
int streamId;
XnFwStreamVideoMode videoMode; // out
} XnCommandGetFwStreamVideoMode;

#pragma pack (pop)

Expand Down
138 changes: 138 additions & 0 deletions Include/PrimeSense.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
*/
enum
{
// Stream Properties
PS_PROPERTY_DUMP_DATA = 0x1d270001, // boolean

// Device Properties
PS_PROPERTY_USB_INTERFACE = 0x1d27F001, // values from XnUsbInterfaceType
};
Expand All @@ -57,6 +60,21 @@ enum
PS_COMMAND_I2C_WRITE = 0x1d27E004, // XnCommandI2C
PS_COMMAND_SOFT_RESET = 0x1d27E005, // no arguments
PS_COMMAND_POWER_RESET = 0x1d27E006, // no arguments
PS_COMMAND_BEGIN_FIRMWARE_UPDATE = 0x1d27E007, // no arguments
PS_COMMAND_END_FIRMWARE_UPDATE = 0x1d27E008, // no arguments
PS_COMMAND_UPLOAD_FILE = 0x1d27E009, // XnCommandUploadFile
PS_COMMAND_DOWNLOAD_FILE = 0x1d27E00A, // XnCommandDownloadFile
PS_COMMAND_GET_FILE_LIST = 0x1d27E00B, // an array of XnFileEntry
PS_COMMAND_FORMAT_ZONE = 0x1d27E00C, // XnCommandFormatZone
PS_COMMAND_DUMP_ENDPOINT = 0x1d27E00D, // XnCommandDumpEndpoint
PS_COMMAND_GET_I2C_DEVICE_LIST = 0x1d27E00E, // XnCommandGetI2CDevices
PS_COMMAND_GET_BIST_LIST = 0x1d27E00F, // XnCommandGetBistList
PS_COMMAND_EXECUTE_BIST = 0x1d27E010, // XnCommandExecuteBist
PS_COMMAND_USB_TEST = 0x1d27E011, // XnCommandUsbTest
PS_COMMAND_GET_LOG_MASK_LIST = 0x1d27E012, // XnCommandGetLogMaskList
PS_COMMAND_SET_LOG_MASK_STATE = 0x1d27E013, // XnCommandSetLogMaskState
PS_COMMAND_START_LOG = 0x1d27E014, // no arguments
PS_COMMAND_STOP_LOG = 0x1d27E015, // no arguments
};

typedef enum XnUsbInterfaceType
Expand All @@ -68,6 +86,57 @@ typedef enum XnUsbInterfaceType

#pragma pack (push, 1)

// Data Types
typedef struct XnFileVersion
{
uint8_t major;
uint8_t minor;
uint8_t maintenance;
uint8_t build;
} XnFileVersion;

typedef enum XnFileFlags
{
XN_FILE_FLAG_BAD_CRC = 0x0001,
} XnFileFlags;

typedef struct XnFileEntry
{
char name[32];
XnFileVersion version;
uint32_t address;
uint32_t size;
uint16_t crc;
uint16_t zone;
XnFileFlags flags; // bitmap
} XnFileEntry;

typedef struct XnI2CDevice
{
uint32_t id;
char name[32];
} XnI2CDevice;

typedef struct XnBist
{
uint32_t id;
char name[32];
} XnBist;

typedef struct XnLogMask
{
uint32_t id;
char name[32];
} XnLogMask;

typedef struct XnUsbTestEndpointResult
{
double averageBytesPerSecond;
uint32_t lostPackets;
} XnUsbTestEndpointResult;

// Commands

typedef struct XnCommandAHB
{
uint32_t address; // Address of this register
Expand All @@ -86,6 +155,75 @@ typedef struct XnCommandI2C
uint32_t value; // For write request - the value to be written. For read requests - the place where the actual value is written to
} XnCommandI2C;

typedef struct XnCommandUploadFile
{
const char* filePath;
uint32_t uploadToFactory;
} XnCommandUploadFile;

typedef struct XnCommandDownloadFile
{
uint16_t zone;
const char* firmwareFileName;
const char* targetPath;
} XnCommandDownloadFile;

typedef struct XnCommandGetFileList
{
uint32_t count; // in: number of allocated elements in files array. out: number of written elements in the array
XnFileEntry* files;
} XnCommandGetFileList;

typedef struct XnCommandFormatZone
{
uint8_t zone;
} XnCommandFormatZone;

typedef struct XnCommandDumpEndpoint
{
uint8_t endpoint;
bool enabled;
} XnCommandDumpEndpoint;

typedef struct XnCommandGetI2CDeviceList
{
uint32_t count; // in: number of allocated elements in devices array. out: number of written elements in the array
XnI2CDevice* devices;
} XnCommandGetI2CDeviceList;

typedef struct XnCommandGetBistList
{
uint32_t count; // in: number of allocated elements in tests array. out: number of written elements in the array
XnBist* tests;
} XnCommandGetBistList;

typedef struct XnCommandExecuteBist
{
uint32_t id;
uint32_t errorCode;
uint32_t extraDataSize; // in: number of allocated bytes in extraData. out: number of written bytes in extraData
uint8_t* extraData;
} XnCommandExecuteBist;

typedef struct XnCommandUsbTest
{
uint32_t seconds;
uint32_t endpointCount; // in: number of allocated bytes in endpoints array. out: number of written bytes in array
XnUsbTestEndpointResult* endpoints;
} XnCommandUsbTest;

typedef struct XnCommandGetLogMaskList
{
uint32_t count; // in: number of allocated elements in masks array. out: number of written elements in the array
XnLogMask* masks;
} XnCommandGetLogMaskList;

typedef struct XnCommandSetLogMaskState
{
uint32_t mask;
bool enabled;
} XnCommandSetLogMaskState;

#pragma pack (pop)

#endif //_PRIME_SENSE_H_
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ Source/Drivers/RawDevice: $(OPENNI) $(XNLIB)
Source/Drivers/PS1080: $(OPENNI) $(XNLIB) $(DEPTH_UTILS)
Source/Drivers/PS1080/PS1080Console: $(OPENNI) $(XNLIB)
Source/Drivers/PSLink: $(OPENNI) $(XNLIB)
Source/Drivers/PSLink/PSLinkConsole: $(OPENNI) $(XNLIB)
Source/Drivers/OniFile: $(OPENNI) $(XNLIB)

Source/Tools/NiViewer: $(OPENNI) $(XNLIB)
Expand Down
4 changes: 4 additions & 0 deletions OpenNI.sln
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DepthUtils", "Source\DepthUtils\DepthUtils.vcxproj", "{72D595BB-8C52-449B-91DB-0E9F6AEABBBB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PSLinkConsole", "Source\Drivers\PSLink\PSLinkConsole\PSLinkConsole.vcxproj", "{D39A4248-3985-41DE-AFD5-AEC58D29291F}"
ProjectSection(ProjectDependencies) = postProject
{72D595BB-8C52-449B-91DB-0E9F6AEAF53A} = {72D595BB-8C52-449B-91DB-0E9F6AEAF53A}
{72D595BB-8C52-449B-91DB-0E9F6AEAF5BB} = {72D595BB-8C52-449B-91DB-0E9F6AEAF5BB}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wrappers", "Wrappers", "{9FCEE1ED-B0D9-46D7-A014-98FBDD0EF6A9}"
EndProject
Expand Down
Loading

0 comments on commit b4546a5

Please sign in to comment.