Feat: implemented mongo store/retrieve datas for webservice and imagecreator; Feat: parallel execution of Puppets with random flow

This commit is contained in:
Lorenzo Iovino 2019-05-03 01:33:31 +02:00
parent 1c8645039e
commit ae477fc3df
11 changed files with 506 additions and 223 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
datas
node_modules/
dist/
trainingImages/

360
.idea/workspace.xml generated
View file

@ -5,27 +5,17 @@
</component>
<component name="ChangeListManager">
<list default="true" id="603d916b-6d0f-43a7-809c-21ce2bcb2533" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/DataGatherer/src/shared/Data.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/DataGeneratorPuppets/src/event-flow/MouseEventFlow.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/DataGeneratorPuppets/tsconfig.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/models/Data.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/data/Data.ts" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/gatherer/Gatherer.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/gatherer/Gatherer.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/main.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/main.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/sender/Sender.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/sender/Sender.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/source/Source.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/source/Source.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/source/mouse/Mouse.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/source/mouse/Mouse.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGatherer/src/source/screen/Screen.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGatherer/src/source/screen/Screen.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts" beforeDir="false" afterPath="$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/src/main.ts" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts" beforeDir="false" afterPath="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
@ -44,8 +34,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="1" selection-start-line="10" selection-start-column="1" selection-end-line="10" selection-end-column="1" />
<state relative-caret-position="136">
<caret line="8" column="21" lean-forward="true" selection-start-line="8" selection-start-column="21" selection-end-line="8" selection-end-column="21" />
<folding>
<element signature="e#0#32#0" expanded="true" />
</folding>
@ -53,11 +43,11 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/datas/flow.ts">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="425">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
<state relative-caret-position="51">
<caret line="3" column="15" lean-forward="true" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="15" />
</state>
</provider>
</entry>
@ -65,17 +55,11 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191">
<caret line="122" column="35" selection-start-line="122" selection-start-column="35" selection-end-line="122" selection-end-column="35" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" selection-start-line="11" selection-end-line="11" />
<state relative-caret-position="-391">
<caret line="16" column="22" selection-start-line="16" selection-start-column="22" selection-end-line="16" selection-end-column="22" />
<folding>
<element signature="e#0#62#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -83,52 +67,55 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="32" selection-start-line="10" selection-start-column="32" selection-end-line="10" selection-end-column="32" />
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="777">
<caret line="77" column="20" selection-start-line="77" selection-start-column="20" selection-end-line="77" selection-end-column="20" />
<state relative-caret-position="51">
<caret line="3" column="47" selection-start-line="3" selection-start-column="47" selection-end-line="3" selection-end-column="47" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="3" column="49" selection-start-line="3" selection-start-column="49" selection-end-line="3" selection-end-column="49" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="36" selection-start-line="15" selection-start-column="36" selection-end-line="15" selection-end-column="36" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGatherer/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="23" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/models/Data.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="24" selection-start-line="8" selection-start-column="24" selection-end-line="8" selection-end-column="24" />
<folding>
<element signature="e#0#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGatherer/src/source/Source.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="5" column="33" selection-start-line="5" selection-start-column="33" selection-end-line="5" selection-end-column="33" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGatherer/src/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="497">
<caret line="44" column="39" selection-start-line="44" selection-start-column="39" selection-end-line="44" selection-end-column="39" />
<folding>
<element signature="e#0#41#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/DataGatherer/src/sender/Sender.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="30" column="48" selection-start-line="30" selection-start-column="48" selection-end-line="30" selection-end-column="48" />
<folding>
<element signature="e#0#48#0" expanded="true" />
<element signature="e#0#37#0" expanded="true" />
</folding>
</state>
</provider>
@ -175,6 +162,10 @@
<find>.style</find>
<find>new Data</find>
<find>flowName</find>
<find>atetime</find>
<find>connect</find>
<find>console</find>
<find>constructor</find>
</findStrings>
<replaceStrings>
<replace />
@ -188,7 +179,6 @@
<list>
<option value="$PROJECT_DIR$/great-big-angular2-example/README.md" />
<option value="$PROJECT_DIR$/great-big-angular2-example/src/index.html" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/package.json" />
<option value="$PROJECT_DIR$/DataGatherer/src/data/Data.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/source/generator/Generator.ts" />
@ -207,23 +197,26 @@
<option value="$PROJECT_DIR$/DataGatherer/src/shared/Data.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/source/keyboard/Keyboard.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/source/Source.ts" />
<option value="$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/source/screen/Screen.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/source/mouse/Mouse.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/main.ts" />
<option value="$PROJECT_DIR$/DataGatherer/src/sender/Sender.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/models/Data.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts" />
<option value="$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts" />
<option value="$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts" />
<option value="$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts" />
<option value="$PROJECT_DIR$/.gitignore" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="1981" />
<option name="y" value="263" />
<option name="y" value="-310" />
<option name="width" value="1936" />
<option name="height" value="1130" />
<option name="height" value="1160" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
@ -231,6 +224,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -349,7 +343,6 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@ -385,7 +378,7 @@
</list>
</option>
</component>
<component name="RunManager" selected="npm.dev:puppet">
<component name="RunManager" selected="npm.dev:imageCreator">
<configuration name="build" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/DataGatherer/package.json" />
<command value="run" />
@ -441,8 +434,8 @@
<item itemvalue="npm.dev:imageCreator" />
<item itemvalue="npm.dev:puppet" />
<item itemvalue="npm.dev:ws" />
<item itemvalue="npm.build" />
<item itemvalue="npm.build:puppet" />
<item itemvalue="npm.build" />
</list>
</recent_temporary>
</component>
@ -465,6 +458,9 @@
<workItem from="1555518427859" duration="877000" />
<workItem from="1555582279420" duration="45000" />
<workItem from="1556285810803" duration="12320000" />
<workItem from="1556523841979" duration="654000" />
<workItem from="1556826362124" duration="2509000" />
<workItem from="1556828935019" duration="10937000" />
</task>
<task id="LOCAL-00001" summary="Feat: Added websocket comm. for DataGatherer and PredictorWebService">
<created>1554992034761</created>
@ -477,17 +473,18 @@
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="71501000" />
<option name="totallyTimeSpent" value="85601000" />
</component>
<component name="ToolWindowManager">
<frame x="1912" y="-318" width="1936" height="1176" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.49818182" visible="true" weight="0.19125395" />
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49818182" visible="true" weight="0.19125395" />
<window_info id="Structure" order="1" sideWeight="0.5018182" side_tool="true" weight="0.19125395" />
<window_info id="Favorites" order="2" sideWeight="0.50060606" side_tool="true" weight="0.24868283" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.20901246" />
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.36049855" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@ -592,27 +589,6 @@
<entry file="file://$PROJECT_DIR$/Predictor/PredictorNeuralNetwork/datas/train/cat/cat.445.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="23" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="5" column="14" selection-start-line="5" selection-start-column="14" selection-end-line="5" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="26" column="53" selection-start-line="26" selection-start-column="53" selection-end-line="26" selection-end-column="53" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/gatherer/Gatherer.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
@ -620,13 +596,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="3" column="46" selection-start-line="3" selection-start-column="46" selection-end-line="3" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/event-flow/MouseEventFlow.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
@ -634,13 +603,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/shared/Data.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="21" selection-start-line="2" selection-start-column="21" selection-end-line="2" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/source/keyboard/Keyboard.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
@ -680,23 +642,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/source/mouse/Mouse.ts">
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/datas/flow.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="5" column="54" selection-start-line="5" selection-start-column="54" selection-end-line="5" selection-end-column="54" />
<folding>
<element signature="e#0#35#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="497">
<caret line="44" column="39" selection-start-line="44" selection-start-column="39" selection-end-line="44" selection-end-column="39" />
<folding>
<element signature="e#0#41#0" expanded="true" />
</folding>
<state relative-caret-position="425">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
</state>
</provider>
</entry>
@ -707,44 +656,34 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts">
<entry file="file://$PROJECT_DIR$/DataGatherer/src/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="777">
<caret line="77" column="20" selection-start-line="77" selection-start-column="20" selection-end-line="77" selection-end-column="20" />
<state relative-caret-position="680">
<caret line="44" column="39" selection-start-line="44" selection-start-column="39" selection-end-line="44" selection-end-column="39" />
<folding>
<element signature="e#0#30#0" expanded="true" />
<element signature="e#0#41#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/node_modules/mongodb/lib/mongo_client.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191">
<caret line="122" column="35" selection-start-line="122" selection-start-column="35" selection-end-line="122" selection-end-column="35" />
<state relative-caret-position="134">
<caret line="22" column="20" lean-forward="true" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts">
<entry file="file://$PROJECT_DIR$/DataGatherer/src/shared/Data.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="1" selection-start-line="10" selection-start-column="1" selection-end-line="10" selection-end-column="1" />
<folding>
<element signature="e#0#32#0" expanded="true" />
</folding>
<state relative-caret-position="153">
<caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/datas/flow.ts">
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/node_modules/@types/node/globals.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="425">
<caret line="25" column="22" selection-start-line="25" selection-start-column="22" selection-end-line="25" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="32" selection-start-line="10" selection-start-column="32" selection-end-line="10" selection-end-column="32" />
<state relative-caret-position="266">
<caret line="162" column="12" selection-start-line="162" selection-start-column="12" selection-end-line="162" selection-end-column="12" />
</state>
</provider>
</entry>
@ -758,10 +697,109 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/src/source/mouse/Mouse.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="5" column="54" selection-start-line="5" selection-start-column="54" selection-end-line="5" selection-end-column="54" />
<folding>
<element signature="e#0#35#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/dist/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="6" column="24" selection-start-line="6" selection-start-column="24" selection-end-line="6" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGatherer/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="23" selection-start-line="23" selection-end-line="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/models/Data.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="24" selection-start-line="8" selection-start-column="24" selection-end-line="8" selection-end-column="24" />
<folding>
<element signature="e#0#37#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/PredictorWebService.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="284">
<caret line="52" column="74" lean-forward="true" selection-start-line="52" selection-start-column="74" selection-end-line="52" selection-end-column="74" />
<folding>
<element signature="e#0#30#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="36" selection-start-line="15" selection-start-column="36" selection-end-line="15" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="41" selection-start-line="14" selection-start-column="41" selection-end-line="14" selection-end-column="41" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/predictor-web-service/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="3" column="49" selection-start-line="3" selection-start-column="49" selection-end-line="3" selection-end-column="49" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/Puppet.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" selection-start-line="11" selection-end-line="11" />
<state relative-caret-position="51">
<caret line="3" column="47" selection-start-line="3" selection-start-column="47" selection-end-line="3" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Predictor/PredictorWebService/src/image-creator/ImageCreatorService.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-391">
<caret line="16" column="22" selection-start-line="16" selection-start-column="22" selection-end-line="16" selection-end-column="22" />
<folding>
<element signature="e#0#62#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/DataGeneratorPuppets/src/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="21" lean-forward="true" selection-start-line="8" selection-start-column="21" selection-end-line="8" selection-end-column="21" />
<folding>
<element signature="e#0#32#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="51">
<caret line="3" column="15" lean-forward="true" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="15" />
</state>
</provider>
</entry>

View file

@ -18,8 +18,6 @@ export class Puppet {
async execMovements(page, flow: {type: string; target: {x: number, y: number, width: number, height: number} }[]){
function humanize(val: number, bounduaries: {min: number, max: number}) {
console.log(val);
console.log(Math.random() * Math.abs(bounduaries.max));
return val + (Math.random() * Math.abs(bounduaries.max));
}
@ -46,5 +44,8 @@ export class Puppet {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await this.execMovements(page, this.flow);
await page.close();
await browser.close();
return 'end';
}
}

View file

@ -3,11 +3,40 @@ import {flows} from "../../DataGeneratorPuppets/src/datas/flow";
function main() {
for(let i = 0; i < 30; i++) {
/*for(let i = 1; i <= 5; i++) {
let flowIndex = Math.floor(Math.random() * flows.length + 0);
const puppet = new Puppet('', flows[flowIndex].name, 'bot_'+i, flows[flowIndex].data);
puppet.run();
}*/
let puppetCounter = 0;
let loop = true;
let counter = 0;
setInterval(() =>{
let res = [];
if(counter < 10) {
loop = false;
counter++;
let flowIndex = Math.floor(Math.random() * flows.length + 0);
res.push(new Puppet('', flows[flowIndex].name, 'bot_' + puppetCounter++, flows[flowIndex].data).run());
Promise.race(res)
.then(val => {
counter--;
console.log('Adios');
loop = true;
});
}
}, 50)
/*
const puppet2 = new Puppet('', flows[flowIndex].name, 'bot_'+puppetCounter++, flows[flowIndex].data).run();
const puppet3 = new Puppet('', flows[flowIndex].name, 'bot_'+puppetCounter++, flows[flowIndex].data).run();
const puppet4 = new Puppet('', flows[flowIndex].name, 'bot_'+puppetCounter++, flows[flowIndex].data).run();
const puppet5 = new Puppet('', flows[flowIndex].name, 'bot_'+puppetCounter++, flows[flowIndex].data).run('infinite');*/
}
main();

View file

@ -13,6 +13,14 @@
"@types/node": "*"
}
},
"@types/bson": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.0.tgz",
"integrity": "sha512-pq/rqJwJWkbS10crsG5bgnrisL8pML79KlMKQMoQwLUjlPAkrUHMvHJ3oGwE7WHR61Lv/nadMwXVAD2b+fpD8Q==",
"requires": {
"@types/node": "*"
}
},
"@types/connect": {
"version": "3.4.32",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz",
@ -51,6 +59,24 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz",
"integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
},
"@types/mongodb": {
"version": "3.1.26",
"resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.1.26.tgz",
"integrity": "sha512-i7+l95IbqnGLRW+AJ6F2nzqosLUgU022lDuoHhbQquMV7tgek0vNUg9RwC2Fn7ImBSQSFdCWeU394ciPEwSeaQ==",
"requires": {
"@types/bson": "*",
"@types/node": "*"
}
},
"@types/mongoose": {
"version": "5.3.27",
"resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.3.27.tgz",
"integrity": "sha512-1bQcQaYw4kN9mMuJC54FcfjyYe2gtxbUj9OAvrUA/5G2rSv0fuvu2jplizXqyADgBcXzPVEglDNzT3YrztWLoQ==",
"requires": {
"@types/mongodb": "*",
"@types/node": "*"
}
},
"@types/node": {
"version": "11.13.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.0.tgz",
@ -184,6 +210,14 @@
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
"async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": {
"lodash": "^4.17.10"
}
},
"async-each": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz",
@ -259,6 +293,11 @@
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
"integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
"body-parser": {
"version": "1.18.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
@ -326,6 +365,11 @@
}
}
},
"bson": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz",
"integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@ -1809,6 +1853,11 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
"kareem": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz",
"integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg=="
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
@ -1822,6 +1871,11 @@
"package-json": "^4.0.0"
}
},
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
},
"lodash.unescape": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
@ -1874,6 +1928,12 @@
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
"optional": true
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@ -1993,6 +2053,85 @@
}
}
},
"mongodb": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.3.tgz",
"integrity": "sha512-jw8UyPsq4QleZ9z+t/pIVy3L++51vKdaJ2Q/XXeYxk/3cnKioAH8H6f5tkkDivrQL4PUgUOHe9uZzkpRFH1XtQ==",
"requires": {
"mongodb-core": "^3.2.3",
"safe-buffer": "^5.1.2"
}
},
"mongodb-core": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.3.tgz",
"integrity": "sha512-UyI0rmvPPkjOJV8XGWa9VCTq7R4hBVipimhnAXeSXnuAPjuTqbyfA5Ec9RcYJ1Hhu+ISnc8bJ1KfGZd4ZkYARQ==",
"requires": {
"bson": "^1.1.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
},
"mongoose": {
"version": "5.5.5",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.5.5.tgz",
"integrity": "sha512-rov43FpXDMoE22q8/iUoeSdg6zBtyTE/ZIIKRpQomASl0JOyD0479Weu9w5g0GjmP8fHmNjsWneoLIbnyGcnDQ==",
"requires": {
"async": "2.6.1",
"bson": "~1.1.1",
"kareem": "2.3.0",
"mongodb": "3.2.3",
"mongodb-core": "3.2.3",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.5.2",
"mquery": "3.2.0",
"ms": "2.1.1",
"regexp-clone": "0.0.1",
"safe-buffer": "5.1.2",
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"mongoose-legacy-pluralize": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
"integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"mpath": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.2.tgz",
"integrity": "sha512-NOeCoW6AYc3hLi30npe7uzbD9b4FQZKH40YKABUCCvaKKL5agj6YzvHoNx8jQpDMNPgIa5bvSZQbQpWBAVD0Kw=="
},
"mquery": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz",
"integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==",
"requires": {
"bluebird": "3.5.1",
"debug": "3.1.0",
"regexp-clone": "0.0.1",
"safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@ -2406,6 +2545,11 @@
"safe-regex": "^1.1.0"
}
},
"regexp-clone": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
"integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
},
"registry-auth-token": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
@ -2438,6 +2582,20 @@
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"require_optional": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
"integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
"requires": {
"resolve-from": "^2.0.0",
"semver": "^5.1.0"
}
},
"resolve-from": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@ -2474,6 +2632,15 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@ -2567,11 +2734,21 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
"integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
},
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@ -2709,6 +2886,15 @@
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"memory-pager": "^1.0.2"
}
},
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",

View file

@ -5,10 +5,13 @@
"main": "main.js",
"dependencies": {
"@types/express": "^4.16.1",
"@types/mongoose": "^5.3.27",
"body-parser": "^1.18.3",
"canvas": "^2.4.1",
"cors": "^2.8.5",
"express": "^4.16.4",
"mongodb": "^3.2.3",
"mongoose": "^5.5.5",
"nodemon": "^1.18.10",
"query-string-parser": "^0.2.3",
"ws": "^6.2.1"

View file

@ -1,8 +1,25 @@
import {Data} from "../../../../DataGatherer/src/shared/Data";
import {createCanvas, Image} from "canvas";
import fs from "fs";
import mongoose from "mongoose";
import {DataSchema} from "../predictor-web-service/models/Data";
export class ImageCreatorService {
private mongoEndpoint = 'mongodb://localhost:27017/predictorDatas';
constructor() {
mongoose.Promise = global.Promise;
mongoose.connect(this.mongoEndpoint, { useNewUrlParser: true },
err => {
if (err) {
console.log(err);
}
else {
console.log('Connected to MongoDb');
this.startProcessing(6, 200);
}
});
}
createImageFromData(data: Array<Data>, name: string) {
return new Promise((resolve, reject) => {
@ -124,35 +141,40 @@ export class ImageCreatorService {
}
public startProcessing(srcPath: string, destPath: string) {
public startProcessing(flows: number, agents: number, threshold: number = 5) {
const that = this;
fs.readdir(srcPath, function(err, items) {
const orderedByFlows = [];
const promises = [];
for(let i=0; i<flows; i++) {
for (let j = 0; j < agents; j++) {
promises.push(DataSchema.find({
flowName: 'flow'+(i + 1).toString(),
agentName: 'bot_'+(j+1).toString()
}, function (error, ids) {
orderedByFlows.push(ids);
}));
}
}
for (var i=0; i<items.length; i++) {
const data = fs.readFileSync(srcPath + '/' + items[i]);
try {
const jsonData = JSON.parse(data.toString('utf8'));
fs.mkdirSync('./trainingImages/virtual/' + destPath, {recursive: true});
that.createImageFromData(jsonData, items[i].split('.')[0])
Promise.all(promises)
.then(() => {
for(let i = 0; i< flows; i++){
fs.mkdirSync('./trainingImages/virtual/' + 'flow'+(i+1), {recursive: true});
}
for(let i = 0; i < orderedByFlows.length; i++) {
for (let j of orderedByFlows[i]) {
if(j.data.length > threshold) {
that.createImageFromData(j.data, j.agentName + '_' + j.counter)
.then(res => {
if (res) {
console.log('virtual image ' + ' processed');
that.saveImage(res['data'], './trainingImages/virtual/' + destPath + '/' + res['name'] + '.png');
that.saveImage(res['data'], './trainingImages/virtual/' + j.flowName + '/' + res['name'] + '.png');
}
});
that.applyDataToImage(jsonData, items[i].split('.')[0])
.then(res => {
if(res) {
console.log('real image ' + ' processed');
that.saveImage(res['data'], './trainingImages/real/' + destPath + '/' + res['name'] + '.png');
}
});
} catch (e) {
console.log('file not valid');
}
}
});
}
})
}
}

View file

@ -2,10 +2,6 @@ import {ImageCreatorService} from "./ImageCreatorService";
function main() {
const imageCreatorService = new ImageCreatorService();
imageCreatorService.startProcessing('./trainingDatas/flow1', 'flow1');
imageCreatorService.startProcessing('./trainingDatas/flow2', 'flow2');
imageCreatorService.startProcessing('./trainingDatas/flow3', 'flow3');
}
main();

View file

@ -3,9 +3,10 @@ import * as WebSocket from 'ws';
import * as http from 'http';
import cors from 'cors';
import * as bodyParser from "body-parser";
import fs from 'fs';
import {Data} from "../../../../DataGatherer/src/shared/Data";
import parser from 'query-string-parser';
import mongoose from "mongoose";
import {DataSchema} from './models/Data';
export class PredictorWebService {
@ -15,6 +16,7 @@ export class PredictorWebService {
private app: express.Application;
private httpServer: http.Server;
private wss: WebSocket.Server;
private mongoEndpoint = 'mongodb://localhost:27017/predictorDatas';
private counter: number = 0;
@ -22,6 +24,18 @@ export class PredictorWebService {
this.url = url;
this.portApi = portApi;
this.portWebSocket = portWebSocket;
mongoose.Promise = global.Promise;
mongoose.connect(this.mongoEndpoint, { useNewUrlParser: true },
err => {
if (err) {
console.log(err);
}
else {
console.log('Connected to MongoDb');
this.startPredictor();
this.startTrainer();
}
});
}
public startTrainer() {
@ -38,9 +52,7 @@ export class PredictorWebService {
that.counter++;
that.saveData(data, queryObj.flowName, queryObj.agentName)
.then( (msg) => {
if(msg === 'ok') {
ws.send('trainer - Data saved');
}
})
.catch( (err) => {
ws.send('trainer - Error while saving data');
@ -71,26 +83,8 @@ export class PredictorWebService {
saveData(data: Array<Data>, flowName: string, agentName: string) {
return new Promise((resolve, reject) => {
console.log(flowName);
console.log(agentName);
if(flowName && agentName) {
fs.mkdirSync('./trainingDatas/' + flowName + '/', { recursive: true });
} else {
fs.mkdirSync('./trainingDatas/undefined', { recursive: true });
}
if(!flowName && !agentName) {
fs.writeFile('./trainingDatas/undefined/' + this.counter + '.json', JSON.stringify(data), 'utf8', function (err) {
if (err) reject('err');
console.log('Data saved');
resolve('ok');
});
} else {
fs.writeFile('./trainingDatas/' + flowName + '/' + agentName + '_' + this.counter + '.json', JSON.stringify(data), 'utf8', function (err) {
if (err) reject('err');
console.log('Data saved');
resolve('ok');
});
}
const dataSchema = new DataSchema({flowName: flowName, agentName: agentName, counter: this.counter, data: data});
resolve(dataSchema.save());
});
}
}

View file

@ -2,8 +2,7 @@ import { PredictorWebService } from "./PredictorWebService";
function main() {
const predictorWebService = new PredictorWebService('/', 4000, 4100);
predictorWebService.startPredictor();
predictorWebService.startTrainer();
}
main();

View file

@ -0,0 +1,14 @@
import mongoose from "mongoose";
import {Data} from "../../../../../DataGatherer/src/shared/Data";
import {Schema} from "mongoose";
const DataSchema_:Schema = new Schema(
{
flowName: String,
agentName: String,
counter: Number,
data: Array<Data>()
}
);
export const DataSchema: any = mongoose.model('Data', DataSchema_, 'datas');