/***************************************************************************
 * Copyright (c) 2005, Research Group Embedded Interaction                 *
 * Matthias Kranz <matthias@hcilab.org>                                    *
 * Paul Holleis <paul@hcilab.org>                                          *
 * Albrecht Schmidt <albrecht@hcilab.org>                                  *
 * All rights reserved.                                                    *
 *                                                                         *
 * Redistribution and use in source and binary forms, with or without      *
 * modification, are permitted provided that the following conditions      *
 * are met:                                                                *
 *                                                                         *
 *    * Redistributions of source code must retain the above copyright     *
 *      notice, this list of conditions and the following disclaimer.      *
 *    * Redistributions in binary form must reproduce the above copyright  *
 *      notice, this list of conditions and the following disclaimer in    *
 *      the documentation and/or other materials provided with the         *
 *      distribution.                                                      *
 *    * Neither the name of the <ORGANIZATION> nor the names of its        *
 *      contributors may be used to endorse or promote products derived    *
 *      from this software without specific prior written permission.      *
 *                                                                         *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS     *
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT       *
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR   *
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT    *
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   *
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT        *
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,   *
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON       *
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR      *
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF      *
 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH    *
 * DAMAGE.                                                                 *
 **************************************************************************/

#ifndef __BT96040_ADDON_H__
#define __BT96040_ADDON_H__ 007


void SDisplayInit();
void SDisplaySensorsInit();
void SDisplaySensorsOn();
void SDisplaySensorsOff();
void DisplaysOn();
void DisplaysOff();
// pin defs for sensors

// accelerator ADXL311
//power is supplied via the awarecon connector
#define PIN_ACCL_ADXL_POWER       PIN_CONN_09
#define PIN_ACCL_ADXL_XOUT        PIN_CONN_11//channel AN1
#define PIN_ACCL_ADXL_YOUT        PIN_CONN_12//channel AN2
#define PIN_ACCL_ADXL_ZOUT        PIN_CONN_13
#define PIN_ACCL_ADXL_UOUT        PIN_CONN_14

//power is supplied via the awarecon connector
#define TRIS_ACCL_ADXL_POWER      TRIS_CONN_09
#define TRIS_ACCL_ADXL_XOUT       TRIS_CONN_11
#define TRIS_ACCL_ADXL_YOUT       TRIS_CONN_12
#define TRIS_ACCL_ADXL_ZOUT       TRIS_CONN_13
#define TRIS_ACCL_ADXL_UOUT       TRIS_CONN_14

#define ADCH_ACCL_ADXL_XOUT       ADCH_CONN_11
#define ADCH_ACCL_ADXL_YOUT       ADCH_CONN_12
#define ADCH_ACCL_ADXL_ZOUT       ADCH_CONN_13
#define ADCH_ACCL_ADXL_UOUT       ADCH_CONN_14

// distance sensor is on the same pins as U accelerometer
#define PIN_DIST_GP2D_POWER       PIN_ACCL_ADXL_POWER
#define TRIS_DIST_GP2D_POWER      TRIS_ACCL_ADXL_POWER
#define PIN_DIST_GP2D_OUT         PIN_ACCL_ADXL_UOUT
#define TRIS_DIST_GP2D_OUT        TRIS_ACCL_ADXL_UOUT
#define ADCH_DIST_GP2D_OUT        ADCH_ACCL_ADXL_UOUT
#define PIN_DIST_GP2D_GND         PIN_ACCL_ADXL_ZOUT
#define TRIS_DIST_GP2D_GND        TRIS_ACCL_ADXL_ZOUT


// light sensor A905014
//power is not supplied via the awarecon connector
//#define PIN_LIGHT_A905014_POWER   PIN_CONN_01
#define PIN_LIGHT_A905014_OUT     PIN_CONN_13
//power is not supplied via the awarecon connector
//#define TRIS_LIGHT_A905014_POWER  TRIS_CONN_01
#define TRIS_LIGHT_A905014_OUT    TRIS_CONN_13
#define ADCH_LIGHT_A905014        ADCH_CONN_13////????//channel AN3

// ATTENTION: Make sure NOT to use chanel PIN_CONN_14 as there
// is a wiring failure.


#define PIN_DISPLAY_POWER           PIN_CONN_17
#define TRIS_DISPLAY_POWER            TRIS_CONN_17
// i2c sensors:
#define PIN_DISPLAY_1_I2C_SDA           PIN_CONN_18
#define TRIS_DISPLAY_1_I2C_SDA          TRIS_CONN_18

#define PIN_DISPLAY_1_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_1_I2C_SCL          TRIS_CONN_16

//power is not supplied via the awarecon connector
//#define PIN_DISPLAY_1_I2C_POWER         PIN_CONN_01
//#define TRIS_DISPLAY_1_I2C_POWER        TRIS_CONN_01
//----------------------------------------------------
#define PIN_DISPLAY_2_I2C_SDA           PIN_CONN_07
#define TRIS_DISPLAY_2_I2C_SDA          TRIS_CONN_07

#define PIN_DISPLAY_2_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_2_I2C_SCL          TRIS_CONN_16
//----------------------------------------------------
#define PIN_DISPLAY_3_I2C_SDA           PIN_CONN_06
#define TRIS_DISPLAY_3_I2C_SDA          TRIS_CONN_06

#define PIN_DISPLAY_3_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_3_I2C_SCL          TRIS_CONN_16
//----------------------------------------------------
#define PIN_DISPLAY_4_I2C_SDA           PIN_CONN_05
#define TRIS_DISPLAY_4_I2C_SDA          TRIS_CONN_05

#define PIN_DISPLAY_4_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_4_I2C_SCL          TRIS_CONN_16
//----------------------------------------------------
#define PIN_DISPLAY_5_I2C_SDA           PIN_CONN_04
#define TRIS_DISPLAY_5_I2C_SDA          TRIS_CONN_04

#define PIN_DISPLAY_5_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_5_I2C_SCL          TRIS_CONN_16
//----------------------------------------------------
#define PIN_DISPLAY_6_I2C_SDA           PIN_CONN_03
#define TRIS_DISPLAY_6_I2C_SDA          TRIS_CONN_03

#define PIN_DISPLAY_6_I2C_SCL           PIN_CONN_16
#define TRIS_DISPLAY_6_I2C_SCL          TRIS_CONN_16
//----------------------------------------------------

// Compass
#define PIN_COMPASS_03_I2C_SCL			PIN_DISPLAY_4_I2C_SCL
#define TRIS_COMPASS_03_I2C_SCL			TRIS_DISPLAY_4_I2C_SCL

#define PIN_COMPASS_03_I2C_SDA			PIN_DISPLAY_4_I2C_SDA
#define TRIS_COMPASS_03_I2C_SDA			TRIS_DISPLAY_4_I2C_SDA
//----------------------------------------------------

// #ifdef BTADDON_BUTTONS or DIST_SCROLL, use buttons (i.e. input)
// instead of some displays
#define BT_BUTTON_PIN_1                    PIN_DISPLAY_3_I2C_SDA
#define BT_BUTTON_PIN_2                    PIN_DISPLAY_4_I2C_SDA
#define BT_BUTTON_PIN_3                    PIN_DISPLAY_6_I2C_SDA
#define BT_BUTTON_PIN_4                    PIN_DISPLAY_5_I2C_SDA

#define TRIS_BT_BUTTON_PIN_1               TRIS_DISPLAY_3_I2C_SDA
#define TRIS_BT_BUTTON_PIN_2               TRIS_DISPLAY_4_I2C_SDA
#define TRIS_BT_BUTTON_PIN_3               TRIS_DISPLAY_6_I2C_SDA
#define TRIS_BT_BUTTON_PIN_4               TRIS_DISPLAY_5_I2C_SDA


#endif // __BT96040_ADDON_H__
