private void UpdateAppView(string StationID, APPID aPPID, bool isonline)
 {
     if (serverplist.ContainsKey(StationID))
     {
         serverplist[StationID].UpdateApp(aPPID, isonline);
     }
 }
 public static string getAppname(APPID appid)
 {
     foreach (var v in Apps)
     {
         if (v.id == appid) return v.appname;
     }
     return "";
 }
        // 返回该APP可以通讯的APP列表,权限控制
        public static List <APPID> getVisualApp(APPID appid)
        {
            List <APPID> result = new List <APPID>();
            APPTYPE      type   = getApptype(appid);

            switch (type)
            {
            case APPTYPE.App2Res:
                switch (appid)
                {
                case APPID.TestApp:
                    result.Add(APPID.Authorization);
                    result.Add(APPID.TestApp);
                    result.Add(APPID.TestAppResource);
                    break;

                default:
                    break;
                }
                break;

            case APPTYPE.App2App:
                result.Add(appid);
                break;

            case APPTYPE.Res2App:
                switch (appid)
                {
                case APPID.TestAppResource:
                    result.Add(APPID.Authorization);
                    result.Add(APPID.TestApp);
                    result.Add(APPID.TestAppResource);
                    break;

                default:
                    break;
                }
                break;

            case APPTYPE.Authorization:
                result.Add(APPID.Authorization);
                result.Add(APPID.TestApp);
                result.Add(APPID.TestAppResource);
                break;

            case APPTYPE.Moniter:
                result.Add(APPID.Authorization);
                result.Add(APPID.TestApp);
                result.Add(APPID.TestAppResource);
                result.Add(APPID.TestApp2App);
                result.Add(APPID.iMoniter);
                break;

            default:
                break;
            }
            return(result);
        }
 internal void UpdateApp(APPID aPPID, bool isonline)
 {
     if (isonline)
     {
         Online = true;
     }
     if (applist.ContainsKey(aPPID))
     {
         applist[aPPID].Online = isonline;
     }
 }
        public static APPID getResID(APPID appid)
        {
            switch (appid)
            {
            case APPID.TestApp:
                return(APPID.TestAppResource);

            default:
                return(APPID.Unkown);
            }
        }
 public static APPTYPE getApptype(APPID appid)
 {
     foreach (var v in Apps)
     {
         if (v.id == appid)
         {
             return(v.type);
         }
     }
     return(APPTYPE.App2App);
 }
 public static string getAppname(APPID appid)
 {
     foreach (var v in Apps)
     {
         if (v.id == appid)
         {
             return(v.appname);
         }
     }
     return("");
 }
        public static Client CreateClient(APPID App, string ConfigPath)
        {
            if (!Clients.ContainsKey(App))
            {
                lock (SynObject)
                {
                    if (!Clients.ContainsKey(App))
                    {
                        foreach (var v in Apps)
                        {
                            if (v.id == App)
                            {
                                switch (v.type)
                                {
                                case APPTYPE.App2Res:
                                    Client c1 = new ClientApp(v, ConfigPath);
                                    Clients.Add(App, c1);
                                    break;

                                case APPTYPE.App2App:
                                    Client c2 = new ClientP2P(v, ConfigPath);
                                    Clients.Add(App, c2);
                                    break;

                                case APPTYPE.Res2App:
                                    Client c3 = new ClientRes(v, ConfigPath);
                                    Clients.Add(App, c3);
                                    break;

                                case APPTYPE.Authorization:
                                    Client c4 = new ClientAuthor(v, ConfigPath);
                                    Clients.Add(App, c4);
                                    break;

                                case APPTYPE.Moniter:
                                    Client c5 = new ClientMoniter(v, ConfigPath);
                                    Clients.Add(App, c5);
                                    break;

                                default:
                                    break;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            return(Clients[App]);
        }
 public apppanel(APPID aPPID)
 {
     mainpanel         = new Panel();
     mainpanel.Width   = 129;
     mainpanel.Height  = 33;
     appimg            = new PictureBox();
     appimg.Image      = res.GetObject("off") as Image;
     appimg.Location   = new Point(4, 7);
     appimg.Width      = 16;
     appimg.Height     = 16;
     appimg.Parent     = mainpanel;
     applabel          = new Label();
     applabel.Text     = aPPID.ToString();
     applabel.Location = new Point(27, 9);
     applabel.Parent   = mainpanel;
 }
        ///<summary>异步发送数据,提交后立即返回,数据包在缓存中等待发送</summary>
        ///<param name="data">数据包</param>
        public void Send(string stationid, APPID Appid, PacketManaged data)
        {
            UInt16 serverid = StationIdtoServerid(stationid);

            if (serverid > 0)
            {
                if (isAppOnline(serverid, (ushort)Appid))
                {
                    lock (Synsend)
                    {
                        data.checktime.Add(DateTime.Now);
                        icPacket p = new icPacket();
                        p.Serverid = serverid;
                        p.Appid    = Appid;
                        p.dataid   = Dataid;
                        p.data     = data;
                        sendbuff.Enqueue(p);
                        if (sendbuffblocked)
                        {
                            sendbuffblocked = false;
                            sendbuffblockEvent.Set();
                        }
                    }
                }
                else
                {
                    sendingpacket status = new sendingpacket();
                    status.data       = data;
                    status.packetsize = 0;
                    status.sendtime   = DateTime.Now;
                    status.outtime    = DateTime.Now;
                    SendStatusEventArgs e = new SendStatusEventArgs(SENDSTATUS.PACKET_APPDOWN, status);
                    ics_SendStatusEvent(e);
                }
            }
            else
            {
                sendingpacket status = new sendingpacket();
                status.data       = data;
                status.packetsize = 0;
                status.sendtime   = DateTime.Now;
                status.outtime    = DateTime.Now;
                SendStatusEventArgs e = new SendStatusEventArgs(SENDSTATUS.PACKET_SERVERUNKOWN, status);
                ics_SendStatusEvent(e);
            }
        }
 public static Client CreateClient(APPID App, string ConfigPath)
 {
     if (!Clients.ContainsKey(App))
     {
         lock (SynObject)
         {
             if (!Clients.ContainsKey(App))
             {
                 foreach (var v in Apps)
                 {
                     if (v.id == App)
                     {
                         switch (v.type)
                         {
                             case APPTYPE.App2Res:
                                 Client c1 = new ClientApp(v, ConfigPath);
                                 Clients.Add(App, c1);
                                 break;
                             case APPTYPE.App2App:
                                 Client c2 = new ClientP2P(v, ConfigPath);
                                 Clients.Add(App, c2);
                                 break;
                             case APPTYPE.Res2App:
                                 Client c3 = new ClientRes(v, ConfigPath);
                                 Clients.Add(App, c3);
                                 break;
                             case APPTYPE.Authorization:
                                 Client c4 = new ClientAuthor(v, ConfigPath);
                                 Clients.Add(App, c4);
                                 break;
                             case APPTYPE.Moniter:
                                 Client c5 = new ClientMoniter(v, ConfigPath);
                                 Clients.Add(App, c5);
                                 break;
                             default:
                                 break;
                         }
                         break;
                     }
                 }
             }
         }
     }
     return Clients[App];
 }
 ///<summary>异步发送数据,提交后立即返回,数据包在缓存中等待发送</summary>
 ///<param name="data">数据包</param>
 public void Send(string stationid, APPID Appid, PacketManaged data)
 {
     UInt16 serverid = StationIdtoServerid(stationid);
     if (serverid > 0)
     {
          if (isAppOnline(serverid, (ushort)Appid))
          {
             lock (Synsend)
             {
                 data.checktime.Add(DateTime.Now);
                 icPacket p = new icPacket();
                 p.Serverid = serverid;
                 p.Appid = Appid;
                 p.dataid = Dataid;
                 p.data = data;
                 sendbuff.Enqueue(p);
                 if (sendbuffblocked)
                 {
                     sendbuffblocked = false;
                     sendbuffblockEvent.Set();
                 }
             }
          }
          else
          {
              sendingpacket status = new sendingpacket();
              status.data = data;
              status.packetsize = 0;
              status.sendtime = DateTime.Now;
              status.outtime = DateTime.Now;
              SendStatusEventArgs e = new SendStatusEventArgs(SENDSTATUS.PACKET_APPDOWN, status);
              ics_SendStatusEvent(e);
          }
     }
     else
     {
         sendingpacket status = new sendingpacket();
         status.data = data;
         status.packetsize = 0;
         status.sendtime = DateTime.Now;
         status.outtime = DateTime.Now;
         SendStatusEventArgs e = new SendStatusEventArgs(SENDSTATUS.PACKET_SERVERUNKOWN, status);
         ics_SendStatusEvent(e);
     }
 }
 public static APPID getResID(APPID appid)
 {
     switch (appid)
     {
         case APPID.TestApp:
             return APPID.TestAppResource;
         default:
             return APPID.Unkown;
     }
 }
 public static APPTYPE getApptype(APPID appid)
 {
     foreach(var v in Apps)
     {
         if (v.id == appid) return v.type;
     }
     return APPTYPE.App2App;
 }
 ///<summary>生产通讯客户端。每一个module只生成唯一的实例</summary>
 ///<param name="module">辨识应用的唯一字符串,大小写敏感</param>
 public static Client CreateClient(APPID App)
 {
     return CreateClient(App, "");
 }
Example #16
0
 private void UpdateAppView(string StationID, APPID aPPID, bool isonline)
 {
     if (serverplist.ContainsKey(StationID))
     {
         serverplist[StationID].UpdateApp(aPPID, isonline);
     }
 }
 ///<summary>生产通讯客户端。每一个module只生成唯一的实例</summary>
 ///<param name="module">辨识应用的唯一字符串,大小写敏感</param>
 public static Client CreateClient(APPID App)
 {
     return(CreateClient(App, ""));
 }
Example #18
0
 internal void UpdateApp(APPID aPPID, bool isonline)
 {
     if (isonline) Online = true;
     if(applist.ContainsKey(aPPID))
     {
         applist[aPPID].Online = isonline;
     }
 }
Example #19
0
 public apppanel(APPID aPPID)
 {
     mainpanel = new Panel();
     mainpanel.Width = 129;
     mainpanel.Height = 33;
     appimg = new PictureBox();
     appimg.Image = res.GetObject("off") as Image;
     appimg.Location = new Point(4, 7);
     appimg.Width = 16;
     appimg.Height = 16;
     appimg.Parent = mainpanel;
     applabel = new Label();
     applabel.Text = aPPID.ToString();
     applabel.Location = new Point(27, 9);
     applabel.Parent = mainpanel;
 }
 // 返回该APP可以通讯的APP列表,权限控制
 public static List<APPID> getVisualApp(APPID appid)
 {
     List<APPID> result = new List<APPID>();
     APPTYPE type = getApptype(appid);
     switch (type)
     {
         case APPTYPE.App2Res:
             switch (appid)
             {
                 case APPID.TestApp:
                     result.Add(APPID.Authorization);
                     result.Add(APPID.TestApp);
                     result.Add(APPID.TestAppResource);
                     break;
                 default:
                     break;
             }
             break;
         case APPTYPE.App2App:
             result.Add(appid);
             break;
         case APPTYPE.Res2App:
             switch (appid)
             {
                 case APPID.TestAppResource:
                     result.Add(APPID.Authorization);
                     result.Add(APPID.TestApp);
                     result.Add(APPID.TestAppResource);
                     break;
                 default:
                     break;
             }
             break;
         case APPTYPE.Authorization:
             result.Add(APPID.Authorization);
             result.Add(APPID.TestApp);
             result.Add(APPID.TestAppResource);
             break;
         case APPTYPE.Moniter:
             result.Add(APPID.Authorization);
             result.Add(APPID.TestApp);
             result.Add(APPID.TestAppResource);
             result.Add(APPID.TestApp2App);
             result.Add(APPID.iMoniter);
             break;
         default:
             break;
     }
     return result;
 }