123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- /**
- * \file MS_health_server_api.h
- *
- * \brief This file defines the Mesh Health Model Application Interface
- * - includes Data Structures and Methods for both Server and Client.
- */
- /*
- * Copyright (C) 2017. Mindtree Ltd.
- * All rights reserved.
- */
- #ifndef _H_MS_HEALTH_SERVER_API_
- #define _H_MS_HEALTH_SERVER_API_
- /* --------------------------------------------- Header File Inclusion */
- #include "MS_access_api.h"
- /* --------------------------------------------- Global Definitions */
- /**
- * \defgroup health_fault_values Fault Values
- * \{
- * This section lists the Fault Values defined for Health Model.
- */
- /** Health Model - Fault Values */
- /** No Fault */
- #define MS_HEALTH_FAULT_NO_FAULT 0x00
- /** Battery Low Warning */
- #define MS_HEALTH_FAULT_BATTERY_LOW_WARNING 0x01
- /** Battery Low Error */
- #define MS_HEALTH_FAULT_BATTERY_LOW_ERROR 0x02
- /** Supply Voltage Too Low Warning */
- #define MS_HEALTH_FAULT_SUPPLY_VOLTAGE_TOO_LOW_WARNING 0x03
- /** Supply Voltage Too Low Error */
- #define MS_HEALTH_FAULT_SUPPLY_VOLTAGE_TOO_LOW_ERROR 0x04
- /** Supply Voltage Too High Warning */
- #define MS_HEALTH_FAULT_SUPPLY_VOLTAGE_TOO_HIGH_WARNING 0x05
- /** Supply Voltage Too High Error */
- #define MS_HEALTH_FAULT_SUPPLY_VOLTAGE_TOO_HIGH_ERROR 0x06
- /** Power Supply Interrupted Warning */
- #define MS_HEALTH_FAULT_POWER_SUPPLY_INTERRUPTED_WARNING 0x07
- /** Power Supply Interrupted Error */
- #define MS_HEALTH_FAULT_POWER_SUPPLY_INTERRUPTED_ERROR 0x08
- /** No Load Warning */
- #define MS_HEALTH_FAULT_NO_LOAD_WARNING 0x09
- /** No Load Error */
- #define MS_HEALTH_FAULT_NO_LOAD_ERROR 0x0A
- /** Overload Warning */
- #define MS_HEALTH_FAULT_OVERLOAD_WARNING 0x0B
- /** Overload Error */
- #define MS_HEALTH_FAULT_OVERLOAD_ERROR 0x0C
- /** Overheat Warning */
- #define MS_HEALTH_FAULT_OVERHEAT_WARNING 0x0D
- /** Overheat Error */
- #define MS_HEALTH_FAULT_OVERHEAT_ERROR 0x0E
- /** Condensation Warning */
- #define MS_HEALTH_FAULT_CONDENSATION_WARNING 0x0F
- /** Condensation Error */
- #define MS_HEALTH_FAULT_CONDENSATION_ERROR 0x10
- /** Vibration Warning */
- #define MS_HEALTH_FAULT_VIBRATION_WARNING 0x11
- /** Vibration Error */
- #define MS_HEALTH_FAULT_VIBRATION_ERROR 0x12
- /** Configuration Warning */
- #define MS_HEALTH_FAULT_CONFIGURATION_WARNING 0x13
- /** Configuration Error */
- #define MS_HEALTH_FAULT_CONFIGURATION_ERROR 0x14
- /** Element Not Calibrated Warning */
- #define MS_HEALTH_FAULT_ELEMENT_NOT_CALIBRATED_WARNING 0x15
- /** Element Not Calibrated Error */
- #define MS_HEALTH_FAULT_ELEMENT_NOT_CALIBRATED_ERROR 0x16
- /** Memory Warning */
- #define MS_HEALTH_FAULT_MEMORY_WARNING 0x17
- /** Memory Error */
- #define MS_HEALTH_FAULT_MEMORY_ERROR 0x18
- /** Self-Test Warning */
- #define MS_HEALTH_FAULT_SELF_TEST_WARNING 0x19
- /** Self-Test Error */
- #define MS_HEALTH_FAULT_SELF_TEST_ERROR 0x1A
- /** Input Too Low Warning */
- #define MS_HEALTH_FAULT_INPUT_TOO_LOW_WARNING 0x1B
- /** Input Too Low Error */
- #define MS_HEALTH_FAULT_INPUT_TOO_LOW_ERROR 0x1C
- /** Input Too High Warning */
- #define MS_HEALTH_FAULT_INPUT_TOO_HIGH_WARNING 0x1D
- /** Input Too High Error */
- #define MS_HEALTH_FAULT_INPUT_TOO_HIGH_ERROR 0x1E
- /** Input No Change Warning */
- #define MS_HEALTH_FAULT_INPUT_NO_CHANGE_WARNING 0x1F
- /** Input No Change Error */
- #define MS_HEALTH_FAULT_INPUT_NO_CHANGE_ERROR 0x20
- /** Actuator Blocked Warning */
- #define MS_HEALTH_FAULT_ACTUATOR_BLOCKED_WARNING 0x21
- /** Actuator Blocked Error */
- #define MS_HEALTH_FAULT_ACTUATOR_BLOCKED_ERROR 0x22
- /** Housing Opened Warning */
- #define MS_HEALTH_FAULT_HOUSING_OPENED_WARNING 0x23
- /** Housing Opened Error */
- #define MS_HEALTH_FAULT_HOUSING_OPENED_ERROR 0x24
- /** Tamper Warning */
- #define MS_HEALTH_FAULT_TAMPER_WARNING 0x25
- /** Tamper Error */
- #define MS_HEALTH_FAULT_TAMPER_ERROR 0x26
- /** Device Moved Warning */
- #define MS_HEALTH_FAULT_DEVICE_MOVED_WARNING 0x27
- /** Device Moved Error */
- #define MS_HEALTH_FAULT_DEVICE_MOVED_ERROR 0x28
- /** Device Dropped Warning */
- #define MS_HEALTH_FAULT_DEVICE_DROPPED_WARNING 0x29
- /** Device Dropped Error */
- #define MS_HEALTH_FAULT_DEVICE_DROPPED_ERROR 0x2A
- /** Overflow Warning */
- #define MS_HEALTH_FAULT_OVERFLOW_WARNING 0x2B
- /** Overflow Error */
- #define MS_HEALTH_FAULT_OVERFLOW_ERROR 0x2C
- /** Empty Warning */
- #define MS_HEALTH_FAULT_EMPTY_WARNING 0x2D
- /** Empty Error */
- #define MS_HEALTH_FAULT_EMPTY_ERROR 0x2E
- /** Internal Bus Warning */
- #define MS_HEALTH_FAULT_INTERNAL_BUS_WARNING 0x2F
- /** Internal Bus Error */
- #define MS_HEALTH_FAULT_INTERNAL_BUS_ERROR 0x30
- /** Mechanism Jammed Warning */
- #define MS_HEALTH_FAULT_MECHANISM_JAMMED_WARNING 0x31
- /** Mechanism Jammed Error*/
- #define MS_HEALTH_FAULT_MECHANISM_JAMMED_ERROR 0x32
- /* 0x33 - 0x7F: Reserved for Future Use */
- /* 0x80 - 0xFF: Vendor Specific Warning / Error */
- /** \} */
- /**
- * \defgroup health_server_events Health Server Events
- * \{
- * This section lists the Application Events defined for Health Server Model.
- */
- /** Attention Start */
- #define MS_HEALTH_SERVER_ATTENTION_START 0x01
- /** Attention Restart */
- #define MS_HEALTH_SERVER_ATTENTION_RESTART 0x02
- /** Attention Stop */
- #define MS_HEALTH_SERVER_ATTENTION_STOP 0x03
- /** \} */
- /* --------------------------------------------- Data Types/ Structures */
- /**
- * \brief Health Server application Asynchronous Notification Callback.
- *
- * \par Description
- * Health Server calls the registered callback to indicate events occurred to the
- * application.
- *
- * \param handle Model Handle.
- * \param event_type Health Server Event type.
- * \param event_param Parameter associated with the event if any or NULL.
- * \param param_len Size of the event parameter data. 0 if event param is NULL.
- */
- typedef API_RESULT (* MS_HEALTH_SERVER_CB)
- (
- MS_ACCESS_MODEL_HANDLE * handle,
- UINT8 event_type,
- UINT8 * event_param,
- UINT16 param_len
- ) DECL_REENTRANT;
- /**
- * Health Server Self Test Function.
- */
- /* TODO: Add context of the Health Server, so that associated current/registered fault can be updated */
- typedef void (* MS_HEALTH_SERVER_SELF_TEST_FN)(UINT8 test_id, UINT16 company_id);
- /**
- * Health Server Self Test Funtion Structure.
- */
- typedef struct _MS_HEALTH_SERVER_SELF_TEST
- {
- /** Test ID */
- UINT8 test_id;
- /** Self Test Function */
- MS_HEALTH_SERVER_SELF_TEST_FN self_test_fn;
- }MS_HEALTH_SERVER_SELF_TEST;
- /* --------------------------------------------- Function */
- /**
- * \brief API to initialize Health Server model
- *
- * \par Description
- * This is to initialize Health Server model and to register with Acess layer.
- *
- * \param [in] element_handle
- * Element identifier to be associated with the model instance.
- *
- * \param [in, out] model_handle
- * Model identifier associated with the model instance on successful initialization.
- * After power cycle of an already provisioned node, the model handle will have
- * valid value and the same will be reused for registration.
- *
- * \param [in] company_id
- * Company Identifier
- *
- * \param [in] self_tests
- * List of Self Tests that can be run.
- *
- * \param [in] num_self_tests
- * Number of Self Tests in the list.
- *
- * \param [in] appl_cb Application Callback to be used by the Health Server.
- *
- * \return API_SUCCESS or an error code indicating reason for failure
- */
- API_RESULT MS_health_server_init
- (
- /* IN */ MS_ACCESS_ELEMENT_HANDLE element_handle,
- /* INOUT */ MS_ACCESS_MODEL_HANDLE * model_handle,
- /* IN */ UINT16 company_id,
- /* IN */ MS_HEALTH_SERVER_SELF_TEST * self_tests,
- /* IN */ UINT32 num_self_tests,
- /* IN */ MS_HEALTH_SERVER_CB appl_cb
- );
- /**
- * \brief API to report self-test fault
- *
- * \par Description
- * This is to report fault observed during self-test procedure.
- *
- * \param [in] model_handle
- * Model Handle identifying the Health Server model instance.
- *
- * \param [in] test_id
- * Identifier of the self-test
- *
- * \param [in] company_id
- * Company Identifier
- *
- * \param [in] fault_code
- * Fault value indicating the error.
- *
- * \return API_SUCCESS or an error code indicating reason for failure
- */
- API_RESULT MS_health_server_report_fault
- (
- /* IN */ MS_ACCESS_MODEL_HANDLE * model_handle,
- /* IN */ UINT8 test_id,
- /* IN */ UINT16 company_id,
- /* IN */ UINT8 fault_code
- );
- /**
- * \cond ignore_this Ignore this fundtion while generating doxygen document
- */
- API_RESULT MS_health_server_publish_current_status
- (
- UCHAR * status,
- UINT16 length
- );
- /**
- * \endcond
- */
- #endif /*_H_MS_HEALTH_SERVER_API_ */
|