66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
/*
|
|
* co_sleep.h - contains defines for sleep services
|
|
*
|
|
* Copyright (c) 2013-2022 emotas embedded communication GmbH
|
|
*
|
|
*-------------------------------------------------------------------
|
|
* $Id: co_sleep.h 49615 2023-09-26 14:21:27Z boe $
|
|
*
|
|
*-------------------------------------------------------------------
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* \brief defines for sleep services
|
|
*
|
|
* \file co_sleep.h - contains defines for sleep services
|
|
*
|
|
*/
|
|
|
|
#ifndef CO_SLEEP_H
|
|
#define CO_SLEEP_H 1
|
|
|
|
#include <co_datatype.h>
|
|
|
|
|
|
/* datatypes */
|
|
|
|
/**
|
|
* SLEEP states
|
|
*/
|
|
typedef enum {
|
|
CO_SLEEP_MODE_CHECK, /**< check if sleep mode is possible */
|
|
CO_SLEEP_MODE_OBJECTION, /**< slave has send an objection */
|
|
CO_SLEEP_MODE_PREPARE, /**< automatic start sleep mode */
|
|
CO_SLEEP_MODE_SILENT, /**< sleep mode silent */
|
|
CO_SLEEP_MODE_DOZE, /**< sleep mode doze */
|
|
CO_SLEEP_MODE_REQUEST_SLEEP /**< sleep mode reuqest sleep */
|
|
} CO_SLEEP_MODE_T;
|
|
|
|
|
|
/** \brief function pointer to sleep event function
|
|
* \param sleep mode
|
|
* \param node id
|
|
*
|
|
* \retval 0 - ok
|
|
* \retval !=0 - error (errorcode for sleep objection - see standard)
|
|
*/
|
|
typedef UNSIGNED8 (* CO_EVENT_SLEEP_T)(CO_LINE_TYPE, CO_SLEEP_MODE_T, UNSIGNED8); /*lint !e960 customer specific parameter names */
|
|
|
|
|
|
/* function prototypes */
|
|
EXTERN_DECL void coSleepModeStart(CO_LINE_DECL, UNSIGNED16 waitTime);
|
|
EXTERN_DECL RET_T coEventRegister_SLEEP(CO_EVENT_SLEEP_T pFunction);
|
|
EXTERN_DECL BOOL_T coSleepModeActive(CO_LINE_DECL);
|
|
EXTERN_DECL void coSleepModeCheck(CO_LINE_DECL, UNSIGNED16 waitTime);
|
|
EXTERN_DECL void coSleepAwake(CO_LINE_DECL, BOOL_T master, UNSIGNED8 status,
|
|
UNSIGNED8 reason, UNSIGNED16 repeatTime);
|
|
EXTERN_DECL void coSleepWakeUp(CO_LINE_DECL, BOOL_T master, UNSIGNED8 status,
|
|
UNSIGNED8 reason, UNSIGNED16 repeatTime);
|
|
|
|
EXTERN_DECL void coSleepRequestSleep(CO_LINE_DECL);
|
|
|
|
#endif /* CO_SLEEP_H */
|