public QwerkController connectToQwerk(UserSessionPrx userSessionPrx, string qwerkUserId)
 {
     // connect to the Qwerk
     Trace.TraceInformation("Connecting to Qwerk [" + qwerkUserId + "]...");
     try
     {
         this.userSessionPrx = userSessionPrx;
         ObjectPrx objectPrx = userSessionPrx.connectToPeer(qwerkUserId);
         if (objectPrx != null)
         {
             QwerkPrx qwerkPrx = QwerkPrxHelper.checkedCast(objectPrx);
             if (qwerkPrx != null)
             {
                 Trace.TraceInformation("Connection successful! (" + Util.identityToString(qwerkPrx.ice_getIdentity()) + ")");
                 return(new QwerkController(qwerkUserId, qwerkPrx, this));
             }
             else
             {
                 Trace.TraceError("   Connection failed!");
             }
         }
         else
         {
             Trace.TraceError("   connectToPeer() returned a null peer.  Bummer.");
         }
     }
     catch (PeerException e)
     {
         Trace.TraceError("   Connection failed due to a PeerException: {0}", e.reason);
         throw e;
     }
     return(null);
 }
예제 #2
0
        public IEnumerator <ITask> DirectLoginHandler(DirectLogin login)
        {
            if (trace)
            {
                LogInfo("DirectLogin Received");
            }

            try
            {
                TerkUserPrx terkUserPrx = directCommunicator.connectToPeer(login.Body.PeerIdentifier);
                if (trace)
                {
                    LogInfo("Connect complete!");
                }
                QwerkPrx qwerkPrx = QwerkPrxHelper.uncheckedCast(terkUserPrx);
                this.qwerkController = new QwerkController(login.Body.PeerIdentifier, qwerkPrx, directCommunicator);
            }
            catch (Exception e)
            {
                string failure = "Failed to connect to Qwerk '" + login.Body.PeerIdentifier + "': " + e;
                LogInfo(failure);
                login.ResponsePort.Post(generateFault(failure));
                yield break;
            }

            login.ResponsePort.Post(DefaultUpdateResponseType.Instance);
            yield break;
        }
예제 #3
0
        public QwerkController(string qwerkUserId, QwerkPrx qwerkProxy, TerkCommunicator communicator)
        {
            this.qwerkProxy = qwerkProxy;
             ServiceProvider serviceProvider = ServiceProviderFactory.getFactory().createServiceProvider(qwerkUserId,
                                                                                                     qwerkProxy,
                                                                                                     communicator);

             ServiceFactory serviceFactory = new QwerkServiceFactory(qwerkProxy);
             // note: the AnalogInputsService is created differently since there isn't really a service of type
             // AnalogInputsService.TYPE_ID.  Currently, the only way to get analog data is from Qwerk's getState() method. So,
             // we use a special service factory (QwerkServiceFactory) which has a reference to the Qwerk proxy which is used
             // to create the AnalogInputsService.  This hackishness will change once we fix the API to fully support all
             // services (if you poke through the code, you'll see that the DigitalIOService is a bit of a hack, too).
             analogInputsService = (AnalogInputsService) serviceFactory.createService(AnalogInputsService.TYPE_ID, null);
             digitalIOService = (DigitalIOService) serviceProvider.getService(DigitalIOService.TYPE_ID, serviceFactory);
             motorService = (MotorService)serviceProvider.getService(MotorService.TYPE_ID, serviceFactory);
             servoService = (ServoService)serviceProvider.getService(ServoService.TYPE_ID, serviceFactory);
             videoStreamService = (VideoStreamService)serviceProvider.getService(VideoStreamService.TYPE_ID, serviceFactory);
        }
        public QwerkController(string qwerkUserId, QwerkPrx qwerkProxy, TerkCommunicator communicator)
        {
            this.qwerkProxy = qwerkProxy;
            ServiceProvider serviceProvider = ServiceProviderFactory.getFactory().createServiceProvider(qwerkUserId,
                                                                                                        qwerkProxy,
                                                                                                        communicator);

            ServiceFactory serviceFactory = new QwerkServiceFactory(qwerkProxy);

            // note: the AnalogInputsService is created differently since there isn't really a service of type
            // AnalogInputsService.TYPE_ID.  Currently, the only way to get analog data is from Qwerk's getState() method. So,
            // we use a special service factory (QwerkServiceFactory) which has a reference to the Qwerk proxy which is used
            // to create the AnalogInputsService.  This hackishness will change once we fix the API to fully support all
            // services (if you poke through the code, you'll see that the DigitalIOService is a bit of a hack, too).
            analogInputsService = (AnalogInputsService)serviceFactory.createService(AnalogInputsService.TYPE_ID, null);
            digitalIOService    = (DigitalIOService)serviceProvider.getService(DigitalIOService.TYPE_ID, serviceFactory);
            motorService        = (MotorService)serviceProvider.getService(MotorService.TYPE_ID, serviceFactory);
            servoService        = (ServoService)serviceProvider.getService(ServoService.TYPE_ID, serviceFactory);
            videoStreamService  = (VideoStreamService)serviceProvider.getService(VideoStreamService.TYPE_ID, serviceFactory);
        }
 internal AnalogInputsServiceImpl(QwerkPrx qwerkPrx)
 {
     this.qwerkPrx = qwerkPrx;
 }
 internal DigitalIOServiceImpl(DigitalOutControllerPrx proxy, QwerkPrx qwerkPrx)
 {
     this.proxy = proxy;
      this.qwerkPrx = qwerkPrx;
 }
예제 #7
0
 internal QwerkServiceFactory(QwerkPrx qwerkProxy)
 {
     getTypeIdToServiceCreatorsMap().Add(AnalogInputsService.TYPE_ID, new AnalogInputServiceCreator(qwerkProxy));
     getTypeIdToServiceCreatorsMap().Add(DigitalIOService.TYPE_ID, new DigitalIOServiceCreator(qwerkProxy));
     getTypeIdToServiceCreatorsMap().Add(VideoStreamService.TYPE_ID, new VideoStreamServiceCreator());
 }
예제 #8
0
 internal DigitalIOServiceCreator(QwerkPrx qwerkProxy)
 {
     this.qwerkProxy = qwerkProxy;
 }
예제 #9
0
 internal AnalogInputServiceCreator(QwerkPrx qwerkProxy)
 {
     this.qwerkProxy = qwerkProxy;
 }
 internal QwerkServiceFactory(QwerkPrx qwerkProxy)
 {
     getTypeIdToServiceCreatorsMap().Add(AnalogInputsService.TYPE_ID, new AnalogInputServiceCreator(qwerkProxy));
      getTypeIdToServiceCreatorsMap().Add(DigitalIOService.TYPE_ID, new DigitalIOServiceCreator(qwerkProxy));
      getTypeIdToServiceCreatorsMap().Add(VideoStreamService.TYPE_ID, new VideoStreamServiceCreator());
 }
 internal DigitalIOServiceCreator(QwerkPrx qwerkProxy)
 {
     this.qwerkProxy = qwerkProxy;
 }
 internal AnalogInputServiceCreator(QwerkPrx qwerkProxy)
 {
     this.qwerkProxy = qwerkProxy;
 }
예제 #13
0
 internal AnalogInputsServiceImpl(QwerkPrx qwerkPrx)
 {
     this.qwerkPrx = qwerkPrx;
 }
예제 #14
0
 internal DigitalIOServiceImpl(DigitalOutControllerPrx proxy, QwerkPrx qwerkPrx)
 {
     this.proxy    = proxy;
     this.qwerkPrx = qwerkPrx;
 }