A4MCAR - Corrections to applications regarding some coding conventions and some comments. Signed-off-by: Mustafa Ozcelikors <mozcelikors@gmail.com>
diff --git a/a4mcar/high_level_applications/apps/core_recorder/core_recorder.py b/a4mcar/high_level_applications/apps/core_recorder/core_recorder.py index b430bd5..e7616f4 100644 --- a/a4mcar/high_level_applications/apps/core_recorder/core_recorder.py +++ b/a4mcar/high_level_applications/apps/core_recorder/core_recorder.py
@@ -16,16 +16,6 @@ import time import string -# Global variables -counter = 0 -ctrl = 0 - -# Variables to hold the core utilization values at different instances -a=[0,0,0,0] -b=[0,0,0,0] -c=[0,0,0,0] -d=[0,0,0,0] - #Timing Related ---start _DEADLINE = 3 _START_TIME = 0 @@ -55,31 +45,49 @@ except Exception as inst: print inst +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD -while True: - #TASK CONTENT+Sleep - a=b - b=c - c=d + counter = 0 + ctrl = 0 + + # Variables to hold the core utilization values at different instances + a=[0,0,0,0] + b=[0,0,0,0] + c=[0,0,0,0] + d=[0,0,0,0] + + while True: + #TASK CONTENT+Sleep + a=b + b=c + c=d - #Timing Related --start - CreateTimingLog("../../logs/timing/core_recorder_timing.inc") - #Timing Related --end + #Timing Related --start + CreateTimingLog("../../logs/timing/core_recorder_timing.inc") + #Timing Related --end - if (ctrl == 1 and (_PERIOD>_EXECUTION_TIME)): - #Sleep - d = psutil.cpu_percent(interval=(_PERIOD - _EXECUTION_TIME), percpu=True) + if (ctrl == 1 and (_PERIOD>_EXECUTION_TIME)): + #Sleep + d = psutil.cpu_percent(interval=(_PERIOD - _EXECUTION_TIME), percpu=True) - #Timing Related --start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related --end + #Timing Related --start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related --end - #TASK CONTENT - ctrl = 1 - counter = counter + 1 - newtext = str(a[0])+","+str(a[1])+","+str(a[2])+","+str(a[3])+","+str(counter)+","+str(b[0])+","+str(b[1])+","+str(b[2])+","+str(b[3])+","+str(counter)+","+str(c[0])+","+str(c[1])+","+str(c[2])+","+str(c[3])+","+str(counter)+","+str(d[0])+","+str(d[1])+","+str(d[2])+","+str(d[3])+","+str(counter) - text_file = open("/var/www/html/core_usage_rpi.inc","w+r") - text_file.write(newtext) - text_file.close() + #TASK CONTENT + ctrl = 1 + counter = counter + 1 + newtext = str(a[0])+","+str(a[1])+","+str(a[2])+","+str(a[3])+","+str(counter)+","+str(b[0])+","+str(b[1])+","+str(b[2])+","+str(b[3])+","+str(counter)+","+str(c[0])+","+str(c[1])+","+str(c[2])+","+str(c[3])+","+str(counter)+","+str(d[0])+","+str(d[1])+","+str(d[2])+","+str(d[3])+","+str(counter) + text_file = open("/var/www/html/core_usage_rpi.inc","w+r") + text_file.write(newtext) + text_file.close() +if (__name__ == "__main__"): + main() \ No newline at end of file
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_graph.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_graph.py index e05dbe5..18986ca 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_graph.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_graph.py
@@ -53,11 +53,12 @@ def StopAllThreads(): global thread_names global threads + for i in range (0, len(thread_names)): - try: - threads[i].join(0) - except Exception as inst: - print inst + try: + threads[i].join(0) + except Exception as inst: + print inst # Join all threads gracefully when SIGINT received, (Ctrl+C) def Signal_Handler (signal, frame): @@ -171,23 +172,32 @@ time.sleep(_thr_PERIOD - _thr_EXECUTION_TIME) #Main -#Threads start -for i in range (0, len(thread_names)): - try: - threads[i] = threading.Thread(target=Worker, args=(thread_names[i], instruction_size_scales[i], mapped_cores[i]), name=thread_names[i]) - threads[i].setDaemon(True) - threads[i].start() - except Exception as inst: - print inst +def main(): + global thread_names + global threading + global instruction_size_scales + global mapped_cores -done = False -signal.signal(signal.SIGINT, Signal_Handler) -signal.pause() + #Threads start + for i in range (0, len(thread_names)): + try: + threads[i] = threading.Thread(target=Worker, args=(thread_names[i], instruction_size_scales[i], mapped_cores[i]), name=thread_names[i]) + threads[i].setDaemon(True) + threads[i].start() + except Exception as inst: + print inst -while not done: - # Main thread doing nothing. - try: - time.sleep(1) - except (KeyboardInterrupt, SystemExit): - StopAllThreads() - sys.exit(0) \ No newline at end of file + done = False + signal.signal(signal.SIGINT, Signal_Handler) + signal.pause() + + while not done: + # Main thread doing nothing. + try: + time.sleep(1) + except (KeyboardInterrupt, SystemExit): + StopAllThreads() + sys.exit(0) + +if (__name__=="__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load100.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load100.py index 53dcf6e..e3a0d14 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load100.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load100.py
@@ -46,21 +46,32 @@ except Exception as inst: print inst -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load100_timing.inc") - #Timing Related ---end - - #Sleep - if (_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load100_timing.inc") + #Timing Related ---end + + #Sleep + if (_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__ == "__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_1.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_1.py index fc11e55..2b9cb71 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_1.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_1.py
@@ -46,21 +46,32 @@ except Exception as inst: print inst -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load25_1_timing.inc") - #Timing Related ---end - - #Sleep - if(_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load25_1_timing.inc") + #Timing Related ---end + + #Sleep + if(_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__ == "__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_2.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_2.py index 0230657..bd97e78 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_2.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_2.py
@@ -46,21 +46,32 @@ except Exception as inst: print inst -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load25_2_timing.inc") - #Timing Related ---end - - #Sleep - if(_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load25_2_timing.inc") + #Timing Related ---end + + #Sleep + if(_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__ == "__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_3.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_3.py index 979a301..3de9b87 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_3.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_3.py
@@ -46,21 +46,32 @@ except Exception as inst: print inst -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load25_3_timing.inc") - #Timing Related ---end - - #Sleep - if(_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load25_3_timing.inc") + #Timing Related ---end + + #Sleep + if(_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__ == "__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_4.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_4.py index 8210f63..56a9310 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_4.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_4.py
@@ -45,22 +45,33 @@ file_obj.close() except Exception as inst: print inst - -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end - - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load25_4_timing.inc") - #Timing Related ---end - - #Sleep - if(_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end + + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load25_4_timing.inc") + #Timing Related ---end + + #Sleep + if(_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__=="__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_5.py b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_5.py index 2ee28b4..ca658d3 100644 --- a/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_5.py +++ b/a4mcar/high_level_applications/apps/dummy_loads/dummy_load25_5.py
@@ -46,21 +46,32 @@ except Exception as inst: print inst -while True: - #Timing Related ---start - _START_TIME = time.time() - _PREV_SLACK_TIME = _START_TIME - _END_TIME - #Timing Related ---end +def main(): + global _START_TIME + global _DEADLINE + global _END_TIME + global _EXECUTION_TIME + global _PREV_SLACK_TIME + global _PERIOD + + while True: + #Timing Related ---start + _START_TIME = time.time() + _PREV_SLACK_TIME = _START_TIME - _END_TIME + #Timing Related ---end - #TASK CONTENT - a=numpy.random.random([1000,1000]) - b=numpy.random.random([1000,1000]) - c=numpy.mean(a*b) - - #Timing Related ---start - CreateTimingLog("../../logs/timing/dummy_load25_5_timing.inc") - #Timing Related ---end - - #Sleep - if(_PERIOD>_EXECUTION_TIME): - time.sleep(_PERIOD - _EXECUTION_TIME) + #TASK CONTENT + a=numpy.random.random([1000,1000]) + b=numpy.random.random([1000,1000]) + c=numpy.mean(a*b) + + #Timing Related ---start + CreateTimingLog("../../logs/timing/dummy_load25_5_timing.inc") + #Timing Related ---end + + #Sleep + if(_PERIOD>_EXECUTION_TIME): + time.sleep(_PERIOD - _EXECUTION_TIME) + +if (__name__=="__main__"): + main() \ No newline at end of file
diff --git a/a4mcar/high_level_applications/apps/image_processing/image_processing.cpp b/a4mcar/high_level_applications/apps/image_processing/image_processing.cpp index e166390..da36faf 100644 --- a/a4mcar/high_level_applications/apps/image_processing/image_processing.cpp +++ b/a4mcar/high_level_applications/apps/image_processing/image_processing.cpp
@@ -25,7 +25,7 @@ #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/opencv.hpp> -//#include <pigpio.h> +//To get access to RPi GPIO either -> #include <pigpio.h> or -> #include <wiringpi.h> #include <unistd.h> #include <string.h> @@ -509,6 +509,8 @@ if(_PERIOD > _EXECUTION_TIME) { usleep((_PERIOD - _EXECUTION_TIME)*1000*1000); + + /* Allowing waitKey opens the GNU window application */ //waitKey(_PERIOD - _EXECUTION_TIME*1000); }
diff --git a/a4mcar/high_level_applications/apps/initialize/initialize.py b/a4mcar/high_level_applications/apps/initialize/initialize.py index c03df0d..e9e0e9e 100644 --- a/a4mcar/high_level_applications/apps/initialize/initialize.py +++ b/a4mcar/high_level_applications/apps/initialize/initialize.py
@@ -16,44 +16,46 @@ import time import string -text_file = open("../../logs/driving/driving_command.inc","w") -text_file.write("NOCHANGE") -text_file.close() -text_file = open("../../logs/driving/driving_command_history.inc","w") -text_file.write("NOCHANGE") -text_file.close() -text_file = open("/var/www/html/core_usage_xmos.inc","w") -text_file.write("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0") -text_file.close() -text_file = open("../../logs/timing/ethernet_client_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/core_recorder_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load25_1_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load25_2_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load25_3_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load25_4_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load25_5_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/dummy_load100_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/timing/image_processing_timing.inc","w") -text_file.write("0 0 0 0") -text_file.close() -text_file = open("../../logs/image_processing/detection.inc","w") -text_file.write("undetected") -text_file.close() +def main(): + text_file = open("../../logs/driving/driving_command.inc","w") + text_file.write("NOCHANGE") + text_file.close() + text_file = open("../../logs/driving/driving_command_history.inc","w") + text_file.write("NOCHANGE") + text_file.close() + text_file = open("/var/www/html/core_usage_xmos.inc","w") + text_file.write("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0") + text_file.close() + text_file = open("../../logs/timing/ethernet_client_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/core_recorder_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load25_1_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load25_2_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load25_3_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load25_4_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load25_5_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/dummy_load100_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/timing/image_processing_timing.inc","w") + text_file.write("0 0 0 0") + text_file.close() + text_file = open("../../logs/image_processing/detection.inc","w") + text_file.write("undetected") + text_file.close() - +if (__name__ == "__main__"): + main()
diff --git a/a4mcar/high_level_applications/apps/touchscreen_display/touchscreen_display.py b/a4mcar/high_level_applications/apps/touchscreen_display/touchscreen_display.py index a29c3af..596baad 100644 --- a/a4mcar/high_level_applications/apps/touchscreen_display/touchscreen_display.py +++ b/a4mcar/high_level_applications/apps/touchscreen_display/touchscreen_display.py
@@ -70,12 +70,12 @@ aprocess_list.append(aprocess.aprocess("touchscreen_display", 1, "../../logs/timing/touchscreen_display_timing.inc", 1, "Display", "None", 0)) aprocess_list.append(aprocess.aprocess("ethernet_client", 1, "../../logs/timing/ethernet_client_timing.inc", 1, "Ethernet App", "cd ../ethernet_client/ && sudo ./ethernet_client.py &", 0)) aprocess_list.append(aprocess.aprocess("core_recorder", 1, "../../logs/timing/core_recorder_timing.inc", 1, "Core Recorder", "cd ../core_recorder/ && sudo ./core_recorder.py &", 0)) -#aprocess_list.append(aprocess.aprocess("dummy_load25_1", 1, "../../logs/timing/dummy_load25_1_timing.inc", 1, "Cycler25_1", "cd ../dummy_loads/ && sudo ./dummy_load25_1.py &", 0)) -#aprocess_list.append(aprocess.aprocess("dummy_load25_2", 1, "../../logs/timing/dummy_load25_2_timing.inc", 1, "Cycler25_2", "cd ../dummy_loads/ && sudo ./dummy_load25_2.py &", 0)) +aprocess_list.append(aprocess.aprocess("dummy_load25_1", 1, "../../logs/timing/dummy_load25_1_timing.inc", 1, "Cycler25_1", "cd ../dummy_loads/ && sudo ./dummy_load25_1.py &", 0)) +aprocess_list.append(aprocess.aprocess("dummy_load25_2", 1, "../../logs/timing/dummy_load25_2_timing.inc", 1, "Cycler25_2", "cd ../dummy_loads/ && sudo ./dummy_load25_2.py &", 0)) #aprocess_list.append(aprocess.aprocess("dummy_load25_3", 1, "../../logs/timing/dummy_load25_3_timing.inc", 1, "Cycler25_3", "cd ../dummy_loads/ && sudo ./dummy_load25_3.py &", 0)) #aprocess_list.append(aprocess.aprocess("dummy_load25_4", 1, "../../logs/timing/dummy_load25_4_timing.inc", 1, "Cycler25_4", "cd ../dummy_loads/ && sudo ./dummy_load25_4.py &", 0)) #aprocess_list.append(aprocess.aprocess("dummy_load25_5", 1, "../../logs/timing/dummy_load25_5_timing.inc", 1, "Cycler25_5", "cd ../dummy_loads/ && sudo ./dummy_load25_5.py &", 0)) -#aprocess_list.append(aprocess.aprocess("dummy_load100", 1, "../../logs/timing/dummy_load100_timing.inc", 1, "Cycler100", "cd ../dummy_loads/ && sudo ./dummy_load100.py &", 0)) +aprocess_list.append(aprocess.aprocess("dummy_load100", 1, "../../logs/timing/dummy_load100_timing.inc", 1, "Cycler100", "cd ../dummy_loads/ && sudo ./dummy_load100.py &", 0)) aprocess_list.append(aprocess.aprocess("apache2", 0, "None", 1, "Apache Server", "sudo service apache2 start", 0)) aprocess_list.append(aprocess.aprocess("image_processing", 1, "../../logs/timing/image_processing_timing.inc", 1, "ImageProcess", "cd ../image_processing/ && sudo -E ./image_processing &", 0))