Beispiel #1
0
 /// <summary>
 /// 获取一个指定描述名称的群组
 /// </summary>
 /// <param name="detail">群组的自然语言描述,(UTF-8编码)</param>
 /// <param name="communicateType">发起该请求的网络类型</param>
 /// <returns>立即返回一个GroupDevice(可能未就绪)</returns>
 public GroupDevice GetGroup(string detail, CommunicatType communicateType)
 {
     foreach (GroupDevice item in _localGroupDeviceBuffer)
     {
         if (detail.Equals(item.Detail))
         {
             return(item);
         }
     }
     if (CommunicatType.Synchronization == communicateType)
     {
         try
         {
             return(base.CoSynGetGroup(detail));
         }
         catch (System.Exception ex)
         {
             throw ex;
         }
     }
     else
     {
         return(base.CoAsynGetGroup(detail));
     }
 }
Beispiel #2
0
 /// <summary>
 /// 创建一个请求通讯包
 /// </summary>
 /// <param name="communicateName">请求的名称</param>
 /// <param name="communicateType">请求执行的网络类型</param>
 /// <param name="reqtParamPkg">携带的参数属性包</param>
 /// <param name="targetDevice">目的设备</param>
 /// <param name="waitResponse">是否等待应答</param>
 /// <param name="callback">在异步情形下,收到应答后的通知事件</param>
 /// <returns></returns>
 public RequestCommunicatePackage CreateRequestCommunicatePackage(string communicationName,
                                                                  CommunicatType communicateType,
                                                                  ParamPackage reqtParamPkg,
                                                                  ClientDevice targetDevice,
                                                                  bool waitResponse,
                                                                  AsynReponseHandler callback)
 {
     return(base.CoCreateRequestCommunicatePackage(communicationName,
                                                   communicateType,
                                                   reqtParamPkg,
                                                   targetDevice,
                                                   waitResponse,
                                                   callback));
 }
        protected RequestCommunicatePackage CoCreateRequestCommunicatePackage(string communicationName,
                                                                              CommunicatType communicateType,
                                                                              ParamPackage reqtParamPkg,
                                                                              ClientDevice targetDevice,
                                                                              bool waitResponse,
                                                                              AsynReponseHandler callback)
        {
            RequestCommunicatePackage reqtPkg = new RequestCommunicatePackage();

            reqtPkg.CommunicationName       = communicationName;
            reqtPkg.CommunicateType         = communicateType;
            reqtPkg.ParamPackage            = reqtParamPkg;
            reqtPkg.TargetDevice            = targetDevice;
            reqtPkg.WaitResponse            = waitResponse;
            reqtPkg.AsynchronousReponseCame = callback;
            return(reqtPkg);
        }
Beispiel #4
0
 /// <summary>
 /// 退出一个群组
 /// </summary>
 /// <param name="group">指定的群组</param>
 /// <param name="communicateType">通讯的网络形式</param>
 public void ExitGroup(GroupDevice group, CommunicatType communicateType)
 {
     if (CommunicatType.Synchronization == communicateType)
     {
         try
         {
             base.CoSynExitGroup(group);
         }
         catch (System.Exception ex)
         {
             throw ex;
         }
     }
     else
     {
         base.CoAsynExitGroup(group);
     }
 }
Beispiel #5
0
 /// <summary>
 /// 加入一个群组
 /// </summary>
 /// <param name="group">指定的群组</param>
 /// <param name="role">设备在群组中的角色</param>
 /// <param name="communicateType">通讯的网络形式</param>
 public void JoinGroup(GroupDevice group, GroupMemberRole role, CommunicatType communicateType)
 {
     if (CommunicatType.Synchronization == communicateType)
     {
         try
         {
             base.CoSynJoinGroup(group, role);
         }
         catch (System.Exception ex)
         {
             throw ex;
         }
     }
     else
     {
         base.CoAsynJoinGroup(group, role);
     }
 }
Beispiel #6
0
        /// <summary>
        /// 反馈一个应答通讯包, 阻塞式
        /// </summary>
        /// <param name="communicator">应答通讯包</param>
        /// <param name="timeMillionsecond">等待的上限时长</param>
        //public void SynFeedbackCommunicateReplyMessage(ReplyCommunicatePackage communicator, int timeMillionsecond)
        //{
        //    try
        //    {
        //        base.CoSynFeedbackCommunicateReplyMessage(communicator, timeMillionsecond);
        //    }
        //    catch (System.Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        /// <summary>
        /// 创建一个群组
        /// </summary>
        /// <param name="detail">群组的自然语言描述,(UTF-8编码)</param>
        /// <param name="communicateType">发起该请求的网络形式</param>
        /// <returns>立即返回一个GroupDevice(可能未就绪)</returns>
        public GroupDevice CreateGroup(string detail, CommunicatType communicateType)
        {
            if (CommunicatType.Synchronization == communicateType)
            {
                GroupDevice retGroupDevice = null;
                try
                {
                    retGroupDevice = base.CoSynCreateGroup(detail);
                }
                catch (Exception ex)
                {
                    throw (ex as CreateGroupExcetion);
                }
                return(retGroupDevice);
            }
            else
            {
                return(base.CoAsynCreateGroup(detail));
            }
        }