Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
e0afcd7
Driver Interface update
netfabb Nov 18, 2020
1966df2
ScanLab Driver update
netfabb Nov 19, 2020
b821d96
Added Job Data API
netfabb Nov 20, 2020
ec3d219
Add minimal version of a Duet driver
Oct 15, 2020
dfa35e3
Update lib3mf linux amd64 binary
Dec 4, 2020
dba6357
Merge pull request #20 from oneclickmetal/duet-driver
alexanderoster Dec 4, 2020
2768c86
Merge pull request #22 from oneclickmetal/update-linux-lib3mf
alexanderoster Dec 4, 2020
eafa0a4
Extended API for storage
netfabb Dec 4, 2020
203142f
add github action for building linux x64 binaries
Dec 14, 2020
513c9b6
abort build script on errors
Dec 14, 2020
8c17897
Run the action on pull requests
Dec 14, 2020
56e98c7
Added Develop mode to AMC Server
netfabb Jan 7, 2021
1b14381
First form implementation
netfabb Jan 7, 2021
19cfa61
Toolpath Profiles
netfabb Jan 7, 2021
f9854f2
Autogenerated
netfabb Jan 7, 2021
ca98206
Fixed framework
netfabb Jan 8, 2021
248afa4
ScanLab Driver update
netfabb Jan 8, 2021
64b48a8
Merge pull request #23 from oneclickmetal/linux-build
alexanderoster Jan 15, 2021
03b2940
Updated ScanLab and Siemens S7 Drivers
netfabb Jan 15, 2021
1feb642
Added variable enums
netfabb Jan 15, 2021
08a7946
windows build
Dec 14, 2020
3f7ce2a
Updated S7 Drivers
netfabb Jan 19, 2021
0f64ad9
Updated S7 Driver
netfabb Jan 22, 2021
eca269a
Merge pull request #24 from oneclickmetal/windows-build
alexanderoster Jan 27, 2021
7b609c0
S7 Driver update
netfabb Jan 28, 2021
638a959
Scanlab driver update
netfabb Jan 28, 2021
7ea9bb5
added PLC plugin to package
netfabb Feb 10, 2021
5901c9c
added lreal to s7 drivers
netfabb Feb 12, 2021
16602de
Refactored driver interface
netfabb Feb 12, 2021
5cf067b
Improved Core Laser framework
netfabb Feb 15, 2021
a7f053f
removed legacy file
netfabb Feb 15, 2021
05e571d
added variable initialization
netfabb Feb 15, 2021
4409777
S7 Communication update
netfabb Feb 16, 2021
3494d27
S7 Communication update
netfabb Feb 16, 2021
3047f15
fixed typo in S7 driver
netfabb Feb 16, 2021
3c420df
Scanlab Driver fix
netfabb Feb 18, 2021
07b94cb
Fixed S7Net Issues
netfabb Feb 18, 2021
018626e
ScanLab: Updated default Jumpspeed to 5m per s
netfabb Feb 18, 2021
29c5b9f
Added Framework directory to build
netfabb Feb 22, 2021
3ed7d2d
Added Cmake common file
netfabb Feb 22, 2021
93f8829
Changed Demo Plugin makefile
netfabb Feb 22, 2021
44dfb13
Removed correction file
netfabb Feb 22, 2021
16bd8e3
GCC Compatibility, make Dev Package
netfabb Feb 24, 2021
f1be8a6
GCC Compatibility, make Dev Package
netfabb Feb 24, 2021
1a22728
New Demo Plugin Make file
netfabb Feb 24, 2021
4abef46
Added Lib3MF property reading and Laser Defocussing
netfabb Feb 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/build-linux-x64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM ubuntu:20.10

RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -yq uuid-dev build-essential cmake nodejs git npm golang

COPY entrypoint.sh /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
12 changes: 12 additions & 0 deletions .github/build-linux-x64/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: 'Build Linux x64'
description: 'Build binaries for Linux x64'
inputs:
buildscript: # id of input
description: 'Path to the build script to run'
required: true
default: './build_clean.sh'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.buildscript }}
6 changes: 6 additions & 0 deletions .github/build-linux-x64/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh
set -e

cd $GITHUB_WORKSPACE

sh -c "$INPUT_BUILDSCRIPT"
45 changes: 45 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop

jobs:
build_linux_x64:
runs-on: ubuntu-latest
name: Build Linux x86-64 binaries
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run buildscript in docker
uses: ./.github/build-linux-x64
id: build
with:
buildscript: './build_clean.sh'

build_win_x64:
runs-on: windows-latest
name: Build Windows x86-64 Binaries
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.15.x
- name: Install MSVC C++ compiler
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
toolset: 14.2x.yyyyy
- name: Install Nodejs 14
uses: actions/setup-node@v2-beta
with:
node-version: '14'
- name: Run build_clean.bat
shell: cmd
run: call build_clean.bat NOPAUSE
18 changes: 15 additions & 3 deletions ACT/LibMC.xml
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@
<error name="INVALIDEVENTCONTEXT" code="327" description="Invalid event sender" />
<error name="INVALIDLAYERINDEX" code="328" description="Invalid layer index" />
<error name="TEMPBASEPATHEMPTY" code="329" description="Empty base path for temporary files" />
<error name="PROFILENOTFOUND" code="330" description="Profile not found." />

</errors>

Expand All @@ -361,8 +362,7 @@

<class name="Base">
</class>



<class name="APIRequestHandler" parent="Base" description="API Request Handler">

<method name="ExpectsRawBody" description="checks if the raw body is needed to handle the request.">
Expand Down Expand Up @@ -451,7 +451,17 @@
</class>


<global baseclassname="Base" stringoutclassname="Base" releasemethod="ReleaseInstance" acquiremethod="AcquireInstance" versionmethod="GetVersion" errormethod="GetLastError" injectionmethod="InjectComponent">
<global
baseclassname="Base"
stringoutclassname="Base"
releasemethod="ReleaseInstance"
acquiremethod="AcquireInstance"
versionmethod="GetVersion"
errormethod="GetLastError"
injectionmethod="InjectComponent"
simpletypewrapperclass="CreateString"

>

<method name="GetVersion" description = "retrieves the binary version of this library.">
<param name="Major" type="uint32" pass="out" description="returns the major version of this library" />
Expand All @@ -478,6 +488,8 @@
<param name="DataModel" type="class" class="LibMCData:DataModel" pass="in" description="DataModel Object" />
<param name="Instance" type="class" class="MCContext" pass="return" description="New Context instance" />
</method>


</global>


Expand Down
39 changes: 35 additions & 4 deletions ACT/LibMCData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -324,9 +324,8 @@
<error name="INVALIDEVENTCONTEXT" code="327" description="Invalid event sender" />
<error name="INVALIDLAYERINDEX" code="328" description="Invalid layer index" />
<error name="TEMPBASEPATHEMPTY" code="329" description="Empty base path for temporary files" />



<error name="BUILDJOBDATANOTFOUND" code="330" description="Build job data not found" />

</errors>


Expand Down Expand Up @@ -509,7 +508,15 @@

<class name="BuildJobData" parent="Base" description="Build Job Data instance">

<method name="GetName" description="returns the name of a build job.">
<method name="GetDataUUID" description="returns the uuid of a build job data.">
<param name="UUID" type="string" pass="return" description="UUID String" />
</method>

<method name="GetJobUUID" description="returns the uuid of the parent build job.">
<param name="UUID" type="string" pass="return" description="UUID String" />
</method>

<method name="GetName" description="returns the name of a build job uuid.">
<param name="Name" type="string" pass="return" description="Name String" />
</method>

Expand All @@ -521,10 +528,22 @@
<param name="StreamInstance" type="class" class="StorageStream" pass="return" description="Stream Instance." />
</method>

<method name="GetStorageStreamSHA2" description="returns the checksum of the storage stream of the build.">
<param name="SHA2" type="string" pass="return" description="SHA256 of the storage stream." />
</method>

<method name="GetStorageStreamSize" description="returns the size of the storage stream of the build.">
<param name="Size" type="uint64" pass="return" description="size of the storage stream in bytes." />
</method>

<method name="GetDataType" description="returns the data type of the job data.">
<param name="DataType" type="enum" class="BuildJobDataType" pass="return" description="Data type of the job data" />
</method>

<method name="GetDataTypeAsString" description="returns the data type of the job data as string.">
<param name="DataType" type="string" pass="return" description="Data type of the job data" />
</method>

<method name="GetMIMEType" description="returns the mime type of a storage stream.">
<param name="MimeType" type="string" pass="return" description="Mime Type String" />
</method>
Expand Down Expand Up @@ -607,6 +626,12 @@
<method name="ListJobData" description="Retrieves a list of build job data objects.">
<param name="IteratorInstance" type="class" class="BuildJobDataIterator" pass="return" description="Build Job Data Iterator Instance." />
</method>

<method name="RetrieveJobData" description="Retrieves a build job data instance by its uuid.">
<param name="DataUUID" type="string" pass="in" description="Job Data UUID." />
<param name="BuildJobData" type="class" class="BuildJobData" pass="return" description="Build Job Data Instance." />
</method>


</class>

Expand All @@ -632,6 +657,11 @@
<param name="JobInstance" type="class" class="BuildJob" pass="return" description="Build Job Instance." />
</method>

<method name="FindJobOfData" description="Finds the parent build job of a given data uuid. Fails if data does not exist.">
<param name="DataUUID" type="string" pass="in" description="Job Data UUID." />
<param name="BuildJobData" type="class" class="BuildJob" pass="return" description="Build Job Instance." />
</method>

<method name="ListJobsByStatus" description="Retrieves a list of build jobs, filtered by status.">
<param name="Status" type="enum" class="BuildJobStatus" pass="in" description="Job Status to list." />
<param name="IteratorInstance" type="class" class="BuildJobIterator" pass="return" description="Build Job Iterator Instance." />
Expand All @@ -646,6 +676,7 @@
<param name="String" type="string" pass="in" description="String Identifier." />
<param name="Status" type="enum" class="BuildJobStatus" pass="return" description="Status Enum." />
</method>


</class>

Expand Down
4 changes: 4 additions & 0 deletions ACT/LibMCDriver.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@


<class name="Driver" parent="Base" description="An abstract Machine Control Driver">

<method name="Configure" description = "Configures a driver with its specific configuration data.">
<param name="ConfigurationString" type="string" pass="in" description="Configuration data of driver." />
</method>

<method name="GetName" description = "returns the name identifier of the driver">
<param name="Name" type="string" pass="return" description="Name of the driver." />
Expand Down
29 changes: 26 additions & 3 deletions ACT/LibMCEnv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,6 @@
<error name="INVALIDCHARACTERINFILENAME" code="20" description="invalid character in filename." />
<error name="WORKINGDIRECTORYHASBEENCLEANED" code="21" description="working directory has been cleaned." />
<error name="INVALIDITERATOR" code="22" description="invalid iterator." />



</errors>

Expand All @@ -82,6 +80,12 @@
<option name="StartDelay" value="5" />
<option name="EndDelay" value="6" />
<option name="PolyDelay" value="7" />
<option name="PolyDelayAngleDependent" value="8" />
<option name="LaserOnDelay" value="9" />
<option name="LaserOffDelay" value="10" />
<option name="JumpDelay" value="11" />
<option name="MarkDelay" value="12" />
<option name="LaserFocus" value="13" />
</enum>

<struct name="Position2D">
Expand Down Expand Up @@ -132,11 +136,13 @@
</method>

<method name="GetSegmentProfileValue" description="Retrieves an assigned profile custom value.">
<param name="Index" type="uint32" pass="in" description="Index. Must be between 0 and Count - 1." />
<param name="ValueName" type="string" pass="in" description="Value Name to query for." />
<param name="Value" type="string" pass="return" description="String Value." />
</method>

<method name="GetSegmentProfileTypedValue" description="Retrieves an assigned profile value of a standard type.">
<param name="Index" type="uint32" pass="in" description="Index. Must be between 0 and Count - 1." />
<param name="ValueType" type="enum" class="ToolpathProfileValueType" pass="in" description="Enum to query for. MUST NOT be custom." />
<param name="Value" type="double" pass="return" description="Double Value" />
</method>
Expand Down Expand Up @@ -274,7 +280,7 @@
<param name="FileDoesExist" type="bool" pass="return" description="returns if the file exists." />
</method>

<method name="DeleteFile" description = "Deletes the temporary file.">
<method name="DeleteFromDisk" description = "Deletes the temporary file.">
<param name="Success" type="bool" pass="return" description="returns if deletion was successful or file did not exist in the first place." />
</method>

Expand Down Expand Up @@ -347,6 +353,11 @@
<param name="DataBuffer" type="basicarray" class="uint8" pass="out" description="buffer data." />
</method>

<method name="CreateToolpathAccessor" description="Creates an accessor object for a toolpath. Toolpath MUST have been loaded into memory before.">
<param name="StreamUUID" type="string" pass="in" description="UUID of the stream." />
<param name="ToolpathInstance" type="class" class="ToolpathAccessor" pass="return" description="Toolpath instance." />
</method>


<method name="RegisterStringParameter" description="registers a string parameter. Must only be called during driver creation.">
<param name="ParameterName" type="string" pass="in" description="Parameter Name" />
Expand Down Expand Up @@ -404,6 +415,13 @@
<param name="Value" type="bool" pass="in" description="Value to set" />
</method>

<method name="Sleep" description="Puts the current instance to sleep for a definite amount of time. MUST be used instead of a blocking sleep call.">
<param name="Delay" type="uint32" pass="in" description="Milliseconds to sleeps" />
</method>

<method name="GetGlobalTimerInMilliseconds" description="Returns the global timer in milliseconds.">
<param name="TimerValue" type="uint64" pass="return" description="Timer value in Milliseconds" />
</method>

</class>

Expand Down Expand Up @@ -692,6 +710,11 @@
</method>


<method name="LoadResourceData" description="loads a plugin resource file into memory.">
<param name="ResourceName" type="string" pass="in" description="Name of the resource." />
<param name="ResourceData" type="basicarray" class="uint8" pass="out" description="Resource Data Buffer." />
</method>


</class>

Expand Down
71 changes: 66 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,61 @@ set(LIBMC_SRC
${LIBMC_SRC_DEP_CROSSGUID}
)

add_custom_target(copy_framework ALL)

file (GLOB framework_files_dev LIST_DIRECTORIES false "${CMAKE_CURRENT_SOURCE_DIR}/Framework/HeadersDev/CppDynamic/*.*")
foreach(framework_file_dev ${framework_files_dev})

get_filename_component(framework_file_devname ${framework_file_dev} NAME)

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "copying ${framework_file_dev}...")

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${framework_file_dev}
${CMAKE_CURRENT_BINARY_DIR}/Framework/HeadersDev/CppDynamic/${framework_file_devname})


endforeach()


file (GLOB framework_files_intfdev LIST_DIRECTORIES false "${CMAKE_CURRENT_SOURCE_DIR}/Framework/InterfacesDev/*.*")
foreach(framework_file_intfdev ${framework_files_intfdev})

get_filename_component(framework_file_intfdevname ${framework_file_intfdev} NAME)

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "copying ${framework_file_intfdev}...")

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${framework_file_intfdev}
${CMAKE_CURRENT_BINARY_DIR}/Framework/InterfacesDev/${framework_file_intfdevname})

endforeach()


file (GLOB framework_files_plugincpp LIST_DIRECTORIES false "${CMAKE_CURRENT_SOURCE_DIR}/Framework/PluginCpp/*.*")
foreach(framework_file_plugincpp ${framework_files_plugincpp})

get_filename_component(framework_file_plugincppname ${framework_file_plugincpp} NAME)

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "copying ${framework_file_plugincpp}...")

add_custom_command(
TARGET copy_framework PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${framework_file_plugincpp}
${CMAKE_CURRENT_BINARY_DIR}/Framework/PluginCpp/${framework_file_plugincppname})

endforeach()

add_library(libmc SHARED ${LIBMC_SRC})
# Do not prefix the binary's name with "lib" on Unix systems:
Expand Down Expand Up @@ -187,12 +242,18 @@ set_target_properties(libmcdata PROPERTIES CXX_VISIBILITY_PRESET hidden)
set_target_properties(libmcdata PROPERTIES VISIBILITY_INLINES_HIDDEN ON)

if(WIN32)
target_link_libraries(libmc Winmm.lib)
target_link_libraries(libmc Shlwapi.lib)

target_link_libraries(libmcdata Winmm.lib)
target_link_libraries(libmcdata Shlwapi.lib)
target_link_libraries(libmcdata ${CMAKE_CURRENT_SOURCE_DIR}/Libraries/SQLite/sqlite3.lib)
if (MSVC)
target_link_libraries(libmc Winmm.lib)
target_link_libraries(libmc Shlwapi.lib)
target_link_libraries(libmcdata Winmm.lib)
target_link_libraries(libmcdata Shlwapi.lib)
target_link_libraries(libmcdata ${CMAKE_CURRENT_SOURCE_DIR}/Libraries/SQLite/sqlite3.lib)
else()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Libraries/SQLite)
target_link_libraries(libmcdata SQLite3)
endif (MSVC)

elseif(UNIX AND NOT APPLE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Libraries/SQLite)
target_link_libraries(libmcdata SQLite3)
Expand Down
Loading