20200910
ʵʱݽն˿ʼʱԼʱֶ
ִгз

20200812
1½һļУ磺EHS-CS-Monitor-20200812
2ļ̵ 04_Resourcebinļֱӿļ
3ļ ..\bin\Debug\AHL-IoT.exe
4ļڵ ..\04_Resource\DataBase\AHL-IoT.mdf Ϊݿļ
         ʷҲڸݿڣΪ Up-ڣÿ10콨һ±








200110޸runningtimeݿԼHistoryԶ-
191212ÿ-
191028˲ѯMailPhonewebsocketԼͣPhone͵flag
191026ɾMailPhonewebsocket
191024StateжϵʱתFrmRealtimeData,ҽʼĹӵStateж
191023saferunning timeķʱ
191021historygatewaytargetnodeϢ
191016ʵʱݳ24Сʱɾ
191012޸historyȡʽ
191010-2command:dropdownlistperdaywarning
191010-1ʱֶΣýյʱдݿUpcurrentTimeֶ
191009ʵʱݳ5500ɾ5000
200509޸ʼ͹
200510ɾʷݵĹ
20200516쳣ݽ˲ҳֵ2ʱ֡,ӱ־λ     isDataOkFlag
20200516껣ʼϢ
20200518ʼϢģԭʾŴֵΪʵֵ
20200518ӱգӱinTheCyc,ȷݽforѭ

20200519WYH,FrmRealtimeData.csжͲӳ򣬲ԲͬӦŻṹ

20200523WYH,FrmRealtimeData.cs,ֹPHֵγϵ
20200524WYHݹnode2ĵѹֵ
20200527עIoT_recv¼֮ǰȽ¼עһ
20200527ǰжǷ쳣
20200529WYH,ʾ汾8.1ʾʱ䣺29/05/2020
20200608賿1㶨ʱ
20200608safe runningtimeΪʱ24СʱƣʾʽΪHH:MM:SS
20200811˻.xmlݿλ
20200812AHL CS-Monitor V9.02020.08.12
20200812±Upڣգ׺


«CS-Monitorû)
հ汾ʱ䡿V1.0201812
readme¡ 20190509
1̼
        ƷϵCS-MonitorUEݣڿͻ˳򣨰PCͻˡWebҳ
΢СAPPȣCS-MonitorUEHCI֮乵ͨNB-IoTӦϵͳɻȱһṩ¹ܣ
    1.ʾյݣ
    2.ݻطնˣ
    3.ɾݿ⣻
    4.΢СAPPҳȿͻתնʵʱݣ
    5.΢СAPPҳȿͻṩʷݷʽӿڡ

    ̿TCP˿Ϊ26123websocketʹ38867ʷʽΪ"ws://suda-mcu.com:38867/wsServices"
    ڲnginxҲֱʹwssʷʽwss://suda-mcu.com/wsServices
    nginxĽܣխNB-IoTӦÿԼ¼C.2Nginxָϡ

2̽ṹ
̷ΪĸļкһЩ˵ļ
   1ĵļУ01_Doc
   ļд readme˵ĵĵ¼ݰ̹ܽܡ̿˵͹̸˵Ϣ
   2ļУ02_Class
   ļдŹͨõĹԼ̬ļ
   3ļУ03_Form
   ļзΪĸļУֱŸܴĽԼƴ롣
   4ԴļУ04_Resource
   ļдŸļдŰĵԴʹ˵˵Ͱ汾˵
   5ûɸԴļAHL.xml
   ûɸԴļAHL.xmlû趨ĲʼʱҪ趨ȡԳʼȫֱ
   6ӦóļApp.config
   ݿַconnectionStringvalueݾCS-Monitorݿʷʽļṩ˾
··ԼSQL Server StudioغԶݿʷʽÿֻʹһַʽ෽ʽע͵
ǰʹݿʷʽΪ·ʷʽ

   ̽ṹϸݲμխNB-IoTӦÿԼ6.4.1 CS-Monitorģ幤̿
   ִ̲μխNB-IoTӦÿԼ6.4.2 CS-MonitorģԶִ
   «ưʱԹ̸ĵĲֺͷμխNB-IoTӦÿԼCS-Monitorġպ«ư

3ݿṹ
     ͨApp.configļҵݿλúơ
     ݿAHL-IoT3űֱǣ豸ϢDeviceݱUpݱDownÿűĹʾ
    1.豸ϢDeviceñ洢ն豸Ϣһ豸Ӧһ¼ֻϢļ¼
        Ҫ¼洢flashе豸صϢ
    2.ݱUp洢еݣɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
	    õֶΡ
    3.ݱDown洢еݡɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
	    õֶΡ

4websocketӿͨݸʽ
   WebSocketڿ󽫱ֶWebSocketͻݵļпͻݻWebSocket˵
OnMessage¼ڸ¼ִклᴦͻ˵ݡͻӦһݣ˻ͻ˻
ݵݰͻOnMessage¼нûȡݰӦãͻ˷޸ĹĻطݣ
˻ὫתݶӦնˡ

    CS-MonitorӦJSONݸʽ
    ʽ1command,stringͣ+sourceͷ,stringͣ+password,stringͣ+value,stringͣ
    ʽ2command,stringͣ+sourceͷ,stringͣ+dest(շ,string)+password,stringͣ+
               currentRow(ǰ֡,int)+totalRows(֡,int) +data(ݣList<FrameData.ParameterInfo>)

    ݸʽ1ͨڷʵʱݵ֪ͨͻʷݣʴ˸ʽҪݣԲdataֶΣ
    ݸʽ2ͨڷ˷ʵʱ/ʷݻͻ˻طʵʱ/ʷݣʰdataֶʵʱʷݡ

    ͨŸʽ˵ͨϸ̣οխNB-IoTӦÿԼ6.4.3 WebSocketͻ˵ͨš

------------------------------------------------------------------------------------------------------------------
ݴѧǶʽϵͳо





«CS-Monitorû)
汾ʱ䡿V1.020178
汾¼ϸ˵5˵
˻	20180120	V2.0޸ġreadme.txtļ
	20180623	V3.0ֻվλĹ
	20180623	V3.1նUEĽ
	20180704	V4.0Żݿṹ
	20180808	V4.1websocketͨݸʽΪJson
	20180814	V4.2˲ѯʷݺͻط
־	20180920	V6.5ͨųɹʲԽ棨UEն˺CS-Clientʵʱʾ
	20181005	V6.6Żʵʱʾ棬Ӱѡ
־	20181010	V6.6޸ġreadme.txtļ;ʱرͨųɹʲԹܣ˹ܴƣ
С  20181017    V6.6DrawSeries.cs࣬Ϻʵʱ߽
־  20181031    V6.6ݿʷʽΪʱ·ݿ⣻AHL.xmlļС2.2WebSocketַ˿ںͶĿ¼ñ
־	20181111	V6.7޸ġreadme.txtļ
־	20181217    V6.8ɾݿcommandattributeʹ

1̼
    Ϊڷϵ򣬸նUE͵ݲݴݿ⡣ͬʱṩ¹ܣ
    1ʾյݣ
	2ݻطնˣ
	3ɾݿ⣻
	4΢СAPPҳȿͻתնʵʱݣ
	5΢СAPPҳȿͻṩʷݷʽӿڡ

    ̿TCP˿Ϊ26123websocketʹ38867ʷʽΪ"ws://suda-mcu.com:38867/wsServices"
    ڲnginxҲֱʹwssʷʽwss://suda-mcu.com/wsServices
    nginxĽܣnginxļеreadme.txt

2̽ṹ
̷ΪĸļкһЩ˵ļ
    01_Doc˵ĵ
        readme˵ĵ
    02_Classͨõ࣬
	    DrawChartͼ࣬                 Ϊʷߵʾдࣩ
		FrameData֡                 ֡ݲֽдࣩ
        HCICom   ͨ࣬                 ṩࣩͨ
		JsonCommandJsonݸʽ          (ṩJsonݶ󷽷)
		Paintʵʱ               Ϊʵʱߵʾдࣩ
        SQLCommandݿ࣬           (ṩݿɾĲȹܵ)
		WsServiceswebsocket࣬       ΢СAPPҳṩwebsocketࣩ
		websocket.dllṩwebsocketܵĶ̬
    03_FormŽ棬ԼӦó򣬰
        03_00_FrmMain
		    FrmMain.cs          ()രĸ壬ɵ˵രṩ״̬ʾ
	    03_01_FrmDeviceConfig
		    FrmDeviceConfig.cs  (ô)ɻȡʵʱݣ޸ȫݺ󷵻Ը豸á
		03_02_FrmRealtime
		    FrmRealtimeData.cs  (ʵʱݴ)ʾʵʱݣ޸ɫıݺ󷵻Ը豸á
			FrmRealtimeSeries.cs(ʵʱߴ)ʽʾʵʱݵĲСʱڵı仯ơ
		03_03_FrmHistory
		    FrmHistoryData.cs   (ʷݴ)ṩʷݲѯɾܣ޸ʷݲлط
			FrmHistorySeries.cs (ʷߴ)ѡĳһʱεʷʽʾʾݰеĲֲ
   04_ResourceⲿԴļ
         help.chm:ĵ
   	    
   ûɸԴļAHL.xmlļݰ
     1Ҫ޸ġͰ汾
     2Ҫ޸ġָӵķʽĿַ
     3Ҫ޸ġָIMSIţֺš;(עķֺţԻ
     4Ҫ޸ġͨ֡ṹעMCU˵֡ṹһ£֡еıڡ4й
       4.1MCUϢ֡<name> <type>ʾ<otherName>д <wr>
       4.2ͨűرıɾ
       4.2ư1Ҫ޸ġ˴ɰҪɾעMCU֡ṹһ	   	         
	 ע޸ıļг򣬲ſԿЧ

  ӦóļApp.configļݰ
     ݿַconnectionString,valueݻڴݿSQLCommandʱá
	 connectionStringṩ˾··ԼSQL Server StudioغԶݿʷʽÿֻʹһַʽ෽ʽע͵

3Զݿṹ
     ͨApp.configļҵݿλúơ
     ݿAHL-IoT3űֱǣ豸ϢDeviceݱUpݱDownÿűĹʾ
    3.1豸ϢDeviceñ洢ն豸Ϣһ豸Ӧһ¼ֻϢļ¼
        Ҫ¼洢flashе豸صϢ
    3.2ݱUp洢еݣɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
	    õֶΡ
    3.3ݱDown洢еݡɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
	    õֶΡ

4websocketӿͨݸʽ
    websocketӿڣ"wss://websocket.sudamcu.com/wsServices""ws://websocket.sudamcu.com:38867/wsServices"
    ṩwebsocketӿڣʵҳ׿΢СնݵĽӿڵݲJsonʽ
		ĿǰJsonݸʽ
		1command,string+sourceͷ,string+password,string+value,string;
		2command,string+sourceͷ,string+dest(շ,string)password,string+currentRow(ǰ֡,int)+totalRows(֡,int)
		    +data(ݣList<FrameData.ParameterInfo>);
		ע⣺1currentRowtotalRowsΪint͵ݣݿекţID;(2)ֻҪϢɣҪȫ;
		      3ڶJsondataʵҲǸJsonַ;4passwordΪԤܣɲд
	4.1ʷ
	    ʹõһݸʽΪ:"ask"磺{"command":"ask","source":"web","password":"","value":"4770"}
		յϢ֮ʹõڶݸʽݻطߣڸлǰ֡֡磺
		{"command":"reAsk","source":"CS-Monitor","dest":null,"password":"","currentRow":4770,"totalRows":4977,
		"data":[{"type":"byte[2]","value":"U0","name":"cmd","size":2,"otherName":"","wr":"read"},
		{"type":"ushort","value":"7","name":"sn","size":2,"otherName":"֡","wr":"read"},
		{"type":"byte[15]","value":"460040436504750","name":"IMSI","size":15,"otherName":"IMSI","wr":"read"},
		{"type":"byte[15]","value":"106.14.182.126","name":"serverIP","size":15,"otherName":"IP","wr":"read"},
		{"type":"byte[5]","value":"26123","name":"serverPort","size":5,"otherName":"˿","wr":"read"},
		{"type":"ulong","value":"1530454800","name":"currentTime","size":8,"otherName":"ʱ","wr":"read"},
		{"type":"int","value":"0","name":"resetCount","size":4,"otherName":"Źλ","wr":"read"},
		{"type":"int","value":"600","name":"sendFrequencySec","size":4,"otherName":"ϴ룩","wr":"write"},
		{"type":"byte[20]","value":"ݴѧԱ","name":"userName","size":20,"otherName":"û","wr":"write"},
		{"type":"byte[4]","value":"V5.0","name":"softVer","size":4,"otherName":"汾","wr":"read"},
		{"type":"byte[30]","value":" [«] AHL-IoT-GEC ","name":"equipName","size":30,"otherName":"Ʒ","wr":"read"},
		{"type":"byte[20]","value":"215000-000000-000001","name":"equipID","size":20,"otherName":"Ʒк","wr":"read"},
		{"type":"byte[20]","value":"AHL-100-1AA[R516] ","name":"equipType","size":20,"otherName":"Ʒ","wr":"read"},
		{"type":"byte[30]","value":"  «ƹ˾  ","name":"vendor","size":30,"otherName":"","wr":"read"},
		{"type":"int","value":"343","name":"mcuTemp","size":4,"otherName":"оƬ¶","wr":"read"},
		{"type":"byte[20]","value":"","name":"surpBaseInfo","size":20,"otherName":"ע1","wr":"write"},
		{"type":"byte[11]","value":"13000000000","name":"phone","size":11,"otherName":"ֻ","wr":"read"},
		{"type":"byte[15]","value":"862202030057920","name":"IMEI","size":15,"otherName":"IMEI","wr":"read"},
		{"type":"byte","value":"64","name":"signalPower","size":1,"otherName":"źǿ","wr":"read"},
		{"type":"ushort","value":"31667","name":"bright","size":2,"otherName":"ǿ","wr":"read"},
		{"type":"ushort","value":"7","name":"touchNum","size":2,"otherName":"TSI","wr":"read"},
		{"type":"byte[20]","value":"","name":"surplusInfo","size":20,"otherName":"ע2","wr":"write"},
		{"type":"byte[25]","value":"460,000,5280,e46a","name":"lbs_location","size":25,"otherName":"LBSλϢ","wr":"read"}]}		
	4.2յʵ
	    յʵʱ֮󣬷Ὣ͸ӵĿͻˣ͵ݸʽʾΪ:"recv"valueֵΪݴ洢
		кţʹõstring͡磺{"command":"recv","source":"460113003130916","password":"","value":"4971"}
		ͻڽյ֮жǷԼҪģǣʹã5.1ķлȡݡ
	4.3Ҫط
	    Ϊ:"send"ʹõڶݸʽ֡ŵȿԲд
		{"command":"send","dest":"460113003130916","source":"WeChat","password":"",
		"data":[{"type":"byte[2]","value":"U0","name":"cmd","size":2,"otherName":"","wr":"read"},
		{"type":"ushort","value":"7","name":"sn","size":2,"otherName":"֡","wr":"read"},
		{"type":"byte[15]","value":"460113003130916","name":"IMSI","size":15,"otherName":"IMSI","wr":"read"},
		{"type":"byte[15]","value":"106.14.182.126","name":"serverIP","size":15,"otherName":" IP","wr":"read"},
		{"type":"byte[5]","value":"26123","name":"serverPort","size":5,"otherName":"˿","wr":"read"},
		{"type":"ulong","value":"1530454800","name":"currentTime","size":8,"otherName":"ʱ","wr":"read"},
		{"type":"int","value":"0","name":"resetCount","size":4,"otherName":"Źλ","wr":"read"},
		{"type":"int","value":"60","name":"sendFrequencySec","size":4,"otherName":"ϴ룩","wr":"write"},
		{"type":"byte[20]","value":"ݴѧԱ","name":"userName","size":20,"otherName":"û","wr":"write"},
		{"type":"byte[4]","value":"V5.0","name":"softVer","size":4,"otherName":"汾","wr":"read"},
		{"type":"byte[30]","value":" [«] AHL-IoT-GEC ","name":"equipName","size":30,"otherName":"Ʒ","wr":"read"},
		{"type":"byte[20]","value":"215000-000000-000001","name":"equipID","size":20,"otherName":"Ʒк","wr":"read"},
		{"type":"byte[20]","value":"AHL-100-1AA[R516] ","name":"equipType","size":20,"otherName":"Ʒ","wr":"read"},
		{"type":"byte[30]","value":"  «ƹ˾  ","name":"vendor","size":30,"otherName":"","wr":"read"},
		{"type":"int","value":"343","name":"mcuTemp","size":4,"otherName":"оƬ¶","wr":"read"},
		{"type":"byte[20]","value":"","name":"surpBaseInfo","size":20,"otherName":"ע1","wr":"write"},
		{"type":"byte[11]","value":"13000000000","name":"phone","size":11,"otherName":"ֻ","wr":"read"},
		{"type":"byte[15]","value":"862202030057920","name":"IMEI","size":15,"otherName":"IMEI","wr":"read"},
		{"type":"byte","value":"64","name":"signalPower","size":1,"otherName":"źǿ","wr":"read"},
		{"type":"ushort","value":"31667","name":"bright","size":2,"otherName":"ǿ","wr":"read"},
		{"type":"ushort","value":"7","name":"touchNum","size":2,"otherName":"TSI","wr":"read"},
		{"type":"byte[20]","value":"","name":"surplusInfo","size":20,"otherName":"ע2","wr":"write"},
		{"type":"byte[25]","value":"460,000,5280,e46a","name":"lbs_location","size":25,"otherName":"LBSλϢ","wr":"read"}]}
		յݺظͻˣ{"command":"status","source":"CS-Monitor","password":"","value":"SUCCESS"}
		ǣ֤һͳɹ
	4.4ͻ˷͵߲Ҫ󣬷أ{"command":"status","source":"CS-Monitor","password":"","value":"NOT COMMAND"}

5˵
20180620նUEĽ档򿪷Ŀ=
ʹ÷
1򿪱ͨ򿪱棬Ĭ״̬ǲԵȷġ
2նϵ磬ݡյݣʹܡȷť
3ѡʵȷϡһ㽨ʹöȡ
4Ҫ޸ģͨѡ޸ıϢҲֱӸݣȷť
5޸ĳɹնUEϻӦʾ״̬м䲿ֻϢʾ
ʽΪ루2ֽڣ+ݣΪգ
壺
A0ȡնUEϢ
A1ȡնUEĲƷϢ
A2ȡնUEķϢ
A3ȡûնUEϢ
B0նUEеϢ
B1նUEеĲƷϢ
B2նUEеķϢ
B3ûնUEϢ
20180704V4.0
1ݱƣڵǰ汾У5űֱǣ豸ϢDeviceݱUp
     ݱDownݱCommandֶԱAttributeÿűĹʾ
豸ϢDeviceñ洢ն豸Ϣһ豸Ӧһ¼ֻϢļ¼
     Ҫ¼洢flashе豸صϢ
ݱUp洢еݣɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
     õֶΡ
ݱDown洢еݡɴ洢ָʽݣ֡ʽݾɴ洢ͨݱ
     õֶΡ
ݱCommandָ֡ṹĹϵָӦָ˳ıñֶֶԱ
     ļ¼ǶӦģһֶΪÿֶδһñӦֵΪգΪַ
	 true 
ֶԱAttributeָÿͣǷɶǷҪʾϢ
2WebSocketҳ׿΢СȽͨš
20180808V4.1
1websocketͨŵݸʽΪJson
2յ֮ӵĿͻ˷Ϣ磺
    {"command":"recv","source":"460040436504663","password":"","value":"4780"}
3ͻ˿ָIDŵݡ磺{"command":"ask","source":"web","password":"","value":"4770"}
4յͻ˵֮󣬽ѸIDŵݷͻˣϢҲͻˡ磺
{"command":"reAsk","source":"4770","password":"","value":[{"type":"byte[2]","value":"U0","name":"cmd","size":2,"otherName":"","wr":"read"},{"type":"ushort","value":"10","name":"sn","size":2,"otherName":"֡","wr":"read"},{"type":"byte[15]","value":"460040436504663","name":"IMSI","size":15,"otherName":"IMSI","wr":"read"},{"type":"byte[15]","value":"106.14.182.126","name":"serverIP","size":15,"otherName":"IP","wr":"read"},{"type":"byte[5]","value":"38068","name":"serverPort","size":5,"otherName":"˿","wr":"read"},{"type":"ulong","value":"1530453444","name":"currentTime","size":8,"otherName":"ʱ","wr":"read"},{"type":"int","value":"0","name":"resetCount","size":4,"otherName":"Źλ","wr":"read"},{"type":"int","value":"600","name":"sendFrequencySec","size":4,"otherName":"ϴ 룩","wr":"write"},{"type":"byte[20]","value":"ݴѧԱ","name":"userName","size":20,"otherName":" ","wr":"write"},{"type":"byte[4]","value":"V3.8","name":"softVer","size":4,"otherName":"汾","wr":"read"},{"type":"byte[30]","value":" « AHL-IoT-GEC ","name":"equipName","size":30,"otherName":"Ʒ","wr":"read"},{"type":"byte[20]","value":"215000-000000-000001","name":"equipID","size":20,"otherName":"Ʒк","wr":"read"},{"type":"byte[20]","value":"AHL-100-1AAR516 ","name":"equipType","size":20,"otherName":"Ʒ","wr":"read"},{"type":"byte[30]","value":"  «ƹ˾  ","name":"vendor","size":30,"otherName":"","wr":"read"},{"type":"int","value":"348","name":"mcuTemp","size":4,"otherName":"оƬ¶","wr":"read"},{"type":"byte[20]","value":"","name":"surpBaseInfo","size":20,"otherName":"ע1","wr":"write"},{"type":"byte[11]","value":"13000000000","name":"phone","size":11,"otherName":"ֻ","wr":"read"},{"type":"byte[15]","value":"862202030056278","name":"IMEI","size":15,"otherName":"IMEI","wr":"read"},{"type":"byte","value":"54","name":"signalPower","size":1,"otherName":"źǿ","wr":"read"},{"type":"ushort","value":"16907","name":"bright","size":2,"otherName":"ǿ","wr":"read"},{"type":"ushort","value":"15","name":"touchNum","size":2,"otherName":"TSI","wr":"read"},{"type":"byte[20]","value":"","name":"surplusInfo","size":20,"otherName":"ע2","wr":"write"},{"type":"byte[25]","value":"460,000,5280,e46a","name":"lbs_location","size":25,"otherName":"LBSλϢ","wr":"read"}]}
20180814V4.2
1˲ѯʷ
2ݻط

20180920V6.5
1ʵʱʾ
2ͨųɹʲԣ
     1ͨųɹʲԻ
     ʹ÷ڿͻ֮ڿͻʵʱϽǵġʼ
	 ԡťԵԶʶ벢ʼԡťͨŲԣ
	 дͨŲԽ(˵->ͨŲԡ)ڲλĿ
	 ѡл趨ʶ룬ʼԡɿʼԡ
	 2ն˵ͨųɹʲ
	 ͨŲԽ棬ڲ豸ĿѡһIMSIţмIMSI
	 Ӧ豸ͨųɹʡ
20181031V6.6
1ȡݿ⣬·ķʽݿCS-MonitorУ޸App.configļݿʷʽΪ·ʡˣApp.configļȷû޸ġ
2ΪвͬĿCS-Monitor򣬲NginxֲͬĴ˿ڣwsIP˿ںwssʵĶĿ¼ȡXMLļûͳһ޸ġ

------------------------------------------------------------------------------------------------------------------
ݴѧǶʽϵͳо











     /*   
                //ɾǰ15֮ݡ191016   ޸ġ
                if (sqlclearflag!=DateTime.Now.Day.ToString())
                {
                    string deletime = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
                    string deltime = DateTime.Now.AddDays(-15).ToString("yyyyMMdd");
                    frmMain.sQLUp.del24hourdata(deltime + "000000", deletime + "240000");  //ʱ
                    sqlclearflag = DateTime.Now.Day.ToString();
                }
                
            */

			else if(counts>1000)    //ݿг1000Уɾ500С20180831޸ġ
                {
                    sQLUp.deleteTopRow(counts - 500);
                }



20200811
string configPath = Application.StartupPath + "/../../04_Resource/AHL.xml";  //20200811
              //string configPath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase+"../../04_Resource/AHL.xml";  

			  <add key="connectionString" value="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\..\..\04_Resource\DataBase\AHL-IoT.mdf;Integrated Security=True" />