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

📄 cobspackets.h

📁 EZ-USB 开发板完整资料
💻 H
字号:
//--------------------------------------------------------------------------
//
//  Filename:     CobsPackets.h
//
//  Description:  
//
//--------------------------------------------------------------------------
// $Archive: /WirelessUSB/WUSB Kits/CY3635 N-to-1 DVK/DocSrc/CD_Root/Software/Nto1/common/CobsPackets/CobsPackets.h $
// $Modtime: 10/06/04 6:19p $
// $Revision: 1 $
//--------------------------------------------------------------------------
//
// Copyright 2004, Cypress Semiconductor Corporation.
//
// This software is owned by Cypress Semiconductor Corporation (Cypress)
// and is protected by and subject to worldwide patent protection (United
// States and foreign), United States copyright laws and international
// treaty provisions. Cypress hereby grants to licensee a personal,
// non-exclusive, non-transferable license to copy, use, modify, create
// derivative works of, and compile the Cypress Source Code and derivative
// works for the sole purpose of creating custom software in support of
// licensee product to be used only in conjunction with a Cypress integrated
// circuit as specified in the applicable agreement. Any reproduction,
// modification, translation, compilation, or representation of this
// software except as specified above is prohibited without the express
// written permission of Cypress.
//
// Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// Cypress reserves the right to make changes without further notice to the
// materials described herein. Cypress does not assume any liability arising
// out of the application or use of any product or circuit described herein.
// Cypress does not authorize its products for use as critical components in
// life-support systems where a malfunction or failure may reasonably be
// expected to result in significant injury to the user. The inclusion of
// Cypress' product in a life-support systems application implies that the
// manufacturer assumes all risk of such use and in doing so indemnifies
// Cypress against all charges.
//
// Use may be limited by and subject to the applicable Cypress software
// license agreement.
//
//--------------------------------------------------------------------------

#ifndef __cobspackets_h
#define __cobspackets_h


typedef struct _ListPacket
{
	BYTE packetCommand;
	UINT  packetLength;
	unsigned char *packetData;
} ListPacket;

/////////////////////////////////////////////////////////////////////////////
// class CCobsPackets
/////////////////////////////////////////////////////////////////////////////

class CCobsPackets : public CObject
{


// Class enumerations
public:
	// CCobsPackets Events
	typedef enum
	{
		EEventUnKnown        = 0,   // Unknown Event
		EEventReceivedPacket = 1,   // Packet has been recevied
		EEventSendPacket     = 2,   // Packet ready to send
		EEventPacketError    = 3,   // Error in processing packet
	} 
	EEvent;

	// CCobsPackets Errors
	typedef enum
	{
		EErrorNone          = 0,   // No Error
		EErrorPacketOverrun = 1,   // Packet overran packet buffer
		EErrorPacketDecode  = 2,   // Unable to decode packet
	}
	EError;

public:
	CCobsPackets();
	virtual ~CCobsPackets();

	bool Init(HWND hwndDest, UINT nCobsMsg=WM_NULL, LPARAM lParam=0, UINT nMaxPacketSize=0xFF);

	void SendEvent (EEvent eEvent, EError eError = EErrorNone);

	void DataReceived(unsigned char *src, UINT length);

	void SendPacket(unsigned char *src, UINT length);

	BYTE GetPacket(EEvent eEvent, unsigned char *data, UINT *length);

	// Default Cobs notification message
	static const UINT mg_nDefaultCobsMsg;

protected:
	ListPacket* NewPacket();

	UINT StuffData(unsigned char *src, unsigned char *dst, UINT length);
	UINT UnStuffData(unsigned char *src, unsigned char *dst, UINT length);

	HWND m_hMsgWnd;
	UINT m_nCobsMsg;
	LPARAM m_lParam;
	
	UINT m_nMaxPacketSize;
	
	unsigned char *m_pInPacketData;
	UINT m_nInPacketPos;
	CPtrList m_InPacketList;

	CPtrList m_OutPacketList;
};

#endif

⌨️ 快捷键说明

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