diff --git a/scripts/flows_planktonscope.json b/scripts/flows_planktonscope.json
index a63eee0..47c0197 100644
--- a/scripts/flows_planktonscope.json
+++ b/scripts/flows_planktonscope.json
@@ -1 +1,1181 @@
-[{"id":"7f885510.6173fc","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"b2d230de.b7751","type":"ui_base","theme":{"name":"theme-dark","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","reset":false},"themeState":{"base-color":{"default":"#097479","value":"#097479","edited":false},"page-titlebar-backgroundColor":{"value":"#097479","edited":false},"page-backgroundColor":{"value":"#111111","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#0eb8c0","edited":false},"group-borderColor":{"value":"#555555","edited":false},"group-backgroundColor":{"value":"#333333","edited":false},"widget-textColor":{"value":"#eeeeee","edited":false},"widget-backgroundColor":{"value":"#097479","edited":false},"widget-borderColor":{"value":"#333333","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"6b01f851.598028","type":"ui_tab","z":"","name":"PlanktonScope GUI v2.1","icon":"date_range","order":1,"disabled":false,"hidden":false},{"id":"c627ea8d.f886e8","type":"ui_group","z":"","name":"General","tab":"6b01f851.598028","order":1,"disp":true,"width":6,"collapse":false},{"id":"c62ffbd3.787ef8","type":"ui_group","z":"","name":"Preview","tab":"6b01f851.598028","order":2,"disp":true,"width":12,"collapse":false},{"id":"832434ce.ebe498","type":"ui_group","z":"","name":"Optic Settings","tab":"6b01f851.598028","order":3,"disp":true,"width":"6","collapse":false},{"id":"a72a9ec6.bb144","type":"ui_group","z":"","name":"Fluidic settings","tab":"6b01f851.598028","order":4,"disp":true,"width":"6","collapse":false},{"id":"106f0e1b.6478a2","type":"ui_group","z":"","name":"Spatio Temporal","tab":"6b01f851.598028","order":5,"disp":true,"width":"6","collapse":false},{"id":"77a6994b.e3efb8","type":"ui_group","z":"","name":"General","tab":"6b01f851.598028","order":6,"disp":true,"width":6,"collapse":false},{"id":"955fdac.f54f328","type":"ui_text_input","z":"7f885510.6173fc","name":"sample_ship","label":"Name of the ship (ex : Tara)","tooltip":"","group":"c627ea8d.f886e8","order":2,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":150,"y":140,"wires":[[]]},{"id":"dfb29406.d68148","type":"ui_dropdown","z":"7f885510.6173fc","name":"sample_sampling_gear","label":"Sampling gear","tooltip":"","place":"Select","group":"c627ea8d.f886e8","order":5,"width":0,"height":0,"passthru":true,"options":[{"label":"Plankton net","value":"net","type":"str"},{"label":"Niskin bottle 12L","value":"niskin_12L","type":"str"},{"label":"Niskin bottle 24L","value":"niskin_24L","type":"str"}],"payload":"","topic":"","x":190,"y":260,"wires":[[]]},{"id":"bfce92c6.5f66a","type":"ui_text_input","z":"7f885510.6173fc","name":"sample_operator","label":"Name of the operator","tooltip":"","group":"c627ea8d.f886e8","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":170,"y":220,"wires":[[]]},{"id":"bae9c122.3612f","type":"ui_text_input","z":"7f885510.6173fc","name":"sample_project","label":"Name of the project (ex : Tara Pacific)","tooltip":"","group":"c627ea8d.f886e8","order":1,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":160,"y":100,"wires":[[]]},{"id":"ff33630c.78f63","type":"ui_date_picker","z":"7f885510.6173fc","name":"object_date","label":"Sample date","group":"106f0e1b.6478a2","order":1,"width":0,"height":0,"passthru":true,"topic":"","x":470,"y":520,"wires":[[]]},{"id":"8b800fdc.e83a8","type":"ui_text_input","z":"7f885510.6173fc","name":"object_time","label":"Sampling time","tooltip":"","group":"106f0e1b.6478a2","order":2,"width":0,"height":0,"passthru":true,"mode":"time","delay":300,"topic":"","x":470,"y":560,"wires":[[]]},{"id":"eb39c21c.a3fec","type":"ui_text_input","z":"7f885510.6173fc","name":"object_lat","label":"Lattitude (decimal degrees)","tooltip":"","group":"106f0e1b.6478a2","order":3,"width":0,"height":0,"passthru":true,"mode":"number","delay":300,"topic":"","x":460,"y":600,"wires":[[]]},{"id":"404b41a5.ae3d5","type":"ui_text_input","z":"7f885510.6173fc","name":"object_lon","label":"Longitude (decimal degrees)","tooltip":"","group":"106f0e1b.6478a2","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":470,"y":640,"wires":[[]]},{"id":"d90c72f2.cf1ca","type":"ui_text_input","z":"7f885510.6173fc","name":"sample_id","label":"Name of the station (ex: OA125)","tooltip":"","group":"c627ea8d.f886e8","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":150,"y":180,"wires":[[]]},{"id":"3300f426.cc515c","type":"ui_dropdown","z":"7f885510.6173fc","name":"acq_fnumber_objective","label":"f-number M12","tooltip":"","place":"Select option","group":"832434ce.ebe498","order":1,"width":0,"height":0,"passthru":true,"options":[{"label":"f 25mm 1/2\" 5MP IR","value":25,"type":"num"},{"label":"f 16mm 1/2.5\" 5MP IR","value":16,"type":"num"},{"label":"f 12mm 1/2.5\" 5MP IR","value":12,"type":"num"},{"label":"f 8mm 1/2.5\" 5MP IR","value":8,"type":"num"},{"label":"f 6mm 1/2.5\" 5MP IR","value":6,"type":"num"}],"payload":"","topic":"","x":270,"y":700,"wires":[["de455648.b432f8"]]},{"id":"72d57e31.59234","type":"ui_template","z":"7f885510.6173fc","group":"832434ce.ebe498","name":"Magnification","order":2,"width":0,"height":0,"format":"
\n Magnification : X\n \n \n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":590,"y":820,"wires":[[]]},{"id":"98a4bc0a.f3304","type":"ui_template","z":"7f885510.6173fc","group":"77a6994b.e3efb8","name":"Instrument","order":1,"width":0,"height":0,"format":"\n Instrument :\n \n PlanktonScope V2.1\n \n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":470,"y":1660,"wires":[[]]},{"id":"53b3cb43.2acf04","type":"ui_template","z":"7f885510.6173fc","group":"77a6994b.e3efb8","name":"Software","order":2,"width":0,"height":0,"format":"\n Software :\n \n Node-RED Dashboard\n \n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":460,"y":1700,"wires":[[]]},{"id":"1a0a45f1.2cd7da","type":"ui_template","z":"7f885510.6173fc","group":"77a6994b.e3efb8","name":"Camera","order":3,"width":0,"height":0,"format":"\n Camera :\n \n Pi Camera v2.1\n \n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":460,"y":1740,"wires":[[]]},{"id":"de455648.b432f8","type":"function","z":"7f885510.6173fc","name":"optic","func":"var acq_fnumber_objective = String(msg.payload);\n\nswitch(acq_fnumber_objective) {\n case \"25\":\n magnification = String(' 0.6');\n process_pixel = String(' 1.86');\n sug_min = String(' 60');\n sug_max = String(' 670');\n flowrate = String(' 3');\n duration = String(' 3');\n break;\n case \"16\":\n magnification = String(' 0.94');\n process_pixel = String(' 1.19');\n sug_min = String(' 40');\n sug_max = String(' 430');\n flowrate = String(' 2.4');\n duration = String(' 3');\n break;\n case \"12\":\n magnification = String(' 1.20');\n process_pixel = String(' 0.94');\n sug_min = String(' 30');\n sug_max = String(' 340');\n flowrate = String(' 1.25');\n duration = String(' 3');\n break;\n case \"8\":\n magnification = String(' 1.78');\n process_pixel = String(' 0.63');\n sug_min = String(' 20');\n sug_max = String(' 230');\n flowrate = String(' 0.42');\n duration = String(' 3');\n break;\n case \"6\":\n magnification = String(' 2.36');\n process_pixel = String(' 0.48');\n sug_min = String(' 15');\n sug_max = String(' 170');\n flowrate = String(' 0.32');\n duration = String(' 3');\n break;\n}\n\nmsg.payload = magnification.concat(process_pixel, sug_min, sug_max,flowrate,duration);\nreturn msg;","outputs":1,"noerr":0,"x":450,"y":700,"wires":[["bf51ed75.15f7f","1c966729.d952b9","e7ef7709.ba3f88","1ae4f566.e9182b","578b63e7.8a675c"]]},{"id":"f3aa18d.65f0de8","type":"ui_dropdown","z":"7f885510.6173fc","name":"acq_celltype","label":"Thickness flowcell","tooltip":"","place":"Select option","group":"a72a9ec6.bb144","order":1,"width":0,"height":0,"passthru":true,"options":[{"label":"200 μm µ-Slide I Luer","value":200,"type":"num"},{"label":"400 μm µ-Slide I Luer","value":400,"type":"num"},{"label":"600 μm µ-Slide I Luer","value":600,"type":"num"},{"label":"800 μm µ-Slide I Luer","value":800,"type":"num"}],"payload":"","topic":"","x":470,"y":1300,"wires":[[]]},{"id":"5977e5ff.693a1c","type":"ui_numeric","z":"7f885510.6173fc","name":"acq_fluid_volume_imaged","label":"Volume to image (ml)","tooltip":"","group":"a72a9ec6.bb144","order":2,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"acq_fluid_volume_imaged","format":"{{value}}","min":0,"max":"24","step":1,"x":510,"y":1340,"wires":[["5e6e3b80.1068d4"]]},{"id":"45568fe8.67759","type":"ui_numeric","z":"7f885510.6173fc","name":"acq_minimum_mesh","label":"Min fraction size (μm)","tooltip":"","group":"a72a9ec6.bb144","order":3,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"","format":"{{value}}","min":0,"max":"300","step":"10","x":500,"y":1380,"wires":[[]]},{"id":"918b69e2.7e6e88","type":"ui_numeric","z":"7f885510.6173fc","name":"acq_maximum_mesh","label":"Max fraction size (μm)","tooltip":"","group":"a72a9ec6.bb144","order":4,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"","format":"{{value}}","min":"200","max":"2000","step":"100","x":500,"y":1420,"wires":[[]]},{"id":"86d762dc.47911","type":"ui_switch","z":"7f885510.6173fc","name":"light_state","label":"Light","tooltip":"","group":"c62ffbd3.787ef8","order":2,"width":2,"height":1,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":770,"y":540,"wires":[["6eaa971e.6fdf08"]]},{"id":"b5a366b4.cb6918","type":"exec","z":"7f885510.6173fc","command":"python3.7 $HOME/PlanktonScope/scripts/light.py","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"Light.py","x":1050,"y":540,"wires":[[],[],[]]},{"id":"6eaa971e.6fdf08","type":"function","z":"7f885510.6173fc","name":"light","func":"var light_state = String(msg.payload.light_state);\nif(light_state==\"true\"){\n msg.payload = \"on\"\n}\nelse if (light_state==\"false\"){\n msg.payload = \"off\"\n}\nreturn msg;","outputs":1,"noerr":0,"x":920,"y":540,"wires":[["b5a366b4.cb6918"]]},{"id":"95b242db.5e239","type":"multipart-decoder","z":"7f885510.6173fc","name":"","ret":"bin","url":"http://127.0.0.1/html/cam_pic.php","tls":"","delay":0,"maximum":"10000000","blockSize":"1","x":910,"y":400,"wires":[["c099bb1c.6971b8"]]},{"id":"c099bb1c.6971b8","type":"base64","z":"7f885510.6173fc","name":"Encode","x":1080,"y":400,"wires":[["2c92fe6f.3e9432"]]},{"id":"2c92fe6f.3e9432","type":"ui_template","z":"7f885510.6173fc","group":"c62ffbd3.787ef8","name":"Pi Camera Stream","order":1,"width":12,"height":9,"format":"
\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1250,"y":400,"wires":[[]]},{"id":"17b7514a.36344f","type":"interval","z":"7f885510.6173fc","name":"interval","interval":"100","onstart":false,"msg":"ping","showstatus":true,"unit":"days","statusformat":"YYYY-MM-D HH:mm:ss","x":750,"y":400,"wires":[["95b242db.5e239"]]},{"id":"5ea28a70.42ae14","type":"ui_button","z":"7f885510.6173fc","name":"up","group":"c62ffbd3.787ef8","order":3,"width":1,"height":1,"passthru":false,"label":"","tooltip":"","color":"","bgcolor":"","icon":"arrow_upwards","payload":"up","payloadType":"str","topic":"up","x":770,"y":640,"wires":[["523fdeaa.50c6c"]]},{"id":"27f16831.dde938","type":"ui_button","z":"7f885510.6173fc","name":"down","group":"c62ffbd3.787ef8","order":5,"width":1,"height":1,"passthru":true,"label":"","tooltip":"","color":"","bgcolor":"","icon":"arrow_downward","payload":"down","payloadType":"str","topic":"down","x":770,"y":720,"wires":[["523fdeaa.50c6c"]]},{"id":"855e9d96.ab869","type":"ui_text_input","z":"7f885510.6173fc","name":"nb_step","label":"Number of step","tooltip":"","group":"c62ffbd3.787ef8","order":4,"width":5,"height":1,"passthru":false,"mode":"number","delay":300,"topic":"nb_step","x":760,"y":680,"wires":[["523fdeaa.50c6c"]]},{"id":"b110542b.5de4f8","type":"ui_button","z":"7f885510.6173fc","name":"kill_focus","group":"c62ffbd3.787ef8","order":6,"width":3,"height":1,"passthru":false,"label":"Stop focus","tooltip":"","color":"#AD1625","bgcolor":"#333333","icon":"pause","payload":"","payloadType":"str","topic":"","x":760,"y":780,"wires":[["d9dea2bc.47097"]]},{"id":"523fdeaa.50c6c","type":"function","z":"7f885510.6173fc","name":"focus","func":"var lastinput = context.get(\"lastinput\") || \"\";\n\nif(msg.topic === \"nb_step\"){\n lastinput = msg.payload;\n context.set(\"lastinput\",lastinput);\n}\nif(msg.topic === \"up\"){\n\n nb_step = String(lastinput);\n\n orientation = \"up\";\n\n msg.payload = nb_step.concat(' ', orientation);\n return msg;\n}\nif(msg.topic === \"down\"){\n \n nb_step = String(lastinput);\n\n orientation = \"down\";\n msg.payload = nb_step.concat(' ', orientation);\n\n return msg;\n}\n\n","outputs":1,"noerr":0,"x":930,"y":680,"wires":[["ada728bd.8e7818"]]},{"id":"ada728bd.8e7818","type":"exec","z":"7f885510.6173fc","command":"python3.7 $HOME/PlanktonScope/scripts/focus.py","addpay":true,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"Focus.py","x":1060,"y":680,"wires":[[],[],[]]},{"id":"d9dea2bc.47097","type":"exec","z":"7f885510.6173fc","command":"bash $HOME/PlanktonScope/scripts/killer.sh focus.py && bash $HOME/PlanktonScope/scripts/killer.sh focus.py","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"Kill Focus","x":960,"y":780,"wires":[[],[],[]]},{"id":"6bf10b4c.c83c84","type":"ui_button","z":"7f885510.6173fc","name":"start","group":"c62ffbd3.787ef8","order":7,"width":6,"height":1,"passthru":false,"label":"Start Acquisition","tooltip":"","color":"","bgcolor":"","icon":"play_circle_fill","payload":"","payloadType":"str","topic":"start","x":750,"y":900,"wires":[["5e6e3b80.1068d4"]]},{"id":"2c9498e7.bf0c38","type":"ui_button","z":"7f885510.6173fc","name":"stop","group":"c62ffbd3.787ef8","order":8,"width":6,"height":1,"passthru":false,"label":"Stop Acquisition","tooltip":"","color":"#AD1625","bgcolor":"#333333","icon":"pause_circle_filled","payload":"","payloadType":"str","topic":"stop","x":750,"y":1040,"wires":[["5e6e3b80.1068d4"]]},{"id":"5e6e3b80.1068d4","type":"function","z":"7f885510.6173fc","name":"Image","func":"var lastinput = context.get(\"lastinput\") || \"\";\n\nif(msg.topic === \"acq_fluid_volume_imaged\"){\n lastinput = msg.payload;\n context.set(\"acq_fluid_volume_imaged\",acq_fluid_volume_imaged);\n}\n\nif(msg.topic === \"sample_project\"){\n lastinput = msg.payload;\n context.set(\"sample_project\",sample_project);\n}\n\nif(msg.topic === \"sample_id\"){\n lastinput = msg.payload;\n context.set(\"sample_id\",sample_id);\n}\n\nif(msg.topic === \"start\"){\n\n acq_fluid_volume_imaged = String(acq_fluid_volume_imaged);\n sample_project = String(sample_project);\n sample_id = String(sample_id);\n\n msg.payload = nb_step.concat(' ', orientation);\n return msg;\n}\n\n// tara_pacific station_125 exp_1 24 3.2\n","outputs":1,"noerr":0,"x":950,"y":920,"wires":[[]]},{"id":"2d0f6720.0f92f8","type":"ui_template","z":"7f885510.6173fc","group":"c627ea8d.f886e8","name":"","order":5,"width":0,"height":0,"format":"","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1260,"y":1180,"wires":[[]]},{"id":"bf51ed75.15f7f","type":"function","z":"7f885510.6173fc","name":"get magnification","func":"var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[1];\n\nreturn msg;","outputs":1,"noerr":0,"x":550,"y":780,"wires":[["72d57e31.59234"]]},{"id":"9599b953.529c28","type":"ui_template","z":"7f885510.6173fc","group":"832434ce.ebe498","name":"process_pixel","order":2,"width":0,"height":0,"format":"\n Pixel resolution :\n \n μm\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":580,"y":900,"wires":[[]]},{"id":"1c966729.d952b9","type":"function","z":"7f885510.6173fc","name":"get process_pixel","func":"var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[2];\n\nreturn msg;","outputs":1,"noerr":0,"x":550,"y":860,"wires":[["9599b953.529c28"]]},{"id":"612e2b9b.ed1684","type":"ui_template","z":"7f885510.6173fc","group":"832434ce.ebe498","name":"min_size","order":2,"width":0,"height":0,"format":"\n Smallest cells to explore :\n \n μm\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":560,"y":980,"wires":[[]]},{"id":"e7ef7709.ba3f88","type":"function","z":"7f885510.6173fc","name":"get min size","func":"var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[3];\n\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":940,"wires":[["612e2b9b.ed1684"]]},{"id":"f84ab57a.556df8","type":"ui_template","z":"7f885510.6173fc","group":"832434ce.ebe498","name":"max_size","order":2,"width":0,"height":0,"format":"\n Biggest cells to explore :\n \n μm\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":560,"y":1060,"wires":[[]]},{"id":"1ae4f566.e9182b","type":"function","z":"7f885510.6173fc","name":"get max size","func":"var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[4];\n\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":1020,"wires":[["f84ab57a.556df8"]]},{"id":"45f53656.d631e8","type":"ui_template","z":"7f885510.6173fc","group":"832434ce.ebe498","name":"flowrate","order":2,"width":0,"height":0,"format":"\n Flowrate :\n \n ml/min\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":560,"y":1140,"wires":[[]]},{"id":"578b63e7.8a675c","type":"function","z":"7f885510.6173fc","name":"get flowrate","func":"var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[5];\n\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":1100,"wires":[["45f53656.d631e8"]]}]
+[
+ {
+ "id": "7f885510.6173fc",
+ "type": "tab",
+ "label": "Flow 1",
+ "disabled": false,
+ "info": ""
+ },
+ {
+ "id": "b2d230de.b7751",
+ "type": "ui_base",
+ "theme": {
+ "name": "theme-dark",
+ "lightTheme": {
+ "default": "#0094CE",
+ "baseColor": "#0094CE",
+ "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
+ "edited": true,
+ "reset": false
+ },
+ "darkTheme": {
+ "default": "#097479",
+ "baseColor": "#097479",
+ "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
+ "edited": true,
+ "reset": false
+ },
+ "customTheme": {
+ "name": "Untitled Theme 1",
+ "default": "#4B7930",
+ "baseColor": "#4B7930",
+ "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
+ "reset": false
+ },
+ "themeState": {
+ "base-color": {
+ "default": "#097479",
+ "value": "#097479",
+ "edited": false
+ },
+ "page-titlebar-backgroundColor": {
+ "value": "#097479",
+ "edited": false
+ },
+ "page-backgroundColor": {
+ "value": "#111111",
+ "edited": false
+ },
+ "page-sidebar-backgroundColor": {
+ "value": "#000000",
+ "edited": false
+ },
+ "group-textColor": {
+ "value": "#0eb8c0",
+ "edited": false
+ },
+ "group-borderColor": {
+ "value": "#555555",
+ "edited": false
+ },
+ "group-backgroundColor": {
+ "value": "#333333",
+ "edited": false
+ },
+ "widget-textColor": {
+ "value": "#eeeeee",
+ "edited": false
+ },
+ "widget-backgroundColor": {
+ "value": "#097479",
+ "edited": false
+ },
+ "widget-borderColor": {
+ "value": "#333333",
+ "edited": false
+ },
+ "base-font": {
+ "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
+ }
+ },
+ "angularTheme": {
+ "primary": "indigo",
+ "accents": "blue",
+ "warn": "red",
+ "background": "grey"
+ }
+ },
+ "site": {
+ "name": "Node-RED Dashboard",
+ "hideToolbar": "false",
+ "allowSwipe": "false",
+ "lockMenu": "false",
+ "allowTempTheme": "true",
+ "dateFormat": "DD\/MM\/YYYY",
+ "sizes": {
+ "sx": 48,
+ "sy": 48,
+ "gx": 6,
+ "gy": 6,
+ "cx": 6,
+ "cy": 6,
+ "px": 0,
+ "py": 0
+ }
+ }
+ },
+ {
+ "id": "6b01f851.598028",
+ "type": "ui_tab",
+ "z": "",
+ "name": "PlanktonScope GUI v2.1",
+ "icon": "date_range",
+ "order": 1,
+ "disabled": false,
+ "hidden": false
+ },
+ {
+ "id": "c627ea8d.f886e8",
+ "type": "ui_group",
+ "z": "",
+ "name": "General",
+ "tab": "6b01f851.598028",
+ "order": 1,
+ "disp": true,
+ "width": 6,
+ "collapse": false
+ },
+ {
+ "id": "c62ffbd3.787ef8",
+ "type": "ui_group",
+ "z": "",
+ "name": "Preview",
+ "tab": "6b01f851.598028",
+ "order": 2,
+ "disp": true,
+ "width": 12,
+ "collapse": false
+ },
+ {
+ "id": "832434ce.ebe498",
+ "type": "ui_group",
+ "z": "",
+ "name": "Optic Settings",
+ "tab": "6b01f851.598028",
+ "order": 3,
+ "disp": true,
+ "width": "6",
+ "collapse": false
+ },
+ {
+ "id": "a72a9ec6.bb144",
+ "type": "ui_group",
+ "z": "",
+ "name": "Fluidic settings",
+ "tab": "6b01f851.598028",
+ "order": 4,
+ "disp": true,
+ "width": "6",
+ "collapse": false
+ },
+ {
+ "id": "106f0e1b.6478a2",
+ "type": "ui_group",
+ "z": "",
+ "name": "Spatio Temporal",
+ "tab": "6b01f851.598028",
+ "order": 5,
+ "disp": true,
+ "width": "6",
+ "collapse": false
+ },
+ {
+ "id": "77a6994b.e3efb8",
+ "type": "ui_group",
+ "z": "",
+ "name": "General",
+ "tab": "6b01f851.598028",
+ "order": 6,
+ "disp": true,
+ "width": 6,
+ "collapse": false
+ },
+ {
+ "id": "955fdac.f54f328",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "sample_ship",
+ "label": "Name of the ship (ex : Tara)",
+ "tooltip": "",
+ "group": "c627ea8d.f886e8",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "text",
+ "delay": 300,
+ "topic": "",
+ "x": 150,
+ "y": 140,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "dfb29406.d68148",
+ "type": "ui_dropdown",
+ "z": "7f885510.6173fc",
+ "name": "sample_sampling_gear",
+ "label": "Sampling gear",
+ "tooltip": "",
+ "place": "Select",
+ "group": "c627ea8d.f886e8",
+ "order": 5,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "options": [
+ {
+ "label": "Plankton net",
+ "value": "net",
+ "type": "str"
+ },
+ {
+ "label": "Niskin bottle 12L",
+ "value": "niskin_12L",
+ "type": "str"
+ },
+ {
+ "label": "Niskin bottle 24L",
+ "value": "niskin_24L",
+ "type": "str"
+ }
+ ],
+ "payload": "",
+ "topic": "",
+ "x": 190,
+ "y": 260,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "bfce92c6.5f66a",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "sample_operator",
+ "label": "Name of the operator",
+ "tooltip": "",
+ "group": "c627ea8d.f886e8",
+ "order": 4,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "text",
+ "delay": 300,
+ "topic": "",
+ "x": 170,
+ "y": 220,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "bae9c122.3612f",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "sample_project",
+ "label": "Name of the project (ex : Tara Pacific)",
+ "tooltip": "",
+ "group": "c627ea8d.f886e8",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "text",
+ "delay": 300,
+ "topic": "",
+ "x": 160,
+ "y": 100,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "ff33630c.78f63",
+ "type": "ui_date_picker",
+ "z": "7f885510.6173fc",
+ "name": "object_date",
+ "label": "Sample date",
+ "group": "106f0e1b.6478a2",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "topic": "",
+ "x": 470,
+ "y": 520,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "8b800fdc.e83a8",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "object_time",
+ "label": "Sampling time",
+ "tooltip": "",
+ "group": "106f0e1b.6478a2",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "time",
+ "delay": 300,
+ "topic": "",
+ "x": 470,
+ "y": 560,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "eb39c21c.a3fec",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "object_lat",
+ "label": "Lattitude (decimal degrees)",
+ "tooltip": "",
+ "group": "106f0e1b.6478a2",
+ "order": 3,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "number",
+ "delay": 300,
+ "topic": "",
+ "x": 460,
+ "y": 600,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "404b41a5.ae3d5",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "object_lon",
+ "label": "Longitude (decimal degrees)",
+ "tooltip": "",
+ "group": "106f0e1b.6478a2",
+ "order": 4,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "text",
+ "delay": 300,
+ "topic": "",
+ "x": 470,
+ "y": 640,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "d90c72f2.cf1ca",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "sample_id",
+ "label": "Name of the station (ex: OA125)",
+ "tooltip": "",
+ "group": "c627ea8d.f886e8",
+ "order": 3,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "mode": "text",
+ "delay": 300,
+ "topic": "",
+ "x": 150,
+ "y": 180,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "3300f426.cc515c",
+ "type": "ui_dropdown",
+ "z": "7f885510.6173fc",
+ "name": "acq_fnumber_objective",
+ "label": "f-number M12",
+ "tooltip": "",
+ "place": "Select option",
+ "group": "832434ce.ebe498",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "options": [
+ {
+ "label": "f 25mm 1\/2\" 5MP IR",
+ "value": 25,
+ "type": "num"
+ },
+ {
+ "label": "f 16mm 1\/2.5\" 5MP IR",
+ "value": 16,
+ "type": "num"
+ },
+ {
+ "label": "f 12mm 1\/2.5\" 5MP IR",
+ "value": 12,
+ "type": "num"
+ },
+ {
+ "label": "f 8mm 1\/2.5\" 5MP IR",
+ "value": 8,
+ "type": "num"
+ },
+ {
+ "label": "f 6mm 1\/2.5\" 5MP IR",
+ "value": 6,
+ "type": "num"
+ }
+ ],
+ "payload": "",
+ "topic": "",
+ "x": 270,
+ "y": 700,
+ "wires": [
+ [
+ "de455648.b432f8"
+ ]
+ ]
+ },
+ {
+ "id": "72d57e31.59234",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "832434ce.ebe498",
+ "name": "Magnification",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "\n Magnification : X\n
\n <\/span>\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 590,
+ "y": 820,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "98a4bc0a.f3304",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "77a6994b.e3efb8",
+ "name": "Instrument",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "format": "\n Instrument :\n
\n PlanktonScope V2.1\n <\/span>\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 470,
+ "y": 1660,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "53b3cb43.2acf04",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "77a6994b.e3efb8",
+ "name": "Software",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "\n Software :\n
\n Node-RED Dashboard\n <\/span>\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 460,
+ "y": 1700,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "1a0a45f1.2cd7da",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "77a6994b.e3efb8",
+ "name": "Camera",
+ "order": 3,
+ "width": 0,
+ "height": 0,
+ "format": "\n Camera :\n
\n Pi Camera v2.1\n <\/span>\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 460,
+ "y": 1740,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "de455648.b432f8",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "optic",
+ "func": "var acq_fnumber_objective = String(msg.payload);\n\nswitch(acq_fnumber_objective) {\n case \"25\":\n magnification = String(' 0.6');\n process_pixel = String(' 1.86');\n sug_min = String(' 60');\n sug_max = String(' 670');\n flowrate = String(' 3');\n duration = String(' 3');\n break;\n case \"16\":\n magnification = String(' 0.94');\n process_pixel = String(' 1.19');\n sug_min = String(' 40');\n sug_max = String(' 430');\n flowrate = String(' 2.4');\n duration = String(' 3');\n break;\n case \"12\":\n magnification = String(' 1.20');\n process_pixel = String(' 0.94');\n sug_min = String(' 30');\n sug_max = String(' 340');\n flowrate = String(' 1.25');\n duration = String(' 3');\n break;\n case \"8\":\n magnification = String(' 1.78');\n process_pixel = String(' 0.63');\n sug_min = String(' 20');\n sug_max = String(' 230');\n flowrate = String(' 0.42');\n duration = String(' 3');\n break;\n case \"6\":\n magnification = String(' 2.36');\n process_pixel = String(' 0.48');\n sug_min = String(' 15');\n sug_max = String(' 170');\n flowrate = String(' 0.32');\n duration = String(' 3');\n break;\n}\n\nmsg.payload = magnification.concat(process_pixel, sug_min, sug_max,flowrate,duration);\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 450,
+ "y": 700,
+ "wires": [
+ [
+ "bf51ed75.15f7f",
+ "1c966729.d952b9",
+ "e7ef7709.ba3f88",
+ "1ae4f566.e9182b",
+ "578b63e7.8a675c"
+ ]
+ ]
+ },
+ {
+ "id": "f3aa18d.65f0de8",
+ "type": "ui_dropdown",
+ "z": "7f885510.6173fc",
+ "name": "acq_celltype",
+ "label": "Thickness flowcell",
+ "tooltip": "",
+ "place": "Select option",
+ "group": "a72a9ec6.bb144",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "options": [
+ {
+ "label": "200 \u03bcm \u00b5-Slide I Luer",
+ "value": 200,
+ "type": "num"
+ },
+ {
+ "label": "400 \u03bcm \u00b5-Slide I Luer",
+ "value": 400,
+ "type": "num"
+ },
+ {
+ "label": "600 \u03bcm \u00b5-Slide I Luer",
+ "value": 600,
+ "type": "num"
+ },
+ {
+ "label": "800 \u03bcm \u00b5-Slide I Luer",
+ "value": 800,
+ "type": "num"
+ }
+ ],
+ "payload": "",
+ "topic": "",
+ "x": 470,
+ "y": 1300,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "5977e5ff.693a1c",
+ "type": "ui_numeric",
+ "z": "7f885510.6173fc",
+ "name": "acq_fluid_volume_imaged",
+ "label": "Volume to image (ml)",
+ "tooltip": "",
+ "group": "a72a9ec6.bb144",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "wrap": false,
+ "passthru": true,
+ "topic": "acq_fluid_volume_imaged",
+ "format": "{{value}}",
+ "min": 0,
+ "max": "24",
+ "step": 1,
+ "x": 510,
+ "y": 1340,
+ "wires": [
+ [
+ "5e6e3b80.1068d4"
+ ]
+ ]
+ },
+ {
+ "id": "45568fe8.67759",
+ "type": "ui_numeric",
+ "z": "7f885510.6173fc",
+ "name": "acq_minimum_mesh",
+ "label": "Min fraction size (\u03bcm)",
+ "tooltip": "",
+ "group": "a72a9ec6.bb144",
+ "order": 3,
+ "width": 0,
+ "height": 0,
+ "wrap": false,
+ "passthru": true,
+ "topic": "",
+ "format": "{{value}}",
+ "min": 0,
+ "max": "300",
+ "step": "10",
+ "x": 500,
+ "y": 1380,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "918b69e2.7e6e88",
+ "type": "ui_numeric",
+ "z": "7f885510.6173fc",
+ "name": "acq_maximum_mesh",
+ "label": "Max fraction size (\u03bcm)",
+ "tooltip": "",
+ "group": "a72a9ec6.bb144",
+ "order": 4,
+ "width": 0,
+ "height": 0,
+ "wrap": false,
+ "passthru": true,
+ "topic": "",
+ "format": "{{value}}",
+ "min": "200",
+ "max": "2000",
+ "step": "100",
+ "x": 500,
+ "y": 1420,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "86d762dc.47911",
+ "type": "ui_switch",
+ "z": "7f885510.6173fc",
+ "name": "light_state",
+ "label": "Light",
+ "tooltip": "",
+ "group": "c62ffbd3.787ef8",
+ "order": 2,
+ "width": 2,
+ "height": 1,
+ "passthru": true,
+ "decouple": "false",
+ "topic": "",
+ "style": "",
+ "onvalue": "true",
+ "onvalueType": "bool",
+ "onicon": "",
+ "oncolor": "",
+ "offvalue": "false",
+ "offvalueType": "bool",
+ "officon": "",
+ "offcolor": "",
+ "x": 770,
+ "y": 540,
+ "wires": [
+ [
+ "6eaa971e.6fdf08"
+ ]
+ ]
+ },
+ {
+ "id": "b5a366b4.cb6918",
+ "type": "exec",
+ "z": "7f885510.6173fc",
+ "command": "python3.7 $HOME\/PlanktonScope\/scripts\/light.py",
+ "addpay": true,
+ "append": "",
+ "useSpawn": "false",
+ "timer": "",
+ "oldrc": false,
+ "name": "Light.py",
+ "x": 1050,
+ "y": 540,
+ "wires": [
+ [],
+ [],
+ []
+ ]
+ },
+ {
+ "id": "6eaa971e.6fdf08",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "light",
+ "func": "var light_state = String(msg.payload.light_state);\nif(light_state==\"true\"){\n msg.payload = \"on\"\n}\nelse if (light_state==\"false\"){\n msg.payload = \"off\"\n}\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 920,
+ "y": 540,
+ "wires": [
+ [
+ "b5a366b4.cb6918"
+ ]
+ ]
+ },
+ {
+ "id": "95b242db.5e239",
+ "type": "multipart-decoder",
+ "z": "7f885510.6173fc",
+ "name": "",
+ "ret": "bin",
+ "url": "http:\/\/127.0.0.1\/html\/cam_pic.php",
+ "tls": "",
+ "delay": 0,
+ "maximum": "10000000",
+ "blockSize": "1",
+ "x": 910,
+ "y": 400,
+ "wires": [
+ [
+ "c099bb1c.6971b8"
+ ]
+ ]
+ },
+ {
+ "id": "c099bb1c.6971b8",
+ "type": "base64",
+ "z": "7f885510.6173fc",
+ "name": "Encode",
+ "x": 1080,
+ "y": 400,
+ "wires": [
+ [
+ "2c92fe6f.3e9432"
+ ]
+ ]
+ },
+ {
+ "id": "2c92fe6f.3e9432",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "c62ffbd3.787ef8",
+ "name": "Pi Camera Stream",
+ "order": 1,
+ "width": 12,
+ "height": 9,
+ "format": "
\n",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 1250,
+ "y": 400,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "17b7514a.36344f",
+ "type": "interval",
+ "z": "7f885510.6173fc",
+ "name": "interval",
+ "interval": "100",
+ "onstart": false,
+ "msg": "ping",
+ "showstatus": true,
+ "unit": "days",
+ "statusformat": "YYYY-MM-D HH:mm:ss",
+ "x": 750,
+ "y": 400,
+ "wires": [
+ [
+ "95b242db.5e239"
+ ]
+ ]
+ },
+ {
+ "id": "5ea28a70.42ae14",
+ "type": "ui_button",
+ "z": "7f885510.6173fc",
+ "name": "up",
+ "group": "c62ffbd3.787ef8",
+ "order": 3,
+ "width": 1,
+ "height": 1,
+ "passthru": false,
+ "label": "",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "icon": "arrow_upwards",
+ "payload": "up",
+ "payloadType": "str",
+ "topic": "up",
+ "x": 770,
+ "y": 640,
+ "wires": [
+ [
+ "523fdeaa.50c6c"
+ ]
+ ]
+ },
+ {
+ "id": "27f16831.dde938",
+ "type": "ui_button",
+ "z": "7f885510.6173fc",
+ "name": "down",
+ "group": "c62ffbd3.787ef8",
+ "order": 5,
+ "width": 1,
+ "height": 1,
+ "passthru": true,
+ "label": "",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "icon": "arrow_downward",
+ "payload": "down",
+ "payloadType": "str",
+ "topic": "down",
+ "x": 770,
+ "y": 720,
+ "wires": [
+ [
+ "523fdeaa.50c6c"
+ ]
+ ]
+ },
+ {
+ "id": "855e9d96.ab869",
+ "type": "ui_text_input",
+ "z": "7f885510.6173fc",
+ "name": "nb_step",
+ "label": "Number of step",
+ "tooltip": "",
+ "group": "c62ffbd3.787ef8",
+ "order": 4,
+ "width": 5,
+ "height": 1,
+ "passthru": false,
+ "mode": "number",
+ "delay": 300,
+ "topic": "nb_step",
+ "x": 760,
+ "y": 680,
+ "wires": [
+ [
+ "523fdeaa.50c6c"
+ ]
+ ]
+ },
+ {
+ "id": "b110542b.5de4f8",
+ "type": "ui_button",
+ "z": "7f885510.6173fc",
+ "name": "kill_focus",
+ "group": "c62ffbd3.787ef8",
+ "order": 6,
+ "width": 3,
+ "height": 1,
+ "passthru": false,
+ "label": "Stop focus",
+ "tooltip": "",
+ "color": "#AD1625",
+ "bgcolor": "#333333",
+ "icon": "pause",
+ "payload": "",
+ "payloadType": "str",
+ "topic": "",
+ "x": 760,
+ "y": 780,
+ "wires": [
+ [
+ "d9dea2bc.47097"
+ ]
+ ]
+ },
+ {
+ "id": "523fdeaa.50c6c",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "focus",
+ "func": "var lastinput = context.get(\"lastinput\") || \"\";\n\nif(msg.topic === \"nb_step\"){\n lastinput = msg.payload;\n context.set(\"lastinput\",lastinput);\n}\nif(msg.topic === \"up\"){\n\n nb_step = String(lastinput);\n\n orientation = \"up\";\n\n msg.payload = nb_step.concat(' ', orientation);\n return msg;\n}\nif(msg.topic === \"down\"){\n \n nb_step = String(lastinput);\n\n orientation = \"down\";\n msg.payload = nb_step.concat(' ', orientation);\n\n return msg;\n}\n\n",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 930,
+ "y": 680,
+ "wires": [
+ [
+ "ada728bd.8e7818"
+ ]
+ ]
+ },
+ {
+ "id": "ada728bd.8e7818",
+ "type": "exec",
+ "z": "7f885510.6173fc",
+ "command": "python3.7 $HOME\/PlanktonScope\/scripts\/focus.py",
+ "addpay": true,
+ "append": "",
+ "useSpawn": "false",
+ "timer": "",
+ "oldrc": false,
+ "name": "Focus.py",
+ "x": 1060,
+ "y": 680,
+ "wires": [
+ [],
+ [],
+ []
+ ]
+ },
+ {
+ "id": "d9dea2bc.47097",
+ "type": "exec",
+ "z": "7f885510.6173fc",
+ "command": "bash $HOME\/PlanktonScope\/scripts\/killer.sh focus.py && bash $HOME\/PlanktonScope\/scripts\/killer.sh focus.py",
+ "addpay": false,
+ "append": "",
+ "useSpawn": "false",
+ "timer": "",
+ "oldrc": false,
+ "name": "Kill Focus",
+ "x": 960,
+ "y": 780,
+ "wires": [
+ [],
+ [],
+ []
+ ]
+ },
+ {
+ "id": "6bf10b4c.c83c84",
+ "type": "ui_button",
+ "z": "7f885510.6173fc",
+ "name": "start",
+ "group": "c62ffbd3.787ef8",
+ "order": 7,
+ "width": 6,
+ "height": 1,
+ "passthru": false,
+ "label": "Start Acquisition",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "icon": "play_circle_fill",
+ "payload": "",
+ "payloadType": "str",
+ "topic": "start",
+ "x": 750,
+ "y": 900,
+ "wires": [
+ [
+ "5e6e3b80.1068d4"
+ ]
+ ]
+ },
+ {
+ "id": "2c9498e7.bf0c38",
+ "type": "ui_button",
+ "z": "7f885510.6173fc",
+ "name": "stop",
+ "group": "c62ffbd3.787ef8",
+ "order": 8,
+ "width": 6,
+ "height": 1,
+ "passthru": false,
+ "label": "Stop Acquisition",
+ "tooltip": "",
+ "color": "#AD1625",
+ "bgcolor": "#333333",
+ "icon": "pause_circle_filled",
+ "payload": "",
+ "payloadType": "str",
+ "topic": "stop",
+ "x": 750,
+ "y": 1040,
+ "wires": [
+ [
+ "5e6e3b80.1068d4"
+ ]
+ ]
+ },
+ {
+ "id": "5e6e3b80.1068d4",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "Image",
+ "func": "var lastinput = context.get(\"lastinput\") || \"\";\n\nif(msg.topic === \"acq_fluid_volume_imaged\"){\n lastinput = msg.payload;\n context.set(\"acq_fluid_volume_imaged\",acq_fluid_volume_imaged);\n}\n\nif(msg.topic === \"sample_project\"){\n lastinput = msg.payload;\n context.set(\"sample_project\",sample_project);\n}\n\nif(msg.topic === \"sample_id\"){\n lastinput = msg.payload;\n context.set(\"sample_id\",sample_id);\n}\n\nif(msg.topic === \"start\"){\n\n acq_fluid_volume_imaged = String(acq_fluid_volume_imaged);\n sample_project = String(sample_project);\n sample_id = String(sample_id);\n\n msg.payload = nb_step.concat(' ', orientation);\n return msg;\n}\n\n\/\/ tara_pacific station_125 exp_1 24 3.2\n",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 950,
+ "y": 920,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "2d0f6720.0f92f8",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "c627ea8d.f886e8",
+ "name": "",
+ "order": 5,
+ "width": 0,
+ "height": 0,
+ "format": "<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 1260,
+ "y": 1180,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "bf51ed75.15f7f",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "get magnification",
+ "func": "var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[1];\n\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 550,
+ "y": 780,
+ "wires": [
+ [
+ "72d57e31.59234"
+ ]
+ ]
+ },
+ {
+ "id": "9599b953.529c28",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "832434ce.ebe498",
+ "name": "process_pixel",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "
\n Pixel resolution :\n
<\/span>\n \u03bcm\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 580,
+ "y": 900,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "1c966729.d952b9",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "get process_pixel",
+ "func": "var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[2];\n\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 550,
+ "y": 860,
+ "wires": [
+ [
+ "9599b953.529c28"
+ ]
+ ]
+ },
+ {
+ "id": "612e2b9b.ed1684",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "832434ce.ebe498",
+ "name": "min_size",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "\n Smallest cells to explore :\n
<\/span>\n \u03bcm\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 560,
+ "y": 980,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "e7ef7709.ba3f88",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "get min size",
+ "func": "var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[3];\n\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 530,
+ "y": 940,
+ "wires": [
+ [
+ "612e2b9b.ed1684"
+ ]
+ ]
+ },
+ {
+ "id": "f84ab57a.556df8",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "832434ce.ebe498",
+ "name": "max_size",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "\n Biggest cells to explore :\n
<\/span>\n \u03bcm\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 560,
+ "y": 1060,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "1ae4f566.e9182b",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "get max size",
+ "func": "var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[4];\n\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 530,
+ "y": 1020,
+ "wires": [
+ [
+ "f84ab57a.556df8"
+ ]
+ ]
+ },
+ {
+ "id": "45f53656.d631e8",
+ "type": "ui_template",
+ "z": "7f885510.6173fc",
+ "group": "832434ce.ebe498",
+ "name": "flowrate",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "format": "\n Flowrate :\n <\/span>\n ml\/min\n<\/div>",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "templateScope": "local",
+ "x": 560,
+ "y": 1140,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "578b63e7.8a675c",
+ "type": "function",
+ "z": "7f885510.6173fc",
+ "name": "get flowrate",
+ "func": "var array = String(msg.payload);\n\nvar items = array.split(' ');\n\nmsg.payload = items[5];\n\nreturn msg;",
+ "outputs": 1,
+ "noerr": 0,
+ "x": 530,
+ "y": 1100,
+ "wires": [
+ [
+ "45f53656.d631e8"
+ ]
+ ]
+ }
+]