Issue 2 move folders and use deep path include file names to prevent collisions (#4)

* moving folders and files and adjust server demo build

* Fix Makefile for apps/server on Linux

* fix unit test source file folders

* fix datetime convert UTC functions. Add Code::Blocks project for datetime testing

* added some ignore extensions

* disable parallel make option

* fix build for abort, dcc, and epics apps

* fix build for dcc, epics, error, and getevent apps.

* Fixed building of all apps

* fix the ipv4 to ipv6 router app build

* Change indent style from Google to Webkit

* make pretty to re-format style

* removed common Makefile since we already had one and two was too many

* remove scripts from root folder that are no longer maintained or used

* remove mercurial EOL and ignore files for git repo

* remove .vscodeconfig files from repo

* tweak clang-format style

* clang-format src and apps with tweaked style

* added clang-tidy to fix readability if braces in src

* result of make tidy for src and apps

* fix clang-tidy mangling

* Added code::blocks project for BACnet server simulation

* added code::blocks linux project for WhoIs app

* update text files for EOL

* fix EOL in some files

* fixed make win32 apps for older gcc

* Removed Borland C++ Makefile in apps. Unable to maintain support for Borland C++ compiler.

* created codeblocks project for apps/epics for Windows

* fixing ports/xplained to work with new data structure.

* fix ports/xplained example for Atmel Studio compile

* fix ports/stm32f10x example for gcc Makefile compile

* fix ports/stm32f10x example for IAR EWARM compile

* fix ports/xplained timer callback

* fix ports/bdk_atxx_mspt build with subdirs

* fix ports/bdk_atxx_mspt build with subdirs

* updated git ignore for IAR build artifacts

* updated gitignore for non-tracked files and folders

* fixed bdk-atxx4-mstp port for Rowley Crossworks project file

* fixed bdk-atxx4-mstp port for GCC AVR Makefile

* fixed atmega168 port for IAR AVR and GCC AVR Makefile

* fixed at91sam7s port for IAR ARM and GCC ARM Makefile

* removed unmaintainable DOS, RTOS32, and atmega8 ports.  Updated rx62n (untested).

* changed arm7 to uip port
This commit is contained in:
Steve Karg
2019-12-13 15:19:10 -06:00
committed by GitHub
parent 8a38dbe2cf
commit d50c190957
912 changed files with 36206 additions and 52502 deletions
+123
View File
@@ -0,0 +1,123 @@
/**
* @file
* @author Steve Karg
* @date 2009
* @brief Millisecond timer library header file.
*
* @section DESCRIPTION
*
* The mstimer library provides functions for setting, resetting and
* restarting timers, and for checking if a timer has expired. An
* application must "manually" check if its timers have expired; this
* is not done automatically.
*
* A timer is declared as a \c struct \c mstimer and all access to the
* timer is made by a pointer to the declared timer.
*
* Adapted from the Contiki operating system.
* Original Authors: Adam Dunkels <adam@sics.se>, Nicolas Tsiftes <nvt@sics.se>
*/
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
#include <time.h>
#include "mstimer.h"
/**
* @brief Set a timer for a time sometime in the future
*
* This function is used to set a timer for a time sometime in the
* future. The function mstimer_expired() will evaluate to true after
* the timer has expired.
*
* @param t A pointer to the timer
* @param interval The interval before the timer expires.
*/
void mstimer_set(struct mstimer *t, unsigned long interval)
{
t->interval = interval;
t->start = mstimer_now();
}
/**
* @brief Reset the timer with the same interval.
*
* This function resets the timer with the same interval that was
* given to the mstimer_set() function. The start point of the interval
* is the exact time that the timer last expired. Therefore, this
* function will cause the timer to be stable over time, unlike the
* mstimer_restart() function.
*
* @param t A pointer to the timer.
* @sa mstimer_restart()
*/
void mstimer_reset(struct mstimer *t)
{
t->start += t->interval;
}
/**
* @brief Restart the timer from the current point in time
*
* This function restarts a timer with the same interval that was
* given to the mstimer_set() function. The timer will start at the
* current time.
*
* @note A periodic timer will drift if this function is used to reset
* it. For preioric timers, use the mstimer_reset() function instead.
* @param t A pointer to the timer.
* @sa mstimer_reset()
*/
void mstimer_restart(struct mstimer *t)
{
t->start = mstimer_now();
}
/**
* @brief Check if a timer has expired.
*
* This function tests if a timer has expired and returns true or
* false depending on its status.
*
* @param t A pointer to the timer
* @return Non-zero if the timer has expired, zero otherwise.
*/
int mstimer_expired(struct mstimer *t)
{
if (t->interval) {
return ((unsigned long)((mstimer_now()) - (t->start + t->interval)) <
((unsigned long)(~((unsigned long)0)) >> 1));
}
return 0;
}
/*---------------------------------------------------------------------------*/
/**
* The time until the timer expires
*
* This function returns the time until the timer expires.
*
* @param t A pointer to the timer
*
* @return The time until the timer expires
*
*/
unsigned long mstimer_remaining(struct mstimer *t)
{
return t->start + t->interval - mstimer_now();
}
/**
* The value of the interval
*
* This function returns the interval value
*
* @param t A pointer to the timer
*
* @return The interval value
*
*/
unsigned long mstimer_interval(struct mstimer *t)
{
return t->interval;
}