/***************************************************************************/ /** * @file * @brief User Interface for demo. ******************************************************************************* * # License * Copyright 2020 Silicon Laboratories Inc. *www.silabs.com ******************************************************************************* * * The licensor of this software is Silicon *Laboratories Inc. Your use of this software is *governed by the terms of Silicon Labs Master *Software License Agreement (MSLA) available at * www.silabs.com/about-us/legal/master-software-license-agreement. *This software is distributed to you in Source Code *format and is governed by the sections of the MSLA *applicable to Source Code. * ******************************************************************************/ #pragma once #ifdef __cplusplus extern "C" { #endif #include "glib.h" #include "sl_status.h" /**************************************************************************/ /** * DEMO UI uses the underlying DMD interface and the *GLIB and exposes several wrapper functions to *application. These functions are used to display * different bitmaps for the demo. * ******************************************************************************/ #define APP_NAME_MAX_LENGTH 20 /******************************************************************************* ******************************** ENUMS ************************************ ******************************************************************************/ typedef enum { DEMO_UI_PROTOCOL1, DEMO_UI_PROTOCOL2 } demoUIProtocol; typedef enum { DEMO_UI_LIGHT_OFF, DEMO_UI_LIGHT_ON } demoUILightState_t; typedef enum { DEMO_UI_DIRECTION_PROT1, DEMO_UI_DIRECTION_PROT2, DEMO_UI_DIRECTION_SWITCH, DEMO_UI_DIRECTION_INVALID } demoUILightDirection_t; typedef enum { DEMO_UI_NO_NETWORK, DEMO_UI_SCANNING, DEMO_UI_JOINING, DEMO_UI_FORMING, DEMO_UI_NETWORK_UP, DEMO_UI_STATE_UNKNOWN } demoUIZigBeeNetworkState_t; /******************************************************************************* ****************************** PROTOTYPES ********************************* ******************************************************************************/ /**************************************************************************/ /** * @brief * Initilize the GLIB and DMD interfaces. * * @param[in] void * * @return * void *****************************************************************************/ void demoUIInit(GLIB_Context_t * context); /**************************************************************************/ /** * @brief * Update the display with Silicon Labs logo and *application name. * * @param[in] name name of the current application. * * @return * void *****************************************************************************/ void demoUIDisplayHeader(char * name); /**************************************************************************/ /** * @brief * Update the display with App image. Bool state only *for now. * * @param[in] on status of App * * @return * void *****************************************************************************/ void demoUIDisplayApp(bool on); /**************************************************************************/ /** * @brief * Update the display to show if the bluetooth is *connected to the mobile device. * * @param[in] bool, true if the Light is connected to *mobile device, false otherwise. * * @return * void *****************************************************************************/ void demoUIDisplayProtocols(); /**************************************************************************/ /** * @brief * Clear the Lcd screen and display the main screen. * * @param[in] name - application name * @param[in] showPROT1 - show protocol 1 related icon. * @param[in] showPROT2 - show protocol 2 related icon. * * @return * void *****************************************************************************/ void demoUIClearMainScreen(uint8_t * name); /**************************************************************************/ /** * @brief * Clear the Lcd screen and display the main screen. * * @return * Returns SL_STATUS_OK if successful, error otherwise. *****************************************************************************/ sl_status_t updateDisplay(void); #ifdef __cplusplus } #endif