Diff: LPC1768/drv/zg2100/zg_drv.h
- Revision:
- 3:e02ec42cf9c8
- Parent:
- 0:0f5a52711275
diff -r 1f10f8ab527b -r e02ec42cf9c8 LPC1768/drv/zg2100/zg_drv.h --- a/LPC1768/drv/zg2100/zg_drv.h Thu Jul 22 11:31:59 2010 +0000 +++ b/LPC1768/drv/zg2100/zg_drv.h Fri Aug 06 10:42:05 2010 +0000 @@ -21,21 +21,27 @@ THE SOFTWARE. */ -//ZG2100 Low-level driver +/** +@file +ZG2100 Low-level driver +*/ //Donatien Garnier 2010 #ifndef ZG_DRV_H #define ZG_DRV_H #include "zg_defs.h" +#include "zg_err.h" +//Stores relevant data typedef struct _ZG_DATA { byte mac_addr[6]; ZG_SYSV sys_version; - + } ZG_DATA; +//Stores which data is actually available typedef struct _ZG_DATA_MASK { bool mac_addr; @@ -49,34 +55,53 @@ extern ZG_DATA_MASK zg_data_mask; //Flags valid data //Spi intf, Chip Select pin, Interrupt pin +///Initializes driver (zg_com_init must be called before). zg_err zg_drv_init(); +//FIXME: Not implemented, not used (to be deleted?) void zg_on_data_attach( void (*on_data)() ); +///Must be called regularly to process interrupts. void zg_process(); //Must be called regularly by user +///Processes interrupt. (Called by zg_process if needed) void zg_int_process(); //Process interrupt +///Can a management request be sent? bool zg_mgmt_is_busy(); +///Sends management request void zg_mgmt_req(byte subtype, byte* buf, int len, bool close = true); + +///Writes additional management data void zg_mgmt_data(byte* buf, int len, bool close = true); +///Gets parameter void zg_mgmt_get_param(byte param); + +///Sets parameter void zg_mgmt_set_param(byte param, byte* buf, int len); +///Called on management request result void zg_on_mgmt_avl(byte subtype, byte* buf, int len); //Data is available + +///Called on management event void zg_on_mgmt_evt(byte subtype, byte* buf, int len); //Management event +///Called when get parameter request completes void zg_on_mgmt_get_param(byte* buf, int len); //Get param completed //uint32_t zg_fifo_room(); //Useful to be split in several function because Lwip stores buffers in chunks +///Sends Data (start) void zg_send_start(); +///Sends Data (main) void zg_send(byte* buf, int len); +///Sends Data (end) void zg_send_end(); +///Can more data be sent? bool zg_send_is_busy(); //Callbacks implemented in zg_if @@ -85,6 +110,7 @@ void zg_on_connect(zg_err result); //Handled by zg_net +///Data received void zg_on_input(byte* buf, int len); //Callbacks from zg_com