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

📄 msptp.c

📁 MSTAR03的数码相框的代码
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "DrvOTGMain.h"
#include <string.h>
#include <stdlib.h>
#include "uart.h"

__u8 pbCmdBlock[PTP_CMD_BUFFER_SIZE] _at_ PB_PTPCMDADDR;
__u8 pbRepBlock[PTP_REP_BUFFER_SIZE] _at_ PB_PTPREPADDR;
__u8 pbEvtBlock[PTP_EVT_BUFFER_SIZE] _at_ PB_PTPEVTADDR;
__u8 pbDataBlock[PTP_DAT_BUFFER_SIZE] _at_ PB_PTPDATADDR;

#if 1
__u16 volatile pbCmd_Addr;
__u16 volatile pbResp_Addr;
__u16 volatile pbEvent_Addr;
__u16 volatile pbData_Addr;
//__u8 GetPartHeaderTransfer;
//__u8 volatile errorhappen;
//__u32 volatile counter1;
//__u32 volatile counter2;
#endif

extern PB_FileInfo pbPntFile;
__u32 volatile pbDPSConfPntSevSize;
__u32 volatile pbDPSGetDevStsSize;
__u32 volatile pbDPSStartJobSize;
__u32 volatile pbDPSAbortJobSize;
__u32 volatile pbDPSContinueJobSize;
__u32 volatile pbDPSDevStsSize;
__u32 volatile pbDPSJobStsSize;

__u32 volatile pbPTPSessionID;
__u32 volatile pbPTPObjHdle;
__u32 volatile pbPTPPaObjHdle;
__u32 volatile pbPTPHdleAssoc;
__u32 volatile pbPTPObjOffset;
__u32 volatile pbPTPObjMaxBytes;

__u32 volatile pbPTPEventTranID;
__u32 volatile pbPTPEventObjHdle;

__u8 volatile pbDPSStartJobFlag;
__u8 volatile pbDPSConfPntSevFlag;
//__u8 volatile pbDPSGetDevStsFlag;

__u8 volatile pbDPSDisvCompFlag;

__u8 volatile pbDPSJobErrReason;
__u8 volatile pbDPSSevSts;

// code = 0x1001, GetDevinfo

static code __u8 pbDPSDeviceInfo[139] = {
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x10, 0x03, 0x10, 0x04, 0x10, 0x05, 0x10, 0x06, 0x10, 0x07, 0x10,
0x08, 0x10, 0x09, 0x10, 0x0A, 0x10, 0x0C, 0x10, 0x0D, 0x10, 0x1B, 0x10,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x03, 0x40, 0x09, 0x40,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x30, 0x01, 0x38, 0x08, 0x38,
0x06, 0x4D, 0x00, 0x53, 0x00, 0x54, 0x00, 0x41, 0x00, 0x52, 0x00, 0x00, 0x00,
0x0E, 0x4D, 0x00, 0x53, 0x00, 0x54, 0x00, 0x41, 0x00, 0x52, 0x00, 0x53, 0x00, 0x45, 0x00, 0x4D, 0x00,
0x49, 0x00, 0x4C, 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x00, 0x00,
0x05, 0x4C, 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x00, 0x00,
0x08, 0x31, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00 };

//pos=52
static code __u8 pbDPSDDISCVRY[26] = {
0x44, 0x00, 0x44, 0x00, 0x49, 0x00, 0x53, 0x00,
0x43, 0x00, 0x56, 0x00, 0x52, 0x00, 0x59, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSHDISCVRY[26] = {
0x48, 0x00, 0x44, 0x00, 0x49, 0x00, 0x53, 0x00,
0x43, 0x00, 0x56, 0x00, 0x52, 0x00, 0x59, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSDREQUEST[26] = {
0x44, 0x00, 0x52, 0x00, 0x45, 0x00, 0x51, 0x00,
0x55, 0x00, 0x45, 0x00, 0x53, 0x00, 0x54, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSHREQUEST[26] = {
0x48, 0x00, 0x52, 0x00, 0x45, 0x00, 0x51, 0x00,
0x55, 0x00, 0x45, 0x00, 0x53, 0x00, 0x54, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSDRSPONSE[26] = {
0x44, 0x00, 0x52, 0x00, 0x53, 0x00, 0x50, 0x00,
0x4F, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x45, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSHRSPONSE[26] = {
0x48, 0x00, 0x52, 0x00, 0x53, 0x00, 0x50, 0x00,
0x4F, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x45, 0x00, 0x2E, 0x00,
0x44, 0x00, 0x50, 0x00, 0x53, 0x00, 0x00, 0x00 };

static code __u8 pbDPSConfPntServ[359] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,
0x0A,0x20,0x20,0x20,0x3C,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x65,0x50,0x72,
0x69,0x6E,0x74,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x3E,0x0D,0x0A,0x20,0x20,0x20,
0x20,0x3C,0x64,0x70,0x73,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x73,0x3E,0x31,0x2E,
0x30,0x3C,0x2F,0x64,0x70,0x73,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x73,0x3E,0x0D,
0x0A,0x20,0x20,0x20,0x20,0x3C,0x76,0x65,0x6E,0x64,0x6F,0x72,0x4E,0x61,0x6D,0x65,
0x3E,0x4D,0x53,0x54,0x41,0x52,0x3C,0x2F,0x76,0x65,0x6E,0x64,0x6F,0x72,0x4E,0x61,
0x6D,0x65,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x20,0x3C,0x76,0x65,0x6E,0x64,0x6F,0x72,
0x53,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3E,
0x31,0x2E,0x30,0x3C,0x2F,0x76,0x65,0x6E,0x64,0x6F,0x72,0x53,0x70,0x65,0x63,0x69,
0x66,0x69,0x63,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3E,0x0D,0x0A,0x20,0x20,0x20,
0x20,0x3C,0x70,0x72,0x6F,0x64,0x75,0x63,0x74,0x4E,0x61,0x6D,0x65,0x3E,0x4C,0x4F,
0x4C,0x41,0x3C,0x2F,0x70,0x72,0x6F,0x64,0x75,0x63,0x74,0x4E,0x61,0x6D,0x65,0x3E,
0x0D,0x0A,0x20,0x20,0x20,0x20,0x3C,0x73,0x65,0x72,0x69,0x61,0x6C,0x4E,0x6F,0x3E,
0x53,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x3C,0x2F,0x73,0x65,0x72,0x69,0x61,0x6C,
0x4E,0x6F,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x3C,0x2F,0x63,0x6F,0x6E,0x66,0x69,0x67,
0x75,0x72,0x65,0x50,0x72,0x69,0x6E,0x74,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x3E,
0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,0x0A,0x20,0x3C,
0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

static code __u8 pbDPSGetDevStatus[125] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,
0x0A,0x20,0x20,0x20,0x3C,0x67,0x65,0x74,0x44,0x65,0x76,0x69,0x63,0x65,0x53,0x74,
0x61,0x74,0x75,0x73,0x2F,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x69,0x6E,0x70,0x75,
0x74,0x3E,0x0D,0x0A,0x20,0x3C,0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

static code __u8 pbDPSStrJob[533] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,0x6E,0x73,0x3D,
0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,0x69,0x70,0x61,
0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,0x61,0x2F,0x22,
0x3E,0x3C,0x69,0x6E,0x70,0x75,0x74,0x3E,0x3C,0x73,0x74,0x61,0x72,0x74,0x4A,0x6F,
0x62,0x3E,0x3C,0x6A,0x6F,0x62,0x43,0x6F,0x6E,0x66,0x69,0x67,0x3E,0x3C,0x71,0x75,
0x61,0x6C,0x69,0x74,0x79,0x3E,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,
0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x3E,0x3C,0x70,0x61,0x70,0x65,0x72,0x54,0x79,
0x70,0x65,0x3E,0x35,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x70,0x61,0x70,
0x65,0x72,0x54,0x79,0x70,0x65,0x3E,0x3C,0x70,0x61,0x70,0x65,0x72,0x53,0x69,0x7A,
0x65,0x3E,0x35,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x70,0x61,0x70,0x65,
0x72,0x53,0x69,0x7A,0x65,0x3E,0x3C,0x66,0x69,0x6C,0x65,0x54,0x79,0x70,0x65,0x3E,
0x35,0x33,0x30,0x31,0x30,0x30,0x30,0x30,0x3C,0x2F,0x66,0x69,0x6C,0x65,0x54,0x79,
0x70,0x65,0x3E,0x3C,0x64,0x61,0x74,0x65,0x50,0x72,0x69,0x6E,0x74,0x3E,0x35,0x34,
0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x64,0x61,0x74,0x65,0x50,0x72,0x69,0x6E,
0x74,0x3E,0x3C,0x66,0x69,0x6C,0x65,0x4E,0x61,0x6D,0x65,0x50,0x72,0x69,0x6E,0x74,
0x3E,0x35,0x35,0x30,0x31,0x30,0x30,0x30,0x30,0x3C,0x2F,0x66,0x69,0x6C,0x65,0x4E,
0x61,0x6D,0x65,0x50,0x72,0x69,0x6E,0x74,0x3E,0x3C,0x69,0x6D,0x61,0x67,0x65,0x4F,
0x70,0x74,0x69,0x6D,0x69,0x7A,0x65,0x3E,0x35,0x36,0x30,0x31,0x30,0x30,0x30,0x30,
0x3C,0x2F,0x69,0x6D,0x61,0x67,0x65,0x4F,0x70,0x74,0x69,0x6D,0x69,0x7A,0x65,0x3E,
0x3C,0x6C,0x61,0x79,0x6F,0x75,0x74,0x3E,0x35,0x37,0x30,0x30,0x30,0x30,0x30,0x30,
0x3C,0x2F,0x6C,0x61,0x79,0x6F,0x75,0x74,0x3E,0x3C,0x66,0x69,0x78,0x65,0x64,0x53,
0x69,0x7A,0x65,0x3E,0x35,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x66,0x69,
0x78,0x65,0x64,0x53,0x69,0x7A,0x65,0x3E,0x3C,0x63,0x72,0x6F,0x70,0x70,0x69,0x6E,
0x67,0x3E,0x35,0x39,0x30,0x31,0x30,0x30,0x30,0x30,0x3C,0x2F,0x63,0x72,0x6F,0x70,
0x70,0x69,0x6E,0x67,0x3E,0x3C,0x2F,0x6A,0x6F,0x62,0x43,0x6F,0x6E,0x66,0x69,0x67,
0x3E,0x3C,0x70,0x72,0x69,0x6E,0x74,0x49,0x6E,0x66,0x6F,0x3E,0x3C,0x66,0x69,0x6C,
0x65,0x49,0x44,0x3E,0x34,0x30,0x31,0x39,0x31,0x45,0x42,0x35,0x3C,0x2F,0x66,0x69,
0x6C,0x65,0x49,0x44,0x3E,0x3C,0x64,0x61,0x74,0x65,0x3E,0x32,0x30,0x30,0x36,0x2F,
0x30,0x31,0x2F,0x30,0x31,0x3C,0x2F,0x64,0x61,0x74,0x65,0x3E,0x3C,0x63,0x6F,0x70,
0x69,0x65,0x73,0x3E,0x30,0x30,0x31,0x3C,0x2F,0x63,0x6F,0x70,0x69,0x65,0x73,0x3E,
0x3C,0x2F,0x70,0x72,0x69,0x6E,0x74,0x49,0x6E,0x66,0x6F,0x3E,0x3C,0x2F,0x73,0x74,
0x61,0x72,0x74,0x4A,0x6F,0x62,0x3E,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x3C,
0x2F,0x64,0x70,0x73,0x3E};

static code __u8 pbDPSAbtJob[172] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,
0x0A,0x20,0x20,0x20,0x3C,0x61,0x62,0x6F,0x72,0x74,0x4A,0x6F,0x62,0x3E,0x0D,0x0A,
0x20,0x20,0x20,0x20,0x3C,0x61,0x62,0x6F,0x72,0x74,0x53,0x74,0x79,0x6C,0x65,0x3E,
0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x61,0x62,0x6F,0x72,0x74,0x53,
0x74,0x79,0x6C,0x65,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x3C,0x2F,0x61,0x62,0x6F,0x72,
0x74,0x4A,0x6F,0x62,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,
0x3E,0x0D,0x0A,0x20,0x3C,0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

static code __u8 pbDPSContJob[121] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,
0x0A,0x20,0x20,0x20,0x3C,0x63,0x6F,0x6E,0x74,0x69,0x6E,0x75,0x65,0x4A,0x6F,0x62,
0x2F,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x0D,0x0A,
0x20,0x3C,0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

static code __u8 DPSDevStatus[160] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x6F,0x75,0x74,0x70,0x75,0x74,0x3E,
0x0D,0x0A,0x20,0x20,0x20,0x3C,0x72,0x65,0x73,0x75,0x6C,0x74,0x3E,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x72,0x65,0x73,0x75,0x6C,0x74,0x3E,0x0D,0x0A,
0x20,0x20,0x20,0x3C,0x6E,0x6F,0x74,0x69,0x66,0x79,0x44,0x65,0x76,0x69,0x63,0x65,
0x53,0x74,0x61,0x74,0x75,0x73,0x2F,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x6F,0x75,
0x74,0x70,0x75,0x74,0x3E,0x0D,0x0A,0x20,0x3C,0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

static code __u8 pbDPSJobStatus[157] = {
0x3C,0x3F,0x78,0x6D,0x6C,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,0x6E,0x3D,0x22,0x31,
0x2E,0x30,0x22,0x3F,0x3E,0x0D,0x0A,0x20,0x3C,0x64,0x70,0x73,0x20,0x78,0x6D,0x6C,
0x6E,0x73,0x3D,0x22,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,
0x69,0x70,0x61,0x2E,0x6A,0x70,0x2F,0x64,0x70,0x73,0x2F,0x73,0x63,0x68,0x65,0x6D,
0x61,0x2F,0x22,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x6F,0x75,0x74,0x70,0x75,0x74,0x3E,
0x0D,0x0A,0x20,0x20,0x20,0x3C,0x72,0x65,0x73,0x75,0x6C,0x74,0x3E,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x3C,0x2F,0x72,0x65,0x73,0x75,0x6C,0x74,0x3E,0x0D,0x0A,
0x20,0x20,0x20,0x3C,0x6E,0x6F,0x74,0x69,0x66,0x79,0x4A,0x6F,0x62,0x53,0x74,0x61,
0x74,0x75,0x73,0x2F,0x3E,0x0D,0x0A,0x20,0x20,0x3C,0x2F,0x6F,0x75,0x74,0x70,0x75,
0x74,0x3E,0x0D,0x0A,0x20,0x3C,0x2F,0x64,0x70,0x73,0x3E,0x0D,0x0A};

GCS pbDPSGCS;
Obj_Info DPS_ObjectInfo;

void pbInitPictureBridge(void)
{
    GetPartHeaderTransfer=0;
	  //errorhappen=0;
    //printf("usbPictRxDataReceived=%x",usbPictRxDataReceived);
    if ((pbIsUSBDetect()==1)&&(usbPictRxDataReceived==1))
    {
        pbDPSSetGCS();

		//printf("\r\nOPCode = %x ",pbDPSGCS.OPCode);
#ifdef USB_DEBUG
//            printf("\r\nLength = %x ",pbDPSGCS.Length);
//            printf("\r\nType = %x ",pbDPSGCS.Type);
//            printf("\r\nOPCode = %x ",pbDPSGCS.OPCode);
//            printf("\r\nTransactionID = %x ",pbDPSGCS.TransactionID);
#endif

        if (pbDPSGCS.OPCode == PTP_OP_GetDevInfo)
        {
            pbDPSDiscovery();
            pbDPSDisvCompFlag=1;
#ifdef USB_DEBUG
//            printf("\r\nDiscovery_Comp = %x ",pbDPSDisvCompFlag);
#endif
        }
        else if (pbDPSGCS.OPCode == PTP_OP_SendObjectInfo)
            pbDPSPnt2DSC();
        else if (pbDPSGCS.OPCode == PTP_OP_GetObjectInfo)
            pbDPSGetFileInfo();
        else if (pbDPSGCS.OPCode == PTP_OP_GetObject)
            pbDPSGetFile();
        else if (pbDPSGCS.OPCode == PTP_OP_GetPartialObject)
        {
              pbDPSGetPartFile();
        }
        else if (pbDPSGCS.OPCode == PTP_OP_GetThumb)
            pbDPSGetThumb();
        else
            pbDPSRespBlock(pbDPSGCS.OPCode,PTP_Rep_OperNotSupport);

    }

    if ((pbIsUSBDetect()==1)&&(usbPictRxDataReceived==0)&&(pbDPSDisvCompFlag==1))
    {
        if ((pbDPSConfPntSevFlag==0)&&(usbPictRxDataReceived==0))
        {
		    printf("\r\n ConfPntSevCmd!!", 0);
            pbDPSConfPntSevCmd();
            pbDPSConfPntSevFlag=1;
            while((usbPictRxDataReceived==0)&&(pbIsUSBDetect()==1));
#ifdef USB_DEBUG
//            printf("\r\nConfig = %x ",pbDPSConfPntSevFlag);
//            printf("\r\nCmdRev = %x ",usbPictRxDataReceived);
//            printf("\r\nConnect = %x ",usbUSBConnectFlag);
#endif
        }
//		else
//        {
//            if ((pbDPSGetDevStsFlag==0)&&(usbPictRxDataReceived==0)&&(pbDPSConfPntSevFlag==1))
//            {
//                 pbDPSGetDevStsCmd();
//                 pbDPSGetDevStsFlag=1;
//                 pbTTXSendCommand(USB_REQUEST_CMD,STS_USB_CONNECT,0);
//#ifdef USB_DEBUG
//                 printf("\r\npbDPSGetDevStsFlag = %x ",pbDPSGetDevStsFlag);
//#endif
//            }
//        }

        /*artemis mark at 0606
        if ((pbDevStsTfCheckFlag==1) && !(mailbox[MBR_DATA1]&0x01)&& !(NotifyusbConnect))
        {
        	  //if( pbDPSJobErrReason &0x1E)
        	  //{
        	  //	pbDPSSevSts=pbDPSSevSts|PB_JOBSEV_ERROR;
        	  //}

        	printf("\r\n !pbDPSSevSts=%x", pbDPSSevSts);
            pbTTXSendCommand(USB_REQUEST_CMD,STS_USB_REQ_DEVSTS,pbDPSSevSts);
	        //if(mailbox[MBR_STATUS]==0)
			//{
	        // printf("\r\n q1=%x", mailbox[MBR_STATUS]);
            // printf("\r\n q2=%x", mailbox[MBR_DATA0]);
            // printf("\r\n q3=%x", mailbox[MBR_NUMBER]);
            // printf("\r\n q4=%x", mailbox[MBR_COMMAND]);
			// errorhappen=1;
			//}

            if(mailbox[MB_COMMAND]== mailbox[MBR_COMMAND])
			{
			  printf("\r\n MBoxOk!",0);
              //pbNotifyDevStsFlag=0;
              pbDevStsTfCheckFlag=0;
			}
        }*/
        if ((pbDPSSevSts&PB_JOBSTS_IDLE)&&(pbDPSSevSts&PB_JOBSTS_ACEPTNEWJOB)&&(pbDPSStartJobFlag==1))
        {
		    printf("\r\n !StatJob!", 0);
			printf("\r\n pbDPSSevSts=%x",pbDPSSevSts);
            pbDPSStartJobCmd();
            pbDPSStartJobFlag=0;
            while((usbPictRxDataReceived==0)&&(pbIsUSBDetect()==1));
        }
        if ((pbDPSSevSts&PB_JOBSTS_PRINTING)&&(usbPictRxDataReceived==0)&&(pbAbortJobFlag==1))
        {
            printf("\r\n !AbortJob!", 0);
		    pbDPSAbortJobCmd();
            pbAbortJobFlag=0;
            while((usbPictRxDataReceived==0)&&(pbIsUSBDetect()==1));
        }
        if ((pbDPSSevSts&PB_JOBSTS_PAUSED)&&(pbContinueJobFlag==1))
        {
		    printf("\r\n !ContinueJob!", 0);
            pbDPSContinueJobCmd();
            pbContinueJobFlag=0;
            while((usbPictRxDataReceived==0)&&(pbIsUSBDetect()==1));
        }
    }
}

void pbDPSInitFlag(void)
{
    pbDPSStartJobFlag=0;
    pbAbortJobFlag=0;
    pbContinueJobFlag=0;
    pbNotifyJobStsFlag=0;
    pbNotifyDevStsFlag=0;

    pbDPSDisvCompFlag=0;
    pbDPSConfPntSevFlag=0;
//    pbDPSGetDevStsFlag=0;
	pbDPSSevSts=0;
	pbDPSJobErrReason=0;

	pbSendOptionComFlag=0;
#if 1
    pbDPSConfPntSevSize = sizeof(pbDPSConfPntServ);
    pbDPSGetDevStsSize = sizeof(pbDPSGetDevStatus);
    pbDPSStartJobSize = sizeof(pbDPSStrJob);
    pbDPSAbortJobSize = sizeof(pbDPSAbtJob);
    pbDPSContinueJobSize = sizeof(pbDPSContJob);
    pbDPSDevStsSize = sizeof(DPSDevStatus);
    pbDPSJobStsSize = sizeof(pbDPSJobStatus);

    pbCmd_Addr = (__u16)&pbCmdBlock[0];
    pbResp_Addr = (__u16)&pbRepBlock[0];
    pbEvent_Addr = (__u16)&pbEvtBlock[0];
    pbData_Addr = (__u16)&pbDataBlock[0];

	pbPTPEventTranID=0xffffffff;
	pbPTPEventObjHdle=0xfffffeff;
#endif
}

void pbDPSSetGCS(void)
{
    while((usbPictRxDataReceived==0)&&(usbConnectFlag));
    //printf("\r\n TLnght=%x",usbEP[2].FifoRemain);
    USB2SDRAM_Bulk(pbCmd_Addr,usbEP[2].FifoRemain);
//    usbPictCmdRevFlag=0;
#if 1
    pbDPSGCS.Length=pbReadw(pbCmd_Addr);
    pbDPSGCS.Type=pbReadhw(pbCmd_Addr+4);
    pbDPSGCS.OPCode=pbReadhw(pbCmd_Addr+6);
    pbDPSGCS.TransactionID=pbReadw(pbCmd_Addr+8);

	//printf("\r\n Length=%x", (__u16)pbDPSGCS.Length);
	printf("\r\n OPCode=%x", pbDPSGCS.OPCode);
    //printf("\r\n Type=%x", pbDPSGCS.Type);
    //printf("\r\n TID=%x", (__u8)(pbDPSGCS.TransactionID));

	if(pbDPSGCS.OPCode==0)
	{
	  printf("\r\n Data0=%x",pbReadb(pbCmd_Addr));
      printf("\r\n Data1=%x",pbReadb(pbCmd_Addr+1));
	  printf("\r\n Data2=%x",pbReadb(pbCmd_Addr+2));
	  printf("\r\n Data3=%x",pbReadb(pbCmd_Addr+3));
	  printf("\r\n Data4=%x",pbReadb(pbCmd_Addr+4));
	  printf("\r\n Data5=%x",pbReadb(pbCmd_Addr+5));
	  printf("\r\n Data6=%x",pbReadb(pbCmd_Addr+6));
	  printf("\r\n Data7=%x",pbReadb(pbCmd_Addr+7));
	  printf("\r\n Data8=%x",pbReadb(pbCmd_Addr+8));
	  printf("\r\n Data9=%x",pbReadb(pbCmd_Addr+9));
	  printf("\r\n DataA=%x",pbReadb(pbCmd_Addr+10));
	  printf("\r\n DataB=%x",pbReadb(pbCmd_Addr+11));
	  printf("\r\n DataC=%x",pbReadb(pbCmd_Addr+12));
	  printf("\r\n DataD=%x",pbReadb(pbCmd_Addr+13));
	  printf("\r\n DataE=%x",pbReadb(pbCmd_Addr+14));
	  printf("\r\n DataF=%x",pbReadb(pbCmd_Addr+15));

⌨️ 快捷键说明

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