targets/beremiz.h
author Edouard Tisserant
Fri, 10 Jan 2020 13:15:07 +0100
branchsvghmi
changeset 2822 9101a72a1da0
parent 2504 f3aced6c5f8b
child 3294 e3db472b0dfb
permissions -rw-r--r--
SVGHMI: added a watchdog. To ensure that the whole chain is checked, watchdog use a periodic echo of a hearteat variable. JS client code systematically register /HEARTBEAT at 1s update freq, and reacts on updates of /HEARTBEAT by systematically incrementing it. C code catch /HEARTBEAT update and feeds python-implemented watchdog. For now, watchdog does nothing when tiggered
#ifndef _BEREMIZ_H_
#define _BEREMIZ_H_

/* Beremiz' header file for use by extensions */

#include "iec_types.h"

#define LOG_LEVELS 4
#define LOG_CRITICAL 0
#define LOG_WARNING 1
#define LOG_INFO 2
#define LOG_DEBUG 3

extern unsigned long long common_ticktime__;

#ifdef TARGET_LOGGING_DISABLE
static inline int LogMessage(uint8_t level, char* buf, uint32_t size)
{
	(void)level;
	(void)buf;
	(void)size;
	return 0;
}
#else
int     LogMessage(uint8_t level, char* buf, uint32_t size);
#endif

long AtomicCompareExchange(long* atomicvar,long compared, long exchange);

#endif