301 Commits

Author SHA1 Message Date
Hans-Erik Floryd
78b757b2bf Refactor repository layout (step 1 of 2)
Create include,src and test folders and move files accordingly.

Change-Id: I3caf7a8de2ba1a9ad5a9cedbaad3942657a3753d
2025-07-09 17:20:48 +02:00
Hans-Erik Floryd
195a3c90e7 Remove legacy API
Change-Id: I4c8bcbfc84408d26267d88117bd89dd07231e786
2025-07-09 17:20:48 +02:00
Hans-Erik Floryd
8caa0ab601 Update jenkins build
Add more information to job display name.

Change-Id: Ica1bd80efcb0d909ef945561fdfc4baae90404a7
2025-07-09 17:20:48 +02:00
Hans-Erik Floryd
c6cbe15ad0 Add jenkins build
Change-Id: Id05cfdc0ccca85f6e534f6dfab7b39479c67da16
2025-07-09 17:20:48 +02:00
Hans-Erik Floryd
d7c2bc5f1b MinGW support
Support building SOEM with MinGW.

Change-Id: I7ea59e168ae382b99d7904cffc0719701d44cefc
2025-07-09 17:20:48 +02:00
Hans-Erik Floryd
3eeb1d9b57 Modernize CMakeLists
Change-Id: Ie3877370918315d1452d2ea0a0013f12bffcbcc2
2025-07-09 17:20:46 +02:00
Hans-Erik Floryd
62a4c44336 Add win32 mutex
Change-Id: I40a29cfa3f3b669f04140b6dcf572d0e8d2f6509
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
e8e06d19ef Update rt-kernel port
Add a method for choosing L2 driver and add support for sabresd board.

Change-Id: Ib5bbcb53990ffdbe4345cf99f69c44192250e0d8
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
bfe480dfbe Remove unused stdio.h
Change-Id: I27f8020ec375dede88a1dc87e531dcd9d7ad6f26
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
bb3e83d6bf Workaround for -Wstringop-truncation
Replace strncpy with memcpy to eliminate warnings about potential
truncation of the NULL terminator. This warning is likely a false
positive, as the NULL terminator is explicitly appended after the copy
operation.

Change-Id: I47bf9cc312506e20dbcb5ebe1ae1ac05d3b742d5
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
6e82414ec3 Fix build error
Make ec_mbxreceive take the same arguments as ecx_mbxreceive apart
from the context.

Change-Id: I3a0748a34792ae36b583332c3b247d9b4e9751f4
2025-07-09 12:15:39 +02:00
Andreas Karlsson
d4cc1b9323 Update EoE and config overlap to dynamic mailboxes
- Remove old mbxreceive
- Rename mbxreceive2 to mbxreceive
- Add EoE to mbxreceive
- Refactor EoE to use dynamic mailbox handling
- Add mailbox status mapping to config overlap
- correct length calculations in send_process_data

Change-Id: Ia51402a8c73e59dfb6ed23d98916156f81b17103
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
68330229f6 Improved mailbox handling
This commit includes extensive changes across multiple files to
refactor the mailbox handling system and improve performance and
reliability in EtherCAT communication.

Update from Arthur Ketels 20240911.

Change-Id: I1177aea8b71156671a465473b7393af76be19c1c
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
71b4c02e45 Bump version
Change-Id: Id0aa1f9d3e9c9fb244087b294ed54da8c1894180
2025-07-09 12:15:39 +02:00
Hans-Erik Floryd
29a4f009de Change licensing
This software is now dual-licensed, see LICENSE.md for details.

Change-Id: I646ab4a6e69f9f8c3cdfadd9ad3e4ca7007f729d
2025-07-09 12:15:39 +02:00
Ryan Zoeller
12c95117a8 Add AL status codes from ETG.1020 2025-07-09 12:15:18 +02:00
Tore Fuglestad
393433c0e8 fix windows warning
avoid : error C4703: potentially uninitialized local pointer variable 'prev_adapter' used

Fix #831

Change-Id: Iacc399b5d58fe95a55ca96a87ca6b37be306db26
2025-07-09 12:11:38 +02:00
ddi-kkugler
66a0bf1c55 Fix single device inputs/outputs overruning segment size (#907)
* Fix single device inputs/outputs overruning segment size
* Refactor to pack segments tightly. 
* Allow segments 2-64 to be EC_MAXLRWDATA bytes. 
* Move wkc calcs into relevant config map functions.
* Only split slave data between segments when it is larger than one segment
* Only update wkc when we include data for the current device
2025-05-05 16:44:49 +02:00
Sebastian Block
83d2f22758 FoE: resend packet on BUSY answer while writing
Change-Id: Ifbcfd90628fd92297434ecc3dba4a1299cdcd7a9
2025-04-15 15:59:10 +02:00
Hans-Erik Floryd
fed0fd538a Increase possible FOE data size limit to max mailbox length
Handle slaves having large mailboxes in bootstrap. Calculate data size
based on max mailbox size minus FOE overhead.

Change-Id: Ie62afcb278e6a9f84f8be004e1a2173b19673810
2025-04-15 15:59:10 +02:00
Iain Anderson
76863fe873 Add serial number to ec_slave 2025-04-15 11:59:42 +02:00
Henrik Fransson
3011f0a46b Check that socket was successfully created 2025-04-15 11:36:51 +02:00
Henrik Fransson
298744937e Fix return value check when setting up NIC 2025-04-15 11:36:51 +02:00
Johannes Kauffmann
2f08b49aac tests: fix linked list leak
Don't overwrite the original pointer returned by ec_find_adapters(),
otherwise the linked list is leaked. Instead, save original pointer to
the head of the list use and `adapters` as a temporary variable. Pass
the original pointer to ec_free_adapters().

For win32, ec_free_adapters() was missing entirely.
2025-04-08 14:33:08 +02:00
ArthurKetels
7271d3663e Merge pull request #895 from OpenEtherCATsociety/fix/al_ctrl_16bit_access
Use 16bit access for AL Ctrl
2025-03-12 09:33:07 +01:00
Matthias Schoepfer
5c35c34a91 CMakeLists.txt: Add possibility to build library as shared
This adds the option to build the soem library also as shared object.
Note that the default is untouched, so by default, it will still build
a static library.

The [BUILD_SHARED_LIBS](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html)
is the standard way of doing it, many tools use this semantics to influence
the output to be the desired type (whichever you want).

Signed-off-by: Matthias Schoepfer <matthias.schoepfer@googlemail.com>
2025-03-11 19:44:21 +01:00
Andreas Karlsson
61840d4cbb Use 16bit access for AL Ctrl
By using 16bit access Wireshark will dissect the
the access accordingly.

fixes #894
2025-03-10 15:39:51 +01:00
ArthurKetels
2752dc2588 Merge pull request #875 from jalius/master
Update to support MSYS2/GCC
2025-01-27 10:52:57 +01:00
jawelch
49f2d8af36 Fix MSVC build: include lean windows.h, include stdlib.h for malloc/free 2025-01-24 13:43:37 -07:00
Jalius Welch
cc7caf4751 include minwindefs.h for missing HANDLE definition 2024-11-29 01:39:29 -07:00
Jalius Welch
1ae89e23cb Address unused parameter and unused argument warnings. 2024-11-29 01:39:25 -07:00
Jalius Welch
30c5768485 Fix build errors due to signature mismatch in osal_thread_create.
Fix missing timezone struct declaration.
2024-11-29 01:39:22 -07:00
Jalius Welch
7189adba3c Update CMakeLists for non-MSVC, remove standard library files, add GCC-style struct packing 2024-11-29 01:38:44 -07:00
Hans-Erik Floryd
83c6264f99 Fix potential buffer overflow in exc_FOEread/write
An excessively long filename could overflow the mailbox buffer. Fix by
limiting the filename size to EC_MAXFOEDATA.

Problem found and fix proposed by m1etz.
2024-04-04 09:55:57 +02:00
Windsgo
d478bce787 Fix add_timespec in other codes besides red_test (#794) 2024-03-21 07:51:29 +01:00
nakarlsson
1817b8b4fe Allow FoE write of 0byte file (#769)
If FoE write of a file is done, no check
of incoming size is performed. If the
file is 0byte, a FoE Write Request is
sent but no ACK since dofinalzero
is initialized to FALSE.

fixes #766

Co-authored-by: Andreas Karlsson <andreas.karlsson@rt-labs.com>
2023-12-06 19:54:05 +01:00
rtmagj
c5db2741ee Update simple_test.c 2023-10-30 10:53:28 +01:00
rtmagj
42aadc190b Update eoe_test.c 2023-10-30 10:53:28 +01:00
Magnus Johansson
f5a32959b2 Remove variable for unused parameter. 2023-10-30 10:53:28 +01:00
Torsten Robitzki
a901500618 Local variable Size is only written and causes compiler warning (#670) 2022-12-02 19:03:35 +01:00
Patrick Laza
6a5babfec9 Added config_map_aligned to use byte aligned outputs and inputs (#645) 2022-10-19 16:06:55 +02:00
lbckmnn
26fc5dd8e3 remove boot state from ecx_readstate and add some documentation (#643)
* remove boot state from ecx_readstate and documentation
2022-09-19 07:47:55 +02:00
lbckmnn
42ec9bf238 also configure the last SM (#622)
fixes #617
2022-07-02 11:32:02 +02:00
lbckmnn
9183e3068a const correctness in coe functions (#620)
* add const in RxPDO and SDOwrite

* doc typo

* uniform indention in ethercatcoe.h

Co-authored-by: Lukas Beckmann <lukas.beckmann@yuanda-robotics.de>
2022-06-20 08:29:17 +02:00
nakarlsson
0b8f888f2c Merge pull request #614 from notofug/avoid_warnings
avoid 'maybe used unitialized' warnings
2022-06-16 07:34:04 +02:00
Tore Fuglestad
e604e98446 avoid 'may be used unitialized' warnings
gcc : -Wmaybe-uninitialized or -Wuninitialized
2022-06-16 07:04:30 +02:00
nakarlsson
703a6e08d6 Merge pull request #601 from rhdlilj/master
Using context->maxslave instead EC_MAXSLAVE
2022-03-30 19:42:43 +02:00
lilj
c879aabd02 Update ethercatconfig.c
Using context->maxslave instead EC_MAXSLAVE
2022-03-16 17:25:06 +08:00
ArthurKetels
9b6ebd6e43 Merge pull request #533 from yschmid-levi/fix-win32-timeperiod
matching call to timeEndPeriod and timeBeginPeriod
2022-01-13 22:58:03 +01:00
ArthurKetels
def119bbd0 Merge pull request #564 from hefloryd/master
Bump cmake version
2021-10-26 20:46:34 +02:00