targets/beremiz.h
author Edouard Tisserant <edouard@beremiz.fr>
Fri, 11 Oct 2024 10:34:15 +0200
changeset 4026 a3cf9f635952
parent 3732 929276eea252
permissions -rw-r--r--
SVGHMI: add ForEach widget example
2504
f3aced6c5f8b fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2503
diff changeset
     1
#ifndef _BEREMIZ_H_
f3aced6c5f8b fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2503
diff changeset
     2
#define _BEREMIZ_H_
f3aced6c5f8b fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2503
diff changeset
     3
1001
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     4
/* Beremiz' header file for use by extensions */
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     5
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     6
#include "iec_types.h"
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     7
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     8
#define LOG_LEVELS 4
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
     9
#define LOG_CRITICAL 0
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    10
#define LOG_WARNING 1
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    11
#define LOG_INFO 2
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    12
#define LOG_DEBUG 3
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    13
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    14
extern unsigned long long common_ticktime__;
2175
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    15
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    16
#ifdef TARGET_LOGGING_DISABLE
2503
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    17
static inline int LogMessage(uint8_t level, char* buf, uint32_t size)
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    18
{
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    19
	(void)level;
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    20
	(void)buf;
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    21
	(void)size;
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    22
	return 0;
6ffeffb6d635 remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2175
diff changeset
    23
}
2175
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    24
#else
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    25
int     LogMessage(uint8_t level, char* buf, uint32_t size);
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    26
#endif
667f7de69cf6 Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1050
diff changeset
    27
1050
56bef276055e Made declaration from beremiz.h available to C pragmas in POUs. Added AtomicCompareExchange to beremiz.h
Edouard Tisserant
parents: 1002
diff changeset
    28
long AtomicCompareExchange(long* atomicvar,long compared, long exchange);
3294
e3db472b0dfb Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2504
diff changeset
    29
void *create_RT_to_nRT_signal(char* name);
e3db472b0dfb Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2504
diff changeset
    30
void delete_RT_to_nRT_signal(void* handle);
e3db472b0dfb Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2504
diff changeset
    31
int wait_RT_to_nRT_signal(void* handle);
e3db472b0dfb Runtime+SVGHMI: Added a generic way to wakeup non-real-time threads from real-time PLC thread. Replace SVGHMI specific calls in Linux and Xenomai implementations of plc_main.c. Fixed xenomai build, xeno-config making problems with --no-auto-init argument.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2504
diff changeset
    32
int unblock_RT_to_nRT_signal(void* handle);
3295
0375d801fff7 Runtime+SVGHMI: Add generic wakeup of threads from PLC thread to windows implementation of plc_main.c. Also added nRT_reschedule to abstract sched_yield.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 3294
diff changeset
    33
void nRT_reschedule(void);
1001
3f966bbb3fba Added beremiz.h header file for extensions
Edouard Tisserant
parents:
diff changeset
    34
3732
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    35
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    36
#ifdef REALTIME_LINUX
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    37
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    38
#ifndef PLC_THREAD_PRIORITY
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    39
#define PLC_THREAD_PRIORITY 80
2504
f3aced6c5f8b fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2503
diff changeset
    40
#endif
3732
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    41
 
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    42
#endif
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    43
929276eea252 Runtime: Add RealTime checkbox in Linux target options to enable PREEMPT_RT scheduling.
Edouard Tisserant
parents: 3295
diff changeset
    44
#endif