Exemplo n.º 1
0
        public void AddDeviceWrapper(string devName, bool isMfccAddDevice, System.Data.Odbc.OdbcConnection cnn)
        {
            OdbcDataReader rd = null;
              OdbcConnection cn = null; ;
              OdbcCommand cmd;
              try
              {

              devName = devName.Trim();
              if (isMfccAddDevice)
                  cn = new OdbcConnection(Global.Db2ConnectionString);
              else
                  cn = cnn;

              cmd = new OdbcCommand();
              cmd.Connection = cn;
              if (this.devices.ContainsKey(devName))
                  throw new Exception(devName + "already in list");

              if (isMfccAddDevice)
                 cn.Open();
              if (devName.StartsWith("VD"))
                  cmd.CommandText = "select tbldeviceconfig.devicename,device_type,mfccid,location,lineid,direction,mile_m,ip,port,hw_status_1,hw_status_2,hw_status_3,hw_status_4,op_mode,op_status,start_mileage,end_mileage from tbldeviceconfig inner join tblVDConfig on tbldeviceconfig.devicename=tblVDConfig.devicename where enable='Y' and tbldeviceconfig.devicename='" + devName + "'";
              else if(devName.StartsWith("RD"))
                  cmd.CommandText = "select tbldeviceconfig.devicename,device_type,mfccid,location,lineid,direction,mile_m,ip,port,hw_status_1,hw_status_2,hw_status_3,hw_status_4,op_mode,op_status,start_mileage,end_mileage from tbldeviceconfig inner join tblRDConfig on tbldeviceconfig.devicename=tblRDConfig.devicename where enable='Y' and tbldeviceconfig.devicename='" + devName + "'";
              else if (devName.StartsWith("VI"))
                  cmd.CommandText = "select tbldeviceconfig.devicename,device_type,mfccid,location,lineid,direction,mile_m,ip,port,hw_status_1,hw_status_2,hw_status_3,hw_status_4,op_mode,op_status,start_mileage,end_mileage from tbldeviceconfig inner join tblVIConfig on tbldeviceconfig.devicename=tblVIConfig.devicename where enable='Y' and tbldeviceconfig.devicename='" + devName + "'";
              else if (devName.StartsWith("WD")  || devName.StartsWith("TWD"))
                  cmd.CommandText = "select tbldeviceconfig.devicename,device_type,mfccid,location,lineid,direction,mile_m,ip,port,hw_status_1,hw_status_2,hw_status_3,hw_status_4,op_mode,op_status,start_mileage,end_mileage from tbldeviceconfig inner join tblWDConfig on tbldeviceconfig.devicename=tblWDConfig.devicename where enable='Y' and tbldeviceconfig.devicename='" + devName + "'";

              else
                  cmd.CommandText = "select devicename,device_type,mfccid,location,lineid,direction,mile_m,ip,port,hw_status_1,hw_status_2,hw_status_3,hw_status_4,op_mode,op_status from tbldeviceconfig where enable='Y' and devicename='" + devName + "'";
              rd = cmd.ExecuteReader();

              if (!rd.Read())
                  throw new Exception(devName + " not  found in database!");
              else
              {

                  string devicename = (rd[0] as string).Trim();
                  string devicetype = rd[1] as string;
                  string mfccid = rd[2] as string;
                  string location = rd[3] as string;
                  string lineid = rd[4] as string;
                  string direction = rd[5] as string;

                  int mile_m = System.Convert.ToInt32(rd[6]);
                  string ip = rd[7] as string;
                  int port = System.Convert.ToInt32(rd[8]);

                  byte[] hwstatus = new byte[4];
                  hwstatus[0] = System.Convert.ToByte(rd[9]);
                  hwstatus[1] = System.Convert.ToByte(rd[10]);
                  hwstatus[2] = System.Convert.ToByte(rd[11]);
                  hwstatus[3] = System.Convert.ToByte(rd[12]);
                  byte opmode = System.Convert.ToByte(rd[13]);
                  byte opstatus = System.Convert.ToByte(rd[14]);

                  if (devicetype == "VD")
                  {
                      int start_mileage, end_mileage;
                      start_mileage = System.Convert.ToInt32(rd[15]);

                      end_mileage = System.Convert.ToInt32(rd[16]);
                      TC.VDDeviceWrapper wrapper = new TC.VDDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction,start_mileage,end_mileage);

                      if( isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);

                  }
                  else if (devicetype == "RGS")
                  {
                      TC.RGSDeviceWrapper wrapper = new TC.RGSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                     if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "CMS")
                  {

                      TC.CMSDeviceWrapper wrapper = new TC.CMSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                     if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "RMS")
                  {
                      TC.RMSDeviceWrapper wrapper = new TC.RMSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                     if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "WIS")
                  {
                      TC.WISDeviceWrapper wrapper = new TC.WISDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "LCS")
                  {
                      TC.LCSDeviceWrapper wrapper = new TC.LCSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "CSLS")
                  {
                      TC.CSLSDeviceWrapper wrapper = new TC.CSLSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                      wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "AVI")
                  {
                      TC.AVIDeviceWrapper wrapper = new TC.AVIDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "RD")
                  {
                      int start_mileage, end_mileage;
                      start_mileage = System.Convert.ToInt32(rd[15]);

                      end_mileage = System.Convert.ToInt32(rd[16]);

                      TC.RDDeviceWrapper wrapper = new TC.RDDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction,start_mileage,end_mileage);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "VI")
                  {
                      int start_mileage, end_mileage;
                      start_mileage = System.Convert.ToInt32(rd[15]);

                      end_mileage = System.Convert.ToInt32(rd[16]);
                      TC.VIDeviceWrapper wrapper = new TC.VIDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction,start_mileage,end_mileage);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "WD")
                  {
                      int start_mileage, end_mileage;
                      start_mileage = System.Convert.ToInt32(rd[15]);

                      end_mileage = System.Convert.ToInt32(rd[16]);
                      TC.WDDeviceWrapper wrapper = new TC.WDDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction,start_mileage,end_mileage);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                          devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "TTS")
                  {
                      TC.TTSDeviceWrapper wrapper = new TC.TTSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "FS")
                  {
                      TC.FSDeviceWrapper wrapper = new TC.FSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "MAS")
                  {
                      TC.MASDeviceWrapper wrapper = new TC.MASDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "IID")
                  {
                      TC.IIDDeviceWrapper wrapper = new TC.IIDDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "ETTU")
                  {
                      TC.ETTUDeviceWrapper wrapper = new TC.ETTUDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "LS")
                  {
                      TC.LSDeviceWrapper wrapper = new TC.LSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "TEM")
                  {
                      TC.TEMDeviceWrapper wrapper = new TC.TEMDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "CMSRST")
                  {
                      TC.CMSRSTDeviceWrapper wrapper = new TC.CMSRSTDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }
                  else if (devicetype == "BS")
                  {
                      TC.BSDeviceWrapper wrapper = new TC.BSDeviceWrapper(mfccid, devicename, devicetype, ip, port, location, lineid, mile_m, hwstatus, opmode, opstatus, direction);
                      if (isMfccAddDevice)
                          wrapper.getRemoteObj().AddDevice(wrapper.deviceName);
                      devices.Add(devicename, wrapper);
                  }

              }

              }

              finally
              {
              try
              {
                  rd.Close();
                  rd.Dispose();
                  if (isMfccAddDevice)
                         cn.Close();
              }
              catch (Exception ex){
                  Console.WriteLine(ex.Message+ex.StackTrace);
                  ;}

              }
        }
Exemplo n.º 2
0
        private void loadSectionData()
        {
            OdbcConnection cn = new OdbcConnection(Global.Db2ConnectionString);

              OdbcCommand cmd = new OdbcCommand("select AVISectionID,Start_Devicename,End_DeviceName,upperinterval,lowerinterval,VALID_CNT_1MIN,Start_Devicename_Source,ext_lineid,ext_direction,ext_mile_m,END_DEVICENAME_SOURCE,ISETAGSECTION from tblAVISection  order by  ISETAGSECTION desc  ");

              OdbcDataReader rd;
              cmd.Connection = cn;
              try
              {
              cn.Open();
              rd = cmd.ExecuteReader();
              while (rd.Read())
              {
                  try
                  {
                  string secid = rd[0].ToString();
                  string startDevName = rd[1].ToString();
                  string endDevName = rd[2].ToString();

                  int upperinterval = System.Convert.ToInt32(rd[3]);
                  int lowerinterval = System.Convert.ToInt32(rd[4]);
                  int validcnt = System.Convert.ToInt32(rd[5]);
                  string startAviSource = rd[6].ToString().Trim();
                  string endAviSource = rd[10].ToString().Trim();
                  string ext_lineid="", ext_dir="";
                  bool IsETagSection = System.Convert.ToInt32(rd[11]) == 1 ? true : false;
                  int ext_mile_m = 0;
                  //if (secid == "N3_S_259.114_280.905")
                  //    Console.WriteLine("tets");

                  Host.TC.AVIDeviceWrapper startdev=null;
                  Host.TC.AVIDeviceWrapper enddev = null;
                  if (startAviSource.Trim() != "C")  //非中區自有AVI
                  {

                      ext_lineid = rd[7].ToString();
                      ext_dir = rd[8].ToString();
                      ext_mile_m = System.Convert.ToInt32(rd[9]);
                      startdev = new TC.AVIDeviceWrapper("", startDevName, "ExtAVI", "0.0.0.0", -1, "F", ext_lineid,
                          ext_mile_m, new byte[] { 0, 0, 0, 0 }, 0, 0, ext_dir);
                      enddev = Program.matrix.getDevicemanager()[endDevName] as Host.TC.AVIDeviceWrapper;
                  }
                  else if (endAviSource.Trim() != "C")
                  {
                      ext_lineid = rd[7].ToString();
                      ext_dir = rd[8].ToString();
                      ext_mile_m = System.Convert.ToInt32(rd[9]);
                      startdev = Program.matrix.getDevicemanager()[startDevName] as Host.TC.AVIDeviceWrapper;
                      enddev = new TC.AVIDeviceWrapper("", endDevName, "ExtAVI", "0.0.0.0", -1, "F", ext_lineid,
                          ext_mile_m, new byte[] { 0, 0, 0, 0 }, 0, 0, ext_dir);
                  }
                  else
                  {
                      startdev = Program.matrix.getDevicemanager()[startDevName] as Host.TC.AVIDeviceWrapper;

                      /*  Host.TC.AVIDeviceWrapper*/
                      enddev = Program.matrix.getDevicemanager()[endDevName] as Host.TC.AVIDeviceWrapper;
                  }

              //string secid = "N3_N_244.8_261.4";
              //Comm.TCBase tc = MFCC_AVI.Program.mfcc_avi.getTcManager()["AVI-N3-N-261.4"];
              //Host.TC.AVIDeviceWrapper startdev = new Host.TC.AVIDeviceWrapper("MFCCAVI", tc.DeviceName, "AVI", "", 0, "", "N3", 261400, new byte[0], 0, 0);
              //tc = MFCC_AVI.Program.mfcc_avi.getTcManager()["AVI-N3-N-244.8"];
              //Host.TC.AVIDeviceWrapper enddev = new Host.TC.AVIDeviceWrapper("MFCCAVI", tc.DeviceName, "AVI", "", 0, "", "N3", 244800, new byte[0], 0, 0);
            #if DEBUG
            //      if (secid == "N3_S_259.114_280.905")
            #endif
                  sections.Add(new AVISection(secid, startdev, enddev, upperinterval, lowerinterval, validcnt, startAviSource,endAviSource,IsETagSection/*, ext_lineid, ext_dir, ext_mile_m*/));

                  }
                  catch (Exception ex)
                  {
                      ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace);
                  }
               }

              }
              catch (Exception ex)
              {
              ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace);
              }
              finally
              { cn.Close(); }
        }