Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
98a56ba
Refactored api handler
netfabb Aug 11, 2020
47f8ce3
Clean build now works with spaces in directory
netfabb Aug 11, 2020
92aa9a8
Clean build now works with spaces in directory
netfabb Aug 11, 2020
62fc1a8
Added upload APIs
netfabb Aug 14, 2020
e1b7783
Added Storage and Build files to Data model
netfabb Aug 18, 2020
4a80c86
Added external signal triggering API
netfabb Aug 18, 2020
900657c
First implementation of a gui handler
netfabb Aug 19, 2020
bba4471
First Client for UI Framework
netfabb Aug 19, 2020
63f6a04
Updated UI Framework
netfabb Aug 20, 2020
ddbff04
Updated Marlin driver
netfabb Aug 20, 2020
40d6469
fixed build process
netfabb Aug 20, 2020
344f027
Added linker flags and includes for linux + minor changes for gcc
Aug 20, 2020
924f8fa
Refactored Marlin driver
netfabb Aug 20, 2020
444c71d
Changed to C++14, changed std::exception to gcc-friendly std::runtime…
Aug 20, 2020
5a394e0
Merge pull request #3 from akmalbakaradsk/develop_linux_build
alexanderoster Aug 21, 2020
d21c25d
Added OIE Driver
netfabb Aug 21, 2020
e64e871
added liboie server
netfabb Aug 21, 2020
a231317
Added sqlite3 library for Linux
Aug 21, 2020
7d37331
added linux build script
Aug 24, 2020
1cfe75d
Updated Marlin Driver Movement
netfabb Aug 24, 2020
032e8a8
Fixed DeveloperPackage creation
netfabb Aug 24, 2020
c19228e
raspbian build: minor cmake changes and dependencies install script
akmal-bakar Aug 24, 2020
5bac8a8
Merge pull request #4 from akmalbakaradsk/develop_linux_build
alexanderoster Aug 25, 2020
a05f18d
Added Camera Driver
netfabb Aug 25, 2020
e6c7c30
Added Toolpath API for querying properties
netfabb Aug 25, 2020
42d9e1b
fixing linux build
Aug 26, 2020
a4814c6
fixed linux build chrono::steady_clock has different implementations …
Aug 27, 2020
2fac6e8
Merge pull request #5 from akmalbakaradsk/develop
alexanderoster Aug 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
96 changes: 81 additions & 15 deletions ACT/LibMC.xml
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,51 @@
<error name="DUPLICATESTORAGESTREAM" code="239" description="Duplicate Storage Stream" />
<error name="INVALIDPARTIALUPLOAD" code="240" description="Invalid Partial Upload" />
<error name="PARTIALUPLOADNOTFINISHED" code="241" description="Partial Upload not finished" />

<error name="APIREQUESTNOTHANDLED" code="242" description="API Request not handled" />
<error name="APIREQUESTALREADYHANDLED" code="243" description="API Request already handled" />
<error name="INVALIDAPIREQUESTTYPE" code="244" description="Invalid API Request type" />
<error name="INVALIDUPLOADSTREAM" code="245" description="Invalid Upload Stream" />
<error name="COULDNOTPARSEJSONREQUEST" code="246" description="Could not parse JSON request" />

<error name="INVALIDCONTEXTUUID" code="247" description="Invalid Context UUID" />
<error name="INVALIDUPLOADNAME" code="248" description="Invalid Upload Name" />
<error name="INVALIDMIMETYPE" code="249" description="Invalid Mime Type" />
<error name="INVALIDSTREAMSIZE" code="250" description="Invalid Stream Size" />
<error name="INVALIDSHA256SUM" code="251" description="Invalid SHA256 Sum" />
<error name="INVALIDSTREAMUUID" code="252" description="Invalid Stream UUID" />
<error name="INVALIDFIELDNAME" code="253" description="Invalid field name" />
<error name="UPLOADSIZEMISMATCH" code="254" description="Upload size mismatch" />
<error name="CONTENTTYPENOTACCEPTED" code="255" description="Content type not accepted" />
<error name="NOCURRENTUPLOAD" code="256" description="No current upload" />
<error name="UPLOADCHECKSUMMISMATCH" code="257" description="Upload checksum mismatch" />
<error name="INVALIDSTORAGESTREAMSTATUS" code="258" description="Invalid storage stream status" />
<error name="CONTEXTUUIDNOTACCEPTED" code="259" description="Context uuid not accepted" />
<error name="INVALIDBUILDUUID" code="260" description="Invalid build uuid" />

<error name="MISSINGTHREADCOUNT" code="261" description="Missing thread count" />
<error name="INVALIDTHREADCOUNT" code="262" description="Invalid thread count" />
<error name="COULDNOTUPDATEBUILDSTATUS" code="263" description="Could not update build status" />
<error name="INVALIDITERATOR" code="264" description="Invalid iterator" />
<error name="INVALIDDATATYPE" code="265" description="Invalid data type" />
<error name="COULDNOTSENDSIGNAL" code="266" description="Could not send signal" />
<error name="MISSINGSIGNALPARAMETER" code="267" description="Missing signal parameter" />
<error name="NOUSERINTERFACEDEFINITION" code="268" description="No user interface definition" />

<error name="MISSINGAPPNAME" code="269" description="Missing app name" />
<error name="MISSINGCOPYRIGHT" code="270" description="Missing copyright" />
<error name="MISSINGMAINPAGE" code="271" description="Missing main page" />
<error name="MISSINGMENUITEMID" code="272" description="Missing menu item id" />
<error name="MISSINGMENUITEMICON" code="273" description="Missing menu item icon" />
<error name="MISSINGMENUITEMCAPTION" code="274" description="Missing menu item caption" />
<error name="MISSINGTARGETPAGE" code="275" description="Missing menu item target page" />
<error name="MISSINGMENUNODE" code="276" description="Missing menu node" />
<error name="MISSINGTOOLBARNODE" code="277" description="Missing toolbar node" />
<error name="MISSINGTOOLBARITEMID" code="278" description="Missing toolbar item id" />
<error name="MISSINGTOOLBARITEMICON" code="279" description="Missing toolbar item icon" />
<error name="MISSINGTOOLBARITEMCAPTION" code="280" description="Missing toolbar item caption" />
<error name="MISSINGSERVICESNODE" code="281" description="Missing services node" />

</errors>


Expand All @@ -271,19 +315,46 @@
</class>


<class name="APIResponse" parent="Base" description="Response class for an API Call">
<class name="APIRequestHandler" parent="Base" description="API Request Handler">

<method name="ExpectsRawBody" description="checks if the raw body is needed to handle the request.">
<param name="Value" type="bool" pass="return" description="Flag, if the raw body is needed in the request." />
</method>

<method name="ExpectsFormData" description="checks if the parsed form data is needed to handle the request.">
<param name="FieldCount" type="uint32" pass="out" description="Number of Form Data entries that are expected." />
<param name="Value" type="bool" pass="return" description="Flag, if the parsed form data is needed in the request." />
</method>

<method name="GetFormDataDetails" description="returns details of expected form data.">
<param name="FieldIndex" type="uint32" pass="in" description="Index of Form Data Field (0..FieldCount - 1)" />
<param name="Name" type="string" pass="out" description="Name of the expected form data field." />
<param name="IsFile" type="bool" pass="out" description="Flag, if the field Is a file field." />
<param name="Mandatory" type="bool" pass="out" description="Flag, if the field MUST be present." />
</method>


<method name="GetHTTPCode" description="returns the HTTP Errorcode to set (200 for success).">
<param name="HTTPCode" type="uint32" pass="return" description="HTTP Code" />
<method name="SetFormDataField" description="passes the a form data field to the request handler. Call only, if ExpectsFormData returns true.">
<param name="Name" type="string" pass="in" description="Name of the form data field." />
<param name="DataField" type="basicarray" class="uint8" pass="in" description="DataField that was sent." />
</method>

<method name="GetContentType" description="returns the content type string of the data.">
<param name="ContentType" type="string" pass="return" description="Content Type." />
<method name="SetFormStringField" description="passes the a form string field to the request handler. Call only, if ExpectsFormData returns true.">
<param name="Name" type="string" pass="in" description="Name of the form data field." />
<param name="String" type="string" pass="in" description="DataString that was sent." />
</method>

<method name="GetData" description="returns the stream content of the data.">
<method name="Handle" description="handles the request.">
<param name="RawBody" type="basicarray" class="uint8" pass="in" description="Raw Body that was sent. Only necessary, if ExpectsRawBody returns true." />
<param name="ContentType" type="string" pass="out" description="the resulting Content Type String of the data." />
<param name="HTTPCode" type="uint32" pass="out" description="the resulting HTTP Errorcode (200 for success)." />
</method>


<method name="GetResultData" description="returns the cached stream content of the resulting data. Call only after Handle().">
<param name="Data" type="basicarray" class="uint8" pass="out" description="Binary stream data" />
</method>


</class>

Expand Down Expand Up @@ -318,17 +389,12 @@
</method>


<method name="HandleAPIGetRequest" description="handle an API GET request.">
<method name="CreateAPIRequestHandler" description="creates an API request handler.">
<param name="URI" type="string" pass="in" description="URI to serve" />
<param name="Response" type="class" class="APIResponse" pass="return" description="Response instance." />
<param name="RequestMethod" type="string" pass="in" description="Request Method" />
<param name="HandlerInstance" type="class" class="APIRequestHandler" pass="return" description="Request Handler instance." />
</method>

<method name="HandleAPIPostRequest" description="handle an API POST request.">
<param name="URI" type="string" pass="in" description="URI to serve" />
<param name="Body" type="basicarray" class="uint8" pass="in" description="Body that was sent." />
<param name="Response" type="class" class="APIResponse" pass="return" description="Response instance." />
</method>


</class>


Expand Down
152 changes: 141 additions & 11 deletions ACT/LibMCData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -231,10 +231,51 @@
<error name="DUPLICATESTORAGESTREAM" code="239" description="Duplicate Storage Stream" />
<error name="INVALIDPARTIALUPLOAD" code="240" description="Invalid Partial Upload" />
<error name="PARTIALUPLOADNOTFINISHED" code="241" description="Partial Upload not finished" />




<error name="APIREQUESTNOTHANDLED" code="242" description="API Request not handled" />
<error name="APIREQUESTALREADYHANDLED" code="243" description="API Request already handled" />
<error name="INVALIDAPIREQUESTTYPE" code="244" description="Invalid API Request type" />
<error name="INVALIDUPLOADSTREAM" code="245" description="Invalid Upload Stream" />
<error name="COULDNOTPARSEJSONREQUEST" code="246" description="Could not parse JSON request" />

<error name="INVALIDCONTEXTUUID" code="247" description="Invalid Context UUID" />
<error name="INVALIDUPLOADNAME" code="248" description="Invalid Upload Name" />
<error name="INVALIDMIMETYPE" code="249" description="Invalid Mime Type" />
<error name="INVALIDSTREAMSIZE" code="250" description="Invalid Stream Size" />
<error name="INVALIDSHA256SUM" code="251" description="Invalid SHA256 Sum" />
<error name="INVALIDSTREAMUUID" code="252" description="Invalid Stream UUID" />
<error name="INVALIDFIELDNAME" code="253" description="Invalid field name" />
<error name="UPLOADSIZEMISMATCH" code="254" description="Upload size mismatch" />
<error name="CONTENTTYPENOTACCEPTED" code="255" description="Content type not accepted" />
<error name="NOCURRENTUPLOAD" code="256" description="No current upload" />
<error name="UPLOADCHECKSUMMISMATCH" code="257" description="Upload checksum mismatch" />
<error name="INVALIDSTORAGESTREAMSTATUS" code="258" description="Invalid storage stream status" />
<error name="CONTEXTUUIDNOTACCEPTED" code="259" description="Context uuid not accepted" />
<error name="INVALIDBUILDUUID" code="260" description="Invalid build uuid" />

<error name="MISSINGTHREADCOUNT" code="261" description="Missing thread count" />
<error name="INVALIDTHREADCOUNT" code="262" description="Invalid thread count" />
<error name="COULDNOTUPDATEBUILDSTATUS" code="263" description="Could not update build status" />
<error name="INVALIDITERATOR" code="264" description="Invalid iterator" />
<error name="INVALIDDATATYPE" code="265" description="Invalid data type" />

<error name="COULDNOTSENDSIGNAL" code="266" description="Could not send signal" />
<error name="MISSINGSIGNALPARAMETER" code="267" description="Missing signal parameter" />
<error name="NOUSERINTERFACEDEFINITION" code="268" description="No user interface definition" />

<error name="MISSINGAPPNAME" code="269" description="Missing app name" />
<error name="MISSINGCOPYRIGHT" code="270" description="Missing copyright" />
<error name="MISSINGMAINPAGE" code="271" description="Missing main page" />
<error name="MISSINGMENUITEMID" code="272" description="Missing menu item id" />
<error name="MISSINGMENUITEMICON" code="273" description="Missing menu item icon" />
<error name="MISSINGMENUITEMCAPTION" code="274" description="Missing menu item caption" />
<error name="MISSINGTARGETPAGE" code="275" description="Missing menu item target page" />
<error name="MISSINGMENUNODE" code="276" description="Missing menu node" />
<error name="MISSINGTOOLBARNODE" code="277" description="Missing toolbar node" />
<error name="MISSINGTOOLBARITEMID" code="278" description="Missing toolbar item id" />
<error name="MISSINGTOOLBARITEMICON" code="279" description="Missing toolbar item icon" />
<error name="MISSINGTOOLBARITEMCAPTION" code="280" description="Missing toolbar item caption" />
<error name="MISSINGSERVICESNODE" code="281" description="Missing services node" />

</errors>


Expand All @@ -259,8 +300,18 @@
<option name="Validating" value="100"/>
<option name="Validated" value="200"/>
<option name="Archived" value="300"/>
<option name="Deleted" value="400"/>
</enum>


<enum name="BuildJobDataType">
<option name="Unknown" value="0"/>
<option name="Toolpath" value="1"/>
<option name="PNGImage" value="2"/>
<option name="JPEGImage" value="3"/>
<option name="Thumbnail" value="4"/>
<option name="Timeline" value="5"/>
<option name="CustomBinaryData" value="100"/>
</enum>

<functiontype name="StreamReadCallback" description="Callback to call for reading a data chunk">
<param name="ByteData" type="pointer" pass="in" description="Pointer to a buffer to read data into"/>
Expand Down Expand Up @@ -314,10 +365,6 @@
<method name="GetUUID" description="returns the uuid of a storage stream.">
<param name="UUID" type="string" pass="return" description="UUID String" />
</method>

<method name="GetContextUUID" description="returns the context uuid of a storage stream. Context might be for example a project uuid that this stream is part of.">
<param name="ContextUUID" type="string" pass="return" description="UUID String" />
</method>

<method name="GetTimeStamp" description="returns the timestamp of a storage stream.">
<param name="Timestamp" type="string" pass="return" description="Timestamp in ISO8601 UTC format" />
Expand Down Expand Up @@ -394,10 +441,50 @@
<method name="FinishPartialStream" description="Finishes storing a stream.">
<param name="UUID" type="string" pass="in" description="UUID of storage stream. MUST have been created with BeginPartialStream first." />
</method>

<method name="GetMaxStreamSize" description="Returns the maximum stream size that the data model allows.">
<param name="MaxStreamSize" type="uint64" pass="return" description="Maximum Stream Size in Bytes." />
</method>

<method name="ContentTypeIsAccepted" description="Returns if the given content type is an acceptable value.">
<param name="ContentType" type="string" pass="in" description="Content type string (is taken case-insensitive)" />
<param name="Accepted" type="bool" pass="return" description="Content type is accepted." />
</method>

</class>


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

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

<method name="GetTimeStamp" description="returns the timestamp when the job was created.">
<param name="Timestamp" type="string" pass="return" description="Timestamp in ISO8601 UTC format" />
</method>

<method name="GetStorageStream" description="returns the storage stream of the build.">
<param name="StreamInstance" type="class" class="StorageStream" pass="return" description="Stream Instance." />
</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="GetMIMEType" description="returns the mime type of a storage stream.">
<param name="MimeType" type="string" pass="return" description="Mime Type String" />
</method>

</class>

<class name="BuildJobDataIterator" parent="Iterator">
<method name="GetCurrentJobData" description="Returns the build job data the iterator points at.">
<param name="CurrentInstance" type="handle" class="BuildJobData" pass="return" description="returns the build job instance."/>
</method>
</class>


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

<method name="GetUUID" description="returns the uuid of a build job.">
Expand All @@ -412,19 +499,62 @@
<param name="Status" type="enum" class="BuildJobStatus" pass="return" description="Status of build job." />
</method>

<method name="GetLayerCount" description="returns the layer count of a build job.">
<param name="LayerCount" type="uint32" pass="return" description="Layer Count of build job" />
</method>

<method name="GetTimeStamp" description="returns the timestamp when the job was created.">
<param name="Timestamp" type="string" pass="return" description="Timestamp in ISO8601 UTC format" />
</method>

<method name="GetStorageStream" description="returns the storage stream of the build.">
<param name="StreamInstance" type="class" class="StorageStream" pass="return" description="Stream Instance." />
</method>

<method name="GetStorageStreamUUID" description="returns the storage stream uuid of the build.">
<param name="StreamUUID" type="string" pass="return" description="Stream UUID." />
</method>

<method name="GetBuildJobLogger" description="creates a build job log session access class.">
<param name="LogSession" type="class" class="LogSession" pass="return" description="LogSession class instance." />
</method>


<method name="StartValidating" description="Starts validation of a build job.">
</method>

<method name="FinishValidating" description="Finishes validation of a build job.">
<param name="LayerCount" type="uint32" pass="in" description="Layer count" />
</method>

<method name="ArchiveJob" description="Archives a Job. Job MUST not be opened in the system. Job MUST be of state validated.">
</method>

<method name="UnArchiveJob" description="Unarchives a Job. Job MUST be of state archived.">
</method>

<method name="DeleteJob" description="Deletes a Job permanently including all referencing data objects. Job MUST be of state archived to succeed.">
</method>

<method name="JobCanBeArchived" description="Returns if a job is opened.">
<param name="CanBeArchived" type="bool" pass="return" description="returns if the job can be archived." />
</method>

<method name="AddJobData" description="Adds additional data to the Job. Job MUST be of state validated in order to add job data.">
<param name="Name" type="string" pass="in" description="Name of the job" />
<param name="Stream" type="class" class="StorageStream" pass="in" description="Storage Stream Instance" />
<param name="DataType" type="enum" class="BuildJobDataType" pass="in" description="Datatype of Job data" />
<param name="UserID" type="string" pass="in" description="Currently authenticated user" />
</method>

<method name="ListJobDataByType" description="Retrieves a list of build job data objects, filtered by type.">
<param name="DataType" type="enum" class="BuildJobDataType" pass="in" description="Datatype of Job data." />
<param name="IteratorInstance" type="class" class="BuildJobDataIterator" pass="return" description="Build Job Data Iterator Instance." />
</method>

<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>

</class>

<class name="BuildJobIterator" parent="Iterator">
Expand All @@ -440,7 +570,7 @@
<param name="JobUUID" type="string" pass="in" description="UUID String for the build job. Must be unique and newly generated." />
<param name="Name" type="string" pass="in" description="Name String" />
<param name="UserID" type="string" pass="in" description="Currently authenticated user" />
<param name="StreamInstance" type="class" class="StorageStream" pass="in" description="Storage stream to create the job from. ContextUUID of Stream MUST be the Job UUID." />
<param name="StorageStreamUUID" type="string" pass="in" description="Storage stream uuid for the job. Needs not exist yet." />
<param name="JobInstance" type="class" class="BuildJob" pass="return" description="Build Job Instance." />
</method>

Expand Down
Loading