Home
eZeeNet™ Software 1.6 eZeeNet API Reference Manual
Contents
1. 3 3 fw_forceToSleep Force to Sleep Force the node to get sleep Node going to sleep sequence is shown in Figure 4 and Figure 5 void fw _forceToSleep void none none non interrupt context none Purpose Function prototype Arguments Return value Calling context Restrictions 3 3 8 fw_appReadyToSleep Ready to Sleep Indication Indicate that user s application is ready to get sleep Node going to sleep sequence is shown in Figure 4 and Figure 5 result t fw appReadyToSleep void none Returns BUSY if Framework cannot proceed the sleep procedure it means that user calls the function but fwReadyToSleep has not been got yet or SUCCESS otherwise Both interrupt and non interrupt contexts User s application should call this function in response to the fwReadyToSleep callback see Section 3 3 6 when it completes the preparations to sleeping none Page 25 84 Purpose Function prototype Arguments Return value Calling context Restrictions 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL NOTES User is not allowed to call gt appReadyToSleep without having received the fw ReadyToSleep callback see Figure 5 Also user is not allowed to call fw appReadyToSleep if data has been transmitted after receiving the fw ReadyToSleep callback Meshfletics 3 3 9 fw_forceWakeup Force the node to wake up Forces the eZeeNet Framework
2. OFF OFF OFF ON Table 66 DIP switches in Ping Pong Application for 3 nodes participating OFF OFF OFF ON OFF OFF OFF ON ON Table 67 DIP switches in Ping Pong Application for 4 nodes participating OFF OFF OFF ON OFF OFF OFF ON OFF ON ON ON 7 3 4 WSN Demo Application WSN Demo application is intended to demonstrate the WSN full functional operation End devices and routers update in duty circle the on board sensor readings temperature light and battery level measurements and send them in packets to coordinator The data received from WSN nodes displayed with PC GUI application The WSN demo application is described in details in 7 2006 MeshNetics Page 83 84 EZEENET SOFTWARE 1 6 2006 MeshNetics Page 84 84
3. eZeeNet Software 1 6 eZeeNet API Reference Manual Doc P EZN 452 02 v 1 6 March 2007 2007 MeshNetics EZEENET SOFTWARE 6 Page 2 84 2007 MeshNetics All rights reserved No part of the contents of this manual may be transmitted or reproduced in any form or by any means without the written permission of MeshNetics Disclaimer MeshNetics believes that all information is correct and accurate at the time of issue MeshNetics reserves the right to make changes to this product without prior notice Please visit MeshNetics website for the latest available version MeshNetics does not assume any responsibility for the use of the described product or convey any license under its patent rights MeshNetics warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with MeshNetics standard warranty Testing and other quality control techniques are used to the extent MeshNetics deems necessary to support this warranty Except where mandated by government requirements testing of all parameters of each product is not necessarily performed Trademarks MeshNetics ZigBit eZeeNet ZigBeeNet SensiLink as well as MeshNetics and ZigBit logos are trademarks of MeshNetics Ltd All other product names trade names trademarks logos or service names are the property of their respective owners Technical Support Please e mail your product related questions to support m
4. HAL Page 53 84 Description Send data over UART channel Read the received data from UART channel Disable host transmitting over UART Enable host transmitting over UART Read RTS into a variable Read DTR into a variable Open SPI interface Close SPI interface Read write byte via SPI Open user timer Close user timer Start user timer Stop user timer Meshfletics Function uart write uart read vert CES On uart cts off uart FES Uart atr spi open spi close spi readwrite appTimer open appTimer close appTimer start appTimer stop 5 2 Call Sequences See Figure 13 for user s HAL startup sequence nable Framework TOSH_interrupt_e User s Application fw userEntry User s HAL initialization User s application is being initialized Figure 13 HAL startup sequence 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL GPIO Interface GPIO interfaces are intended to manage peripherals connected to general purpose I O pins of ZigBit module The GPI interface functions are summarized in the Table 34 They are defined in 9pio h header and they are implemented in gpio c module Use the pin names as specified in Table 33 and GPIOMode t type as described in Table 35 All GPIO functions return FAIL if pin number is out of range or SUCCESS otherwise
5. int v tt open uint8 t tty Open UART UARTMode t uartmode uint8 t flags void Firs callback uint8 t void tx callback 6 register the handlers for UART events 6 perform configuration for UART registers 6 perform configuration for RTS CTS and DTR pins Parameters 6 tty the UART referencing number which can be one of the defines UART CHANNEL 0 or UART CHANNEL 1 6 uartmode the address of UARTMode t structure 6 flags one of the defines UART FLOW CONTROL NONE UART FLOW CONTROL HARDWARE UART DTR CONTROL The defines UART FLOW CONTROL HARDWARE UART DTR CONTROL can be combined via logical OR operation 6 rx callback address pointing to a function which notifies application about receiving each byte of data otherwise rx callback must be set to NULL 6 tx callback address pointing to a function which notifies application about completion of data transfer otherwise tx callback must be set to NULL Important Note rx callback tx callback functions are called in an interrupt context Returns 6 1 indicating at least one of the following errors incorrect UART channel unsupported flags for selected UART channel insufficient resources 6 otherwise a positive UART descriptor value is returned 2006 MeshNetics Page 62 84 EZEENET SOFTWARE 1 6 Function Description int uart close int Close UART descriptor Releases UART channel and pins if hardware
6. HAL HAL R5 SUPPORT DIR Framework Include Directories INCLUDES I S APP DIR include I STACK DIR include I S TOSLIB DIR include I HAL DIR base include I HAL DIR eZeeNet include a I I I XX ad ars STACK SUPPORT DIR include I STACK SUPPORT DIR include stack als FRAMEWORK DIR include Library Directories LIBDIRS L S HAL DIR 1lib X L TOSLIB DIR lib L FRAMEWORK DIR lib 2006 MeshNetics Page 79 84 EZEENET SOFTWARE 1 6 L STACK SUPPORT DIR 1ib Libraries LIBS ltos 1 FW 1ZigBitInt lstackSupport ske SRC APP DIR blink c 5 STACK SUPPORT DIR src ConfigServer c Objects explicitly added by the user LINKONLYOBJECTS S STACK DIR lib NWKMACLibA o 5 STACK DIR lib APLLibA o S HAL DIR lib wdtinit o Build all S TARGET blink srec blink hex Link S TARGET S SRC amp CC S CFLAGS S INCLUDES LINKONLYOBJECTS SRC S TARGET S LIBDIRS LIBS srec S TARGET avr objcopy O srec HEX FLASH FLAGS S lt S hex S TARGET avr objcopy O ihex HEX FLASH FLAGS S lt S lss S TARGET avr objdump h S lt gt Clean target clean rm rf S TARGET S PROJECT srec S PROJECT hex Open the blink aps file from the SampleApplication Blink subdirectory on your hard drive an
7. fw registerEndPoint Register the End Point to Receive Data rrrrnnrrnnrnnnvvverrvnnnnn 49 4 3 13 aes encrypt AES128 Encryption 50 4 3 14 aes decrypt AES128 Decryption 50 HAL Interfaces susenrateereseeneneieeedsnedindeennsnend 52 Functions Summary nnen eneen ennen 52 Call SEQUENCES 53 Detailed description nanne 54 5 3 1 GPIO Interface annen 54 5 3 2 IRQ Interfac 55 5 3 3 ADC Interface nennen 57 5 3 4 Watch dog Interface rrrrnnrvrnnnnvvennvvennnns 58 5 3 5 IC Interface nnee 59 5 3 6 UART Interface annen 61 5 3 7 SPI Interface nanne nennen 67 5 3 8 IAppTimer Interface nnen 69 MeshBean DriversS s rrassvrrnnsvvrnnnvnnnnnvrnnnnenn 71 Function Summary 71 Page 3 84 4 1 4 2 4 3 5 1 92 5 3 6 1 Meshfletics Table of Contents 1 PATE OGG HON Lae 8 2 System Architecture Overview 10 2 1 General Software Specification 10 2 2 General Limitations on User s Code 10 2 3 Functional Diagram and Description of eZeeNet Software ee 11 2 4 ZigBit Hardware mum n 12 2 5 Register and Call Conventions 13 2 5 1 Callback Interfaces nnn 13 2 5 2 State after Reset annen 14 2 5 3 User defined ISRS nn 15 2 5 4 Use of Power down Modes 15 2 6 eZeeNet Hardware Resource Allocation 15 2 7 General Types anna e
8. library 2 9 Use of Standard C libraries User s application can use standard C library Take into account that most functions of this library are not guaranteed to be reentrant In particular some functions store local state they are known to be non reentrant Those functions are also non reentrant that manipulate IO registers like the EEPROM access routines Using these functions within interrupt context will result unpredictable behavior Page 16 84 2006 MeshNetics EZEENET SOFTWARE 1 6 2 10 TinyOS Functions TinyOS is a component based runtime environment designed to provide support for deeply embedded systems which require concurrency intensive operations while constrained by minimal hardware resources The programming language of TinyOS is stylized C that uses a custom compiler NesC but TinyOS functions are C callable A complete documentation on TinyOS is available at http www tinyos net eZeeNet Software uses a small subset of TinyOS functions The functions that can be called by user application are shown in the Table 8 They include TinyOS task management critical section implementation and global interrupt management User s applications should not call any other functions of TinyOS Table 8 The callable TinyOS functions Function Description TOS post Post TinyOS task Returns TRUE if successful Normally this function should be used to post signal from interrupt
9. 2 3 Buttons The buttons interface functions are described in Table 61 They are defined in buttons h header and they are implemented in buttons c module 2006 MeshNetics Page 72 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Table 61 Buttons interface functions Function Description result t buttons open void Register handlers for button events that pressed uint8 t bn will be called in non interrupt context void released uint8 t bn Returns FAIL if an open request has been already issued or SUCCESS otherwise pressed handler to process pressing the button released handler to process releasing the button bn button number Button identification can be performed by BUTTON 1 macro and BUTTON 2 macro result t Cancel buttons handlers buttons close void Returns FAIL if there was no open issue or SUCCESS otherwise buttons readState void form bit 0 defines the state of the button 1 bit 1 defines the state of the button 2 buttons open should be called before using this function Sensors The sensor interface functions are described in Table 62 They are defined in sensors h header and they are implemented in sensors c module HAL supports light temperature sensors and battery voltage as a sensor Sensor type is defined by id There are the following ids 6 SENSOR LIGHT 6 SENSOR TEMPERATURE 6 SENSOR BATTERY Sensors ca
10. NOTE If any of GPIO O GPIO 8 pins is used for alternative function by UART for instance it cannot be used for GPIO Page 54 84 ZigBit pin name GPIOO GPIO1 GPIO2 GPIO3 GPIO4 GPIO5 GPIO6 GPIO7 GPIO8 GPIO9 TOC GEK 126 DATA UART TXD UART RXD UART RTS UART CTS ADC INPUT 3 ADC INPUT 2 ADC INPUT 1 BAT UART DTR USARTO RXD USARTO TXD USARTO EXTCLK IRQ 7 IRQ 6 Table 33 GPIO description GPIO GPIO 0 GPIO 1 GPIO 2 GPIO 3 GPIO 4 GPIO 5 GPIO 6 GPIO 7 GPIO 8 GPIO 9 GPIO I2C CLK GPIO I2C DATA GPIO UART TXD GPIO UART RXD GPIO UART RTS GPIO UART CTS GPIO ADC INPUT 3 GPIO ADC INPUT 2 GPIO ADC INPUT 1 GPIO BAT GPIO UART DTR GPIO USARTO RXD GPIO USARTO TXD GPIO USARTO EXTCLK GPIO IRQ 7 GPIO IRQ 6 Meshfletics 5 3 Detailed description 9 3 1 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Description Configure a particular pin of ZigBit module to the specified mode Read a particular pin configuration Configuration is returned in the mode parameter Get state of 8 pin into the value 6 0 means logical zero 6 1 means logical one If pin is configured for output or as tri state returned value is not defined Set pin into value state The command does not affect any pin configured as input or tri state Table 34 GPIO interface funct
11. and eZeeNet stack to wake up before the end of sleep period Active period will start and the user wakeup function will be called Waking up sequence is shown in Figure 6 void fw forceWakeup void none none Non interrupt context Separate task should be posted from the user interrupt handler CPU is assumed to be woken up by the user interrupt enabled during sleep period fw forceWakeup should be called within that task Applicable for end device only Purpose Function prototype Arguments Return value Calling context Restrictions 3 3 10 fw eepromWrite Direct Write to EEPROM Write a block of bytes to EEPROM User s area starts from the address defined by FW EEPROM START macro void fw eepromWrite EEPROMParams params params see Table 12 none This function should be called in the non interrupt context but interrupts should be enabled eZeeNet does not support nested or overlapped calls of this function which can happen potentially because TinyOS events and user defined tasks are processed when this function is executed Page 26 84 Purpose Function prototype Arguments Return value Calling context Restrictions 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL NOTE EEPROM access is a relatively slow process that may take several tens of milliseconds To avoid real time problems this function provides processing the TinyOS eve
12. defined by two DIP switches numbered 1 and 2 which can be set in 4 possible combinations The third DIP switch turned ON determines the node closing the configured chain top a circle In configurations with 2 3 or 4 nodes it should be set to ON position for the 2 for the 3 or for the 4 node respectively DIP switch configurations are presented as examples in Table 65 Table 66 and Table 67 Network formation is initiated by pressing Sw1 button on each of the nodes When network is started successfully red LED is ON If green LED is getting ON it means that MAC address is set incorrect that is equal to 0 Sending data is accompanied by blinking yellow LED LED is getting on when data is sent or off when it is acknowledged Sending data is initiated by pressing Sw2 button on some of the nodes Once the third DIP switch on the chain closing node is in ON position data will be passed over circularly 0 1 2 3 0 1 and so forth You can press SW2 button on some other node one more time and then the next data block will pass through the nodes in same direction If data block fails to be delivered during any transaction due to communication error router s overload or some other reason it gets out of data circulation in the network 2006 MeshNetics Page 82 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL Table 65 DIP switches in Ping Pong Application for 2 nodes participating OFF ON
13. flow control was used Parameter descriptor the UART descriptor Returns 6 1 if descriptor is incorrect for it does not relate to any open channel 6 otherwise 0 is returned int uart write int Write data to UART channel descriptor t bukker uint8 t length The uart write function uses two modes to transmit data synchronous and asynchronous depending on parameters which were used for uart open If tx callback function was not registered then synchronous mode will be used In synchronous mode uart write function will be able to return only after having the last byte transmitted In asynchronous mode tx callback function will be used to notify about completion of transmitting length bytes Parameters 6 descriptor UART descriptor 6 buffer pointer to the application data buffer 6 length 8 number of bytes to transmit Returns 6 1 indicating at least one of the following errors incorrect UART descriptor untransmitted data the pointer to data is NULL length is zero 6 otherwise 0 is returned 2006 MeshNetics Page 63 84 EZEENET SOFTWARE 1 6 Function Description int Vart read ant Read data received from UART to the application buffer descriptor Gants t bukter The uart read function is used only in synchronous uint t length mode Parameters 6 descriptor UART descriptor 6 buffer pointer to the application buf
14. for Making an Application annen ennen 76 7 2 4 Clock SOUICES annae ennen eenen 76 7 2 5 Minimum Application ccccccccceeeeres 77 7 3 Sample Applications rrrrrrnnnrrernnnnrrrrrnnnnrvvennnnnrnne 81 7 3 1 Low Power Networking Application 81 7 3 2 Peer to peer Data Exchange Application 82 7 3 3 Ping Pong Application c cccccsseeeeeees 82 7 3 4 WSN Demo Application 83 2007 MeshNetics Page 4 84 EZEENET SOFTWARE 1 6 List of Figures Figure 1 Simplified diagram of the eZeeNet software 11 Figure 2 ZigBit block diagram nnee 12 Figure 3 Application initialization sequence 20 Figure 4 Going to sleep sequence when initiated by Framework ccccesssecsssseesssseeessseeesssseeessseseeeaes 20 Figure 5 Going to sleep sequence when initiated by user s 80 21 Figure 6 Waking up sequence when initiated by user s interrupt handler during sleep 21 Figure 7 RSSI based location Service nnen 37 Figure 8 Join leave Sequence eenen 39 Figure 9 Join lost join sequence automatic networking disabled dex 39 Figure 10 Join lost join sequence automatic networking SAIS ua neede 40 Figure 11 Data transmission sequence 40 Figure 12 Data receive sequence for end device 41 Figure 13 HAL startup sequence aanne 53 2007 MeshNetics Page 5 84 56 EZEE
15. initiate the network push SW1 button on any node starting from coordinator Red LED is getting ON while the network is started successfully If green LED is getting ON it means that MAC address is set incorrect namely it is equal to 0 Coordinator organizes the network with its own unique PAN ID which is determined by its MAC address considering the 16 least significant bits Besides user can set PAN ID in flash memory or EEPROM In order to join end devices scan the network End device measures temperature each 10 seconds and sends data to coordinator if the measurement absolute increment exceeds 0 5 C Sending data is indicated by yellow LED flashing On having data sent an end device falls into sleep Unconditionally the current temperature measurement will be also sent if Sw2 button is pressed on end device regardless of the node being sleeping before Coordinator never sleeps it keeps sending the received temperature data to UART via USB at 9600 bps rate in text form without flow control To help understanding of the application code easier two different image files are supplied one is intended for coordinator the other for end device 2006 MeshNetics Page 81 84 EZEENET SOFTWARE 1 6 7 3 2 Peer to peer Data Exchange Application This sample shows how to organize the simplest peer to peer link A simple buffering strategy is employed to avoid byte by byte data transfer At least 2 nodes are participatin
16. out of range SUCCESS otherwise non interrupt context none NOTE If data come to the non registered end point they will be lost Purpose Function prototype Arguments Return value Calling context Restrictions Meshfletics 4 3 13 aes encrypt AES128 Encryption Encrypt the input data using the known 128 bit key void aes encrypt const uint8 t key uint8 t buf uint8 t temp key 128 bit key buf 16 byte block to be encrypted temp 176 bytes of temporary data none Encryption result replaces input data block non interrupt context none Purpose Function prototype Arguments Return value Calling context Restrictions 4 3 14 aes decrypt AES128 Decryption Decrypt input data using the known 128 bit key void aes decrypt const uints t keyll uint8 t buf uint8 t temp Page 50 84 Purpose Function prototype 2006 MeshNetics EZEENET SOFTWARE 1 6 Purpose Decrypt input data using the known 128 bit key Arguments key 128 bit key buf 16 byte block to be decrypted temp 176 bytes of temporary data Return none value Decryption result replaces input data block Calling non interrupt context context Restrictions none 2006 MeshNetics Page 51 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics 5 HAL Interfaces 5 1 Functions Summary HAL is supplied in source code User can modify it to impl
17. 4 3 11 4 3 13 4 3 14 Description Register the network event handlers Join start the network Leave the network Check networking status Register the end point to receive data Register the network event handlers Data sending Data indication flow control Delayed data request Restart the stack AES128 encryption AES128 decryption Table 23 eZeeNet stack functions Function fw registerNetworkEvents fw joinNetwork fw leaveNetwork fw isJoined fw registerEndpoint Fw registerLogicalAddress fw dataRequest fw dataIndicationControl fw delayedDataRequest fw stackRestart aes encrypt aes decrypt Meshfletics 4 2 Call Sequences The network join leave sequence is shown in Figure 8 The network join lost join sequence is shown in Figure 9 and Figure 10 depending on automatic networking Page 38 84 setup 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL HAL HAL Framework fw registerNetworkEvents joined lost Meshiletics User s Application fw_joinNetwork 60 User s application activities fw leaveNetwork lost Figure 8 Join leave sequence Framework fw registerNetworkEvents joined lost User s Application fw joinNetwork joined User s application activities lost lt lt fw joinNetwork joined
18. ART CTS JTAG TMS JTAG TDI JTAG JTAG TDO JTAG TCK BAT ADC INPUT 1 ADC 5033 591 ADC INPUT 2 ADC INPUT 3 A VREF Output Input reference voltage 5 3 3 for ADC UART DTR DTR input Data Terminal 5 3 6 5 3 1 Ready for UART USARTO RXD UART SPI 5 3 6 5 3 7 USARTO TXD USARTO EXTCLK IRQ 7 IRQ 6 Digital input interrupt requests 5 3 2 GPIO lines RF RFP IO REN IO Radio interface 2 5 Register and Call Conventions Functional interface of eZeeNet is C callable Mixing with C and user s C code 5 not guarantied User s application should follow the register conventions for C callable functions specified in 3 Applications should avoid to modify the peripheral registers directly eZeeNet HAL drivers are also C callable but some functions can be called from Interrupt Service Routines ISRs 2 5 1 Callback Interfaces Some user s functions are defined as callback handlers They are used to indicate the completion of some process i e data transmission or they serve as event handlers 2006 MeshNetics Page 13 84 EZEENET SOFTWARE 1 6 As a rule eZeeNet does not call user s functions directly from ISRs so callback functions do not need to save restore the context Thus they may use C library or other eZeeNet functions There are some exceptions due to the performance reasons see descriptions of the particular functions below 2 5 2 State after R
19. NET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL NodeLogicalInf t 50 FW DataStatus 16 nnen FW DataRequest t 50 FW Datalndication 1 50000 HAL functions musserende GPIO description eeen GPIO interface functions nanne GPIOMode t type nnee IRQ interface functions nnee IRQMode t type interrupt activation condition ADC interface functions 5 1 4 Watch dog interface functions WDlInterval t type watch dog interval FC interface functions nnen I2CMode struct neen I2CClockRate t type clock rate UART interface functions nnee UARTMode t 5 UARTBaudRate t type cccccssseeeeeeeeeeseees UARTData_t type nnen UART Parity t typeren UARTStopBits ttype aen UARTHardwareControl 6 SPI interface functions SPIMode struct aen SPIClockMode SPIClockRate ttype clock rate Page 6 84 Table 28 Table 29 Table 30 Table 31 Table 32 Table 33 Table 34 Table 35 Table 36 Table 37 Table 38 Table 39 Table 40 Table 41 Table 42 Table 43 Table 44 Table 45 Table 46 Table 47 Table 48 Table 49 Table 50 Table 51 Table 52 Table 53 Table 54 Meshiletics List of Tables Table 1 Firmware storage consumption Table 2 ZigBit pin assignment Table 3 HAL resources state at startu
20. OFTWARE 1 6 Brown out detection disabled BODLEVEL 111 JTAG Interface Enabled JTAGEN 0 Serial program downloading SPI enabled SPIEN 0 Boot Flash section size 1024 words Boot start address SFE00 BOOTSZ 10 Divide clock by 8 internally CKDIV8 0 Int RC Osc Start up time 6 CK 65 ms CKSEL 0010 SUT 01 Uncheck the rest of options Make sure the following hex value string appears at the bottom of Fuses Tab OxFF 0x9D 0x62 Additionally check ON the following option if the nodes will be programmed with Serial Bootloder Boot Reset vector Enabled default address S0000 BOOTRST 0 Make sure the following hex value string appears at the bottom of Fuses Tab OxFF Ox9C 0x62 7 2 5 Minimum Application This demo application implements the MeshBean2 LED blinking In user s loop the GPIO 0 pin state is toggled using the GPIO interface The program is coded in C it is named blink c The source code is shown below RK RK RK RK KK kk kkk LED Blinking Implementation Project C source include framework h include gpio h include apptimer h define LED GPIO 0 Pin connected to LED Functions declarations void mainLoop Main loop void timerFired Blink timer handler OR KK KK RR RR RK RK KKK KK RK Users entry void fw userEntry FW ResetReason t re
21. OFTWARE ID PARAM ID FW DATA RETRY PARAM ID FW DATA TIMEOUT PARAM ID FW SYNC PERIOD PARAM ID FW GPIO CONFIG PARAM ID FW UART DTR PARAM ID FW UART SPEED PARAM ID FW UART FC PARAM ID Meshiletics 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL flleshiletics adcConfig i2cConfig usartConfig calibrPeriod Node s role see Table 10 coordinator router or end device Default value depends on the particular library used If universal library Supporting all types of devices is used it will be ZIGBEE ROUTER TYPE Defines the node roles possible in the network see Table 10 Node logical address see Section 4 3 1 NOTE The logical address will be used for communications between applications It should be assigned in some way to make it unique within particular PAN Default value 0 Node NWK address see Section 4 3 1 If node is not in the network this value is not defined Node MAC address If eZeeNet detects it defined in EEPROM the found value is read for use If undefined set to zero eZeeNet checks if MAC address is defined in ZigBit module by hardware and the detected address is stored in EEPROM Default value of MAC address is zero The module will not join the network until user will set MAC address to any value non zero and non equal to OXFFFFFFFFFFFFFFFF or the
22. RVAL 250 250ms WD INTERVAL 500 500ms WD INTERVAL 1000 1s WD INTERVAL 2000 2s WD INTERVAL 4000 As WD INTERVAL 8000 8s 5 3 5 PC Interface C interface is intended to communicate with I C based peripherals IPC channel works in the master mode only FC interface functions are described in Table 41 They are defined in i2cpacket h header and they are implemented in i2cpacket c module Table 41 IC interface functions result t i2cpacket open const Open IPC channel I2CMode t mode I2CMode t struct Is described in Table 42 Returns FAIL if channel has already been opened or SUCCESS otherwise result t i2cpacket close void Close 0 channel and set the corresponding ZigBit pins I2C DATA I2C CLOCK to tri state Returns FAIL if channel has not been opened yet or SUCCESS otherwise 2006 MeshNetics Page 59 84 EZEENET SOFTWARE 1 6 1 chiletics EZEENET API REFERENCE MANUAL result t Write I C packet 120000266 write uint8 t addr uint8 t length const uint8 t addr device address data void f bool result length packet length data user data pointer The length value depends on the device connected to the bus It should not exceed 256 f the operation completion handler Returns FAIL if previous read write operation has not been completed yet or SUCCESS otherwise result t Read I C packet i2cpacket read ui
23. SystemTime Get System Time Purpose Provide system time in milliseconds Function uint32 t fw getSystemTime void prototype Arguments none Return system time in milliseconds passed from the last cold or warm reset value Meshfletics 3 3 2 3 3 3 3 3 4 2006 MeshNetics Page 23 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Calling Can be used both in the interrupt and non interrupt contexts context Restrictions none fw warmReset Warm Reset Purpose Perform warm reset Warm reset procedure reinitializes hardware and software excluding cleaning the EEPROM data The node will fall to the same state as it was reset by the hardware RESET signal Function void fw warmReset bool factoryDefaults prototype Arguments factoryDefaults if TRUE set all eZeeNet parameters stored in the EEPROM to their default values Return This function never returns any value because it causes hardware value reset Calling non interrupt context context Restrictions none NOTES If serial bootloader is enabled by the appropriate fuse bits it will be called first during the warm reset procedure If UART RTS CTS flow control is enabled by the appropriate parameter see Table 16 UART CTS line is set as soon as this function starts But during the MCU reset UART CTS line Is in the tri state That is why this line is recommended to be pulled up VART CTS line will be cleared when eZeeNet will complete i
24. Table 19 and Section 3 3 6 for details Memory for the parameter should be allocated by user Default value See Table 19 NOTE Actual sleep active periods will be slightly different and their values will depend on multiple circumstances such as the network activity external interfaces to the sensors etc They cannot be used for absolute timing uint16 t syncPeriod RW x The period in 100 milliseconds units for tracking the end device by its router Default value 600 uint8 t securityKey RW Encryption key for data transmission Setting 16 this key does not mean sending data automatically encrypted or receiving it decrypted This key is used in explicit call for the aes encrypt function encrypting the data and the aes decrypt function for decrypting one See Section 4 3 13 Section 4 3 14 for details Default value zeros 2006 MeshNetics Page 32 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL uint8 t manufacture R Manufacturer identifier rId Memory for the parameter should be allocated by user uint8 t modelId R Model identifier Memory for the parameter should be allocated by user uint8 t hardsoftId R Hardware software revision identifier Memory for the parameter should be allocated by user uint16 t dataDeliver RW Timeout in milliseconds between data yTimeout resend attempts in case of delivery failur
25. address is detected in hardware Memory for the parameter should be allocated by user Page 30 84 FW ADC CONFIG PARAM ID FW 126 CONFIG PARAM ID FW USART CONFIG PARAM ID FW CALIBR PERIOD PARAM ID Table 16 FW_ParamValue_t union RW x RW x role nodeCapabil ity logicalAddr NWKAddr macAddr NodeLogicalType t NodeCapability t NodeLogicalAddr t NWKAddr t IEEEAddr t 2006 MeshNetics a o EZEENET SOFTWARE 1 6 chiletics EZEENET API REFERENCE MANUAL PANID t panID RW PAN ID is used for networking If it is set to OxFFFF the module will join the network irrespectively to its PAN ID Default value OxFFFF for router and end device OxFFFE for coordinator PANID t act PANID R This parameter contains actual PAN ID that is used for networking If panID is set to OxFFFF and the node has joined the network this parameter will keep PAN ID of the selected network If the node has not connected this parameter contains OxFFFF uint8 t channel R Current working channel since network start If node is not in the network the value is OXFF uint32 t channelMask RW x Channel mask Default value 0x00000800 FW LQIParam t 11 R Current RSSI and LQI according to connection directed from the specified node See Table 17 for more details Memory for the parameter should be allocated by user NOTE RSSI LQI information is ret
26. and library files for eZeeNet HAL Header and library files for TOS Source and project files for WSN Demo application Source project and image files for Blink minimum application Source project and image files for Low Power application Source project and image files for Peer to Peer application Source project and image files for Ping Pong application JAPI HAL HAL R5 JAPI TOSLib JAPI SampleApplication WSNDemo JAPI SampleApplication Blink JAPI SampleApplication lowpower JAPI SampleApplication peer2peer JAPI SampleApplication pingpong 7 2 Building Custom Application 7 2 1 Target Environment and Tools Before building custom applications and running them user should become aware of the minimum system requirements and additional tools for application development see Table 64 2006 MeshNetics Page 75 84 EZEENET SOFTWARE 1 6 Table 64 System requirements and development tools Parameter Value CPU Intel Pentium Ill or higher 800 MHz RAM 128 MB Hard disk free space 50 MB Operating system Windows2000 XP IDE AVR Studio 4 12 Service Pack 2 AVR GCC plug in Development tools AVR GCC compiler JTAG emulator AVR JTAGICE mkll The Atmel s AVR Studio 9 is available at the Atmel s website http Awww atmel com AVR GCC compiler is available within the WinAVR suite of software development tools for the Atmel AVR series of RISC microprocessors
27. as been already opened either as SPI or as UART or SUCCESS otherwise 2006 MeshNetics Page 67 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL result t spi close void Close USART that was opened before as SPI channel FAIL is returned if USART has not been opened yet as either SPI or UART or has been already opened in UART mode Otherwise it returns SUCCESS result t Write the specified data to transmit over spi readWrite uint8 t SPI At the same time function also reads data uint8 t length the received data into the same buffer data data buffer pointer length the buffer length in bytes After operation is completed the buffer contains the received bytes length is the number of bytes actually received and return code is SUCCESS FAIL IS returned if 6 if USART has not been yet opened as SPI 6 previous write operation was not completed yet or SUCCESS otherwise use interrupts Table 52 SPIMode t struct SPIClockMode t clockMode SPI clock mode See Table 53 for details SPIClockRate t clockRate SPI clock rate See Table 54 for details SPIDataOrder t dataOrder SPI data order See Table 55 for details Table 53 SPIClockMode ttype SPI CLOCK MODEO leading edge sample RX bit rising trailing edge setup TX bit falling SPI CLOCK MODEL leading edge setup TX bit rising trailing ed
28. ataStatus status params data transmission parameters see Table 30 conf confirmation for data transmission FAIL if the data to be transmitted is too long see Table 30 BUSY if the data cannot be transmitted at the moment and transmission can be repeated later SUCCESS otherwise non interrupt context This function should be called in the non interrupt context but interrupts should be enabled Purpose Function prototype Arguments Return value Calling context Restrictions fw datalndicationControl Data Indication Flow Control Function to manipulate by Framework data indication flow enable permission to indicate the received data frame for user application void fw _dataIndicationControl uint8 t endpoint bool enable endpoint the number of the endpoint for which flow control is changed Value 0 is used for simultaneous control of all endpoints enable the indication mode If it is TRUE the received data will be sent to user application otherwise they will be stored by eZeeNet until mode is TRUE Atfer the mode is TRUE the stored frames will be indicated to user application none interrupt and non interrupt context none Page 46 84 Purpose Function prototype Arguments Return value Calling context Restrictions 2006 MeshNetics 4 3 9 EZEENET SOFTWARE 1 6 NOTE Initially when Framework starts the indication is enabled Tabl
29. ate 125KHz Conversion mode Single conversion mode Reference source A VREF The following macros should used 85 adcNumber ADC BAT ADC INPUT 1 ADC INPUT 2 ADC INPUT 3 ADC interface functions are defined in the adc h and implemented in adc c Table 38 ADC interface functions result t ade open uints t Open channel adcNumber and register adeNumber void callback for data indication SE uint16 t data data indication handler Returns FAIL if 6 adcNumber is out of range 6 channel has been already opened or SUCCESS otherwise result t ade get uint8 t Get sample from ADC channel adcNumber adeNumber The result is returned by the callback registered using ade open function Returns FAIL if 6 adcNumber is out of range 6 channel has not been opened yet or SUCCESS otherwise Page 57 84 5 3 3 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Function Description result t ade close uints t Close the adcNumber channel adcNumber After closing the channel the corresponding pin is set to tri state If all channels are closed A VREF pin is moved to tri state as well Returns FAIL if 6 adcNumber is out of range channel has not been opened yet or SUCCESS otherwise NOTES eZeeNet does not open ADC channel automatically But the used channels can be saved restored in EEPROM see Section 3 3 12 When using the ZigB
30. cation Figure 12 Data receive sequence for end device 4 3 Detailed description 4 3 1 Data Structures The following types are used in eZeeNet Stack interfaces NodeLogicalAddr t and NWKAddr t See Section 3 3 1 for definitions The following types of node address are used see Table 24 Table 24 NodeAddrMode t type Value Description NODE ADDR MODE NWK addressing mode NODE LOGICAL ADDR MODE Logical addressing mode 4 3 2 eZeeNet Network Configuration The eZeeNet network configuration parameters are defined in the VAPINStackSupportlVincludelConfig h file They can be changed for user s application which should be then recompiled Override these values if needed in the corresponding makefile instead of changing them in source code NOTE Changing the network configuration parameters can result in more RAM required 2006 MeshNetics Page 41 84 EZEENET SOFTWARE 1 6 Table 25 The eZeeNet network configuration parameters Name Description MAX END DEVICES Maximum number of end devices that can be associated with coordinator or router Default value 5 MAX ROUTER NEIB NUMBER Maximum number of routers that can be associated with coordinator or router Default value 5 NWK MAX DEPTH Maximum depth of network Default value 5 MAX PAN DESCRIPTORS Maximum number of PAN descriptors used in network scanning it is recommended
31. d Normally this function should be called during initialization phase when all the interrupts are disabled see Figure 13 result t irq enable uint8 t Enable iraNumber interrupt irgNumber Returns FAIL if irqNumber is out of range or has not been registered yet or SUCCESS otherwise result t Disable irqNumber interrupt irq disable uint8 t irgNumber Returns FAIL if irqNumber is out of range or has not been registered yet or SUCCESS otherwise result t irq unregister Un registers user s iraNumber interrupt uint8 t irqNumber IRQ line will be moved to tri state Returns FAIL if irqNumber is out of range or has not been registered yet or SUCCESS otherwise Table 37 IRQMode t type interrupt activation condition Value Description IRQ LOW LEVEL The low level generates an interrupt request IRQ ANY EDGE Any edge generates an interrupt request IRQ FALLING EDGE Falling edge generates an interrupt request 2006 MeshNetics Page 56 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL eties IRQ RISING EDGE Rising edge generates an interrupt request ADC Interface ADC interface provides a simplest access to the ATmega1281V on chip ADC The ADC interface functions are listed in Table 38 They are defined in adc h header and they are implemented in adc c module The following conversion parameters are used Sample r
32. d just execute Build Rebuild All item from the main menu The blink hex and blink srec image files will be generated there To get it tested the minimum application should be downloaded into a board 2006 MeshNetics Page 80 84 EZEENET SOFTWARE 1 6 7 3 Sample Applications Other examples are provided with the eZeeNet Software API to demonstrate how to develop user s applications The scenarios of sample applications are presented below They can be implemented using the ZigBit Development Kit ZDK 7 There are four sample applications Low Power Peer to peer data exchange Ping pong WSN Demo The applications source code can be found in SampleApplication subdirectories In each Makefile a set of network parameters is defined For all the sample applications fuse bits should give logical value of FF 9C 62 7 3 1 Low Power Networking Application This sample shows how to collect data transmitted from low power devices employing the simplest power management strategy At least 2 nodes are participating coordinator and end device but up to 7 end devices can be engaged For simple node identification define uniquely logical addresses by DIP switches When setting 8 possible DIP combinations take in mind that 6 ON position corresponds to logical 1 6 the third DIP switch defines the most significant bit for logical address 6 the only coordinator must have zero logical address To start the application and to
33. driver functions 71 Table 59 DIP switches interface functions 72 Table 60 LED interface functions 72 Table 61 Buttons interface functions ne 73 Table 62 Sensors interface functions ne 73 Table 63 The eZeeNet Software files used for application development nanne neee eennenneer eneen 75 Table 64 System requirements and development tools 76 Table 65 DIP switches in Ping Pong Application for 2 nodes participating naan 83 Table 66 DIP switches in Ping Pong Application for 3 nodes participating nanne 83 Table 67 DIP switches in Ping Pong Application for 4 nodes participating naan 83 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics 1 Introduction Purpose of this document This document specifies the Application Programming Interfaces API to the eZeeNet Software 1 The document describes eZeeNet Framework interfaces chapter 3 eZeeNet stack interfaces chapter 4 HAL interfaces chapter 5 MeshBean2 board drivers chapter 6 Application development instructions and samples chapter 7 Definitions and abbreviations A D analog to digital conversion ADC analog to digital converter API Application Programming Interface ARQ Automatic Repeat Request CS chip select signal CRC Cyclic Redundancy Check DIP dual in line package EEPROM Electrically Erasable Programmable Read Only Memory GPIO general input output HAL Hard
34. e Default value 1000 uint8 t dataRetryMa RW x Max data transmission repetitions in case of x delivery failure Default value 3 FW GPIOConfig t gpioConfig RW GPIO configuration See Table 22 Memory for the parameter should be allocated by user Default value Table 22 bool uartDTR RW UART DTR line behavior Default value FALSE UARTBaudRate t uartSpeed RW UART speed Default value UART BAUDRATE 38400 bool uartFC RW UART flow control Default value FALSE uint8 t adcConfig RW ADC configuration The configuration is a bit field Each bit enables or disables the corresponding ADC channel Usable bits 0 1 2 3 Default value 0 ADC is disabled 2006 MeshNetics Page 33 84 EZEENET SOFTWARE 1 6 chiletics EZEENET API REFERENCE MANUAL I2CMode t i2cConfig RW x IC configuration see Table 42 and Section 535 Default value I2C CLOCK RATE 62 FW USARTConfig t usartConfig RW USART configuration see Table 20 Memory for the parameter should be allocated by user Default value see Table 20 uint16 t calibrPerio RW RC oscillator calibration period defined in d minutes This parameter can be reset anytime to change calibration periodicity Setting to 0 zero means calibration disabled For end device calibration will start when the device wakes up in time after the cur
35. e 29 FW DataStatus ttype Value Description FW DATA ACK STATUS Data transmission Success FW DATA NOACK STATUS Data transmission failure Table 30 FW DataRequest t struct Type Name Description NodeLogicalAddr t dstLogicalAddr Logical address of destination node if addrMode NODE ADDR LOGICAL NWKAddr t dstNWKAddr NWK address of destination node if addrMode NODE ADDR NWK NodeAddrMode t addrMode Type of the destination address used see Table 24 uint8 t srcEndPoint Endpoint of source node uint8 t dstEndPoint Endpoint of destination node bool arg This flag defines data delivery control mode TRUE enable ARQ control application level acknowledgement will be used FALSE disable ARQ control MAC acknowledgement will be used ARQ control is defined by the dataDeliveryTimeout and dataRetryMax parameters see Table 16 bool broadcast This flag defines if broadcast transmission should be done TRUE enable broadcasting FALSE disable broadcasting uint8 t data Data buffer pointer 2006 MeshNetics Page 47 84 EZEENET SOFTWARE 1 6 1 chiletics EZEENET API REFERENCE MANUAL uint8 t length Data length Maximum length is defined by FW DATA MAX LENGTH macro uint8 t handle Data frame handle Several data packets can be transmitted concurrently without waiting for confirmation Thus the handle can help to distinguis
36. ement own drivers or to manage specific peripherals When writing an application code it should be taken into account that eZeeNet software runs the ZigBit module at 4 MHz This is important to calculate clock rates for specific interfaces because most interfaces are Page 52 84 controlled by the master MCU clock Table 32 HAL functions Function Description Ref gpio setConfig Configure GPIO pins 4 Read GPIO pins configuration 5 3 1 gpio getState Read GPIO pin 5 3 1 gpio setState Write to GPIO pin 5 3 1 irq register Register the ISR 5 32 irg enable Enable IRQ 5 3 2 irq disable Disable IRQ 5 3 2 irq unregister Unregister the ISR 5 3 2 adc open Open ADC channel 5 3 3 adc get Get ADC sample 5 3 3 adc close Close ADC channel 5 3 3 wdt start Start Watch dog 5 3 4 wdt stop Stop Watch dog 5 3 4 wdt reset Reset Watch dog 5 3 4 i2cpacket open Open IC channel 5 3 5 i2cpacket close Close IC channel 5 3 5 i2cpacket write Write packet to IC 535 i2cpacket read Read packet from I C 5 3 9 uart init Initialize UART 5 3 6 uart find free channel search for UART free channel 5 3 6 find uart by descriptor Search for UART by descriptor 5 3 6 uart open Open UART 5 3 6 uart close Close UART 5 3 6 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Ref 5 3 6 5 3 6 5 3 6 5 3 6 5 3 6 5 3 6 5 3 7 Ddl 5 3 7 5 3 8 5 3 8 5 3 8 5 3 8
37. er defined tasks are processed when this function is executed NOTE EEPROM access is a relatively slow process that may take several tens of milliseconds To avoid real time problems this function provides processing the TinyOS events during its execution Meshfletics 3 3 12 fw_setParam Set eZeeNet Parameter Purpose Set eZeeNet parameter Most eZeeNet parameters are stored in EEPROM eZeeNet checks the parameter value before writing down to minimize the number of EEPROM write cycles Function result 6 fw setParam const FW Param t param prototype Arguments param parameter description pointer FW Param t structure is described in Table 14 Return Returns value FAIL if id in param is out of range BUSY if operation should be repeat later as EEPROM is busy SUCCESS otherwise Calling This function should be called in the non interrupt context but context interrupts should be enabled Restrictions This function can call implicitly fw eepromWrite and fw eepromRead functions their own restrictions are also imposed NOTES Setting some parameters may require stack restart to apply the changes see Table 16 Those parameters are marked with the RW attribute 3 3 13 fw_getParam Get eZeeNet Parameter Purpose Get eZeeNet parameter Function result t fw getParam FW Param t param prototype Arguments param parameter description pointer FW Param t structure is described in Table 16 Return Retur
38. eset The software is capable to check the reason of the reset As specified in the ATmega1281 datasheet 6 all pins are tri stated after any kind of reset But when the SerialNet runs it configures some pins during the startup phase accordingly to the configuration values stored in the EEPROM Table 3 HAL resources state at startup Pins eZeeNet SerialNet GPIO lines tri state depends 5120 8 registers see 2 AD lines conversion is disabled depends on 5100 8 registers see 2 FC modes disabled disabled 120 CLK tri state tri state 126 DATA USART disabled disabled USARTO RXD tri state tri state USARTO TXD USARTO EXTCLK UART disabled enabled the mode and the rate depend on the IFC and IPR commands see 2 UART TXD tri state input no internal pullup UART RXD tri state output UART CTS tri state depends on IFC settings UART RTS see 2 UART DTR tri state tri state IRQ6 IRQ7 tri state tri state NOTES Serial Bootloader if enable delays reset phase by approximately 500 msec During that time it waits for data and it can activate pin UART RXD it receives the valid handshake request from UART If such handshake signal is not received bootloader starts user s application If such behavior is not acceptable then disable the bootloader by corresponding fuse bit 2006 MeshNetics Page 14 84 EZEENET SOFTWARE 1 6 Use the externa
39. eshnetics com If you like to speak to one of our product specialists you can call the phone number listed below Development Support Software customization services can be provided on terms and conditions mutually agreed by MeshNetics and end user Contact Information MeshNetics 9 Dmitrovskoye Shosse Moscow 127434 Russia Tel 7 495 725 8125 Office hours 8 00am 5 00pm Central European Time Fax 7 495 725 8116 E mail support meshnetics com www meshnetics com 2007 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL eZeeNet Stack Interfaces nnn 37 Function Summary rnrvrrrrnrvenrnnrvernnnvvrronvvrrsnvversnnnn 37 Call SEQUENCES 38 Detailed description nanne 41 4 3 1 Data Structures 41 4 3 2 eZeeNet Network Configuration 41 4 3 3 fw registerNetworkEvents Register the Network Event Handlers 42 4 3 4 fw joinNetwork Join Start the Network 43 4 3 5 fw leaveNetwork Leave the Network 3 4 3 6 fw isJoined Check Networking Status 44 4 3 7 fw registerLogicalAddressEvents Register Logical Addressing Notification PIANC S einioes 45 4 3 8 fw_dataRequest Data Sending 46 4 3 9 fw_datalndicationControl Data Indication Flow Control 46 4 3 10 fw_delayedDataRequest Delayed Data rennende deedeetee 49 4 3 11 fw_stackRestart Restart the Stack 49 4 3 12
40. eturns UARTHardwareControl t dtr Pa Table 45 UARTMode t struct baudrate data parity stopbits UARTBaudRate t UARTData t UARTParity t UARTStopBits t Table 46 UARTBaudRate t type UART BAUDRATE 1200 UART BAUDRATE 9600 UART BAUDRATE 38400 Table 47 UARTData ttype 5 bits data length Page 66 84 VART DATAS 2006 MeshNetics EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL UART_DATA6 6 bits data length UART_DATA7 7 bits data length UART DATA8 8 bits data length Table 48 UARTParity_t type UART PARITY NONE Non parity mode UART PARITY EVEN Even parity mode UART PARITY ODD Odd parity mode Table 49 UARTStopBits ttype UART STOPBITS1 1 stop bits mode UART STOPBITS2 2 stop bits mode Table 50 UARTHardwareControl t type TERMINAL READY Host is ready to receive data TERMINAL BUSY Host is busy 5 3 7 SPI Interface SPI interface is intended for SPI communication master mode using USART USART CHANNELO can also work in UART mode in SPI mode The SPI interface functions are described in Table 51 They are defined in spi h header they are and implemented in spi 6 module Table 51 SPI interface functions result spi Open const Open USART as SPI channel SPIMode t param SPIMode t structure is described in Table 52 Returns FAIL if USART h
41. fer 6 length the number of bytes of data attempted to read to buffer Returns 6 1 indicating at least one of the following errors incorrect UART descriptor the pointer to data is NULL length is zero asynchronous mode is used 6 otherwise 0 is returned int uart cts on int Force 8 connected device to stop sending data via UART descriptor UART CHANNEL 1 only can be used for hardware flow control Parameter descriptor UART descriptor Returns 6 1 indicating at least one of the following errors incorrect UART descriptor incorrect UART channel when opening UART with uart open the flags parameter was not set to UART FLOW CONTROL HARDWARE 6 otherwise 0 is returned 2006 MeshNetics Page 64 84 EZEENET SOFTWARE 1 6 Function Description int vart cts off int Allow a connected device sending data via UART descriptor UART CHANNEL 1 only can be used for hardware flow control If hardware flow control is used in UART asynchronous mode the application must not close UART within rx callback function Parameter descriptor UART descriptor Returns 1 indicating at least one of the following errors incorrect UART descriptor when opening UART with uart open the flags parameter was not set to UART FLOW CONTROL HARDWARE mode is not supported 6 otherwise 0 is returned int V rt PES int descriptor Read RTS pin potential into r
42. g Up to 7 nodes can be engaged In order to define the node logical addresses set DIP switches as described in Section 7 3 1 All of the nodes which are connected over UART to their own USB simply exchange over UART with data which is input at their hosts It is strictly defined that the nodes should communicate in pairs identified corresponding to the following logical addresses node 0 with node 1 node 2 with node 3 node 4 with node 5 node 6 with node 7 The connection is configured with 9600 bps rate flow control set on number of data bits equal to 8 parity none and number of stop bits equal to 1 To organize network pressing 51 button on any node starting from coordinator LEDs indicate network activity as follows MAC address is set incorrect that is equal to 0 yellow LED is getting ON when 8 node is searching for the network red LED is blinking red LED is ON when the node joins the network successfully green LED is flashing when a node sends data 6 yellow LED flashing indicates receiving data Initially all the nodes are configured as routers so they can route the data from each other thus extending the links 7 3 3 Ping Pong Application This example shows how to make the nodes to process multiple data requests Each node expects receiving a message wirelessly and it passes each of the received messages to the next node Up to 4 nodes can be engaged forming a circle The node logical addresses are
43. g clear and simple API for user application to access a peripheral easily without conflicting with the eZeeNet Stack The SerialNet is an optional module that offers control over the most of ZigBit functionality via UART port or any other communication interface using standardized AT command set Meshfletics 2 4 ZigBit Hardware ZigBit is a low power high sensitivity IEEE802 15 4 ZigBee OEM module based on Atmel s Z Link 2 4GHz platform 5 ZigBit module contains ATmega1281V Microcontroller AT86RF230 RF Transceiver See the ZigBit block diagram in Figure 2 VCC 1 8 3 6V USART SPI I2C JTAG Analog GPIO SPI Bus Figure 2 ZigBit block diagram Details of ZigBit pinout can be found in ZigBit datasheet 5 Here is the brief summary table that shows which pins are controlled by which functions of eZeeNet Table 2 ZigBit pin assignment Pin Name Description Reference SPI CLK SPI MOSI Reserved for stack operation SPI MISO GPIOO GPIO1 GPIO2 General purpose digital 5 3 1 GPIO3 GPIO4 GPIO5 input output GPIO6 GPIO7 GPIO8 GPIO9 Page 12 84 2006 MeshNetics EZEENET SOFTWARE 1 6 Pin Name Description Reference OSC32K OUT 32 768 kHz clock output RESET Reset input active low D VCC Digital supply voltage Vcc DGND AGND Digital analog ground CPU CLK Clock output 26 CLK I20C DATA C bus 5 3 5 5 3 1 UART TXD UART RXD UART interface 5 3 6 5 3 1 UART RTS U
44. ge sample RX bit falling 2006 MeshNetics Page 68 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL SPI CLOCK MODE2 leading edge sample RX bit falling trailing edge setup TX bit rising SPI CLOCK MODE3 leading edge setup TX bit falling trailing edge sample RX bit rising Table 54 SPIClockRate_t type clock rate SPI CLOCK RATE 2000 2Mb s SPI CLOCK RATE 1000 1Mb s SPI CLOCK RATE 500 500Kb s SPI CLOCK RATE 250 250Kb s SPI CLOCK RATE 125 125Kb s Table 55 SPiDataOrder_t type SPI DATA LSB FIRST Data with LSB first SPI DATA MSB FIRST Data with MSB first 5 3 8 IAppTimer Interface App Timer is an interface to the flexible user defined timers The IAppTimer functions are described in Table 56 They are defined in apptimer h header and they are implemented in apptimer c module The number of timers is defined as APP NUM TIMERS in apptimer h header and it can be changed by user But it cannot be less than APP MIN NUM TIMERS 2006 MeshNetics Page 69 84 EZEENET SOFTWARE 1 6 Meshiletics EZEENET API REFERENCE MANUAL Table 56 IAppTimer interface functions int appTimer open void Register handler for application timer fired fired event fired pointer to a fired event handler Returns positive descriptor if the registration i
45. global interrupt disabling enabling it is strongly recommended to use special macros ATOMIC SECTION ENTER ATOMIC SECTION LEAVE Critical sections should be as short as possible Critical sections should be used mostly to implement semaphores or to read write to the variables accessible both from interrupt and non interrupt context Avoid to call any functions inside Page 18 84 Meshfletics 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics 3 Framework Interfaces 3 1 Function Summary See Functions controlling Framework functionality in Table 9 These functions Ref 3 3 3 3 3 4 3 3 2 3 3 5 12 3 3 13 3 3 10 3 3 11 3 3 6 3 3 7 3 3 8 3 3 9 Waking up sequence initiated by user s interrupt handler during sleep is shown in Page 19 84 entry for user HAL and application initialization periodical call in organizing a user s loop eZeeNet parameters management EEPROM management periodical calibration of the internal RC oscillator system time management provide The interfaces are declared in the framework h file Description Set user s loop Get system time Initialize user s application Warm reset Set eZeeNet parameter Get eZeeNet parameter Direct write to EEPROM EEPROM direct reading Register user s handlers for power management Force the node to sleep Ready to sleep indication Force the node to wake up Table 9 Fra
46. h the packets Table 31 FW_Datalndication_t struct NodeLogicalAddr t srcLogicalAddr Source node logical address This field is valid if isLogicalValid TRUE otherwise its value is not defined NWKAddr t srcNWKAddr NWK address of source node bool isLogicalValid TRUE logical address is known otherwise FALSE uint8 t srcEndPoint Source endpoint uint8 t dstEndPoint Destination endpoint uint8 t data Data buffer pointer uint8 t length Data length bool broadcast Broadcast transmission flag uint8 t lgi LQI value ranged by 0 255 int8 t rssi RSSI value expressed in dBm 2006 MeshNetics Page 48 84 EZEENET SOFTWARE 1 6 4 3 10 fw delayedDataRequest Delayed Data Request Purpose Request explicitly for the data buffered on the router Requesting for the data which is possibly buffered on its router see Figure 12 is required when the end device should participate in two way communications with other node eZeeNet executes this request automatically on each wakeup so this function has to be used in rare cases Function bool fw delayedDataRequest void prototype Arguments none Return TRUE if there is a data on the router and it was extracted value FALSE otherwise Calling non interrupt context context Restrictions This function should be used on an end device only TinyOS events and user defined tasks are processed whenever this funct
47. hosted on the Windows platform 8 For the description of GCC compiler and particularly the command options for compilation and linking see WinAVR documentation 3 JTAG emulator is intended to download the application firmware into a board 10 7 2 2 AVR Studio Projects In AVR Studio creating an application is organized under particular project All the necessary information about a project is kept in project file which has an aps extension so it opens automatically if double clicked 7 2 3 Building Procedure for Making an Application The easiest way to configure an AVR Studio project is using makefile that is a plain text file which name is just makefile without extension Any makefile specifies the compilation flags and the linking flags To include header files and to link libraries a makefile specifies the corresponding directories A sample makefile is presented in Section 7 2 5 7 2 4 Clock sources There are two clock sources that can be used for application 6 Internal RC oscillator 6 External clock source To use the internal RC oscillator select the ZigBitInt library specified in Makefile building the application Opposite to use the external clock source select the ZigBitExt library To use the internal RC oscillator fuse bits should be set as follows Check ON the following options in Fuses Tab before downloading the images through JTAG 2006 MeshNetics Page 76 84 EZEENET S
48. i User s application activities fw_leaveNetwork lost Figure 9 Join lost join sequence automatic networking disabled Page 39 84 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL HAL Framework fw joinNetwork joined lost Delay between the lost and joined events jonedr fw_leaveNetwork lost Figure 10 Join lost join sequence automatic networking enabled If automatic networking is enabled the delay time between lost and join callbacks HAL is depending on automatic networking parameters Data transmission sequence is shown in Figure 11 For end device data receive sequence has some specifics See Figure 12 Page 40 84 fw_registerNetworkEvents joined lost User s application activities User s application activities Meshfletics User s Application 4 4 User s Application Framework fw dataRequest params dataconf gt dataConf i Figure 11 Data transmission sequence 2006 MeshNetics EZEENET SOFTWARE 1 6 User s Application Framework HAL fw registerEndPoint endpoint dataindication fw delayedDataRequest gt Result code is FALSE fw_delayedDataRequest gt Result code is TRUE datalndi
49. include hardware resources like interrupts allocated by particular driver from the HAL Table 4 Hardware resources used by eZeeNet Parameter Register Description Processor main clock 4 MHz ATmega ports PA7 PBO Radio interface PB1 PB2 PB3 PB4 5 ATmega port PG3 PG4 32 768 kHz clock Hardware timers including Timer Counter2 Timer Counter4 their interrupts Timer Counter5 Hardware interrupts External IRQ5 2 7 General Types eZeeNet uses a set of standard integer types defined in the lt stdint h gt file 2006 MeshNetics Page 15 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL 8 bit signed integer 8 bit unsigned integer 16 bit signed integer 16 bit unsigned integer 32 bit signed integer 32 bit unsigned integer 64 bit signed integer 64 bit unsigned integer see Table 6 False condition True condition Operation completed successfully Operation failed Operation cannot be executed because resource s is busy Table 5 Standard types int8 t Wines t int16 t u inti t int32 t une t int64 t uint64 t Bool Table 6 bool enumeration FALSE TRUE Table 7 result_t enumeration SUCCESS FAIL BUSY Meshiletics 2 8 Memory Management It s strongly recommended to avoid using dynamic memory allocation and allocate the data statically eZeeNet software itself does not use malloc calloc free functions from C
50. ion is executed For this reason eZeeNet does not support nested or overlapped calls of this function that may potentially happen 4 3 11 fw stackRestart Restart the Stack Purpose Restart the eZeeNet stack It is required in some cases for instance when application software needs to apply the changes in some global settings see Section Function void fw stackRestart void prototype Arguments none Return none value Calling This function should be called in the non interrupt context but context interrupts should be enabled Restrictions This function enables to execute TinyOS events and user defined tasks during execution of this function NOTE It is recommended to leave the network before calling this function 4 3 12 fw_registerEndPoint Register the End Point to Receive Data Purpose Register the end point for data receive 2006 MeshNetics Page 49 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Register the end point for data receive result t fw registerEndPoint uint8 t endpoint void ind const FW DataIndication t params endpoint endpoint number wish to register User s application should use the endpoint range from 1 to 239 Endpoint 240 is used for Framework purposes The rest possible 8 bit values are reserved for network management ind data indication handler associated with the endpoint FW DataIndication t structure is described in Table 31 FAIL if endpoint number is
51. ion should be handled or copied before function return NOTES If automatic networking is enabled the joined and lost functions are only called back after user s call for fw joinNetwork If opposite these functions may be called back without calling fw joinNetwork addNode and deleteNode are only called after joined is called back by Framework 4 3 4 fw joinNetwork Join Start the Network Purpose Force a node to start a network if coordinator or join if router or end device to the existing network See Figure 8 for join sequence In return to this function call joined or lost will be issued If the node joins the network successfully or it has been already joined then joined event will be issued The lost callback will be issued otherwise Function void fw joinNetwork void prototype Arguments none Return none value Calling non interrupt context context Restrictions none 4 3 5 fw_leaveNetwork Leave the Network Purpose Force the node to leave the network The node forces all its children to leave and signalize a corresponding event to its parent node See Figure 8 for leave sequence 2006 MeshNetics Page 43 84 EZEENET SOFTWARE 1 6 Purpose Force the node to leave the network The node forces all its children to leave and signalize 8 corresponding event to its parent node See Figure 8 for leave sequence Function void fw leaveNetwork void prototype Argu
52. ions Function result t gpio setConfig uint8 t pin GPIOMode t mode result t gpio getConfig uint8 t pin GPIOMode t mode result t gpio getState uint8 t pin uint8 t value result t gpio setState uint8 t pin uint8 t value NOTE eZeeNet does not initialize GPIO pins on startup But GPIO configuration can be saved restored in EEPROM see Section 3 3 12 Description Input pin no internal pullup Input pin internal pullup is turned on Tri state Output Table 35 GPIOMode ttype Value GPIO INPUT PULLUP OFF 0 GPIO INPUT PULLUP ON 1 GPIO Z 2 GPIO OUTPUT 3 IRQ Interface IRQ interfaces are intended to manage interrupts The IRQ interface functions are listed in the Table 36 They are defined in the irq h header and they are implemented in irq c module Following macros should used as irqNumber IRQ 6 IRQ 7 Page 55 84 Meshfletics 9 3 2 2006 MeshNetics EZEENET SOFTWARE 1 6 Table 36 IRQ interface functions Function Description result t Register user s irqNumber interrupt irq register uint8 t irgNumber IRQMode t mode mode interrupt activation condition see void void Table 37 f user s interrupt handler Returns FAIL if 6 irqNumber is out of range 6 Such interrupt has been already registered or SUCCESS otherwise This function does not enable interrupts After registration interrupt is disable
53. it module installed on the MeshBean2 board the following restriction is imposed due to the board schematics You have to consequently configure GPIO 6 GPIO 7 and GPIO 8 for output Then set GPIO to 0 set GPIO7 and GPIO8 to 1 Now you can configure or read the particular A D pins Watch dog Interface The watch dog interface is intended to prevent the software hanged up due to deadlocks The watch dog interface functions are listed in Table 39 Table 39 5 1 4 Watch dog interface functions Function Description void wdt start WDInterval t Start watch dog timer interval For the description of WDInterval t see Table 42 void wdt stop void Stop watch dog timer The watchdog timer is disabled at startup Later eZeeNet Software does not use watchdog itself but the following practice is recommended 6 insert the wdt reset call into user s loop see Section 3 3 3 6 consider user s loop frequency and sleep intervals to calculate correct watch dog interval In such case watch dog timer restarts the node if wdt reset function will not be called during specified timeout Page 58 84 void wdt_reset void Reset watch dog timer Meshfletics 5 3 4 2006 MeshNetics EZEENET SOFTWARE 1 6 1 1 etits EZEENET API REFERENCE MANUAL Table 40 WDinterval_t type watch dog interval WD INTERVAL 16 16ms WD INTERVAL 2 32ms WD INTERVAL 64 64ms WD INTERVAL 125 125ms WD INTE
54. k have to use the same logical address This would be the way to resolve address duplication or provide plug and play node installation NWK addressing scheme can be also used in wireless network where data is collected at single central point sink and no data should be transmitted back There logical addressing is not required because NWK address is known for coordinator and it equals zero LQI RSSI values are returned in each data primitive Although their values correspond to the last hop this allows to make simplest range estimations based on RSSI To do it end devices can broadcast periodically their specific data like MAC address some ID or even text name Application running on the routers will collect data from end devices bundle it with measured RSSI LQI values and send it to central node coordinator 75 dBm 78 dBm 81 dBm 70 dBm 80 dBm Node1 gt Node1 gt Node1 gt Node1 Node1 gt Vv mag 78 dBm 60 dBm 70 dBm 77 dBm 73 dBm Node2 gt Node2 gt re fe Node2 gt i 6 j Node2 gt ee Oe Node2 gt Coordinator mag gt ret amp Muitihop ZigBee link gt One hop radius broadcast Figure 7 RSSI based location service 2006 MeshNetics Page 37 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL eZeeNet Stack interface functions are declared in the framework h file Ref 4 3 3 4 3 4 4 3 5 4 3 6 4 3 12 4 3 7 4 3 8 4 3 9 4 3 10
55. l pullup resistors on the UART CTS and UART RXD pins to avoid missing UART data during reset If UART DTR line is used for module wakeup D1 command of SerialNet see 2 it is recommended to pull it up 2 5 3 User defined ISRs User application can set own ISR serving some interrupt sources for example by utilizing the alternative function of some ZigBit pin For instance 02106 pin can be used as a timer interrupt source ISR management should be done by IRQ functions see Section 5 3 2 2 5 4 Use of Power down Modes Power down procedure should be under control of the eZeeNet due to the nature of the ZigBee protocol It is not recommended to use processor s power down modes directly by manipulating the processor registers Instead use functions fw registerSleep fw forceToSleep fw appReadyToSleep fw forceWakeup see Section 3 3 6 Section 3 3 7 Section 3 3 8 Section 3 3 9 to force sleeping or setting active sleep duty cycle NOTE Power down modes should not be used on routers or coordinator 2 6 eZeeNet Hardware Resource Allocation eZeeNet allocates some hardware resources for their internal use They should not be used by user s application Also eZeeNet uses specific settings of the MCU which cannot be changed by direct manipulations with the registers or fuse bits For details refer to ATmega1281V manual 6 and ZigBit data sheet 5 The allocated hardware resources are listed in Table 4 They do not
56. lling non interrupt context context Restrictions Used for coordinator only Table 27 FW LogicalAddressEvents t struct Type Name Description void const addLogicalNodeAddr the callback function that is NodeLogicallnf_t called by eZeeNet if a new node addr with logical address has joined the network void const deleteLogicalNodeAddr the callback function that is NodeLogicallnf_t called by eZeeNet if an existing addr node with logical address has left the network Table 28 NodeLogicalInf t struct Type Name Description NodeLogicalAddr t logicalAddr logical address of the node NWKAddar t NWKAddr NWK address of the node NOTE This function may be used on the coordinator only Callback functions will be issued for all adding or deleting node events within entire network not only for coordinator s child devices 2006 MeshNetics Page 45 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics 4 3 8 fw_dataRequest Data Sending Data transmission request FW DataRequest t structure is described in Table 30 FW DataStatus t type is described in Table 29 NOTE The FW DataRequest t structure could be formed dynamically or even allocated in stack There is no need to keep formed request in memory until corresponded acknowledgement will be received result t fw dataRequest const FW DataRequest t params void conf uint8 t handle FW D
57. ments none Return none value Calling non interrupt context context Restrictions none NOTE This function disables the automatic networking function see autoNetwork parameter Table 16 temporarily To enable automatic networking the node should execute fw_joinNetwork function see Section 4 3 4 4 3 6 fw_isJoined Check Networking Status Purpose Request a node for networking status Function bool fw isJoined void prototype Arguments none Return TRUE the node is in the network value FALSE the node is not joined to the network or it has been orphaned by its parent Calling both interrupt and non interrupt context context Restrictions none NOTE Due to asynchronous nature of the network if this function returns TRUE that means that the node is in the connected state but it does not mean that subsequent network data transmissions will be successful 2006 MeshNetics Page 44 84 EZEENET SOFTWARE 1 6 4 3 7 fw registerLogicalAddressEvents Register Logical Addressing Notification Handlers Purpose Registers the handlers for notification events associated to logical addressing which are opposed to general network events see Section 4 3 3 Function void fw registerLogicalAddressEvents const prototype FW LogicalAddressEvents 6 handlers Arguments handlers pointer to the handlers set FW LogicalAddressEvents t type is described in Table 27 Return none value Ca
58. mework functions Function fw setUserLoop fw getSystemTime fw userEntry fw warmReset fw setParam fw getParam fw eepromWrite fw eepromRead fw registerSleep Ew fw appReadyToSleep fw forceWakeup 3 2 Call Sequences Program initialization sequence is shown in Figure 3 Going to sleep sequences are shown in Figure 4 and Figure 5 Figure 6 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL HAL HAL Framework s activities in preparing and going to sleep Framework TOSH interrupt enable fw_setUserLoop period userLoop Meshfletics User s Application fw_userEntry User s HAL initialization Interrupts are disabled this moment User should set global interrupt flag enabled User s application is being initialized User s workflow is implemented in userLoop function periodically called Figure 3 Application initialization sequence Framework User s Application fw ReadyToSleep User s application activities in preparing to sleep fw appReadyToSleep Sleep phase wakeup Figure 4 Going to sleep sequence when initiated by Framework Page 20 84 2006 MeshNetics EZEENET SOFTWARE 1 6 User s Application Framework HAL fw ForceToSleep g
59. n nennen ennnernennseens 15 2 8 Memory Management nnee 16 2 9 Use of Standard C libraries rrnnrrrnnrvrnrnnvvernnnvnnrr 16 2 10 TinyOS FUNCTIONS nnen nennen ennen 17 3 Framework Interfaces rrnssvrrnnnvrrnnnvennnnn 19 3 1 Function Summary ananas ennen 19 3 2 Call 56 19 3 3 Detailed Description annae 22 3 3 1 Data Structures annen 22 3 3 2 fw userEntry Initialize User s Application 23 3 3 3 fw setUserLoop Set User s Loop 23 3 3 4 fw_getSystemTime Get System Time 23 3 3 5 fw warmReset Warm Reset 24 3 3 6 fw registerSleep Register User s Handlers for Power Management 24 3 3 7 fw forceToSleep Force 25 3 3 8 fw appReadyToSleep Ready to Sleep MACANO EE 25 3 3 9 fw forceWakeup Force the node to wake TEE TTT 26 3 3 10 fw_eepromWrite Direct Write to EEPROM26 3 3 11 fw_eepromRead EEPROM Direct 27 3 3 12 fw setParam Set eZeeNet Parameter 28 3 3 13 fw getParam Get eZeeNet Parameter 28 2007 MeshNetics EZEENET SOFTWARE 1 6 6 2 Detailed description nanne nennen 72 6 2 1 eneen 12 G22 WEDS en 72 2 0 12 0224 SENGOIS escien 73 7 Application Development nanne 75 7 1 _ Directory Structure aaan eenneenenneerrenn 75 7 2 Building Custom Application 15 7 2 1 Target Environment and Tools 15 7 2 2 AVR Studio Projects 16 7 2 3 Building Procedure
60. nitialization procedure that indicates that the module is ready to accept the data At startup eZeeNet configures all the resources listed in Table 4 fw registerSleep Register User s Handlers for Power Management Purpose Register callbacks for 6 notification that the Framework is ready to sleep 6 notification that the node is waken up Node going to sleep sequence is shown in Figure 4 and Figure 5 Function void fw registerSleep void prototype fwReadyToSleep void void wakeup void Arguments fwReadyToSleep pointer to the user s function that is called by eZeeNet when it decides to sleep This is the right place to prepare all users peripheral resources for sleeping phase to move them to tri state etc wakeup pointer to the user s function that is called when eZeeNet is waken up Meshfletics 3 3 5 3 3 6 2006 MeshNetics Page 24 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL none interrupt and non interrupt context Should be used on the end devices only Meshfletics Return value Calling context Restrictions NOTES After fwReadyToSleep is called back user is yet allowed to transmit data In this case Framework will call fwReadyToSleep once again fwReadyToSleep will not be called back when fw dataIndicationControl function has been called with the enable parameter set to FALSE in other words when the data indication is disabled within Framework
61. nnot be concurrently accessed They should be processed in series Table 62 Sensors interface functions Function Description resull t Open id th sensor sensor open uint8 t id Returns FAIL if there is a hardware error encountered or there is no such sensor or SUCCESS otherwise Page 73 84 uint8 t Returns buttons current state in binary Meshfletics 6 2 4 2006 MeshNetics EZEENET SOFTWARE 1 6 1 2 chiletics EZEENET API REFERENCE MANUAL result t Closes id th sensor sensor close uint8 t id Returns FAIL there is a hardware error encountered or there is no such sensor or SUCCESS otherwise result t Get data from id th sensor sensor getData uint8 t id void dataReady bool dataReady pointer to sensor data error float data handler error hardware error flag data sensor data Returns FAIL if there is no such sensor or the recent request has not been finished yet or SUCCESS otherwise 2006 MeshNetics Page 74 84 EZEENET SOFTWARE 1 6 7 Application Development 7 1 Directory Structure The directories containing the files required for application development are listed in Table 63 Table 63 The eZeeNet Software files used for application development Directory Description JAPI Framework Header and library files for JAPI Stack eZeeNet Framework JAPI StackSupport Stack and Stack Support Source header
62. ns FAIL if id in param is out of range or SUCCESS value otherwise Page 28 84 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL This function should be called in the non interrupt context but This function can call implicitly fw eepromRead function its Parameter id See the description of FW ParamID t type in Table 15 Parameter value See the description of FW ParamValue t type in Table 16 role nodeCapability logicalAddr NWKAddr macAddr panID act PANID channel channelMask 11 txPower parentAddrInfo childrenAddrInfo autoNetwork powerDuration securityKey manufacturerId model Id hardsoftId dataRetryMax dataDeliveryTimeout syncPeriod gpioConfig uartDTR uartSpeed Page 29 84 Calling context interrupts should be enabled Restrictions restrictions are also imposed Table 14 FW Param t struct FW ParamID t id FW ParamValue t value Table 15 FW_ParamlD t type FW NODE ROLE PARAM ID FW NODE CAPABILITY PARAM ID FW NODE LOGICAL ADDR PARAM ID FW NODE ADDR PARAM ID FW MAC ADDR PARAM ID FW PANID PARAM ID FW ACTUAL PANID PARAM ID FW CURRENT CHANNEL PARAM ID FW CHANNEL MASK PARAM ID FW 01 PARAM ID FW TX POWER PARAM ID FW PARENT ADDR INFO PARAM ID FW CHILDREN ADDR INFO PARAM ID FW AUTO NETWORK PARAM ID FW POWER DURATION PARAM ID FW SECURITY KEY PARAM ID FW MANUFACTURER ID PARAM ID FW MODEL ID PARAM ID FW HARDWARE S
63. nt8 t addr uint8 t length uint8 t data addr device address void f bool result length packet length data user data pointer the operation completion handler Returns FAIL if previous read write operation has not been completed yet or SUCCESS otherwise Table 42 I2CMode t struct I2CClockRate t clockrate IC clock rate For more details see Table 43 Table 43 I2CClockRate ttype clock rate 120 CLOCK RATE 250 250Kb s I2C CLOCK RATE 125 125Kb se 2006 MeshNetics Page 60 84 EZEENET SOFTWARE 1 6 leshiletics EZEENET API REFERENCE MANUAL 120 CLOCK RATE 62 62 5Kb s 5 3 6 UART Interface UART interface is intended for accessing USART s devices in UART mode The UART interface functions are listed in Table 44 They are defined in uart h header and they are implemented in uart c module There are two macros defining the channel used in the UART mode 6 UART CHANNEL 0 6 UART CHANNEL 1 UART CHANNEL 0 can also work in SPI mode For more details see Section 5 3 7 There are three flow control modes to be selected 6 UART FLOW CONTROL NONE hardware flow control is not used 6 UART FLOW CONTROL HARDWARE hardware flow control is used 6 UART DTR CONTROL hardware terminal readiness control is used 2006 MeshNetics Page 61 84 EZEENET SOFTWARE 1 6 Table 44 UART interface functions Function Description
64. nts during its execution Table 12 EEPROMParams t struct Type Name Description uintl6 t addr Start address uint8 t data Start data pointer uintl6 t length Block size EEPROMStatus t status Status of operation see Table 13 for details Table 13 EEPROMStatus 1 enumeration Value Description EEPROM SUCCESS STATUS Operation has been completed successfully EEPROM ADDR TOO FAR STATUS addr parameter is out of range EEPROM LENGTH TOO LONG STATUS length parameter is out of range EEPROM HARDWARE ERROR STATUS Hardware error has occurred EEPROM OPERATION OVERFLOW STATUS Previous writing reading request has not been finished yet EEPROM INVALID DATA POINTER STATUS Start data pointer in parameters Is equal to 0 Meshfletics 3 3 11 fw_eepromRead EEPROM Direct Reading Read a block of bytes from EEPROM User s area starts from the address defined by FW EEPROM START macros void fw_eepromRead EEPROMParams t params params see Table 12 none This function should be called in the non interrupt context but interrupts should be enabled Page 27 84 Purpose Function prototype Arguments Return value Calling context 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Restrictions eZeeNet does not support nested or overlapped calls of this function that can happen potentially because of TinyOS events and us
65. ocation where the API directory was copied For example the NVSampleapplication directory which may encompass different application projects can be set next to API directory EGG VRV HEHEH HEHE HEHE HEHE HEHE HEHE HEHEH HH HH LED Blinking Implementation Project Makefile HE HEHE HEHE HEHEH HEHEH HEHE HEHE HEHE HEHE HEHE HEHEH HH HH General Flags PROJECT blink MCU atmegal281 TARGET blink elf Co 0 Options common to compile link and assembly rules COMMON mmcu s MCU Page 78 84 Meshfletics 2006 MeshNetics EZEENET SOFTWARE 1 6 Compile options common for all C compilation units CFLAGS COMMON CFLAGS Wall D WDM1281 Os g fsigned char Assembly specific flags ASMFLAGS COMMON ASMFLAGS x assembler with cpp Wa gdwarf2 Linker flags LDFLAGS S COMMON Intel Hex file production flags HEX FLASH FLAGS R eeprom HEX EEPROM FLAGS j eeprom HEX EEPROM FLAGS set section flags eeprom alloc load HEX EEPROM FLAGS change section lma eeprom 0 HH Framework defines Path to Stack StackSupport HAL TOSLib SUPPORT DIR SUPPORT DIR API Modules directories paths APP DIR STACK DIR STACK SUPPORT DIR TOSLIB DIR HAL DIR FRAMEWORK DIR SUPPORT DIR Stack SUPPORT DIR StackSupport SUPPORT DIR TOSLib 5 SUPPORT DIR
66. onforms to ZigBee 1 0 specification It provides easy to use multi point networking with a routing mechanism that optimizes the network traffic and reduces power consumption The eZeeNet software offers a user friendly API for network and smart power management including data exchange network formation node join PAN ID management channel selection TX power control etc The eZeeNet layered software is composed by four principal modules eZeeNet Stack eZeeNet Framework SerialNet Module and Hardware Abstraction Layer HAL see Figure 1 OEM extensions Kr WK MAG APS ZDO Task scheduler i ap Figure 1 Simplified diagram of the eZeeNet software 2006 MeshNetics Page 11 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL The eZeeNet Stack can be easily reconfigured to run on end device router or coordinator Easy to use interfaces simplify basic network operations like data exchange network formation node join PAN ID management channel selection TX power control and more The eZeeNet Framework provides user application with an access to system resources services timers memory etc it implements multitasking for cooperative execution of user code along with networking Besides it supports power management mechanism to enable low duty cycle and low power consumption HAL is an interface between ZigBit module and the MCU peripherals givin
67. p Table 4 Hardware resources used by eZeeNet Table 5 Standard types nnn Table 6 bool enumeration eene Table 7 result_t enumeration Table 8 The callable TinyOS functions Table 9 Framework functions Table 10 Framework API data types Table 11 FW_ResetReason_t type Table 12 EEPROMParams t struct Table 13 EEPROMStatus enumeration Table 14 FW Param t struct Table 15 FW_ParamlD_t type Table 16 FW_ParamValue_t union Table 17 FW LQIParam t 1 Table 18 FW ChildrenAddrinfo tstruct Table 19 FW PowerDuration tstruct Table 20 FW_USART Config tstruct Table 21 FW USARTState t type Table 22 FW GPIOConfig struct Table 23 eZeeNet stack functions Table 24 NodeAddrMode 1 type Table 25 The eZeeNet network configuration parameters 42 Table 26 FW NetworkEvents tstruct Table 27 FW LogicalAddressEvents t struct 2007 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Page 7 84 Meshfletics Table 55 SPlDataOrder t type nnen ennn 69 Table 56 App Timer interface functions 70 Table 57 TimerMode_t typ nnee 70 Table 58 MeshBean2
68. pen enable LED control 6 2 2 leds on turn the LED on 6 2 2 leds off turn the LED off 6 2 2 leds toggle toggle the LED 6 2 2 leds close disable LED control 6 2 2 buttons open register handlers for buttons 6 2 3 events buttons close close the handlers 6 2 3 buttons readState read buttons state 6 2 3 sensor open open on board sensors 6 2 4 sensor close close on board sensors 6 2 4 sensor getData get sensor s data 6 2 4 2006 MeshNetics Page 71 84 EZEENET SOFTWARE 1 6 6 2 Detailed description 6 2 1 DIP switches DIP switches interface is described in Table 59 The interface functions are defined in sliders h header and they are implemented in sliders c module Table 59 DIP switches interface functions uint8 t Return state of 3 on board DIP switches sliders read void 6 2 2 LEDS The LED interface functions are described in Table 60 They are defined in leds h header and they are implemented in leds 6 module Table 60 LED interface functions void leds open void Switch on the peripheral supporting LEDs control set up the corresponding MCU pins to outputs void leds on uint8 6 n Turn on the n th LED void leds off uint8 t n Turn off the n th LED void leds toggle uint8 t n Change the n th LED state to opposite void leds close void Switch off the peripheral supporting LEDs control set up the corresponding MCU pins to tri state 6
69. rent calibration period is over Default value 60 Table 17 FW_LQIParam _t struct IEEEAddr t extAddr MAC address of the node from which LQI and RSSI values are requested uint8 t Let LQI value ranged by 0 255 the node is not in the network or LQI information is not available 0 is returned int8 t rssi RSSI value expressed in dBm RSSI is not available then 128 is returned 2006 MeshNetics Page 34 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Table 18 FW ChildrenAddrinfo t struct uint8 t size Children MAC address array size User sets this parameter to max address list size Framework sets this parameter to the actual number of returned addresses Maximum number of children is defined by the sum of MAX END DEVICE and MAX ROUTER NEIB NUMBER see also Table 25 NodeAddrInf t addr Children MAC and network address array Allocated by user Table 19 FW PowerDuration t struct uint16 t active Active phase duration in 10 milliseconds units Default value 10 uintl6 t sleep Sleep phase in 100 milliseconds units duration Default value 10 Table 20 FW_USART Config t struct FW USARTState t state State USART See Table 21 for details Default value FW USART MODE OFF union mode USART mode See Section 5 3 6 and Section 5 3 7 UARTMode t uart for detail
70. rieved for links within one hop radius LQI is not provided for multi hop links ints t txPower RW Transmission power in dBm Power level resolution is typically 3 dB NOTE This setting will be applied to the radio circuitry during the warm reset procedure or hardware reset Thus the accurate setting of TX power requires warm reboot of the module Default value 0 NodeAddrinf t parentAddrI R Parent MAC and network addresses If the nfo module is not in the connected state see Section 4 3 6 or it is run as coordinator 0 will be returned instead of MAC address Memory for the parameter should be allocated by user 2006 MeshNetics Page 31 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL FW ChildrenAddrin childrenAdd R Children MAC and network address list See fo t rInfo Table 18 for details If the module is not in the connected state see Section 4 3 6 or it is run as an end device the list will be empty Memory for the parameter should be allocated by user uintl6 t autoNetwork RW x The parameter controls the node s activity at power up or when it detects connection loss This is the interval in seconds between two attempts to join the network in case of network loss Zero value disables automatic joining Default value 0 FW PowerDuration powerDurati RW Sleep and active period for end device See t on
71. s SPIMode t spi Table 21 FW USARTState t type FW USART MODE OFF USART is not used FW USART MODE UART USART is in UART mode FW USART MODE SPI USART is in SPI mode 2006 MeshNetics Page 35 84 EZEENET SOFTWARE 1 6 MANUAL Page 36 84 EZEENET API REFERENCE GPIO number GPIO mode See 6 and Section 5 2 for details Default value GPIO 2 Table 22 FW GPIOConfig t struct gpio mode uint8 gt GPIOMode t Mesh eties 2006 MeshNetics EZEENET SOFTWARE 1 6 4 eZeeNet Stack Interfaces 4 1 Function Summary Functions described in this chapter are intended for 6 network management start network restart network stop network 6 network monitoring 6 data transmission and receiving Data can be transmitted in two ways using logical or network addressing As advantage logical address of a node is not fixed Logical addressing is preferable when the address of each node is known in advance or when the addresses can be preset during the commissioning procedure As disadvantage address conflicting is possible and should be resolved manually or by dedicated software running on the coordinator node NWK addresses are allocated and changed dynamically NWK addressing scheme is only recommended for initial network addressing setup when application receives the data from some unknown node or when several nodes in the networ
72. s or floating point manipulations in the ISRs 96 K code section is only available for user 6 K data section is only available for user It s strongly recommended to follow this size restriction as violation would make stack corrupted 6 Keep the stack size as low as possible Avoid allocation of the memory by malloc 681106 free functions in the working phase of the software due to the unpredictable processing time and possible garbage collection problems if the order of the allocation and freeing is not proper Normally allocation should be done at the initialization phase 2006 MeshNetics Page 10 84 EZEENET SOFTWARE 1 6 Mesh etits EZEENET API REFERENCE MANUAL 6 Avoid posting multiple tasks Instead organize your code in form of infinite loop and check your status variables in the beginning of the loop 6 Check the code data size before running the application To determine the size of an application image file correctly use the avr size utility which comes with AVR Tools 8 If a part of the code is located higher than 0xFCO0 address then it will not be downloadable with Serial Bootloader In this case you should load the code via JTAG only in disabling UART booting by proper fuse bits 2 3 Functional Diagram and Description of eZeeNet Software eZeeNet is a robust IEEE802 15 4 ZigBee software 1 that forms a wireless network based on the ZigBit module see Section 2 4 The eZeeNet c
73. s successful or negative value otherwise result t appTimer start int Start timer id TimerMode t mode uint32 t delay id descriptor mode application timer mode see Table 57 delay delay in milliseconds Returns FAIL if there is no such descriptor or SUCCESS otherwise result t appTimer stop int Stop application timer id id descriptor Returns FAIL if there is no such descriptor or SUCCESS otherwise result t appTimer close int Cancel handler that was associated with id id descriptor Returns FAIL if there is no such descriptor or SUCCESS otherwise Table 57 TimerMode ttype TIMER REPEAT MODE Timer works in continuous mode TIMER ONE SHOT MODE Timer will count only one time 2006 MeshNetics Page 70 84 EZEENET SOFTWARE 1 6 6 MeshBean Drivers 6 1 Function Summary This set of interfaces is intended to support the MeshBean2 board It is not 3 part of user API but it can be reused by user s application as samples These interfaces support DIP switches reading LEDs manipulation buttons temperature sensor management and data reading light sensor management and data reading battery voltage measurement These interfaces are declared in the following header files sliders h leds h buttons h sensors h Table 58 MeshBean2 driver functions Function Description Ref sliders read read DIP switches 6 2 1 leds o
74. setReason Initialize the pin Connected to the LED gpio setConfig LED GPIO OUTPUT 2006 MeshNetics Page 77 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Open and start blink timer int handle handle appTimer open timerFired appTimer start handle TIMER REPEAT MODE 1000 Start main loop fw setUserLoop 20 mainLoop Akk KKK kikk kkk kkk kkk kkk kkk Main loop kkk kkk void mainLoop Addtional user s activities Akk kikk kkk kkk kkk kkk kkk Blink timer handler void timerFired static bool on 0 gpio SetState LED on on on 0 1 Toggle eof blink c The makefile intended to build this minimum application is given below It refers the software files as they are structured in Table 63 so that the structure should be kept unchanged when copied to the user s hard drive Also for correct referencing in building multiple applications the blink aps project file the makefile and the blink C file all should be located in the same directory blink which in turn should be placed to the same l
75. t fw ReadyToSleep User s application activities in preparing to sleep fw_appReadyToSleep gt Framework s activities in preparing and going to sleep Sleep phase wakeup lg en SEP Figure 5 Going to sleep sequence when initiated by user s application User s Application Framework HAL fw_appReadyToSleep gt Hardware interrupt during sleep Sleep phase lt lt User interrupt handler invoked interrupt context post task non interrupt context fw forceWakeup Framework activities in king en waking up Active phase Figure 6 Waking up sequence when initiated by user s interrupt handler during sleep 2006 MeshNetics Page 21 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshiletics 3 3 Detailed Description 3 3 1 Data Structures There are the following data types frequently used Table 10 Framework API data types Node role 1 e O Possible node s roles Node logical address Node address information Warm reset has been performed Cold reset occurred Watchdog timer caused the reset Page 22 84 ZIGBEE COORDINATOR TYPE ZIGBEE ROUTER TYPE ZIGBEE END DEVICE TYPE 2 NodeLogicalType t typedef uint64 t IEEEAddr t MAC address typedef uint16 t PANID t PAN ID bool coordinator NWKAddr t networkAddr IEEEAddr t extAddr NodeAddrInf t Table 11 FW ResetReason
76. to be equal 3 at least Default value 5 4 3 3 fw registerNetworkEvents Register the Network Event Handlers Purpose Register the network event handlers General network events are considered as opposed to those events associated with logical addressing see Section 4 3 7 Function void fw registerNetworkEvents prototype FW NetworkEvents t handlers Arguments handlers pointer to network event handlers set FW NetworkEvents t type is described in Table 26 Return none value Calling non interrupt context context Restrictions none Table 26 FW NetworkEvents t struct Type Name Description void void joined The callback function that is called by eZeeNet if a node is joined to the network successfully void void lost The callback function that is called by eZeeNet if a node lost network connection 2006 MeshNetics Page 42 84 EZEENET SOFTWARE 1 6 Type Name Description void const addNode The callback function that is called by NodeAddrInf t eZeeNet if a child node with addr address has been added Note that it is an NWK address see Section 4 1 Address information should be handled or copied before function return void const deleteNode The callback function that is called by NodeAddrinf t eZeeNet a child node with addr address has been deleted Note that it is an NWK address see Section 4 1 Address informat
77. to the software part executing in the non interrupt context mode ATOMIC SECTION ENTER Open critical section This macro temporarily disables interrupts and saves the interrupt context Critical sections should be used to make correct reading writing from to the variables accessible both in interrupt and non interrupt contexts And critical sections should be used in the hardware drivers to enclose the i o operations ATOMIC SECTION LEAVE Close critical section This macro closes critical section previously opened by ATOMIC SECTION ENTER Example ATOMIC SECTION ENTER do something critical ATOMIC SECTION LEAVE 2006 MeshNetics Page 17 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Function Description TOSH run next task Normally there is no need to use this function because eZeeNet main loop already does it But this function can be called in user s application to provide waiting for the event from eZeeNet when some pending operation is executed Example bool flag Flag to indicate when the operation is completed flag FALSE Clear flag operation Operation start while flag TOSH run next task Wait operation completion Function completing the operation complete flag TRUE TOSH interrupt enable Enable global interrupts TOSH interrupt disable Disable global interrupts NOTES Instead of
78. ts doc2510 pdf 10 JTAGICE mkll User Guide http www atmel com dyn resources prod documents doc2562 pdf 2006 MeshNetics Page 9 84 EZEENET SOFTWARE 1 6 2 System Architecture Overview 2 1 General Software Specification Software resource usage is summarized in Table 1 These numbers are valid for the following network configuration e Maximum child number 5 6 Maximum network depth 5 Maximum PAN descriptor numbers for network discovery 5 Table 1 Firmware storage consumption Section name Section size Code 96K Data 6K Stack 1K NOTE The size of code section in the table is accounted for using all functions in the libraries Real application may be using not all of them For instance the Peer to Peer application see Section 7 3 2 is taking 98K in code segment 2 2 General Limitations on User s Code The cooperative multitasking model used in the eZeeNet software imposes some limitations on the user s code running under eZeeNet 6 Do not call eZeeNet functions directly from ISRs Instead buffer the data and post the TinyOS task by TOSH post function Or organize your semaphores using volatile variables Avoid data processing in the ISR and make ISRs as faster as possible Do not disable interrupts for a long time more than several tens of microseconds to provide normal operation of the ZigBee stack and hardware interfaces like UART Avoid calling C library function
79. ts variable UARTHardwareControl rts UART CHANNEL 1 only must be used and hardware flow control mode must be selected Parameter descriptor UART descriptor 6 rts destination address UARTHardwareControl t type is defined in Table 50 Returns 6 1 indicating at least one of the following errors incorrect UART descriptor when opening UART with uart open flags parameter was not set to UART FLOW CONTROL HARDWARE rts address is NULL mode is not supported 6 otherwise 0 is returned 2006 MeshNetics Page 65 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics Function Description UART baud rate See Table 46 for details UART data length See Table 47 for details UART parity mode See Table 48 for details UART stop bits number See Table 49 for details 1200 baud rate 9600 baud rate 38400 baud rate descriptor UART descriptor dtr destination address UARTHardwareControl t type is defined in Table 50 1 indicating at least one of the following errors incorrect UART descriptor when opening UART with uart open the flags parameter was not set to UART DTR CONTROL mode is not supported otherwise 0 is returned int uart dtr int descriptor Read DTR pin potential into dtr variable UART CHANNEL 1 only must be used and hardware flow control mode must be selected rameter R
80. ttype bool endDevice NodeCapability t typedef uint16 gt NodeLogicalAddr t typedef uint16 t NWKAddr t Node NWK address typedef enum typedef struct bool router typedef struct FN WARM RESET FW COLD RESET FW WD RESET 2006 MeshNetics EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL fw userEntry Initialize User s Application Purpose Initialize user s HAL and application This function should be implemented in user s code Main purpose Is user s HAL and application initialization Function void fw userEntry FW ResetReason t reason prototype Arguments reason hardware reset reason warm cold or watch dog reset see Table 11 Return none value Calling This function is called by eZeeNet Framework during initialization context phase see Figure 3 Interrupts are disabled Restrictions none fw setUserLoop Set User s Loop Purpose Set parameters of user s handler Function void fw setUserLoop uint32 t period void prototype userLoop void Arguments period call interval in milliseconds userLoop user s handler periodically called This function is usually called at the end of fw userEntry function see Section 3 3 2 If period is set to 0 then userLoop will be called by Framework as soon as possible Return none value Calling Should be called during initialization phase only see Figure 3 context Restrictions none fw get
81. ware Abstraction Layer FC Inter Integrated Circuit IO input output IRQ interrupt request ISR interrupt service routine LED light emitting diode LQI Link Quality Indication LSB Least Significant Bit MAC Media Access Control layer MCU Microcontroller unit MSB Most Significant Bit NWK Network layer 2006 MeshNetics Page 8 84 EZEENET SOFTWARE 1 6 EZEENET API REFERENCE MANUAL Meshfletics PAN Personal Area Network PC Personal computer RSSI Received Signal Strength Indication RX receive SPI Serial Peripheral Interface TX transmit UART Universal Asynchronous Receiver Transmitter USART Universal Synchronous Asynchronous Receiver Transmitter ZDK ZigBee Development Kit ZEK ZigBee Evaluation Kit References 1 eZeeNet EEE802 15 4 ZigBee Software Product Datasheet MeshNetics Doc M 251 02 2 eZeeNet Software 1 4 SerialNet Reference Manual AT Command Set MeshNetics Doc P EZN 452 01 3 Using the GNU Compiler Collection By Richard M Stallman and the GCC Developer Community 4 avr libc Reference Manual 1 4 3 5 ZigBit OEM Module Product Datasheet MeshNetics Doc M 251 01 6 Atmel 8 bit AVR Microcontroller with 64K 128K 256K Bytes In System Programmable Flash 2549F AVR 04 06 7 ZigBit Development Kit 1 0 User s Guide MeshNetics Doc S ZDK 451 8 WinAVR User Manual 20060125 By Eric B Weddington 9 AVR Studio User Guide http Awww atmel com dyn resources prod_documen
Download Pdf Manuals
Related Search
Related Contents
Netzwerk-Videoserver Art. Nr. 11909 A Fleur d`Eau Piscine Fujitsu Siemens Computers CT2000 User's Manual falconi_s_me_rcla Home Decorators Collection 0322710280 Instructions / Assembly Manual de Usuario Condicionador de Ar Split ative! PM-650 - Profoon Tripp Lite DWM60100XX flat panel wall mount Copyright © All rights reserved.
Failed to retrieve file