public List <EQP> GetEQP(BCInfo BC) { List <EQP> result = new List <EQP>(); OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =" + BC.BCIP + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =ORCL)));User Id=innolux;Password=innoluxabc123;"); string sqlString = @"select node.* from main_bc_node node ,main_bc_line t where t.hostlineid = '" + BC.BCName + @"' and t.bcno = node.bcno and t.fabtype = node.fabtype and t.bclineno = node.bclineno"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { EQP each = new EQP(); each.EQPName = eachRow["hostsubeqid"].ToString(); each.Description = eachRow["eqname"].ToString(); each.NodeNo = int.Parse(eachRow["nodeno"].ToString()); each.RecipeSplit = eachRow["recipesplit"].ToString(); result.Add(each); } return(result); }
public void CreateBCCmd(BCInfo BC, Recipe req) { OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =" + BC.BCIP + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =ORCL)));User Id=innolux;Password=innoluxabc123;"); string BCNo = ""; string FabType = ""; string BCLineNo = ""; string CMD = req.NodeNo.ToString("00") + req.RecipeNo.ToString("0000") + "0"; string UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string sqlString = "select * from main_bc_line t where t.hostlineid = '" + BC.BCName + "'"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { BCNo = eachRow["BCNo"].ToString(); FabType = eachRow["FabType"].ToString(); BCLineNo = eachRow["BCLineNo"].ToString(); } if (BCNo.Equals("") || FabType.Equals("") || BCLineNo.Equals("")) { throw new Exception("Get main_bc_line fail"); } sqlString = @"Insert Into TrxBCGetCmd (BCNo, BCLineNo, FabType, CmdKey, NodeNo, EQPortNo, CmdData, CmdType, OPName, UpdateTime, UpdateOP, SP1, SP2) Values ({0}, {1}, {2}, 'RECIPE_BODY_QUERY', {3}, 0, '{4}', 'INSERT', 'WebInterface', '{5}', 'CIM', '', '')"; sqlString = string.Format(sqlString, BCNo, BCLineNo, FabType, req.NodeNo, CMD, UpdateTime); dbObj.ExcuteNoQuery(sqlString); }
public ED03 GetED03(BCInfo BC, EQP eqp) { ED03 result = new ED03(); OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =" + BC.BCIP + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =ORCL)));User Id=innolux;Password=innoluxabc123;"); string sqlString = @"select node.hostsubeqid, evt.funckey, substr(to_char(substr(plc.outputdata, to_number(evt.startadr, 'xxxxxxx') * 4 + 1, evt.datalen * 4)), 4, 1) reportType, substr(to_char(substr(plc.outputdata, to_number(evt.startadr, 'xxxxxxx') * 4 + 1, evt.datalen * 4)), evt.datalen * 4 - 3, 4) evtindex, node.recipesplit, substr(to_char(substr(plc.outputdata, to_number(evt.startadr, 'xxxxxxx') * 4 + 1, evt.datalen * 4)), 17, 800) itemdata from main_bc_line t, io_event evt, main_bc_node node, plcdata plc where t.hostlineid = '" + BC.BCName + @"' and node.hostsubeqid = '" + eqp.EQPName + @"' and t.bcno = evt.bcno and t.bclineno = evt.bclineno and t.fabtype = evt.fabtype and t.bcno = node.bcno and t.bclineno = node.bclineno and t.fabtype = node.fabtype and t.bcno = plc.bcno and t.bclineno = plc.bclineno and t.fabtype = plc.fabtype and plc.devicetype = '2' and evt.nodeno = node.nodeno and evt.funckey = 'ED03' and evt.subfunckey = '01'"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { result.ReportType = eachRow["reportType"].ToString(); result.DataItem = eachRow["itemdata"].ToString(); result.Index = eachRow["evtindex"].ToString(); } return(result); }
public List <PPID> GetPPID(BCInfo BC, string PPID) { List <PPID> result = new List <PPID>(); OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =" + BC.BCIP + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =ORCL)));User Id=innolux;Password=innoluxabc123;"); string sqlString = @"select pp.* from setppid pp, main_bc_line t where t.hostlineid = '" + BC.BCName + @"' and t.bcno = pp.bcno and t.fabtype = pp.fabtype and t.bclineno = pp.bclineno"; if (!PPID.Equals("")) { sqlString += " and pp.ppid = '" + PPID + "'"; } sqlString += " order by pp.ppid"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { PPID each = new PPID(); each.Name = eachRow["PPID"].ToString(); for (int i = 1; i <= 32; i++) { Recipe rep = new Recipe(); rep.NodeNo = i; rep.RecipeNo = int.Parse(eachRow["EQ" + i + "Recipe"].ToString()); each.RecipeTable.Add(rep); } result.Add(each); } return(result); }
public List <BCInfo> GetBCInfo() { List <BCInfo> result = new List <BCInfo>(); OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.9.1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.9.2)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = t2pcel) ));User Id=L5CEL;Password=L5CEL;"); string sqlString = "select * from dems_bcip t order by bc_name"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { BCInfo each = new BCInfo(); each.Fab = eachRow["Fab"].ToString(); each.BCName = eachRow["BC_Name"].ToString(); each.BCIP = eachRow["IP"].ToString(); result.Add(each); } return(result); }
public List <RecipePaserSetting> GetRecipeBodySetting(BCInfo BC, EQP eqp) { List <RecipePaserSetting> result = new List <RecipePaserSetting>(); OracleDB dbObj = new OracleDB("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =" + BC.BCIP + ")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =ORCL)));User Id=innolux;Password=innoluxabc123;"); string sqlString = @"select * from setrecipebodyparameter t where t.recipesplit = '" + eqp.RecipeSplit + "'"; DataTable Dt = dbObj.SelectSQL(sqlString); foreach (DataRow eachRow in Dt.Rows) { RecipePaserSetting each = new RecipePaserSetting(); each.ItemName = eachRow["ItemName"].ToString(); each.ItemOffset = int.Parse(eachRow["ItemOffset"].ToString()); each.ItemLength = int.Parse(eachRow["ItemLength"].ToString()); each.ItemRate = double.Parse(eachRow["ItemRate"].ToString()); if (!int.TryParse(eachRow["ItemEfflen"].ToString(), out each.ItemEfflen)) { each.ItemEfflen = 999; } if (!int.TryParse(eachRow["ItemSigned"].ToString(), out each.ItemSigned)) { each.ItemSigned = 1; } each.ItemUnit = eachRow["ItemUnit"].ToString(); each.ItemFormat = eachRow["ItemFormat"].ToString(); result.Add(each); } return(result); }
public List <RecipeBodyParseData> GetRecipeBodyParseData(BCInfo BC, EQP eqp, ED03 ed03) { List <RecipeBodyParseData> result = new List <RecipeBodyParseData>(); foreach (RecipePaserSetting eachSetting in GetRecipeBodySetting(BC, eqp)) { string itemHexString = ed03.DataItem.Substring(eachSetting.ItemOffset * 4 - 4, eachSetting.ItemLength * 4); RecipeBodyParseData eachResult = new RecipeBodyParseData(); switch (eachSetting.ItemFormat) { case "A": string tmpAsciiString = ""; string reverseAsciiString = ""; for (int i = 0; i < itemHexString.Length; i += 4) { string tmpAscii = itemHexString.Substring(i, 4); for (int j = 0; j < tmpAscii.Length; j += 2) { tmpAsciiString = tmpAscii.Substring(j, 2) + tmpAsciiString; } reverseAsciiString = reverseAsciiString + tmpAsciiString; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < reverseAsciiString.Length; i += 2) { string hs = reverseAsciiString.Substring(i, 2); sb.Append(Convert.ToChar(Convert.ToUInt32(hs, 16))); } eachResult.Name = eachSetting.ItemName; eachResult.Value = sb.ToString().Substring(0, eachSetting.ItemEfflen); eachResult.Unit = eachSetting.ItemUnit; result.Add(eachResult); break; case "N": case "D": string reverseItemString = ""; for (int i = 0; i < itemHexString.Length; i += 4) { reverseItemString = itemHexString.Substring(i, 4) + reverseItemString; } double dbValue = 0; if (eachSetting.ItemSigned.Equals("1")) { dbValue = Convert.ToDouble(int.Parse(reverseItemString, System.Globalization.NumberStyles.HexNumber)); } else { dbValue = Convert.ToDouble(uint.Parse(reverseItemString, System.Globalization.NumberStyles.HexNumber)); } dbValue = dbValue * eachSetting.ItemRate; eachResult.Name = eachSetting.ItemName; eachResult.Value = dbValue.ToString("0.000000"); eachResult.Unit = eachSetting.ItemUnit; result.Add(eachResult); break; case "H": eachResult.Name = eachSetting.ItemName; eachResult.Value = itemHexString; eachResult.Unit = eachSetting.ItemUnit; result.Add(eachResult); break; case "B": eachResult.Name = eachSetting.ItemName; eachResult.Value = Convert.ToString(Convert.ToInt32(itemHexString, 16), 2).PadLeft(itemHexString.Length * 4, '0'); eachResult.Unit = eachSetting.ItemUnit; result.Add(eachResult); break; } } return(result); }