Coding Style

Many people have and are contributing to the OpenWSN project. It is important to keep a consistent look-and-feel across the different contributions.

This page provides the following:

C Coding Style

Firmware documentation is automatically generated by Doxygen, and published nightly at http://openwsn-berkeley.github.io/.

/**
\brief Short description of file.

\author Full Name <your@emailaddress.edu>, September 2013.
*/
 
//=========================== variables =======================================
 
typedef struct {
   uint16_t elem1;
   uint16_t elem2;
   uint16_t elem3;
} local_vars_t;
 
local_vars_t local_vars;
 
//=========================== prototypes ======================================
 
uint16_t function(uint16_t param1, uint16_t* param2, uint16_t* param3);
 
//=========================== public ==========================================
 
//=========================== private =========================================
 
/**
\brief Description function (one sentence).
 
Longer description function
 
\note Something important to know.

\param[in]     param1 Input parameter (i.e. read by this function).
\param[out]    param2 Output parameter (i.e. modified by this function).
\param[in,out] param3 Input/output parameter (i.e. read and modified by this
   function).

\return Description of return value.
*/
uint16_t function(uint16_t param1, uint16_t* param2, uint16_t* param3) {
   uint8_t     i;
   
   [...]
   
   return returnVal;
}

Python Coding Style

Software documentation is automatically generated by Sphinx, and published nightly at http://openwsn-berkeley.github.io/. For more examples of Sphinx documentation, see the Sphinx Module-specific markup page and the Python Sphinx documentation page.

# license: https://openwsn.atlassian.net/wiki/display/OW/License
'''
Introductory text to this module
 
.. moduleauthor:: First Last <first.last@domain.com>
'''

#============================ import ==========================================

import os

#============================ body ============================================

class MyClass(object):
    '''
    Description of class.
    '''
    
    def myMethod(self,myParam,myKey="value"):
        '''
        Description of method.
        
        .. note::
          Something to note.
        
        :param myParam: Description of myParam
        :type  myParam: str
        :key   myKey:   Description of myKey
        :type  myKey:   str
        
        :raise:         Description of exception raised.
 
        :returns:       Description of the return value.
        :rtype:         Return type.
        '''
        
        return None