etherlab/etherlab_ext.c
author Edouard Tisserant
Thu, 25 Mar 2021 10:13:12 +0100
branchsvghmi
changeset 3199 1582753e409b
parent 2165 02a2b5dee5e3
permissions -rw-r--r--
SVGHMI: Filter unseen geometry from inkscape CSV output.

When inkscape exports geometry form all objects, then it also includes objects from svg:defs. This makes problems when deciding if an object is part of a page, since coordinate of objects in svg:defs can eventualy be contained in a page. In the end, those objects where getting detached when leaving pages where they where found, leading for exemple to non working text on clipping when the clipped text was cloned in multiple page.
/*

Template C code used to produce target Ethercat C code.

Copyright (C) 2011-2014: Laurent BESSARD, Edouard TISSERANT

Distributed under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

See COPYING file for copyrights details.

*/

#include "iec_types_all.h"

#define FREE 0
#define ACQUIRED 1
#define ANSWERED 2

long SDOLock = FREE;
extern long AtomicCompareExchange(long* atomicvar,long compared, long exchange);

int AcquireSDOLock() {
	return AtomicCompareExchange(&SDOLock, FREE, ACQUIRED) == FREE;
}

void SDOAnswered() {
	AtomicCompareExchange(&SDOLock, ACQUIRED, ANSWERED);
}

int HasAnswer() {
	return SDOLock == ANSWERED;
}

void ReleaseSDOLock() {
	AtomicCompareExchange(&SDOLock, ANSWERED, FREE);
}

int __init_etherlab_ext()
{
    SDOLock = FREE;
    return 0;
}

void __cleanup_etherlab_ext()
{
}

void __retrieve_etherlab_ext()
{
}

void __publish_etherlab_ext()
{
}