📄 msptp.c
字号:
#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 + -