Subversion Repositories HomeAutomation

Rev

Rev 98 | Blame | Last modification | View Log | SVN | RSS feed

/*********************************************************************
 *
 *   Defines functs and funccs and other global definitions.
 *
 *********************************************************************
 * FileName:            $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/funcdefs.h $
 * Last changed:    $LastChangedDate: 2006-11-15 09:40:17 +0100 (Wed, 15 Nov 2006) $
 * By:          $LastChangedBy: johboh $
 * Revision:        $Revision: 99 $
 ********************************************************************/



//<FUNCT>
#define FUNCT_BOOTLOADER 0x0

//<FUNCC> configuration packet
#define FUNCC_BOOT_INIT 0b0000000001 //Start programmring and/or resseting user program to go into bootloader mode.
#define FUNCC_BOOT_ADDR 0b0000000010  //Change programming address.
#define FUNCC_BOOT_DONE 0b0000000101  //End programming, start user program.

//<FUNCC> program packet
#define FUNCC_BOOT_PGM 0b0000000011 //To indicate programming data packet.

//<FUNCC> ack packet
#define FUNCC_BOOT_ACK 0b0000000100 //Ack packet


#define DEFAULT_ID 0x78     // Default ID for bootloader/node when no id is set.
#define DEFAULT_NID 0x00    // Default ID for bootloader/node when no nid is set.


#define NODE_ID_EE  0x00    // EEPROM first index where to look for ID and NID. 
                // NODE_ID_EE = NODE_HAS_ID if has correct ID, otherwise use DEFAULT_ID and DEFAULT_NID
                // NODE_ID_EE + 1 = ID[1]
                // NODE_ID_EE + 2 = ID[0]
                // NODE_ID_EE + 3 = NID
 
#define NODE_HAS_ID 0x2A    // Value which indicate valid ID and NID.


// Definitions for BOOT packets. Which index in data where things are.
#define BOOT_DATA_ADDRL_INDEX 0
#define BOOT_DATA_ADDRH_INDEX 1
#define BOOT_DATA_ADDRU_INDEX 2
#define BOOT_DATA_RID_LOW_INDEX 4
#define BOOT_DATA_RID_HIGH_INDEX 5
#define BOOT_DATA_ERR_INDEX 4

//<ERR>
// Value in BOOT_DATA_ERR_INDEX
#define ACK_ERR_NO_ERROR 0x00 //= no error
#define ACK_ERR_ERROR 0x01 //= error