209 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			209 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
import win.ui;
 | 
						|
import win.inputBox;
 | 
						|
import win.ui.menu;
 | 
						|
import win.util.tray;
 | 
						|
import win.ui.atom;
 | 
						|
import win.timer;
 | 
						|
import console;
 | 
						|
import win.timer;
 | 
						|
import fsys;
 | 
						|
import web.multipartFormData;
 | 
						|
import inet.http;
 | 
						|
import fsys.config;
 | 
						|
/*DSG{{*/
 | 
						|
mainForm = win.form(text="数据采集";right=799;bottom=399;border="dialog frame";max=false)
 | 
						|
mainForm.add(
 | 
						|
add={cls="button";text="新建";left=27;top=130;right=98;bottom=154;font=LOGFONT(h=-14;name='微软雅黑');z=6};
 | 
						|
backupPath={cls="edit";left=107;top=58;right=337;bottom=84;edge=1;font=LOGFONT(h=-14;name='微软雅黑');z=11};
 | 
						|
backupPathLabel={cls="static";text="备份文件夹";left=31;top=60;right=118;bottom=81;font=LOGFONT(h=-14;name='微软雅黑');notify=1;transparent=1;z=10};
 | 
						|
groupbox={cls="groupbox";text="采集内容";left=18;top=110;right=346;bottom=390;edge=1;z=5};
 | 
						|
groupbox2={cls="groupbox";text="采集日志";left=353;top=7;right=792;bottom=390;ah=1;aw=1;db=1;dr=1;edge=1;z=1};
 | 
						|
groupbox3={cls="groupbox";text="基础配置";left=18;top=7;right=346;bottom=102;edge=1;z=2};
 | 
						|
listbox={cls="listbox";left=360;top=24;right=785;bottom=387;edge=1;hscroll=1;items={};vscroll=1;z=12};
 | 
						|
listview={cls="listview";left=27;top=161;right=337;bottom=384;edge=1;fullRow=1;items={};msel=false;z=7};
 | 
						|
serverUrl={cls="edit";left=107;top=25;right=337;bottom=51;edge=1;font=LOGFONT(h=-14;name='微软雅黑');z=4};
 | 
						|
serverUrlLabel={cls="static";text="服务器地址";left=31;top=28;right=118;bottom=49;font=LOGFONT(h=-14;name='微软雅黑');notify=1;transparent=1;z=3};
 | 
						|
start={cls="button";text="开始采集";left=266;top=130;right=337;bottom=154;font=LOGFONT(h=-14;name='微软雅黑');z=8};
 | 
						|
statusLabel={cls="static";left=143;top=130;right=221;bottom=154;align="center";color=32768;font=LOGFONT(h=-16;name='微软雅黑';weight=700);transparent=1;z=9}
 | 
						|
)
 | 
						|
/*}}*/
 | 
						|
 | 
						|
/*
 | 
						|
inputbox = win.inputBox(mainForm.hwnd)
 | 
						|
inputbox.text = "输入框标题"
 | 
						|
inputbox.info.text = "请在下面输入您的名字"
 | 
						|
inputbox.input.text = "在这里输入您的名字"
 | 
						|
name = inputbox.doModal();
 | 
						|
	
 | 
						|
if(name)
 | 
						|
	win.msgbox("您的名字是:"+name )
 | 
						|
else 
 | 
						|
	win.msgbox("你拒绝输入名字")
 | 
						|
*/
 | 
						|
mainForm.listview.adjust = function(cx,cy){
 | 
						|
    mainForm.listview.fillParent(/*列序号*/);
 | 
						|
} 
 | 
						|
 
 | 
						|
mainForm.listview.insertColumn("设备编号",100,,0x0/*_LVCFMT_LEFT*/) 
 | 
						|
mainForm.listview.insertColumn("文件夹地址",100,,0x0/*_LVCFMT_LEFT*/) //第二列开始可以使用_LVCFMT_CENTER居中
 | 
						|
 | 
						|
config = fsys.config("/config/")
 | 
						|
mainForm.bindConfig( config.winform,{
 | 
						|
	serverUrl = "text";
 | 
						|
	backupPath = "text";
 | 
						|
	listview = "items";	
 | 
						|
} );
 | 
						|
if(mainForm.serverUrl.text==""){
 | 
						|
	mainForm.serverUrl.text='http://127.0.0.1:8000'
 | 
						|
}
 | 
						|
if(mainForm.backupPath.text==""){
 | 
						|
	mainForm.backupPath.text="D:\Daq\Backup"
 | 
						|
}
 | 
						|
/*
 | 
						|
if(table.count(mainForm.listview.items)==0){
 | 
						|
	mainForm.listview.items = {{"JN102";"D:\tmp"}};
 | 
						|
}
 | 
						|
*/
 | 
						|
 | 
						|
var isWorking = false;
 | 
						|
var atom,hwnd/*冲突窗口的句柄,该函数会自动激活此窗口*/ = mainForm.atom("33D501DF-BFC2-4283-8BBE-AF17AADB1C27");
 | 
						|
if(!atom){
 | 
						|
	/*为窗口设置原子值可以避免一个程序重复运行多个实例*/
 | 
						|
	win.quitMessage();	return;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
mainForm.onMinimize = function(lParam){
 | 
						|
	var tray = win.util.tray(mainForm) //创建托盘图标 
 | 
						|
	tray.tip = "数据采集";
 | 
						|
	tray.pop("数据采集已最小化运行" )
 | 
						|
	mainForm.show(false); //隐藏窗口
 | 
						|
	return true;//阻击默认消息传递,取消最小化过程
 | 
						|
}
 | 
						|
mainForm.wndproc = {
 | 
						|
	[0xACCF/*_WM_TRAYMESSAGE*/ ] = function(hwnd,message,wParam,lParam){
 | 
						|
		if( lParam = 0x205/*_WM_RBUTTONUP*/ ){ 
 | 
						|
	    	var pt = ::POINT();
 | 
						|
			::User32.GetCursorPos(pt);
 | 
						|
	    	//弹出托盘菜单以前,一定要前置主窗口中,不然不点击菜单不会消失
 | 
						|
	    	win.setForeground(mainForm.hwnd)
 | 
						|
	    	mainForm.popmenu.popup(pt.x,pt.y,true )
 | 
						|
	    }elseif(lParam = 0x203/*_WM_LBUTTONDBLCLK*/){
 | 
						|
	    	mainForm.show()
 | 
						|
	    }
 | 
						|
	    
 | 
						|
	   
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
mainForm.popmenu = win.ui.popmenu(mainForm);//创建弹出菜单
 | 
						|
mainForm.popmenu.add('&打开',function(id){
 | 
						|
	//在下面输入菜单响应代码
 | 
						|
	mainForm.show()
 | 
						|
});
 | 
						|
mainForm.popmenu.add();//分隔线
 | 
						|
mainForm.popmenu.add('&退出',function(id){ mainForm.close() })
 | 
						|
 | 
						|
mainForm.start.oncommand = function(id,event){
 | 
						|
	toggleWorking();
 | 
						|
	
 | 
						|
}
 | 
						|
var timer = win.timer( mainForm );
 | 
						|
timer.setInterval(5000)
 | 
						|
function toggleWorking(){
 | 
						|
	if(isWorking == false){
 | 
						|
		mainForm.serverUrl.disabled = true
 | 
						|
		mainForm.backupPath.disabled = true
 | 
						|
		mainForm.add.disabled = true
 | 
						|
		mainForm.statusLabel.text="采集中..."
 | 
						|
		mainForm.start.text="停止采集"
 | 
						|
		isWorking = true
 | 
						|
		timer.enable()
 | 
						|
	}else{
 | 
						|
		mainForm.serverUrl.disabled = false
 | 
						|
		mainForm.backupPath.disabled = false
 | 
						|
		mainForm.add.disabled = false
 | 
						|
		mainForm.statusLabel.text=""
 | 
						|
		mainForm.start.text="开始采集"
 | 
						|
		isWorking=false
 | 
						|
		timer.disable()
 | 
						|
	}
 | 
						|
}
 | 
						|
if(mainForm.serverUrl && table.count(mainForm.listview.items)>0){
 | 
						|
toggleWorking();
 | 
						|
}
 | 
						|
 | 
						|
timer.onTimer = function(hwnd,msg,id,tick){
 | 
						|
	for itemIndex in mainForm.listview.each(){
 | 
						|
		var number, dir = mainForm.listview.items[itemIndex][1], mainForm.listview.items[itemIndex][2]
 | 
						|
		//批量处理文件
 | 
						|
		fsys.enum( dir, //指定要遍历的目录
 | 
						|
			"*.*", //指定查询文件名,支持windows掩码
 | 
						|
			function(dir,filename,fullpath,findData){ //指定触发器
 | 
						|
				if(filename){ 
 | 
						|
					mainForm.listbox.add(tostring(time.now(),"%Y-%m-%d %H:%M:%S","chs") + ":新文件-"+filename, -1)
 | 
						|
					mainForm.listbox.add("正在上传并解析...")
 | 
						|
					var webData = web.multipartFormData();
 | 
						|
					webData.add("equip_num", number)
 | 
						|
					webData.add("file", "@"+fullpath)
 | 
						|
					webData.contentHeader()
 | 
						|
					var http = inet.http(); 
 | 
						|
					/*
 | 
						|
http.beginRequest( mainForm.serverUrl.text + "/api/em/daq/", "POST" );
 | 
						|
					//小数据一次性上传
 | 
						|
					http.beginSendData(webData.size());
 | 
						|
					http.writeData(webData.readAll())
 | 
						|
					http.endSendData();
 | 
						|
*/
 | 
						|
					var html,err,errCode = http.post( mainForm.serverUrl.text + "/api/em/daq/",webData.readAll(),webData.contentHeader());
 | 
						|
					if(html){
 | 
						|
						var res = web.json.parse(html)
 | 
						|
						if(res['code']==200){
 | 
						|
							import fsys
 | 
						|
							var theDir = fsys.createDir(mainForm.backupPath.text+"\\"+number, false)
 | 
						|
							fsys.move(fullpath, theDir) //移动到备份文件库
 | 
						|
							mainForm.listbox.add("采集成功!")
 | 
						|
						}else{
 | 
						|
							mainForm.listbox.add("失败:"+res['msg'])
 | 
						|
						}
 | 
						|
					}else{
 | 
						|
						mainForm.listbox.add("失败:请求错误")
 | 
						|
					}
 | 
						|
					
 | 
						|
 | 
						|
 | 
						|
				}
 | 
						|
			}, false
 | 
						|
		  ); 
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
mainForm.listview.onnotify = function(id,code,ptr){ 
 | 
						|
    
 | 
						|
    select(code) {
 | 
						|
    	case 0xFFFFFFFB/*_NM_RCLICK*/  {
 | 
						|
    		var x,y = win.getCursorPos();
 | 
						|
    		var popmenu = win.ui.popmenu(mainForm);//创建弹出菜单
 | 
						|
			popmenu.add('删除',function(id){
 | 
						|
				//在下面输入菜单响应代码
 | 
						|
				mainForm.listview.delItem( mainForm.listview.selIndex )
 | 
						|
			});
 | 
						|
    		popmenu.popup(x,y,true);//弹出菜单
 | 
						|
    	}
 | 
						|
    }
 | 
						|
    
 | 
						|
}
 | 
						|
 | 
						|
mainForm.add.oncommand = function(id,event){
 | 
						|
	
 | 
						|
var frmChild = mainForm.loadForm("\\dlg\\add.aardio");
 | 
						|
frmChild.doModal();
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
mainForm.show();
 | 
						|
return win.loopMessage(); |