Index: src/conf/configure.json
===================================================================
--- src/conf/configure.json	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/conf/configure.json	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -1,1 +1,1 @@
-{"firstLayout": 350, "mainHeight": 929, "ip": "10.1.53.240", "mainSplitterRight": 1352, "mainSplitterLeft": 497, "mainWidth": 1855, "port": 9000}
+{"firstLayout": 405, "mainHeight": 931, "ip": "10.1.53.240", "mainSplitterRight": 1252, "mainSplitterLeft": 458, "mainWidth": 1716, "port": 9000}
Index: src/log/GPPD.log
===================================================================
--- src/log/GPPD.log	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/log/GPPD.log	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -130298,2 +130298,597 @@
 2017-06-02 01:43:11,760 - INFO - Empty bank data: 
 2017-06-02 01:43:12,762 - INFO - Empty bank data: 
+2017-06-02 02:00:44,917 - INFO - NEON connected
+2017-06-02 02:00:44,918 - INFO - Creating heartbeat thread
+2017-06-02 02:00:44,919 - INFO - Starting heartbeat thread
+2017-06-02 02:00:44,931 - INFO - Start heartbeat successfully
+2017-06-02 02:00:44,931 - INFO - Creating Command Thread...
+2017-06-02 02:00:44,933 - INFO - Start Command Thread successfully
+2017-06-02 02:00:44,933 - INFO - Creating Canvas data Thread...
+2017-06-02 02:00:44,934 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:00:47,938 - INFO - Empty bank data: 
+2017-06-02 02:00:48,940 - INFO - Empty bank data: 
+2017-06-02 02:04:35,761 - INFO - NEON connected
+2017-06-02 02:04:35,762 - INFO - Creating heartbeat thread
+2017-06-02 02:04:35,763 - INFO - Starting heartbeat thread
+2017-06-02 02:04:35,768 - INFO - Start heartbeat successfully
+2017-06-02 02:04:35,770 - INFO - Creating Command Thread...
+2017-06-02 02:04:35,772 - INFO - Start Command Thread successfully
+2017-06-02 02:04:35,773 - INFO - Creating Canvas data Thread...
+2017-06-02 02:04:35,774 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:04:44,786 - INFO - Empty bank data: 
+2017-06-02 02:04:45,799 - INFO - Incompleted bank data
+2017-06-02 02:04:46,806 - INFO - Incompleted bank data
+2017-06-02 02:04:47,818 - INFO - Incompleted bank data
+2017-06-02 02:04:48,828 - INFO - Incompleted bank data
+2017-06-02 02:04:49,874 - INFO - Incompleted bank data
+2017-06-02 02:04:50,913 - INFO - Incompleted bank data
+2017-06-02 02:04:51,940 - INFO - Incompleted bank data
+2017-06-02 02:04:52,978 - INFO - Incompleted bank data
+2017-06-02 02:04:54,237 - INFO - Incompleted bank data
+2017-06-02 02:04:55,317 - INFO - Incompleted bank data
+2017-06-02 02:04:56,377 - INFO - Incompleted bank data
+2017-06-02 02:04:57,410 - INFO - Incompleted bank data
+2017-06-02 02:04:58,520 - INFO - Incompleted bank data
+2017-06-02 02:04:59,609 - INFO - Incompleted bank data
+2017-06-02 02:12:03,393 - INFO - NEON connected
+2017-06-02 02:12:03,394 - INFO - Creating heartbeat thread
+2017-06-02 02:12:03,394 - INFO - Starting heartbeat thread
+2017-06-02 02:12:03,397 - INFO - Start heartbeat successfully
+2017-06-02 02:12:03,400 - INFO - Creating Command Thread...
+2017-06-02 02:12:03,405 - INFO - Start Command Thread successfully
+2017-06-02 02:12:03,405 - INFO - Creating Canvas data Thread...
+2017-06-02 02:12:03,406 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:12:06,411 - INFO - Empty bank data: 
+2017-06-02 02:12:07,413 - INFO - Empty bank data: 
+2017-06-02 02:12:32,554 - INFO - Empty bank data: 
+2017-06-02 02:12:33,560 - INFO - Incompleted bank data
+2017-06-02 02:12:34,568 - INFO - Incompleted bank data
+2017-06-02 02:12:35,577 - INFO - Incompleted bank data
+2017-06-02 02:12:36,583 - INFO - Incompleted bank data
+2017-06-02 02:12:37,588 - INFO - Incompleted bank data
+2017-06-02 02:12:38,594 - INFO - Incompleted bank data
+2017-06-02 02:12:39,600 - INFO - Incompleted bank data
+2017-06-02 02:12:40,606 - INFO - Incompleted bank data
+2017-06-02 02:12:41,613 - INFO - Incompleted bank data
+2017-06-02 02:12:42,619 - INFO - Incompleted bank data
+2017-06-02 02:12:43,625 - INFO - Incompleted bank data
+2017-06-02 02:16:15,319 - INFO - NEON connected
+2017-06-02 02:16:15,320 - INFO - Creating heartbeat thread
+2017-06-02 02:16:15,320 - INFO - Starting heartbeat thread
+2017-06-02 02:16:15,331 - INFO - Start heartbeat successfully
+2017-06-02 02:16:15,333 - INFO - Creating Command Thread...
+2017-06-02 02:16:15,335 - INFO - Start Command Thread successfully
+2017-06-02 02:16:15,335 - INFO - Creating Canvas data Thread...
+2017-06-02 02:16:15,336 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:21:17,966 - INFO - NEON connected
+2017-06-02 02:21:17,966 - INFO - Creating heartbeat thread
+2017-06-02 02:21:17,967 - INFO - Starting heartbeat thread
+2017-06-02 02:21:17,977 - INFO - Start heartbeat successfully
+2017-06-02 02:21:17,981 - INFO - Creating Command Thread...
+2017-06-02 02:21:17,981 - INFO - Start Command Thread successfully
+2017-06-02 02:21:17,982 - INFO - Creating Canvas data Thread...
+2017-06-02 02:21:17,982 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:28:52,787 - INFO - NEON connected
+2017-06-02 02:28:52,787 - INFO - Creating heartbeat thread
+2017-06-02 02:28:52,788 - INFO - Starting heartbeat thread
+2017-06-02 02:28:52,796 - INFO - Start heartbeat successfully
+2017-06-02 02:28:52,802 - INFO - Creating Command Thread...
+2017-06-02 02:28:52,804 - INFO - Start Command Thread successfully
+2017-06-02 02:28:52,804 - INFO - Creating Canvas data Thread...
+2017-06-02 02:28:52,805 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:36:32,314 - INFO - NEON connected
+2017-06-02 02:36:32,315 - INFO - Creating heartbeat thread
+2017-06-02 02:36:32,315 - INFO - Starting heartbeat thread
+2017-06-02 02:36:32,329 - INFO - Start heartbeat successfully
+2017-06-02 02:36:32,329 - INFO - Creating Command Thread...
+2017-06-02 02:36:32,331 - INFO - Start Command Thread successfully
+2017-06-02 02:36:32,331 - INFO - Creating Canvas data Thread...
+2017-06-02 02:36:32,332 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:37:19,070 - INFO - NEON connected
+2017-06-02 02:37:19,071 - INFO - Creating heartbeat thread
+2017-06-02 02:37:19,071 - INFO - Starting heartbeat thread
+2017-06-02 02:37:19,072 - INFO - Start heartbeat successfully
+2017-06-02 02:37:19,086 - INFO - Creating Command Thread...
+2017-06-02 02:37:19,087 - INFO - Start Command Thread successfully
+2017-06-02 02:37:19,088 - INFO - Creating Canvas data Thread...
+2017-06-02 02:37:19,088 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:37:46,114 - INFO - NEON connected
+2017-06-02 02:37:46,114 - INFO - Creating heartbeat thread
+2017-06-02 02:37:46,115 - INFO - Starting heartbeat thread
+2017-06-02 02:37:46,117 - INFO - Start heartbeat successfully
+2017-06-02 02:37:46,129 - INFO - Creating Command Thread...
+2017-06-02 02:37:46,131 - INFO - Start Command Thread successfully
+2017-06-02 02:37:46,131 - INFO - Creating Canvas data Thread...
+2017-06-02 02:37:46,132 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:39:34,238 - INFO - NEON connected
+2017-06-02 02:39:34,239 - INFO - Creating heartbeat thread
+2017-06-02 02:39:34,239 - INFO - Starting heartbeat thread
+2017-06-02 02:39:34,253 - INFO - Start heartbeat successfully
+2017-06-02 02:39:34,254 - INFO - Creating Command Thread...
+2017-06-02 02:39:34,255 - INFO - Start Command Thread successfully
+2017-06-02 02:39:34,256 - INFO - Creating Canvas data Thread...
+2017-06-02 02:39:34,257 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:43:33,771 - INFO - NEON connected
+2017-06-02 02:43:33,772 - INFO - Creating heartbeat thread
+2017-06-02 02:43:33,773 - INFO - Starting heartbeat thread
+2017-06-02 02:43:33,776 - INFO - Start heartbeat successfully
+2017-06-02 02:43:33,788 - INFO - Creating Command Thread...
+2017-06-02 02:43:33,789 - INFO - Start Command Thread successfully
+2017-06-02 02:43:33,790 - INFO - Creating Canvas data Thread...
+2017-06-02 02:43:33,791 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:44:13,270 - INFO - NEON connected
+2017-06-02 02:44:13,271 - INFO - Creating heartbeat thread
+2017-06-02 02:44:13,272 - INFO - Starting heartbeat thread
+2017-06-02 02:44:13,275 - INFO - Start heartbeat successfully
+2017-06-02 02:44:13,276 - INFO - Creating Command Thread...
+2017-06-02 02:44:13,282 - INFO - Start Command Thread successfully
+2017-06-02 02:44:13,283 - INFO - Creating Canvas data Thread...
+2017-06-02 02:44:13,284 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:44:28,777 - INFO - NEON connected
+2017-06-02 02:44:28,778 - INFO - Creating heartbeat thread
+2017-06-02 02:44:28,778 - INFO - Starting heartbeat thread
+2017-06-02 02:44:28,781 - INFO - Start heartbeat successfully
+2017-06-02 02:44:28,793 - INFO - Creating Command Thread...
+2017-06-02 02:44:28,795 - INFO - Start Command Thread successfully
+2017-06-02 02:44:28,795 - INFO - Creating Canvas data Thread...
+2017-06-02 02:44:28,796 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:45:52,948 - INFO - NEON connected
+2017-06-02 02:45:52,949 - INFO - Creating heartbeat thread
+2017-06-02 02:45:52,950 - INFO - Starting heartbeat thread
+2017-06-02 02:45:52,950 - INFO - Start heartbeat successfully
+2017-06-02 02:45:52,964 - INFO - Creating Command Thread...
+2017-06-02 02:45:52,966 - INFO - Start Command Thread successfully
+2017-06-02 02:45:52,966 - INFO - Creating Canvas data Thread...
+2017-06-02 02:45:52,967 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:46:26,887 - INFO - NEON connected
+2017-06-02 02:46:26,888 - INFO - Creating heartbeat thread
+2017-06-02 02:46:26,888 - INFO - Starting heartbeat thread
+2017-06-02 02:46:26,901 - INFO - Start heartbeat successfully
+2017-06-02 02:46:26,902 - INFO - Creating Command Thread...
+2017-06-02 02:46:26,903 - INFO - Start Command Thread successfully
+2017-06-02 02:46:26,904 - INFO - Creating Canvas data Thread...
+2017-06-02 02:46:26,904 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:47:57,831 - INFO - NEON connected
+2017-06-02 02:47:57,832 - INFO - Creating heartbeat thread
+2017-06-02 02:47:57,832 - INFO - Starting heartbeat thread
+2017-06-02 02:47:57,834 - INFO - Start heartbeat successfully
+2017-06-02 02:47:57,840 - INFO - Creating Command Thread...
+2017-06-02 02:47:57,845 - INFO - Start Command Thread successfully
+2017-06-02 02:47:57,845 - INFO - Creating Canvas data Thread...
+2017-06-02 02:47:57,847 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:51:15,617 - INFO - NEON connected
+2017-06-02 02:51:15,617 - INFO - Creating heartbeat thread
+2017-06-02 02:51:15,618 - INFO - Starting heartbeat thread
+2017-06-02 02:51:15,622 - INFO - Start heartbeat successfully
+2017-06-02 02:51:15,632 - INFO - Creating Command Thread...
+2017-06-02 02:51:15,634 - INFO - Start Command Thread successfully
+2017-06-02 02:51:15,634 - INFO - Creating Canvas data Thread...
+2017-06-02 02:51:15,635 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:51:28,895 - INFO - Incompleted bank data
+2017-06-02 02:51:29,984 - INFO - Incompleted bank data
+2017-06-02 02:51:31,073 - INFO - Incompleted bank data
+2017-06-02 02:51:46,192 - INFO - NEON connected
+2017-06-02 02:51:46,193 - INFO - Creating heartbeat thread
+2017-06-02 02:51:46,194 - INFO - Starting heartbeat thread
+2017-06-02 02:51:46,195 - INFO - Start heartbeat successfully
+2017-06-02 02:51:46,201 - INFO - Creating Command Thread...
+2017-06-02 02:51:46,210 - INFO - Start Command Thread successfully
+2017-06-02 02:51:46,210 - INFO - Creating Canvas data Thread...
+2017-06-02 02:51:46,211 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:51:49,309 - INFO - Incompleted bank data
+2017-06-02 02:51:50,400 - INFO - Incompleted bank data
+2017-06-02 02:51:51,485 - INFO - Incompleted bank data
+2017-06-02 02:51:52,574 - INFO - Incompleted bank data
+2017-06-02 02:51:53,665 - INFO - Incompleted bank data
+2017-06-02 02:51:54,773 - INFO - Incompleted bank data
+2017-06-02 02:51:55,863 - INFO - Incompleted bank data
+2017-06-02 02:51:56,956 - INFO - Incompleted bank data
+2017-06-02 02:51:58,061 - INFO - Incompleted bank data
+2017-06-02 02:51:59,166 - INFO - Incompleted bank data
+2017-06-02 02:52:00,254 - INFO - Incompleted bank data
+2017-06-02 02:52:01,343 - INFO - Incompleted bank data
+2017-06-02 02:52:02,434 - INFO - Incompleted bank data
+2017-06-02 02:52:03,523 - INFO - Incompleted bank data
+2017-06-02 02:52:04,615 - INFO - Incompleted bank data
+2017-06-02 02:52:05,703 - INFO - Incompleted bank data
+2017-06-02 02:52:06,803 - INFO - Incompleted bank data
+2017-06-02 02:52:07,892 - INFO - Incompleted bank data
+2017-06-02 02:52:08,983 - INFO - Incompleted bank data
+2017-06-02 02:52:10,076 - INFO - Incompleted bank data
+2017-06-02 02:52:11,164 - INFO - Incompleted bank data
+2017-06-02 02:52:12,252 - INFO - Incompleted bank data
+2017-06-02 02:52:13,341 - INFO - Incompleted bank data
+2017-06-02 02:52:14,429 - INFO - Incompleted bank data
+2017-06-02 02:52:20,294 - INFO - NEON connected
+2017-06-02 02:52:20,295 - INFO - Creating heartbeat thread
+2017-06-02 02:52:20,295 - INFO - Starting heartbeat thread
+2017-06-02 02:52:20,309 - INFO - Start heartbeat successfully
+2017-06-02 02:52:20,309 - INFO - Creating Command Thread...
+2017-06-02 02:52:20,310 - INFO - Start Command Thread successfully
+2017-06-02 02:52:20,311 - INFO - Creating Canvas data Thread...
+2017-06-02 02:52:20,312 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:53:13,236 - INFO - NEON connected
+2017-06-02 02:53:13,237 - INFO - Creating heartbeat thread
+2017-06-02 02:53:13,237 - INFO - Starting heartbeat thread
+2017-06-02 02:53:13,241 - INFO - Start heartbeat successfully
+2017-06-02 02:53:13,252 - INFO - Creating Command Thread...
+2017-06-02 02:53:13,253 - INFO - Start Command Thread successfully
+2017-06-02 02:53:13,253 - INFO - Creating Canvas data Thread...
+2017-06-02 02:53:13,254 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:58:28,524 - INFO - NEON connected
+2017-06-02 02:58:28,525 - INFO - Creating heartbeat thread
+2017-06-02 02:58:28,525 - INFO - Starting heartbeat thread
+2017-06-02 02:58:28,527 - INFO - Start heartbeat successfully
+2017-06-02 02:58:28,539 - INFO - Creating Command Thread...
+2017-06-02 02:58:28,540 - INFO - Start Command Thread successfully
+2017-06-02 02:58:28,540 - INFO - Creating Canvas data Thread...
+2017-06-02 02:58:28,541 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:58:31,549 - INFO - Empty bank data: 
+2017-06-02 02:58:32,551 - INFO - Empty bank data: 
+2017-06-02 02:59:02,691 - INFO - NEON connected
+2017-06-02 02:59:02,691 - INFO - Creating heartbeat thread
+2017-06-02 02:59:02,692 - INFO - Starting heartbeat thread
+2017-06-02 02:59:02,695 - INFO - Start heartbeat successfully
+2017-06-02 02:59:02,706 - INFO - Creating Command Thread...
+2017-06-02 02:59:02,707 - INFO - Start Command Thread successfully
+2017-06-02 02:59:02,708 - INFO - Creating Canvas data Thread...
+2017-06-02 02:59:02,708 - INFO - Start Canvas Data Thread successfully
+2017-06-02 02:59:11,720 - INFO - Empty bank data: 
+2017-06-02 03:00:01,667 - INFO - NEON connected
+2017-06-02 03:00:01,668 - INFO - Creating heartbeat thread
+2017-06-02 03:00:01,668 - INFO - Starting heartbeat thread
+2017-06-02 03:00:01,669 - INFO - Start heartbeat successfully
+2017-06-02 03:00:01,682 - INFO - Creating Command Thread...
+2017-06-02 03:00:01,683 - INFO - Start Command Thread successfully
+2017-06-02 03:00:01,684 - INFO - Creating Canvas data Thread...
+2017-06-02 03:00:01,685 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:00:31,651 - INFO - NEON connected
+2017-06-02 03:00:31,652 - INFO - Creating heartbeat thread
+2017-06-02 03:00:31,653 - INFO - Starting heartbeat thread
+2017-06-02 03:00:31,656 - INFO - Start heartbeat successfully
+2017-06-02 03:00:31,668 - INFO - Creating Command Thread...
+2017-06-02 03:00:31,669 - INFO - Start Command Thread successfully
+2017-06-02 03:00:31,670 - INFO - Creating Canvas data Thread...
+2017-06-02 03:00:31,671 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:00:34,676 - INFO - Empty bank data: 
+2017-06-02 03:01:20,686 - INFO - NEON connected
+2017-06-02 03:01:20,687 - INFO - Creating heartbeat thread
+2017-06-02 03:01:20,687 - INFO - Starting heartbeat thread
+2017-06-02 03:01:20,701 - INFO - Start heartbeat successfully
+2017-06-02 03:01:20,701 - INFO - Creating Command Thread...
+2017-06-02 03:01:20,703 - INFO - Start Command Thread successfully
+2017-06-02 03:01:20,703 - INFO - Creating Canvas data Thread...
+2017-06-02 03:01:20,704 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:01:59,510 - INFO - NEON connected
+2017-06-02 03:01:59,511 - INFO - Creating heartbeat thread
+2017-06-02 03:01:59,512 - INFO - Starting heartbeat thread
+2017-06-02 03:01:59,514 - INFO - Start heartbeat successfully
+2017-06-02 03:01:59,523 - INFO - Creating Command Thread...
+2017-06-02 03:01:59,525 - INFO - Start Command Thread successfully
+2017-06-02 03:01:59,525 - INFO - Creating Canvas data Thread...
+2017-06-02 03:01:59,526 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:02:02,538 - INFO - Empty bank data: 
+2017-06-02 03:02:03,544 - INFO - Empty bank data: 
+2017-06-02 03:04:31,442 - INFO - NEON connected
+2017-06-02 03:04:31,443 - INFO - Creating heartbeat thread
+2017-06-02 03:04:31,443 - INFO - Starting heartbeat thread
+2017-06-02 03:04:31,445 - INFO - Start heartbeat successfully
+2017-06-02 03:04:31,451 - INFO - Creating Command Thread...
+2017-06-02 03:04:31,453 - INFO - Start Command Thread successfully
+2017-06-02 03:04:31,453 - INFO - Creating Canvas data Thread...
+2017-06-02 03:04:31,454 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:04:37,462 - INFO - Empty bank data: 
+2017-06-02 03:04:38,466 - INFO - Empty bank data: 
+2017-06-02 03:04:39,468 - INFO - Empty bank data: 
+2017-06-02 03:04:40,472 - INFO - Empty bank data: 
+2017-06-02 03:04:41,474 - INFO - Empty bank data: 
+2017-06-02 03:04:42,476 - INFO - Empty bank data: 
+2017-06-02 03:04:43,480 - INFO - Empty bank data: 
+2017-06-02 03:08:50,089 - INFO - NEON connected
+2017-06-02 03:08:50,089 - INFO - Creating heartbeat thread
+2017-06-02 03:08:50,089 - INFO - Starting heartbeat thread
+2017-06-02 03:08:50,092 - INFO - Start heartbeat successfully
+2017-06-02 03:08:50,103 - INFO - Creating Command Thread...
+2017-06-02 03:08:50,104 - INFO - Start Command Thread successfully
+2017-06-02 03:08:50,104 - INFO - Creating Canvas data Thread...
+2017-06-02 03:08:50,105 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:08:53,110 - INFO - Empty bank data: 
+2017-06-02 03:08:54,111 - INFO - Empty bank data: 
+2017-06-02 03:15:09,503 - INFO - NEON connected
+2017-06-02 03:15:09,504 - INFO - Creating heartbeat thread
+2017-06-02 03:15:09,505 - INFO - Starting heartbeat thread
+2017-06-02 03:15:09,507 - INFO - Start heartbeat successfully
+2017-06-02 03:15:09,517 - INFO - Creating Command Thread...
+2017-06-02 03:15:09,519 - INFO - Start Command Thread successfully
+2017-06-02 03:15:09,519 - INFO - Creating Canvas data Thread...
+2017-06-02 03:15:09,520 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:16:37,960 - INFO - NEON connected
+2017-06-02 03:16:37,960 - INFO - Creating heartbeat thread
+2017-06-02 03:16:37,961 - INFO - Starting heartbeat thread
+2017-06-02 03:16:37,975 - INFO - Start heartbeat successfully
+2017-06-02 03:16:37,976 - INFO - Creating Command Thread...
+2017-06-02 03:16:37,977 - INFO - Start Command Thread successfully
+2017-06-02 03:16:37,978 - INFO - Creating Canvas data Thread...
+2017-06-02 03:16:37,979 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:48:51,434 - INFO - NEON connected
+2017-06-02 03:48:51,435 - INFO - Creating heartbeat thread
+2017-06-02 03:48:51,436 - INFO - Starting heartbeat thread
+2017-06-02 03:48:51,450 - INFO - Start heartbeat successfully
+2017-06-02 03:48:51,451 - INFO - Creating Command Thread...
+2017-06-02 03:48:51,452 - INFO - Start Command Thread successfully
+2017-06-02 03:48:51,453 - INFO - Creating Canvas data Thread...
+2017-06-02 03:48:51,454 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:49:23,800 - INFO - NEON connected
+2017-06-02 03:49:23,801 - INFO - Creating heartbeat thread
+2017-06-02 03:49:23,802 - INFO - Starting heartbeat thread
+2017-06-02 03:49:23,805 - INFO - Start heartbeat successfully
+2017-06-02 03:49:23,817 - INFO - Creating Command Thread...
+2017-06-02 03:49:23,819 - INFO - Start Command Thread successfully
+2017-06-02 03:49:23,820 - INFO - Creating Canvas data Thread...
+2017-06-02 03:49:23,821 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:51:24,653 - INFO - NEON connected
+2017-06-02 03:51:24,654 - INFO - Creating heartbeat thread
+2017-06-02 03:51:24,654 - INFO - Starting heartbeat thread
+2017-06-02 03:51:24,668 - INFO - Start heartbeat successfully
+2017-06-02 03:51:24,668 - INFO - Creating Command Thread...
+2017-06-02 03:51:24,670 - INFO - Start Command Thread successfully
+2017-06-02 03:51:24,670 - INFO - Creating Canvas data Thread...
+2017-06-02 03:51:24,671 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:56:24,133 - INFO - NEON connected
+2017-06-02 03:56:24,134 - INFO - Creating heartbeat thread
+2017-06-02 03:56:24,135 - INFO - Starting heartbeat thread
+2017-06-02 03:56:24,136 - INFO - Start heartbeat successfully
+2017-06-02 03:56:24,149 - INFO - Creating Command Thread...
+2017-06-02 03:56:24,151 - INFO - Start Command Thread successfully
+2017-06-02 03:56:24,151 - INFO - Creating Canvas data Thread...
+2017-06-02 03:56:24,152 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:57:50,412 - INFO - NEON connected
+2017-06-02 03:57:50,413 - INFO - Creating heartbeat thread
+2017-06-02 03:57:50,413 - INFO - Starting heartbeat thread
+2017-06-02 03:57:50,427 - INFO - Start heartbeat successfully
+2017-06-02 03:57:50,428 - INFO - Creating Command Thread...
+2017-06-02 03:57:50,429 - INFO - Start Command Thread successfully
+2017-06-02 03:57:50,429 - INFO - Creating Canvas data Thread...
+2017-06-02 03:57:50,430 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:58:24,476 - INFO - NEON connected
+2017-06-02 03:58:24,476 - INFO - Creating heartbeat thread
+2017-06-02 03:58:24,477 - INFO - Starting heartbeat thread
+2017-06-02 03:58:24,480 - INFO - Start heartbeat successfully
+2017-06-02 03:58:24,484 - INFO - Creating Command Thread...
+2017-06-02 03:58:24,489 - INFO - Start Command Thread successfully
+2017-06-02 03:58:24,490 - INFO - Creating Canvas data Thread...
+2017-06-02 03:58:24,491 - INFO - Start Canvas Data Thread successfully
+2017-06-02 03:59:08,140 - INFO - NEON connected
+2017-06-02 03:59:08,141 - INFO - Creating heartbeat thread
+2017-06-02 03:59:08,142 - INFO - Starting heartbeat thread
+2017-06-02 03:59:08,156 - INFO - Start heartbeat successfully
+2017-06-02 03:59:08,157 - INFO - Creating Command Thread...
+2017-06-02 03:59:08,158 - INFO - Start Command Thread successfully
+2017-06-02 03:59:08,159 - INFO - Creating Canvas data Thread...
+2017-06-02 03:59:08,160 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:01:38,408 - INFO - NEON connected
+2017-06-02 04:01:38,409 - INFO - Creating heartbeat thread
+2017-06-02 04:01:38,410 - INFO - Starting heartbeat thread
+2017-06-02 04:01:38,424 - INFO - Start heartbeat successfully
+2017-06-02 04:01:38,425 - INFO - Creating Command Thread...
+2017-06-02 04:01:38,426 - INFO - Start Command Thread successfully
+2017-06-02 04:01:38,426 - INFO - Creating Canvas data Thread...
+2017-06-02 04:01:38,427 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:01:53,521 - INFO - Empty bank data: 
+2017-06-02 04:04:30,728 - INFO - NEON connected
+2017-06-02 04:04:30,729 - INFO - Creating heartbeat thread
+2017-06-02 04:04:30,729 - INFO - Starting heartbeat thread
+2017-06-02 04:04:30,732 - INFO - Start heartbeat successfully
+2017-06-02 04:04:30,743 - INFO - Creating Command Thread...
+2017-06-02 04:04:30,744 - INFO - Start Command Thread successfully
+2017-06-02 04:04:30,745 - INFO - Creating Canvas data Thread...
+2017-06-02 04:04:30,746 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:06:34,718 - INFO - NEON connected
+2017-06-02 04:06:34,718 - INFO - Creating heartbeat thread
+2017-06-02 04:06:34,719 - INFO - Starting heartbeat thread
+2017-06-02 04:06:34,719 - INFO - Start heartbeat successfully
+2017-06-02 04:06:34,734 - INFO - Creating Command Thread...
+2017-06-02 04:06:34,735 - INFO - Start Command Thread successfully
+2017-06-02 04:06:34,736 - INFO - Creating Canvas data Thread...
+2017-06-02 04:06:34,737 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:07:49,686 - INFO - NEON connected
+2017-06-02 04:07:49,686 - INFO - Creating heartbeat thread
+2017-06-02 04:07:49,687 - INFO - Starting heartbeat thread
+2017-06-02 04:07:49,689 - INFO - Start heartbeat successfully
+2017-06-02 04:07:49,701 - INFO - Creating Command Thread...
+2017-06-02 04:07:49,702 - INFO - Start Command Thread successfully
+2017-06-02 04:07:49,703 - INFO - Creating Canvas data Thread...
+2017-06-02 04:07:49,704 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:08:12,742 - INFO - NEON connected
+2017-06-02 04:08:12,743 - INFO - Creating heartbeat thread
+2017-06-02 04:08:12,744 - INFO - Starting heartbeat thread
+2017-06-02 04:08:12,757 - INFO - Start heartbeat successfully
+2017-06-02 04:08:12,758 - INFO - Creating Command Thread...
+2017-06-02 04:08:12,760 - INFO - Start Command Thread successfully
+2017-06-02 04:08:12,760 - INFO - Creating Canvas data Thread...
+2017-06-02 04:08:12,761 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:13:09,951 - INFO - NEON connected
+2017-06-02 04:13:09,953 - INFO - Creating heartbeat thread
+2017-06-02 04:13:09,953 - INFO - Starting heartbeat thread
+2017-06-02 04:13:09,957 - INFO - Start heartbeat successfully
+2017-06-02 04:13:09,968 - INFO - Creating Command Thread...
+2017-06-02 04:13:09,970 - INFO - Start Command Thread successfully
+2017-06-02 04:13:09,970 - INFO - Creating Canvas data Thread...
+2017-06-02 04:13:09,971 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:14:16,749 - INFO - NEON connected
+2017-06-02 04:14:16,749 - INFO - Creating heartbeat thread
+2017-06-02 04:14:16,750 - INFO - Starting heartbeat thread
+2017-06-02 04:14:16,764 - INFO - Start heartbeat successfully
+2017-06-02 04:14:16,765 - INFO - Creating Command Thread...
+2017-06-02 04:14:16,766 - INFO - Start Command Thread successfully
+2017-06-02 04:14:16,766 - INFO - Creating Canvas data Thread...
+2017-06-02 04:14:16,767 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:16:16,761 - INFO - NEON connected
+2017-06-02 04:16:16,762 - INFO - Creating heartbeat thread
+2017-06-02 04:16:16,762 - INFO - Starting heartbeat thread
+2017-06-02 04:16:16,764 - INFO - Start heartbeat successfully
+2017-06-02 04:16:16,775 - INFO - Creating Command Thread...
+2017-06-02 04:16:16,776 - INFO - Start Command Thread successfully
+2017-06-02 04:16:16,777 - INFO - Creating Canvas data Thread...
+2017-06-02 04:16:16,778 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:18:20,841 - INFO - NEON connected
+2017-06-02 04:18:20,842 - INFO - Creating heartbeat thread
+2017-06-02 04:18:20,842 - INFO - Starting heartbeat thread
+2017-06-02 04:18:20,842 - INFO - Start heartbeat successfully
+2017-06-02 04:18:20,856 - INFO - Creating Command Thread...
+2017-06-02 04:18:20,858 - INFO - Start Command Thread successfully
+2017-06-02 04:18:20,858 - INFO - Creating Canvas data Thread...
+2017-06-02 04:18:20,859 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:21:01,543 - INFO - NEON connected
+2017-06-02 04:21:01,543 - INFO - Creating heartbeat thread
+2017-06-02 04:21:01,544 - INFO - Starting heartbeat thread
+2017-06-02 04:21:01,546 - INFO - Start heartbeat successfully
+2017-06-02 04:21:01,558 - INFO - Creating Command Thread...
+2017-06-02 04:21:01,559 - INFO - Start Command Thread successfully
+2017-06-02 04:21:01,559 - INFO - Creating Canvas data Thread...
+2017-06-02 04:21:01,560 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:21:33,679 - INFO - NEON connected
+2017-06-02 04:21:33,680 - INFO - Creating heartbeat thread
+2017-06-02 04:21:33,680 - INFO - Starting heartbeat thread
+2017-06-02 04:21:33,683 - INFO - Start heartbeat successfully
+2017-06-02 04:21:33,695 - INFO - Creating Command Thread...
+2017-06-02 04:21:33,697 - INFO - Start Command Thread successfully
+2017-06-02 04:21:33,697 - INFO - Creating Canvas data Thread...
+2017-06-02 04:21:33,698 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:29:18,700 - INFO - NEON connected
+2017-06-02 04:29:18,701 - INFO - Creating heartbeat thread
+2017-06-02 04:29:18,701 - INFO - Starting heartbeat thread
+2017-06-02 04:29:18,702 - INFO - Start heartbeat successfully
+2017-06-02 04:29:18,716 - INFO - Creating Command Thread...
+2017-06-02 04:29:18,718 - INFO - Start Command Thread successfully
+2017-06-02 04:29:18,718 - INFO - Creating Canvas data Thread...
+2017-06-02 04:29:18,719 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:30:27,840 - INFO - NEON connected
+2017-06-02 04:30:27,841 - INFO - Creating heartbeat thread
+2017-06-02 04:30:27,841 - INFO - Starting heartbeat thread
+2017-06-02 04:30:27,850 - INFO - Start heartbeat successfully
+2017-06-02 04:30:27,856 - INFO - Creating Command Thread...
+2017-06-02 04:30:27,858 - INFO - Start Command Thread successfully
+2017-06-02 04:30:27,858 - INFO - Creating Canvas data Thread...
+2017-06-02 04:30:27,859 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:31:44,883 - INFO - NEON connected
+2017-06-02 04:31:44,883 - INFO - Creating heartbeat thread
+2017-06-02 04:31:44,884 - INFO - Starting heartbeat thread
+2017-06-02 04:31:44,897 - INFO - Start heartbeat successfully
+2017-06-02 04:31:44,898 - INFO - Creating Command Thread...
+2017-06-02 04:31:44,899 - INFO - Start Command Thread successfully
+2017-06-02 04:31:44,899 - INFO - Creating Canvas data Thread...
+2017-06-02 04:31:44,900 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:32:48,000 - INFO - NEON connected
+2017-06-02 04:32:48,001 - INFO - Creating heartbeat thread
+2017-06-02 04:32:48,001 - INFO - Starting heartbeat thread
+2017-06-02 04:32:48,002 - INFO - Start heartbeat successfully
+2017-06-02 04:32:48,016 - INFO - Creating Command Thread...
+2017-06-02 04:32:48,017 - INFO - Start Command Thread successfully
+2017-06-02 04:32:48,018 - INFO - Creating Canvas data Thread...
+2017-06-02 04:32:48,018 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:35:12,419 - INFO - NEON connected
+2017-06-02 04:35:12,420 - INFO - Creating heartbeat thread
+2017-06-02 04:35:12,420 - INFO - Starting heartbeat thread
+2017-06-02 04:35:12,423 - INFO - Start heartbeat successfully
+2017-06-02 04:35:12,427 - INFO - Creating Command Thread...
+2017-06-02 04:35:12,432 - INFO - Start Command Thread successfully
+2017-06-02 04:35:12,432 - INFO - Creating Canvas data Thread...
+2017-06-02 04:35:12,433 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:36:40,699 - INFO - NEON connected
+2017-06-02 04:36:40,700 - INFO - Creating heartbeat thread
+2017-06-02 04:36:40,701 - INFO - Starting heartbeat thread
+2017-06-02 04:36:40,715 - INFO - Start heartbeat successfully
+2017-06-02 04:36:40,715 - INFO - Creating Command Thread...
+2017-06-02 04:36:40,717 - INFO - Start Command Thread successfully
+2017-06-02 04:36:40,717 - INFO - Creating Canvas data Thread...
+2017-06-02 04:36:40,718 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:38:08,619 - INFO - NEON connected
+2017-06-02 04:38:08,619 - INFO - Creating heartbeat thread
+2017-06-02 04:38:08,620 - INFO - Starting heartbeat thread
+2017-06-02 04:38:08,622 - INFO - Start heartbeat successfully
+2017-06-02 04:38:08,634 - INFO - Creating Command Thread...
+2017-06-02 04:38:08,635 - INFO - Start Command Thread successfully
+2017-06-02 04:38:08,635 - INFO - Creating Canvas data Thread...
+2017-06-02 04:38:08,636 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:38:32,814 - INFO - Empty bank data: 
+2017-06-02 04:38:33,825 - INFO - Empty bank data: 
+2017-06-02 04:38:34,836 - INFO - Empty bank data: 
+2017-06-02 04:38:35,843 - INFO - Empty bank data: 
+2017-06-02 04:38:36,856 - INFO - Empty bank data: 
+2017-06-02 04:38:37,869 - INFO - Empty bank data: 
+2017-06-02 04:38:38,879 - INFO - Empty bank data: 
+2017-06-02 04:38:39,890 - INFO - Empty bank data: 
+2017-06-02 04:38:41,021 - INFO - Empty bank data: 
+2017-06-02 04:38:41,915 - INFO - Empty bank data: 
+2017-06-02 04:40:18,059 - INFO - NEON connected
+2017-06-02 04:40:18,060 - INFO - Creating heartbeat thread
+2017-06-02 04:40:18,061 - INFO - Starting heartbeat thread
+2017-06-02 04:40:18,062 - INFO - Start heartbeat successfully
+2017-06-02 04:40:18,079 - INFO - Creating Command Thread...
+2017-06-02 04:40:18,080 - INFO - Start Command Thread successfully
+2017-06-02 04:40:18,081 - INFO - Creating Canvas data Thread...
+2017-06-02 04:40:18,081 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:50:33,433 - INFO - NEON connected
+2017-06-02 04:50:33,434 - INFO - Creating heartbeat thread
+2017-06-02 04:50:33,435 - INFO - Starting heartbeat thread
+2017-06-02 04:50:33,439 - INFO - Start heartbeat successfully
+2017-06-02 04:50:33,450 - INFO - Creating Command Thread...
+2017-06-02 04:50:33,451 - INFO - Start Command Thread successfully
+2017-06-02 04:50:33,452 - INFO - Creating Canvas data Thread...
+2017-06-02 04:50:33,453 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:50:36,542 - INFO - Empty bank data: 
+2017-06-02 04:51:04,630 - INFO - NEON connected
+2017-06-02 04:51:04,631 - INFO - Creating heartbeat thread
+2017-06-02 04:51:04,632 - INFO - Starting heartbeat thread
+2017-06-02 04:51:04,632 - INFO - Start heartbeat successfully
+2017-06-02 04:51:04,646 - INFO - Creating Command Thread...
+2017-06-02 04:51:04,647 - INFO - Start Command Thread successfully
+2017-06-02 04:51:04,648 - INFO - Creating Canvas data Thread...
+2017-06-02 04:51:04,649 - INFO - Start Canvas Data Thread successfully
+2017-06-02 04:51:07,769 - INFO - Empty bank data: 
+2017-06-02 04:51:08,805 - INFO - Empty bank data: 
+2017-06-02 04:54:36,933 - INFO - NEON connected
+2017-06-02 04:54:36,934 - INFO - Creating heartbeat thread
+2017-06-02 04:54:36,935 - INFO - Starting heartbeat thread
+2017-06-02 04:54:36,935 - INFO - Start heartbeat successfully
+2017-06-02 04:54:36,948 - INFO - Creating Command Thread...
+2017-06-02 04:54:36,949 - INFO - Start Command Thread successfully
+2017-06-02 04:54:36,949 - INFO - Creating Canvas data Thread...
+2017-06-02 04:54:36,950 - INFO - Start Canvas Data Thread successfully
+2017-06-02 05:17:04,506 - INFO - Empty Canvas Data!
+2017-06-02 05:17:04,507 - INFO - Empty Canvas Data!
+2017-06-02 05:17:04,508 - INFO - Empty Canvas Data!
+2017-06-02 05:17:05,465 - INFO - Empty Canvas Data!
+2017-06-02 05:17:05,466 - INFO - Empty Canvas Data!
+2017-06-02 05:17:05,466 - INFO - Empty Canvas Data!
+2017-06-02 05:17:06,487 - INFO - Empty Canvas Data!
+2017-06-02 05:17:06,487 - INFO - Empty Canvas Data!
+2017-06-02 05:17:06,488 - INFO - Empty Canvas Data!
+2017-06-02 05:17:07,514 - INFO - Empty Canvas Data!
+2017-06-02 05:17:07,515 - INFO - Empty Canvas Data!
+2017-06-02 05:17:07,515 - INFO - Empty Canvas Data!
+2017-06-02 05:17:08,547 - INFO - Empty Canvas Data!
+2017-06-02 05:17:08,547 - INFO - Empty Canvas Data!
+2017-06-02 05:17:08,548 - INFO - Empty Canvas Data!
+2017-06-02 05:17:09,577 - INFO - Empty Canvas Data!
+2017-06-02 05:17:09,577 - INFO - Empty Canvas Data!
+2017-06-02 05:17:09,578 - INFO - Empty Canvas Data!
+2017-06-02 05:17:10,637 - INFO - Empty Canvas Data!
+2017-06-02 05:17:10,637 - INFO - Empty Canvas Data!
+2017-06-02 05:17:10,638 - INFO - Empty Canvas Data!
+2017-06-02 05:17:11,671 - INFO - Empty Canvas Data!
+2017-06-02 05:17:11,672 - INFO - Empty Canvas Data!
+2017-06-02 05:17:11,672 - INFO - Empty Canvas Data!
+2017-06-02 05:17:12,697 - INFO - Empty Canvas Data!
+2017-06-02 05:17:12,698 - INFO - Empty Canvas Data!
+2017-06-02 05:17:12,698 - INFO - Empty Canvas Data!
+2017-06-02 05:17:13,715 - INFO - Empty Canvas Data!
+2017-06-02 05:17:13,715 - INFO - Empty Canvas Data!
+2017-06-02 05:17:13,716 - INFO - Empty Canvas Data!
+2017-06-02 05:17:14,762 - INFO - Empty Canvas Data!
+2017-06-02 05:17:14,762 - INFO - Empty Canvas Data!
+2017-06-02 05:17:14,763 - INFO - Empty Canvas Data!
+2017-06-02 05:17:15,792 - INFO - Empty Canvas Data!
+2017-06-02 05:17:15,793 - INFO - Empty Canvas Data!
+2017-06-02 05:17:15,793 - INFO - Empty Canvas Data!
Index: src/main.py
===================================================================
--- src/main.py	(revision 425b8da34597629bbf4d47351b2437c0d1eec4a0)
+++ src/main.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -274,5 +274,5 @@
         self.neutronPath='/GPPD/workspace/neutroncounts'
                 
-        self.dataThread = neonReceiver.dataWorker(parent, gui, self.neonServer, self.protonPath, self.neutronPath, 1.0)
+        self.dataThread = neonReceiver.dataThread(parent, gui, self.neonServer, self.protonPath, self.neutronPath, 1.0)
                 
         logging.info("Start Canvas Data Thread successfully")
@@ -293,4 +293,10 @@
             self.mainSetWidget.upRightTab.experimentPage.updateCanvas(value)            
 
+    @QtCore.pyqtSlot(object)
+    def setMonitorCanvas(self, value):
+        xdata = self.dataThread.getMonitorTOF()
+        self.userWidget.updateMonitorCanvas(xdata,value)
+        
+
 def exit_handler(top):
     top.saveConfigure()
Index: src/model/getNeonData.py
===================================================================
--- src/model/getNeonData.py	(revision 425b8da34597629bbf4d47351b2437c0d1eec4a0)
+++ src/model/getNeonData.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -58,4 +58,5 @@
     finished = QtCore.pyqtSignal()
     signalStatus = QtCore.pyqtSignal(object)
+    signalMonitor = QtCore.pyqtSignal(object)
     signalLog = QtCore.pyqtSignal(str)
 
@@ -69,4 +70,7 @@
         self.kwargs = {}
         self.tabIndex = 0
+        self.monitorTOFPath = '/GPPD/workspace/MantidData/monitor02/tof'
+        self.monitorCountsPath = '/GPPD/workspace/MantidData/monitor02/counts'
+        self.monitorTOF=[]
 
     def pause(self):
@@ -75,11 +79,38 @@
     @QtCore.pyqtSlot()
     def process(self):
+        try:
+            _data = self.neonServer.get(self.monitorTOFPath)
+        except:
+            pass
+        if _data is None:
+            self.signalLog.emit("Empty Monitor Data!")
+        else:
+            try:
+                _data = jsonArray.jsonDecoder(_data)
+                self.monitorTOF=_data
+            except:
+                self.signalLog.emit("Incompleted Monitor data")
 
         while True:
             if not self.started:break 
             try:
+                _data = self.neonServer.get(self.monitorCountsPath)
+            except:
+                pass
+            if _data is None:
+                self.signalLog.emit("Empty Monitor Data!")
+            else:
+                try:
+                    _data = jsonArray.jsonDecoder(_data)
+                    self.signalMonitor.emit(_data)
+                except:
+                    self.signalLog.emit("Incompleted Monitor data")
+
+            try:
                 self.tabIndex = self.kwargs['tabIndex']
             except:
                 pass
+            
+
 
             if self.tabIndex == 1:
@@ -94,6 +125,7 @@
                         #bank_data = cStringIO.StringIO(_data)
                         #_img= Image.open(bank_data)
-                        bank_data=numpy.fromstring(_data, numpy.uint8).reshape(432,288,3)
-                        _img=Image.fromarray(bank_data, "RGB")
+                        #bank_data=numpy.fromstring(_data, numpy.uint8).reshape(1200,750,3)
+                        _data=jsonArray.jsonDecoder(_data)
+                        _img=Image.fromarray(_data, "RGB")
                         self.signalStatus.emit(_img)
                     except:
@@ -128,5 +160,4 @@
                             for j in range(len(self.kwargs[key])): 
                                 _data = self.neonServer.get(self.kwargs[key][j])
-                                print "111", self.kwargs[key][j]
                                 if _data is None:
                                     self.signalLog.emit("Empty Canvas Data!")
@@ -170,4 +201,7 @@
         return self.tabIndex
 
+    def getMonitorTOF(self):
+        return self.monitorTOF
+
 class workerThread(QtCore.QThread):
     def __init__(self, parent):
Index: src/model/neonReceiver.py
===================================================================
--- src/model/neonReceiver.py	(revision 03c9ff563b9ea1208ae06a66e9e7f98bf8b26727)
+++ src/model/neonReceiver.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -59,5 +59,5 @@
             time.sleep(self.refreshtime)
 
-class dataWorker(QtCore.QObject):
+class dataThread(QtCore.QObject):
     def __init__(self, parent,  gui, neonServer=None, protonPath=None, neutronPath=None, pulsePath=None, refreshTime=1.0):
         super(self.__class__, self).__init__()
@@ -73,4 +73,5 @@
         #self.worker.signalDetector.connect(self.gui.setBankCanvas) 
         self.worker.signalStatus.connect(self.gui.setCanvasData) 
+        self.worker.signalMonitor.connect(self.gui.setMonitorCanvas)
         
     def pause(self):
@@ -108,4 +109,7 @@
     def getTabIndex(self):
         return self.worker.getTabIndex()
+
+    def getMonitorTOF(self):
+        return self.worker.getMonitorTOF()
 
 class getProtonData(QtCore.QObject):
Index: src/viewer/canvas.py
===================================================================
--- src/viewer/canvas.py	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/viewer/canvas.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -19,4 +19,5 @@
         height=2,
         dpi=150,
+        plotColor = '',
         title='',
         xlabel='',
@@ -46,5 +47,6 @@
         self.ax.set_ylabel(ylabel, fontsize=5)
 
-        self.PlotTitle = title
+        self.plotColor = plotColor
+        self.title = title
         self.grid_status = True
         self.xaxis_style = 'linear'
@@ -83,5 +85,8 @@
         self.fig.patch.set_alpha(0.0)
         self.ax = self.fig.add_subplot(111, alpha=0.0, aspect=1.5)
+        self.ax.get_xaxis().set_visible(False)
+        self.ax.get_yaxis().set_visible(False)
         self.ax.set_axis_off()
+        self.ax.set_frame_on(False)
         self.fig.subplots_adjust(left=0, bottom=0, right=1,top=1)
 
@@ -94,2 +99,33 @@
 
         self.draw()
+
+class xkcdFigure(FigureCanvasQTAgg):
+
+    def __init__(
+        self,
+        parent=None,
+        width=1,
+        height=1,
+        dpi=150,
+        ):
+
+        self.fig = Figure(
+            (width, height),
+            dpi=150,
+            facecolor='white',
+            edgecolor=None,
+            frameon=False,
+            tight_layout=False,
+            )
+
+        self.ax = self.fig.add_subplot(111)
+        #self.ax.set_axis_off()
+        self.ax.get_xaxis().set_visible(False)
+        self.ax.get_yaxis().set_visible(False)
+        #self.line, =self.ax.plot([], [], color="g")
+
+        FigureCanvasQTAgg.__init__(self, self.fig)
+        FigureCanvasQTAgg.setSizePolicy(self, QtGui.QSizePolicy.Expanding,
+                                   QtGui.QSizePolicy.Expanding)
+
+        FigureCanvasQTAgg.updateGeometry(self)
Index: src/viewer/detector.py
===================================================================
--- src/viewer/detector.py	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/viewer/detector.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -97,6 +97,6 @@
         self.bankCombo.activated.connect(self.bankComboSelected)
 
-        _xsize = 3.2
-        _ysize = 2.0
+        _xsize = 6
+        _ysize = 3
         self.BankCanvas = blankCanvas(
             self,
@@ -220,4 +220,5 @@
     def updateBankCanvas(self, img):
         try:
+            self.BankCanvas.ax.clear()
             self.BankCanvas.ax.imshow(img)
             self.BankCanvas.draw()
Index: src/viewer/experiment.py
===================================================================
--- src/viewer/experiment.py	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/viewer/experiment.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -74,4 +74,5 @@
             _ysize,
             150,
+            'm',
             'Proton Charge',
             'Time /ms',
@@ -88,4 +89,5 @@
             _ysize,
             150,
+            'r',
             'Proton Charge',
             'Time /ms',
@@ -102,4 +104,5 @@
             _ysize,
             150,
+            'c',
             'Proton Charge',
             'Time /ms',
@@ -208,14 +211,7 @@
 
     def updateCanvas(self, value):
-        axisTime = []
-        totalTime = time.time() - self.beginTime
-        print len(value[0][1])
-        tmp = totalTime / len(value[0][0])
-        for i in range(len(value[0][0])):
-            axisTime.append(self.beginTime + tmp*i)
-        
         try:
             self.protonCanvas.ax.clear()
-            self.protonCanvas.ax.plot(axisTime, value[0][0])#, color=self.color)
+            self.protonCanvas.ax.plot(value[0][0], value[0][1], color=self.protonCanvas.plotColor)
             self.protonCanvas.ax.relim()
             self.protonCanvas.ax.autoscale_view()
@@ -226,5 +222,5 @@
         try:
             self.neutronCanvas.ax.clear()
-            self.neutronCanvas.ax.plot(axisTime, value[0][1])#, color=self.color)
+            self.neutronCanvas.ax.plot(value[1][0], value[1][1], color=self.neutronCanvas.plotColor)
             self.neutronCanvas.ax.relim()
             self.neutronCanvas.ax.autoscale_view()
@@ -235,5 +231,5 @@
         try:
             self.pulseCanvas.ax.clear()
-            self.pulseCanvas.ax.plot(value[0][0],value[0][1])#axisTime, value[0])#, color=self.color)
+            self.pulseCanvas.ax.plot(value[2][0], value[2][1], color=self.pulseCanvas.plotColor)
             self.pulseCanvas.ax.relim()
             self.pulseCanvas.ax.autoscale_view()
Index: src/viewer/histogram.py
===================================================================
--- src/viewer/histogram.py	(revision 425b8da34597629bbf4d47351b2437c0d1eec4a0)
+++ src/viewer/histogram.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -64,5 +64,5 @@
                 can = self.patternDock[i].canvas
                 can.ax.clear()
-                can.ax.plot(value[0][i], value[1][i])#, color=self.color)
+                can.ax.plot(value[0][i], value[1][i], color=can.plotColor)
 
                 can.ax.relim()
Index: src/viewer/histogramDock.py
===================================================================
--- src/viewer/histogramDock.py	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/viewer/histogramDock.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -84,4 +84,5 @@
             self.height,
             150,
+            self.plotColor,
             self.title,
             'TOF /mics',
Index: src/viewer/monitor.py
===================================================================
--- src/viewer/monitor.py	(revision 425b8da34597629bbf4d47351b2437c0d1eec4a0)
+++ src/viewer/monitor.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -29,4 +29,5 @@
             0.8,
             1,
+            'y',
             'Accent',
             'Incident Monitor 1',
@@ -39,4 +40,5 @@
             0.8,
             1,
+            'c',
             'Spectral',
             'Incident Monitor 2',
@@ -49,4 +51,5 @@
             0.8,
             1,
+            'm',
             'cool',
             'Transmit Monitor',
@@ -84,12 +87,12 @@
             #for k in range(1024):
             #    cc.append(value[2][i])
-            try:
-                can3D.ax.pcolormesh(value[0][i], value[1][i], value[2][i])#, cmap=self.cmap)
-                can3D.draw()
-            except:
-                pass
+            #try:
+            can3D.ax.pcolormesh(value[0][i], value[1][i], value[2][i], cmap=can3D.plotColor)#, cmap=self.cmap)
+            can3D.draw()
+            #except:
+            #    pass
             try:
                 can2D.ax.clear()
-                can2D.ax.plot(value[3][i], value[4][i])#, color=self.color)
+                can2D.ax.plot(value[3][i], value[4][i], color=can2D.plotColor)#, color=self.color)
                 can2D.ax.relim()
                 can2D.ax.autoscale_view()
Index: src/viewer/monitorDock.py
===================================================================
--- src/viewer/monitorDock.py	(revision 729dba157d57d61582ad8260228e7835e2def109)
+++ src/viewer/monitorDock.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -29,5 +29,6 @@
         height,
         plotScale,
-        plotColor,
+        plotColor2D,
+        plotColor3D,
         title,
         ):
@@ -40,5 +41,6 @@
         self.width = width
         self.height = height
-        self.plotColor = plotColor
+        self.plotColor2D = plotColor2D
+        self.plotColor3D = plotColor3D
         self.plotScale = plotScale
         self.title = title
@@ -75,4 +77,5 @@
             self.height,
             150,
+            self.plotColor3D,
             'Monitor 1',
             'X /mm',
@@ -85,4 +88,5 @@
             self.height,
             150,
+            self.plotColor2D,
             'Monitor 1',
             'TOF',
Index: src/viewer/user.py
===================================================================
--- src/viewer/user.py	(revision 425b8da34597629bbf4d47351b2437c0d1eec4a0)
+++ src/viewer/user.py	(revision b07fe463e14917928ae219b95b0fe467215df24a)
@@ -14,4 +14,7 @@
 from viewer.commandThread import *
 
+from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
+from matplotlib.figure import Figure
+from viewer import canvas
 
 class CSNSUserInfo(QtGui.QWidget):
@@ -107,22 +110,5 @@
 
         with plt.xkcd():
-            self.runFigure = Figure(
-                (1, 1),
-                dpi=150,
-                facecolor='white',
-                edgecolor=None,
-                frameon=False,
-                tight_layout=False,
-                )
-            self.runCanvas = FigureCanvas(self.runFigure)
-            self.runCanvas.setParent(self)
-
-            self.runAxes = self.runFigure.add_subplot(111)
-            self.runFigure.subplots_adjust(left=0.05, bottom=0.05,
-                    right=0.95, top=0.95)
-            self.runAxes.tick_params(axis='both', which='major',
-                    labelsize=6)
-            self.runAxes.get_xaxis().set_visible(False)
-            self.runAxes.get_yaxis().set_visible(False)
+            self.runCanvas=canvas.xkcdFigure(self)
 
         self.expTimeLabel = \
@@ -141,7 +127,4 @@
         self.countsLabel = QtGui.QLabel('Neutron Counts: ')
         self.countsText = QtGui.QLabel('5.2E10 ')
-
-        self.monitorStreaming = CSNSGlobal()
-        self.startMonitor()
 
         _nline = 0
@@ -260,14 +243,14 @@
 
     def setNeonButton(self, value):
-	if value:
-	    self.analyserButton.setText('Disconnect')
-	else:
-	    self.analyserButton.setText('Connect')
+        if value:
+            self.analyserButton.setText('Disconnect')
+        else:
+            self.analyserButton.setText('Connect')
 
     def getNeon(self):
         status=False
-	server=None
-
-	_timeout=10
+        server=None
+
+        _timeout=10
         _ip=self.getIP()
         _port=self.getPort()
@@ -276,8 +259,8 @@
         else:
             _r=neonReceiver.connectNeon(_ip, _port, _timeout)
-	    status=_r.getStatus()
+            status=_r.getStatus()
             server=_r.getServer()
         
-	return status, server
+        return status, server
 
     def connectButtonClicked(self):
@@ -317,47 +300,4 @@
         self.expTimeText.setText(str(_during))
 
-    def startMonitor(self):
-        self.createStreamingThread(self.getSource())
-        self.createPlotThread()
-
-        self.streamingThread.start()
-        self.plotThread.start()
-
-    def createStreamingThread(self, sourceID):
-        global CSNSThreadID
-        CSNSThreadID += 1
-
-        if sourceID == 2:
-            self.streamingThread = diffractionSimulator(
-                CSNSThreadID,
-                3,
-                './dat/gppd.dat',
-                './dat/monitor.dat',
-                1E6,
-                1.0,
-                self.monitorStreaming,
-                )
-        elif sourceID == 0:
-            self.streamingThread = neonReceiver(
-                CSNSThreadID,
-                self.getIP(),
-                self.getPort(),
-                '/BL01/MONITOR01/PATTERN',
-                1.0,
-                self.monitorStreaming,
-                )
-
-        self.streamingThread.setDaemon(True)
-
-    def createPlotThread(self):
-        global CSNSThreadID
-        CSNSThreadID += 1
-
-        self.plotThread = updateStreamingMonitor(CSNSThreadID,
-                self.runCanvas, self.runAxes, 'g',
-                self.monitorStreaming)
-
-        self.plotThread.setDaemon(True)
-
     def getIP(self):
         _host=self.hostTextEdit.toPlainText().split(":")
@@ -367,8 +307,4 @@
         _host=self.hostTextEdit.toPlainText().split(":")
         return int(_host[1])
-
-    def getSource(self):
-        self.sourceID = 2
-        return self.sourceID
 
     def getUserIDText(self):
@@ -411,2 +347,15 @@
     def getCountsText(self):
         return self.countsText
+
+    def updateMonitorCanvas(self, xdata, ydata):
+        try:
+            self.runCanvas.ax.clear()
+            #self.runCanvas.ax.set_xdata(xdata)
+            #self.runCanvas.ax.set_ydata(ydata)
+            self.runCanvas.ax.plot(xdata, ydata, color="g")
+            self.runCanvas.ax.relim()
+            self.runCanvas.ax.autoscale_view()
+            self.runCanvas.draw()
+            self.runCanvas.flush_events()
+        except:
+            pass
