public int returnNumber() { baseclass x = new baseclass(); baseclass y = new baseclass(); x.number = 4; y = x; y.number = 3; return(x.number); }
static void Main(string[] args) { baseclass bc = new baseclass(); derivedclass dc = new derivedclass(); baseclass bcdc = new derivedclass(); bc.Method1(); bc.Method2(); dc.Method1(); dc.Method2(); bcdc.Method1(); bcdc.Method2(); Console.ReadLine(); }
public static string chulirec(string rec,ref baseclass.meter[] Mets) //处理串口接收到的数据 { try { if (rec.Length < 10) { return "error"; } string message = "false"; switch (rec.Length) //根据数据长度分析是哪种协议 { case 78: //多功能电表 string address = rec.Substring(0, 2); //地址 string data = rec.Substring(6, rec.Length - 10); // string PT = Convert.ToInt32(data.Substring(0, 4), 16).ToString(); // string CT = Convert.ToInt32(data.Substring(4, 4), 16).ToString(); //电流比 string ALL_Power = Convert.ToInt32(data.Substring(0, 4), 16).ToString(); //功率和 // double power = Convert.ToInt32(ALL_Power,16) * Convert.ToInt32(CT) / 10; //功率 double Ele_data = Convert.ToInt32(data.Substring(56, 4), 16) * 65536 + Convert.ToInt32(data.Substring(60, 4), 16) + Convert.ToDouble(Convert.ToInt32(data.Substring(64, 4), 16)) / 1000; //有功电量 foreach (baseclass.meter met in Mets) { if (met.Address == address) { met.calcuTimeData(Ele_data.ToString(), "ele"); met.calcuData(ALL_Power, "power"); met.state = true; } } message = "ok"; break; case 88: //多功能电表-7,8号表,测试 string address5 = rec.Substring(0, 2); //地址 string data5 = rec.Substring(6, rec.Length - 10); // string PT = Convert.ToInt32(data.Substring(0, 4), 16).ToString(); // string CT = Convert.ToInt32(data.Substring(4, 4), 16).ToString(); //电流比 string ALL_Power5 = Convert.ToInt32(data5.Substring(0, 4), 16).ToString(); //功率和 // double power = Convert.ToInt32(ALL_Power,16) * Convert.ToInt32(CT) / 10; //功率 double Ele_data5 = Convert.ToInt32(data5.Substring(56, 4), 16) * 65536 + Convert.ToInt32(data5.Substring(60, 4), 16) + Convert.ToDouble(Convert.ToInt32(data5.Substring(64, 4), 16)) / 1000; //有功电量 foreach (baseclass.meter met in Mets) { if (met.Address == address5) { met.calcuTimeData(Ele_data5.ToString(), "ele"); met.calcuData(ALL_Power5, "power"); met.state = true; } } message = "ok"; break; case 82: //热表 string address2 = rec.Substring(0, 2); string data2 = rec.Substring(6, rec.Length - 10); string ALL_code = (Convert.ToDouble(Convert.ToInt32(data2.Substring(0, 8), 16)) / 10).ToString(); //累计冷量 string ALL_hot = (Convert.ToDouble(Convert.ToInt32(data2.Substring(8, 8), 16)) / 10).ToString(); //累计热量 string hot_power = (Convert.ToDouble(Convert.ToInt32(data2.Substring(16, 8), 16)) / 100).ToString(); //热功率 string ALL_flow = (Convert.ToDouble(Convert.ToInt32(data2.Substring(24, 8), 16)) / 10).ToString(); ; //累计流量 string flow = (Convert.ToDouble(Convert.ToInt32(data2.Substring(32, 8), 16)) / 100).ToString(); //瞬时流量 string flow_speed = (Convert.ToDouble(Convert.ToInt32(data2.Substring(40, 8), 16)) / 1000).ToString(); //流速 string ALL_time = Convert.ToInt32(data2.Substring(48, 8), 16).ToString(); //累计运行时间 string tempreter_in = (Convert.ToDouble(Convert.ToInt32(data2.Substring(56, 8), 16)) / 100).ToString(); //入口温度 string temperter_out = (Convert.ToDouble(Convert.ToInt32(data2.Substring(64, 8), 16)) / 100).ToString(); //出口温度 foreach (baseclass.meter met in Mets) { if (met.Address == address2) { met.calcuTimeData(ALL_code.ToString(), "cold"); met.calcuTimeData(ALL_hot.ToString(), "hot"); met.calcuData(hot_power, "power1"); met.calcuData(flow, "flow"); met.calcuData(ALL_flow, "allflow"); met.calcuData(tempreter_in, "T1"); met.calcuData(temperter_out, "T2"); met.state = true; } } message = "ok"; break; case 74: //热表管道式 string address4 = rec.Substring(0, 2); string data6 = rec.Substring(6, rec.Length - 10); string ALL_code2 = (Convert.ToDouble(Convert.ToInt32(data6.Substring(0, 8), 16))).ToString(); //累计冷量 string ALL_hot2 = (Convert.ToDouble(Convert.ToInt32(data6.Substring(8, 8), 16)) ).ToString(); //累计热量 string hot_power2 = HexToFloat(data6.Substring(16, 8)); //热功率 string ALL_flow2 = (Convert.ToDouble(Convert.ToInt32(data6.Substring(24, 8), 16)) / 10).ToString(); ; //累计流量 string flow2 = HexToFloat(data6.Substring(32, 8)); //瞬时流量 // string flow_speed2 = (Convert.ToDouble(Convert.ToInt32(data6.Substring(40, 8), 16)) / 100).ToString(); //流速 string ALL_time2 = Convert.ToInt32(data6.Substring(40, 8), 16).ToString(); //累计运行时间 string tempreter_in2 = HexToFloat(data6.Substring(48, 8)); //入口温度 string temperter_out2 = HexToFloat(data6.Substring(56, 8)); //出口温度 foreach (baseclass.meter met in Mets) { if (met.Address == address4) { met.calcuTimeData(ALL_code2.ToString(), "cold"); met.calcuTimeData(ALL_hot2.ToString(), "hot"); met.calcuData(hot_power2, "power1"); met.calcuData(flow2, "flow"); met.calcuData(tempreter_in2, "T1"); met.calcuData(temperter_out2, "T2"); met.state = true; } } message = "ok"; break; case 36: //645规约,未分高低位 string address3 = rec.Substring(2, 12); string length = rec.Substring(18, 2); //数据长度一般应该为12 string data3 = rec.Substring(24, 8); //需要将length 转成10进制 string sts = data3; string s1 = Convert.ToString(Convert.ToInt32(sts.Substring(0, 2), 16) - 51, 16); string s2 = Convert.ToString(Convert.ToInt32(sts.Substring(2, 2), 16) - 51, 16); string s3 = Convert.ToString(Convert.ToInt32(sts.Substring(4, 2), 16) - 51, 16); string s4 = Convert.ToString(Convert.ToInt32(sts.Substring(6, 2), 16) - 51, 16); if (s1.Length == 1) { s1 = "0" + s1; } string dat = s4 + s3 + s2 + "." + s1; foreach (baseclass.meter met in Mets) { if (met.Address == address3) { met.calcuTimeData(dat, "ele"); met.state = true; changyong.writedebuglog("收到数据包:" + rec, met.Address+".txt"); changyong.writedebuglog("数据为:" + dat, met.Address + ".txt"); } } message = "ok"; break; } //********具体处理部分********************* return message; } catch (Exception ee) { return ee.Message; } }