@@ -101,8 +101,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
const ZOOM_MARGIN = 10;
- import WebGLImpl from "../common/AMCImplementation_WebGL.js"
- import LayerViewImpl from "../common/AMCImplementation_LayerView.js"
+ import WebGLImpl from "@core/common/AMCImplementation_WebGL.js"
+ import LayerViewImpl from "@core/common/AMCImplementation_LayerView.js"
export default {
props: ["Application", "module"],
@@ -316,7 +316,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
this.LayerViewerInstance.clearPoints ();
- return this.Application.axiosGetArrayBufferRequest("/ui/pointcloud/" + scatterplotuuid)
+ return this.Application.axiosGetArrayBufferRequest("/pointcloud/" + scatterplotuuid)
.then(responseData => {
let pointcoordinates = new Float32Array(responseData.data);
@@ -340,7 +340,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
this.LayerViewerInstance.clearPointsChannelData (pointsChannelName);
- return this.Application.axiosGetArrayBufferRequest("/ui/pointchanneldata/" + scatterplotuuid + "/" + pointsChannelName)
+ return this.Application.axiosGetArrayBufferRequest("/pointchanneldata/" + scatterplotuuid + "/" + pointsChannelName)
.then(responseData => {
const contentType = responseData.headers['content-type'];
@@ -684,24 +684,24 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
},
- created () {
- this.module.onDataHasChanged = null;
- if (this.module.platform) {
- this.module.platform.displayed_layer = 0;
- this.module.platform.displayed_build = 0;
- }
-
- this.glInstance = this.Application.retrieveWebGLInstance (module.uuid);
+ created () {
+ this.module.onDataHasChanged = null;
+ if (this.module.platform) {
+ this.module.platform.displayed_layer = 0;
+ this.module.platform.displayed_build = 0;
+ }
+
+ this.glInstance = this.Application.retrieveWebGLInstance (this.module.uuid);
- if (!this.glInstance) {
- this.glInstance = new WebGLImpl ();
+ if (!this.glInstance) {
+ this.glInstance = new WebGLImpl ();
+ this.Application.storeWebGLInstance (this.module.uuid, this.glInstance);
+ }
- this.Application.storeWebGLInstance (this.glInstance);
- this.LayerViewerInstance = new LayerViewImpl (this.glInstance);
- this.LayerViewerInstance.RenderScene (true);
-
- }
- },
+ // Always create a fresh LayerViewerInstance wrapping the (possibly cached) glInstance.
+ this.LayerViewerInstance = new LayerViewImpl (this.glInstance);
+ this.LayerViewerInstance.RenderScene (true);
+ },
unmounted ()
{
diff --git a/Client/vue2/src/modules/AMCModule_Logs.vue b/Client/vue2/src/modules/AMCModule_Logs.vue
new file mode 100644
index 000000000..61c0e9f32
--- /dev/null
+++ b/Client/vue2/src/modules/AMCModule_Logs.vue
@@ -0,0 +1,457 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mdi-arrow-collapse-down
+
+
+ Scroll to bottom
+
+
+
+
+
+
+
+
+ mdi-format-list-numbered
+
+
+ Limit shown entries ({{ effectiveLimit }})
+
+
+
+
+ {{ opt.label }}
+
+
+
+
+
+
+
+
+
+
+
+ mdi-filter-variant
+
+
+
+ {{ subsystemFilter ? 'Filter: ' + subsystemFilter : 'Filter by subsystem' }}
+
+
+
+
+
+ mdi-filter-off-outline
+
+ Clear filter
+
+
+
+ {{ sys }}
+
+
+ No entries
+
+
+
+
+
+
+
+
+
+
+ mdi-download
+
+
+ Download log
+
+
+
+
+ mdi-code-json
+ Current view – JSON
+
+
+ mdi-code-json
+ All historic – JSON
+
+
+
+ mdi-file-delimited-outline
+ Current view – CSV
+
+
+ mdi-file-delimited-outline
+ All historic – CSV
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Client/vue2/src/modules/AMCModule_Paragraph.vue b/Client/vue2/src/modules/AMCModule_Paragraph.vue
new file mode 100644
index 000000000..f84b9ce8a
--- /dev/null
+++ b/Client/vue2/src/modules/AMCModule_Paragraph.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ {{ module.text }}
+
+
+
+
+
+
+
+
diff --git a/Client/vue2/src/modules/AMCModule_ParameterList.vue b/Client/vue2/src/modules/AMCModule_ParameterList.vue
new file mode 100644
index 000000000..7eb253177
--- /dev/null
+++ b/Client/vue2/src/modules/AMCModule_ParameterList.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+ No entries available
+
+
+
+
+
+
+
+
+
diff --git a/Client/src/modules/AMCModule_ContentItem_Chart.vue b/Client/vue2/src/modules/AMCModule_Separator.vue
similarity index 50%
rename from Client/src/modules/AMCModule_ContentItem_Chart.vue
rename to Client/vue2/src/modules/AMCModule_Separator.vue
index d238cd117..a98c78dc3 100644
--- a/Client/src/modules/AMCModule_ContentItem_Chart.vue
+++ b/Client/vue2/src/modules/AMCModule_Separator.vue
@@ -1,6 +1,6 @@
+
+
+
+
+
+ {{ iconName }}
+
+ {{ module.title }}
+ — {{ module.description }}
+
+
+
+
+
+
+
+
diff --git a/Client/vue2/src/modules/AMCModule_TableBase.vue b/Client/vue2/src/modules/AMCModule_TableBase.vue
new file mode 100644
index 000000000..1d08df3ee
--- /dev/null
+++ b/Client/vue2/src/modules/AMCModule_TableBase.vue
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Client/src/modules/AMCModule_Tabs.vue b/Client/vue2/src/modules/AMCModule_Tabs.vue
similarity index 52%
rename from Client/src/modules/AMCModule_Tabs.vue
rename to Client/vue2/src/modules/AMCModule_Tabs.vue
index 02bb83e8c..b3a6c5d7f 100644
--- a/Client/src/modules/AMCModule_Tabs.vue
+++ b/Client/vue2/src/modules/AMCModule_Tabs.vue
@@ -30,62 +30,75 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
+
+
+
+
-
{{ moduleTab.caption }}
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
+
+
+
diff --git a/Client/src/modules/AMCModule_ContentItem_ButtonGroup.vue b/Client/vue2/src/modules/AMCModule_Upload.vue
similarity index 58%
rename from Client/src/modules/AMCModule_ContentItem_ButtonGroup.vue
rename to Client/vue2/src/modules/AMCModule_Upload.vue
index 810e1a145..881710381 100644
--- a/Client/src/modules/AMCModule_ContentItem_ButtonGroup.vue
+++ b/Client/vue2/src/modules/AMCModule_Upload.vue
@@ -30,50 +30,43 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
- {{ button.icon }}
- {{ button.caption }}
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/Client/src/modules/AMCModule_ContentItem_VideoStream.vue b/Client/vue2/src/modules/AMCModule_VideoStream.vue
similarity index 72%
rename from Client/src/modules/AMCModule_ContentItem_VideoStream.vue
rename to Client/vue2/src/modules/AMCModule_VideoStream.vue
index f3acbaaa8..0bfb0294b 100644
--- a/Client/src/modules/AMCModule_ContentItem_VideoStream.vue
+++ b/Client/vue2/src/modules/AMCModule_VideoStream.vue
@@ -30,9 +30,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
![]()
+
![Video Stream]()
@@ -41,26 +41,27 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/Client/src/vuetify.js b/Client/vue2/src/vuetify.js
similarity index 85%
rename from Client/src/vuetify.js
rename to Client/vue2/src/vuetify.js
index 834fe0a4d..fe1bbf441 100644
--- a/Client/src/vuetify.js
+++ b/Client/vue2/src/vuetify.js
@@ -36,13 +36,19 @@ Vue.use(Vuetify);
export default new Vuetify({
theme: {
+ dark: false,
themes: {
light: {
- primary: '#808080',
- secondary: '#1e1e1e',
- accent: '#666666',
- error: '#DD2222',
+ primary: '#C8102E',
+ secondary: '#3C3C3C',
+ accent: '#C8102E',
+ error: '#C8102E',
+ info: '#2979FF',
+ success: '#43A047',
+ warning: '#F9A825',
+ background: '#E0E3E7',
+ surface: '#FFFFFF',
},
},
- },
+ },
});
diff --git a/Client/vue.config.js b/Client/vue2/vue.config.js
similarity index 90%
rename from Client/vue.config.js
rename to Client/vue2/vue.config.js
index 43e322eca..723a51ef8 100644
--- a/Client/vue.config.js
+++ b/Client/vue2/vue.config.js
@@ -28,8 +28,17 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+const path = require('path');
+
module.exports = {
"transpileDependencies": [
"vuetify"
- ]
+ ],
+ configureWebpack: {
+ resolve: {
+ alias: {
+ '@core': path.resolve(__dirname, '../core')
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/Drivers/BuR/Implementation/libmcdriver_bur_definitions.cpp b/Drivers/BuR/Implementation/libmcdriver_bur_definitions.cpp
index 028539596..7f8df0895 100644
--- a/Drivers/BuR/Implementation/libmcdriver_bur_definitions.cpp
+++ b/Drivers/BuR/Implementation/libmcdriver_bur_definitions.cpp
@@ -252,6 +252,36 @@ void CDriver_BuRIntValue::writeToPayload(sAMCFToPLCPacketPayload& payLoad)
}
+CDriver_BuRSIntValue::CDriver_BuRSIntValue(const std::string& sName, const std::string& sDescription, const uint32_t nAddress)
+ : CDriver_BuRValue(sName, sDescription, nAddress), m_nValue(0)
+{
+
+}
+
+ePLCFieldType CDriver_BuRSIntValue::getFieldType()
+{
+ return ePLCFieldType::ftSInt;
+}
+
+PDriver_BuRValue CDriver_BuRSIntValue::duplicate()
+{
+ auto pDuplicate = std::make_shared
(m_sName, m_sDescription, m_nAddress);
+ pDuplicate->m_nValue = m_nValue;
+ return pDuplicate;
+}
+
+void CDriver_BuRSIntValue::setIntegerValue(uint64_t nValue)
+{
+ m_nValue = nValue;
+}
+
+void CDriver_BuRSIntValue::writeToPayload(sAMCFToPLCPacketPayload& payLoad)
+{
+ uint8_t nValue = (uint8_t) m_nValue;
+ writeDataToPayload(payLoad, (uint8_t*)&nValue, sizeof(nValue));
+}
+
+
CDriver_BuRBoolValue::CDriver_BuRBoolValue(const std::string& sName, const std::string& sDescription, const uint32_t nAddress)
: CDriver_BuRValue(sName, sDescription, nAddress), m_bValue(false)
{
diff --git a/Drivers/BuR/Implementation/libmcdriver_bur_definitions.hpp b/Drivers/BuR/Implementation/libmcdriver_bur_definitions.hpp
index 013919230..bd4f74ace 100644
--- a/Drivers/BuR/Implementation/libmcdriver_bur_definitions.hpp
+++ b/Drivers/BuR/Implementation/libmcdriver_bur_definitions.hpp
@@ -76,6 +76,7 @@ namespace Impl {
ftDInt = 3,
ftBool = 4,
ftReal = 5,
+ ftSInt = 6,
};
class ITimeStampGenerator {
@@ -209,6 +210,25 @@ namespace Impl {
+ class CDriver_BuRSIntValue : public CDriver_BuRValue {
+ protected:
+ int64_t m_nValue;
+
+ public:
+
+ CDriver_BuRSIntValue(const std::string& sName, const std::string& sDescription, const uint32_t nAddress);
+
+ ePLCFieldType getFieldType() override;
+
+ PDriver_BuRValue duplicate() override;
+
+ void setIntegerValue(uint64_t nValue) override;
+
+ void writeToPayload(sAMCFToPLCPacketPayload& payLoad) override;
+
+ };
+
+
class CDriver_BuRBoolValue : public CDriver_BuRValue {
protected:
bool m_bValue;
diff --git a/Drivers/BuR/Implementation/libmcdriver_bur_driver_bur.cpp b/Drivers/BuR/Implementation/libmcdriver_bur_driver_bur.cpp
index a5dfba0f2..ebb96d719 100644
--- a/Drivers/BuR/Implementation/libmcdriver_bur_driver_bur.cpp
+++ b/Drivers/BuR/Implementation/libmcdriver_bur_driver_bur.cpp
@@ -61,7 +61,7 @@ PDriver_BuRValue readParameterFromXMLNode(pugi::xml_node & xmlNode)
PDriver_BuRValue pValue;
std::string sChildName = xmlNode.name();
- if ((sChildName == "bool") || (sChildName == "real") || (sChildName == "lreal") || (sChildName == "dint") || (sChildName == "int")) {
+ if ((sChildName == "bool") || (sChildName == "real") || (sChildName == "lreal") || (sChildName == "dint") || (sChildName == "int") || (sChildName == "sint")) {
auto nameAttrib = xmlNode.attribute("name");
auto addressAttrib = xmlNode.attribute("address");
@@ -114,6 +114,10 @@ PDriver_BuRValue readParameterFromXMLNode(pugi::xml_node & xmlNode)
pValue = std::make_shared(sName, sDescription, nAddress);
}
+ if (sChildName == "sint") {
+ pValue = std::make_shared(sName, sDescription, nAddress);
+ }
+
}
return pValue;
@@ -285,6 +289,9 @@ void CDriver_BuR::Configure(const std::string& sConfigurationString)
if (dynamic_cast (pValue.get()) != nullptr)
m_pDriverEnvironment->RegisterIntegerParameter(pValue->getName(), pValue->getDescription(), 0);
+ if (dynamic_cast (pValue.get()) != nullptr)
+ m_pDriverEnvironment->RegisterIntegerParameter(pValue->getName(), pValue->getDescription(), 0);
+
m_LegacyDriverParameters.push_back(pValue);
m_LegacyDriverParameterMap.insert(std::make_pair(pValue->getName(), pValue));
}
@@ -421,6 +428,10 @@ void CDriver_BuR::QueryParametersEx(LibMCEnv::PDriverStatusUpdateSession pDriver
pDriverUpdateInstance->SetDoubleParameter(sName, pPacket->readDouble(driverParameter->getAddress()));
}
+ if (dynamic_cast (driverParameter.get()) != nullptr) {
+ pDriverUpdateInstance->SetIntegerParameter(sName, pPacket->readUInt8(driverParameter->getAddress()));
+ }
+
if (dynamic_cast (driverParameter.get()) != nullptr) {
pDriverUpdateInstance->SetBoolParameter(sName, pPacket->readBool(driverParameter->getAddress()));
}
diff --git a/Examples/LPBFSystem/Main/mcplugin_main.cpp b/Examples/LPBFSystem/Main/mcplugin_main.cpp
index 0f3855723..25befb3c8 100644
--- a/Examples/LPBFSystem/Main/mcplugin_main.cpp
+++ b/Examples/LPBFSystem/Main/mcplugin_main.cpp
@@ -140,6 +140,8 @@ __DECLARESTATE(idle)
pDummyTrigger->SetInteger("timer", (int32_t)nTimer);
pDummyTrigger->Trigger();
+ pStateEnvironment->LogMessage("Timer: " + std::to_string(nTimer));
+
auto pTelemetryChannel = pStateEnvironment->FindTelemetryChannel("gasinitializationtime", true);
auto pMarker = pTelemetryChannel->StartMarkerScope(12345);
diff --git a/Examples/LPBFSystem/config.xml b/Examples/LPBFSystem/config.xml
index 3df33c3be..ace86543b 100644
--- a/Examples/LPBFSystem/config.xml
+++ b/Examples/LPBFSystem/config.xml
@@ -1,5 +1,5 @@
-
+
@@ -299,41 +299,45 @@
-
+
-
-
-
-
+
+
+
+
-
-