Home | History | Annotate | Download | only in mllite
      1 /*
      2  $License:
      3     Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.
      4     See included License.txt for License information.
      5  $
      6  */
      7 /**
      8  *   @defgroup  Message_Layer message_layer
      9  *   @brief     Motion Library - Message Layer
     10  *              Holds Low Occurance messages
     11  *
     12  *   @{
     13  *       @file message_layer.c
     14  *       @brief Holds Low Occurance Messages.
     15  */
     16 #include "message_layer.h"
     17 #include "log.h"
     18 
     19 struct message_holder_t {
     20     long message;
     21 };
     22 
     23 static struct message_holder_t mh;
     24 
     25 /** Sets a message.
     26 * @param[in] set The flags to set.
     27 * @param[in] clear Before setting anything this will clear these messages,
     28 *                  which is useful for mutually exclusive messages such
     29 *                  a motion or no motion message.
     30 * @param[in] level Level of the messages. It starts at 0, and may increase
     31 *            in the future to allow more messages if the bit storage runs out.
     32 */
     33 void inv_set_message(long set, long clear, int level)
     34 {
     35     if (level == 0) {
     36         mh.message &= ~clear;
     37         mh.message |= set;
     38     }
     39 }
     40 
     41 /** Returns Message Flags for Level 0 Messages.
     42 * Levels are to allow expansion of more messages in the future.
     43 * @param[in] clear If set, will clear the message. Typically this will be set
     44 *  for one reader, so that you don't get the same message over and over.
     45 * @return bit field to corresponding message.
     46 */
     47 long inv_get_message_level_0(int clear)
     48 {
     49     long msg;
     50     msg = mh.message;
     51     if (clear) {
     52         mh.message = 0;
     53     }
     54     return msg;
     55 }
     56 
     57 /**
     58  * @}
     59  */
     60