From: Takuo Yasunaga Date: Fri, 23 May 2014 21:21:13 +0000 (+0900) Subject: Initial commit X-Git-Tag: v0.1.0.p000 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c2d410052cc36e21a5fc9d1f75b8672229c79164;p=vem%2FWITs.git Initial commit Changes to be committed: new file: CSS/* new file: File/log.txt new file: JS/* new file: cgi-bin/* new file: images/* download.gif new file: vem.html new file: vemserver.rb --- c2d410052cc36e21a5fc9d1f75b8672229c79164 diff --git a/CSS/icon/TEM1icon.png b/CSS/icon/TEM1icon.png new file mode 100755 index 0000000..15c19a0 Binary files /dev/null and b/CSS/icon/TEM1icon.png differ diff --git a/CSS/icon/TEM2icon.png b/CSS/icon/TEM2icon.png new file mode 100755 index 0000000..a309b72 Binary files /dev/null and b/CSS/icon/TEM2icon.png differ diff --git a/CSS/icon/TEM3icon.png b/CSS/icon/TEM3icon.png new file mode 100755 index 0000000..7682343 Binary files /dev/null and b/CSS/icon/TEM3icon.png differ diff --git a/CSS/vemclient.css b/CSS/vemclient.css new file mode 100755 index 0000000..becc73b --- /dev/null +++ b/CSS/vemclient.css @@ -0,0 +1,65 @@ +body{ + background-color:#F5FFFA; + margin-left:auto; + margin-right:auto; + text-align:center; + width:90%; +} + +#HITACHI { + border:0px; + height:141px; + width:300px; + background:url(icon/TEM1icon.png) left top no-repeat; +} + +#FEI { + border:0px; + height:141px; + width:300px; + background:url(icon/TEM2icon.png) left top no-repeat; +} + +#JEOL { + border:0px; + height:141px; + width:300px; + background:url(icon/TEM3icon.png) left top no-repeat; +} + +#container{ + width:1000px; + margin-left:auto; + margin-right:auto; + +} + +#leftside{ + width:580px; + float:left; + margin: 10px; +} + +#rightside{ + width:380px; + float:left; + margin: 10px; +} + +div#left{ + float:left; + position:absolute; + left:100px; +} +div#right{ + position:relative; + left:80px; +} +.clearRight{ + clear:left; +} +.box{ + position:absolute; + text-align:left; + left:60px; +} diff --git a/File/log.txt b/File/log.txt new file mode 100755 index 0000000..9bca002 --- /dev/null +++ b/File/log.txt @@ -0,0 +1,165 @@ +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Accepted! +Connect HITACHI +Connect FEI +Connect HITACHI +Connect FEI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect JEOL +Connect FEI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect FEI +Connect HITACHI +Connect FEI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect FEI +Connect FEI +Connect JEOL +Connect HITACHI +Connect FEI +Connect JEOL +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect FEI +Connect FEI +Connect FEI +Connect FEI +Connect FEI +Connect FEI +Connect FEI +Connect JEOL +Connect JEOL +Connect JEOL +Connect JEOL +Connect JEOL +Connect JEOL +Connect JEOL +Connect FEI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect FEI +Connect JEOL +Connect JEOL +Connect JEOL +Connect JEOL +Connect HITACHI +Connect FEI +Connect JEOL +Connect JEOL +Connect FEI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect JEOL +Connect JEOL +Connect JEOL +Connect HITACHI +Connect FEI +Connect JEOL +Connect HITACHI +Connect FEI +Connect JEOL +Connect HITACHI +Connect FEI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect HITACHI +Connect FEI +Connect JEOL +Connect JEOL +Connect JEOL +Connect HITACHI +Connect HITACHI +Connect FEI +Connect FEI +Connect JEOL diff --git a/JS/TemControl.js b/JS/TemControl.js new file mode 100755 index 0000000..3f61145 --- /dev/null +++ b/JS/TemControl.js @@ -0,0 +1,49 @@ +function TemControl(command,parameter){ + + var ajax = getAjax(); + + if(command == "Connect"){ + var result = document.getElementById("connection"); + }else{ + var result = document.getElementById("result"); + } + + if(ajax){ + try{ + ajax.onreadystatechange = getData; + }catch(e){ + result.innerHTML = "onreadystate change error"; + } + + try{ + ajax.open("GET","//localhost:8000/cgi-bin/vemclient.rb?command="+encodeURIComponent(command)+"¶meter="+encodeURIComponent(parameter),true); + }catch(e){ + result.innerHTML = "ajax open error"; + } + + try{ + ajax.send(null); + }catch(e){ + result.innerHTML = "send error"; + } + }else{ + result.innerHTML = "you cannot use ajax..."; + } + + function getData(){ + if(ajax.readyState == 4){ + if(ajax.status == 200){ + result.innerHTML = ajax.responseText; + if(ajax.responseText.match(/Control/i)){ + a = ajax.responseText.split(" "); + alert(a[1]+a[2]); + } + }else{ + result.innerHTML = "HTTP error"; + } + }else{ + result.innerHTML = "HTTP Transmission..."; + } + } + +} diff --git a/JS/ajax.js b/JS/ajax.js new file mode 100755 index 0000000..0843b4f --- /dev/null +++ b/JS/ajax.js @@ -0,0 +1,17 @@ +function getAjax(){ + var ajax = null; + try{ + ajax = new XMLHttpRequest(); + }catch(e){ + try{ + ajax = new ActiveXObject("Msxml2.XMLHTTP"); + }catch(e){ + try{ + ajax = new ActiveXObject("Microsoft.XMLHTTP"); + }catch(e){ + alert("Not Init"); + } + } + } + return ajax; +} diff --git a/JS/filecontrol.js b/JS/filecontrol.js new file mode 100755 index 0000000..fa62f37 --- /dev/null +++ b/JS/filecontrol.js @@ -0,0 +1,101 @@ +function fileListDialog(files){ + var name = new Array(); + var urn = new Array(); + var type = new Array(); + var size = new Array(); + var latest = new Array(); + + + i=0 + name[i] = files[i].name; + urn[i] = files[i].urn; + type[i] = files[i].type; + size[i] = files[i].size; + latest[i] = files[i].lastModifiedDate; + + //display file status + var output = "
The number of files is "+files.length+"

"; + output+="Name:"+name[i]+"
"+"URN:"+urn[i]+"
"+"Type:"+type[i]+"
"+"Size:"+size[i]+"
"+"Date:"+latest[i]+"

" + document.getElementById("filestatus").innerHTML = output; + + document.getElementById("filecontent").innerHTML = ""; + //get file contents + fileread(files,"filecontent","file"); + +} + +function fileread(blob,place,variable){ + var f = blob[i]; + var reader = new FileReader(); + + if(f.type.match("text.*")){ + reader.onload = function(e){ + document.getElementById(place).innerHTML = reader.result; + document.getElementById(variable).value = reader.result; + document.getElementById("flag").value = "text"; + } + reader.readAsText(f,"utf-8"); + } + + if(f.type.match("image.*")){ + reader.onload = function(e){ + var img = document.createElement("img"); + img.src = reader.result; + document.getElementById(place).appendChild(img); + document.getElementById(variable).value = reader.result; + document.getElementById("flag").value = "image"; + } + reader.readAsDataURL(f); + } + +} + + +function onDrop(event){ + var files = event.dataTransfer.files; + var disp = document.getElementById("disp"); + disp.innerHTML = ""; + + for(i=0;idownload_link'; + }else{ + result.innerHTML = "HTTP error!"; + } + }else{ + result.innerHTML = "HTTP Transmission!"; + } + } + +} + diff --git a/cgi-bin/activetem.rb b/cgi-bin/activetem.rb new file mode 100755 index 0000000..0f652a7 --- /dev/null +++ b/cgi-bin/activetem.rb @@ -0,0 +1,2 @@ +$activehost = '192.168.4.114' +$activeport = '33333' diff --git a/cgi-bin/implementation.rb b/cgi-bin/implementation.rb new file mode 100755 index 0000000..be9b16c --- /dev/null +++ b/cgi-bin/implementation.rb @@ -0,0 +1,19 @@ +#!/usr/bin/ruby + +$tem = Hash.new{|h,k| h[k]=Hash.new(&h.default_proc)} + +$tem = { + 'HITACHI' => { + 'host' => '192.168.4.114', + 'port' => '11111' + }, + 'FEI' => { + 'host' => '192.168.4.114', + 'port' => '22222' + }, + 'JEOL' => { + 'host' => '192.168.4.114', + 'port' => '33333' + } +} + diff --git a/cgi-bin/settem.rb b/cgi-bin/settem.rb new file mode 100755 index 0000000..41dccef --- /dev/null +++ b/cgi-bin/settem.rb @@ -0,0 +1,41 @@ +#!/usr/bin/ruby + +require "socket" +require "./cgi-bin/implementation" +require "./cgi-bin/activetem" + +class SetTem + + def initialize(activetem) + @@tem = activetem + #get TEM_Instrument info + @@host = $tem["#{activetem}"]["host"] + @@port = $tem["#{activetem}"]["port"] + + #set TEM_instrument info + tem = File.open("./cgi-bin/activetem.rb","w") + tem.write "$activehost = '#{@@host}'\n$activeport = '#{@@port}'\n" + + tem.close + + end + + def connect + + log = File.open("./File/log.txt","a") + socket = TCPSocket.open($activehost,$activeport) + socket.puts "Connect:#{@@tem}" + socket.flush + + output = socket.gets + log.write output + + log.close + socket.close + + return output + + end + +end + diff --git a/cgi-bin/vemclient.rb b/cgi-bin/vemclient.rb new file mode 100755 index 0000000..0abff7d --- /dev/null +++ b/cgi-bin/vemclient.rb @@ -0,0 +1,62 @@ +#!/usr/bin/ruby + +require "cgi" +require "socket" +require "./cgi-bin/settem" +require "./cgi-bin/activetem" +require "systemu" + +cgi = CGI.new + +command = cgi['command'] +command = CGI.unescapeHTML(command) + +parameter = cgi['parameter'] +parameter = CGI.unescapeHTML(parameter) + +case command + +when "Connect" then + temset = SetTem.new(parameter) + result = temset.connect + +when "StageSet", "MagnificationSet", "ImageShift" then + socket = TCPSocket.open($activehost,$activeport) + socket.puts parameter + + result = socket.gets.chomp + if result == "Accepted!" then + tiff2gif = "source Eos/env/Eos_env;tiff2mrc -i images/download.tif -o images/download.mrc;mrc2gif -i images/download.mrc -o images/download.gif" + systemu tiff2gif + end + + result = "
" + + +#when something then + #do_something + # + # +when "Control" then + socket = TCPSocket.open($activehost,$activeport) + socket.puts "Control:#{parameter}" + + result = socket.gets + +when "TakePhoto" then + filename = parameter.split(":") + tiff2gif = "source Eos/env/Eos_env;tiff2mrc -i images/#{filename[0]}.tif -o images/#{filename[0]}.mrc;mrc2gif -i images/#{filename[0]}.mrc -o images/#{filename[1]}.gif" + systemu tiff2gif + + result = "
" + +else + #do_something_other +end + + +#return ajax-engine::create HTML code +puts "Content-type: text/html\n\n" +puts "" + +puts result diff --git a/images/download.gif b/images/download.gif new file mode 100755 index 0000000..a6513d5 Binary files /dev/null and b/images/download.gif differ diff --git a/images/download.mrc b/images/download.mrc new file mode 100755 index 0000000..b610f56 Binary files /dev/null and b/images/download.mrc differ diff --git a/images/download.tif b/images/download.tif new file mode 100755 index 0000000..cb1fb11 Binary files /dev/null and b/images/download.tif differ diff --git a/images/leaf.gif b/images/leaf.gif new file mode 100755 index 0000000..eb9e7f4 Binary files /dev/null and b/images/leaf.gif differ diff --git a/images/leaf.mrc b/images/leaf.mrc new file mode 100755 index 0000000..af0aa64 Binary files /dev/null and b/images/leaf.mrc differ diff --git a/images/leaf.tif b/images/leaf.tif new file mode 100755 index 0000000..92ffc4a Binary files /dev/null and b/images/leaf.tif differ diff --git a/images/test.gif b/images/test.gif new file mode 100755 index 0000000..a6513d5 Binary files /dev/null and b/images/test.gif differ diff --git a/images/test.mrc b/images/test.mrc new file mode 100755 index 0000000..b610f56 Binary files /dev/null and b/images/test.mrc differ diff --git a/images/test.tif b/images/test.tif new file mode 100755 index 0000000..cb1fb11 Binary files /dev/null and b/images/test.tif differ diff --git a/vem.html b/vem.html new file mode 100755 index 0000000..4725b53 --- /dev/null +++ b/vem.html @@ -0,0 +1,87 @@ + + + + + VEM Control Interface + + + + + + + + + Virtual Electron Microscope Client + +
+ + + + +
+
+
+ +
+ + +
+ +
+ +

The EM Image

+
The EM-Image from instrument.
+ +
+ + +
+ + +
+ +
+
+

Input +
+ Output +

+
+
+ +

+

+ +
+
+

Mode +
+ DL +

+
+
+ +

+

+ +
+ +
+
+ +
+ +

TEM Control Command

+
The EM-control commandset.
+ +
+ +
+ + + diff --git a/vemserver.rb b/vemserver.rb new file mode 100755 index 0000000..c308ed3 --- /dev/null +++ b/vemserver.rb @@ -0,0 +1,35 @@ +#!/usr/bin/ruby + +require "socket" +require "thread" + +class FEIControlServer + @@flag = true + + def initialize() + @server = TCPServer.open("192.168.4.114",11111) + puts @server.to_s + end + + def listener + while @@flag + Thread.start(@server.accept){|socket| + begin + line = socket.gets.chomp + puts line + socket.puts "Accepted!" + + + ensure + socket.close + + end + } + end + end + +end + +fei = FEIControlServer.new +fei.listener +