Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
compower.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009, Swedish Institute of Computer Science.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the Institute nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* This file is part of the Contiki operating system.
30
*
31
*/
32
33
/**
34
* \file
35
* Header file for the communication power accounting module
36
* \author
37
* Adam Dunkels <adam@sics.se>
38
*/
39
40
/** \addtogroup sys
41
* @{ */
42
43
/**
44
* \defgroup compower Communication power accounting
45
* @{
46
*
47
* The compower module accumulates power consumption information and
48
* attributes it to communication activities. Examples of
49
* communication activities are packet transmission, packet reception,
50
* and idle listening.
51
*
52
*/
53
54
#ifndef COMPOWER_H_
55
#define COMPOWER_H_
56
57
/**
58
* \brief An activity record that contains power consumption information for a specific communication activity.
59
*
60
* This is a structure that holds power information about
61
* a communication activity. It is an opaque structure
62
* with no user-visible elements.
63
*/
64
struct
compower_activity
{
65
uint64_t listen, transmit;
66
};
67
68
/**
69
* \brief The default idle communication activity.
70
*
71
* This is the idle communication activity, to which all
72
* energy that is not possible to attribute to individual
73
* packets, is attributed. Examples include idle listening
74
* for incoming packets and MAC-level beacon
75
* transmissions.
76
*/
77
extern
struct
compower_activity
compower_idle_activity
;
78
79
/**
80
* \brief Initialize the communication power accounting module.
81
*
82
* This function initializes the communication power
83
* accounting module. The function is called by the system
84
* during boot-up.
85
*/
86
void
compower_init
(
void
);
87
88
/**
89
* \brief Accumulate power contumption for a communication activity
90
* \param a A pointer to an activity structure.
91
*
92
* This function accumulates power consumption information
93
* for a communication activity. The function typically is
94
* called by a power-saving MAC protocol when the radio is
95
* switched off, or when a packet is received or
96
* transmitted.
97
*
98
*/
99
void
compower_accumulate
(
struct
compower_activity
*a);
100
101
/**
102
* \brief Clear power consumption information for a communication activity
103
* \param a A pointer to an activity structure.
104
*
105
* This function clears any power contumption information
106
* that has previously been accumulated in an activity
107
* structure.
108
*
109
*/
110
void
compower_clear
(
struct
compower_activity
*a);
111
112
#endif
/* COMPOWER_H_ */
113
114
/** @} */
115
/** @} */
compower_idle_activity
struct compower_activity compower_idle_activity
The default idle communication activity.
Definition
compower.c:50
compower_clear
void compower_clear(struct compower_activity *e)
Clear power consumption information for a communication activity.
Definition
compower.c:77
compower_accumulate
void compower_accumulate(struct compower_activity *e)
Accumulate power contumption for a communication activity.
Definition
compower.c:60
compower_init
void compower_init(void)
Initialize the communication power accounting module.
Definition
compower.c:54
compower_activity
An activity record that contains power consumption information for a specific communication activity.
Definition
compower.h:64
os
sys
compower.h
Generated on
for Contiki-NG by
1.17.0