Example #1
0
 private void OnRegisterSuccess(RegisterDeviceResponse response, object cookie)
 {
     if (Service.Get <CurrentPlayer>().CampaignProgress.FueInProgress)
     {
         Service.Get <ServerAPI>().Enabled = false;
     }
 }
Example #2
0
        ///// <summary>
        ///// Applies the device info to a deviceInfo object. This is not used in the demo program, but available for developers if needed.
        ///// </summary>
        ///// <param name="dInfo"></param>
        //private void SaveAndApplyDeviceInfo(GetDeviceInfoResponse dInfo)
        //{
        //    _deviceInfo = dInfo;
        //}

        #region API Calls
        /// <summary>
        /// Registers the control system with CloudOS service
        /// </summary>
        private void RegisterControlSystem()
        {
            try
            {
                //Register device
                _deviceCred =
                    Api.RegisterDevice(DeviceSettings.partnerId, DeviceSettings.macAddress, DeviceSettings.serialNumber, DeviceSettings.model, DeviceSettings.fwVersion);

                //Save credentials locally
                _dataStore.SaveCreds(DeviceSettings.serialNumber, _deviceCred);
            }
            catch (DeviceModelNotFoundException)
            {
                //Model is not configured correctly in CloudOS
                ErrorLog.Error("Device's model {0} is not configured in SyncPro's CloudOS. Please contact [email protected]", DeviceSettings.model);
            }
            catch (DeviceAlreadyRegisteredException)
            {
                //Houston - we have a problem. The device is registered with the server, but we cannot find it's credentials.
                ErrorLog.Error("Device with SN {0} is already registered with the server, but lost it's access key. Please delete the device first, and try to register again", DeviceSettings.serialNumber);
            }
            catch (Exception)
            {
                //Todo: Some other exception... Timeout? Should we try and register again?
                ErrorLog.Error("Device with SN {0} failed to registers for unknown reason. Please contact your service provider", DeviceSettings.serialNumber);
            }
        }
Example #3
0
        /// <summary>
        /// Get the device's credentials - either locally, or try to register with the server (if this is the first time).
        /// Initialize the DataStore and Api classes
        /// </summary>
        private void InitializeCloudApi()
        {
            _dataStore = new DataStore();

            try
            {
                //First, see if we can find local credentials file
                _deviceCred = _dataStore.ReadCreds(DeviceSettings.serialNumber);

                if (_deviceCred == null)
                {
                    //We could not find local device creds, we should try and register
                    RegisterControlSystem();
                }

                if (_deviceCred != null)
                {
                    _cloudApi = new Api(_deviceCred.id, _deviceCred.access_key);    //Either way - we have the credentials and we can init the Api library
                }
            }
            catch (DeviceAlreadyRegisteredException ex)
            {
                //We could not find local credentials (lost them), tried to register, but the device is already registerd.
                //We must first delete the device from the tenenat.
                ErrorLog.Exception("Could not register the device. A Device with these SN and MAC is already registered with the server. Delete the device, and try again", ex);
            }
        }
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext context)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse  = context.HttpResponse;
            registerDeviceResponse.Code          = context.StringValue("RegisterDevice.Code");
            registerDeviceResponse.Message       = context.StringValue("RegisterDevice.Message");
            registerDeviceResponse.RequestId     = context.StringValue("RegisterDevice.RequestId");
            registerDeviceResponse.RetryInterval = context.StringValue("RegisterDevice.RetryInterval");

            return(registerDeviceResponse);
        }
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse = _ctx.HttpResponse;
            registerDeviceResponse.ErrorCode    = _ctx.IntegerValue("RegisterDevice.ErrorCode");
            registerDeviceResponse.Success      = _ctx.BooleanValue("RegisterDevice.Success");
            registerDeviceResponse.RequestId    = _ctx.StringValue("RegisterDevice.RequestId");
            registerDeviceResponse.Message      = _ctx.StringValue("RegisterDevice.Message");

            RegisterDeviceResponse.RegisterDevice_DeviceInfo deviceInfo = new RegisterDeviceResponse.RegisterDevice_DeviceInfo();
            deviceInfo.ChannelType     = _ctx.StringValue("RegisterDevice.DeviceInfo.ChannelType");
            deviceInfo.RegisterTime    = _ctx.LongValue("RegisterDevice.DeviceInfo.RegisterTime");
            deviceInfo.DeviceName      = _ctx.StringValue("RegisterDevice.DeviceInfo.DeviceName");
            deviceInfo.DeviceSessionId = _ctx.StringValue("RegisterDevice.DeviceInfo.DeviceSessionId");
            deviceInfo.MessageKey      = _ctx.StringValue("RegisterDevice.DeviceInfo.MessageKey");
            deviceInfo.ScreenCode      = _ctx.StringValue("RegisterDevice.DeviceInfo.ScreenCode");

            RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_MqttParam mqttParam = new RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_MqttParam();
            mqttParam.ClientId         = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.ClientId");
            mqttParam.GroupId          = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.GroupId");
            mqttParam.CleanSession     = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.CleanSession");
            mqttParam.Password         = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.Password");
            mqttParam.Port             = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.Port");
            mqttParam.Host             = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.Host");
            mqttParam.Topic            = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.Topic");
            mqttParam.SDKClientPort    = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.SDKClientPort");
            mqttParam.TLSPort          = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.TLSPort");
            mqttParam.UseTLS           = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.UseTLS");
            mqttParam.UserName         = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.UserName");
            mqttParam.ReconnectTimeout = _ctx.StringValue("RegisterDevice.DeviceInfo.MqttParam.ReconnectTimeout");
            deviceInfo.MqttParam       = mqttParam;

            RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_AuthWsChannelConfig authWsChannelConfig = new RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_AuthWsChannelConfig();
            authWsChannelConfig.AuthWsUrl         = _ctx.StringValue("RegisterDevice.DeviceInfo.AuthWsChannelConfig.AuthWsUrl");
            authWsChannelConfig.WsOuterReconnTime = _ctx.IntegerValue("RegisterDevice.DeviceInfo.AuthWsChannelConfig.WsOuterReconnTime");
            authWsChannelConfig.Token             = _ctx.StringValue("RegisterDevice.DeviceInfo.AuthWsChannelConfig.Token");
            deviceInfo.AuthWsChannelConfig        = authWsChannelConfig;

            RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_SlsConfig slsConfig = new RegisterDeviceResponse.RegisterDevice_DeviceInfo.RegisterDevice_SlsConfig();
            slsConfig.Project                 = _ctx.StringValue("RegisterDevice.DeviceInfo.SlsConfig.Project");
            slsConfig.LogStore                = _ctx.StringValue("RegisterDevice.DeviceInfo.SlsConfig.LogStore");
            slsConfig.LogServiceEndpoint      = _ctx.StringValue("RegisterDevice.DeviceInfo.SlsConfig.LogServiceEndpoint");
            deviceInfo.SlsConfig              = slsConfig;
            registerDeviceResponse.DeviceInfo = deviceInfo;

            return(registerDeviceResponse);
        }
Example #6
0
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse = _ctx.HttpResponse;
            registerDeviceResponse.Message      = _ctx.StringValue("RegisterDevice.Message");
            registerDeviceResponse.RequestId    = _ctx.StringValue("RegisterDevice.RequestId");
            registerDeviceResponse.ErrorCode    = _ctx.IntegerValue("RegisterDevice.ErrorCode");
            registerDeviceResponse.ErrorMessage = _ctx.StringValue("RegisterDevice.ErrorMessage");

            RegisterDeviceResponse.RegisterDevice_Data data = new RegisterDeviceResponse.RegisterDevice_Data();
            data.Rid = _ctx.StringValue("RegisterDevice.Data.Rid");
            registerDeviceResponse.Data = data;

            return(registerDeviceResponse);
        }
Example #7
0
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext context)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse = context.HttpResponse;
            registerDeviceResponse.RequestId    = context.StringValue("RegisterDevice.RequestId");
            registerDeviceResponse.Success      = context.BooleanValue("RegisterDevice.Success");
            registerDeviceResponse.ErrorMessage = context.StringValue("RegisterDevice.ErrorMessage");

            RegisterDeviceResponse.RegisterDevice_Data data = new RegisterDeviceResponse.RegisterDevice_Data();
            data.IotId                  = context.StringValue("RegisterDevice.Data.IotId");
            data.ProductKey             = context.StringValue("RegisterDevice.Data.ProductKey");
            data.DeviceName             = context.StringValue("RegisterDevice.Data.DeviceName");
            data.DeviceSecret           = context.StringValue("RegisterDevice.Data.DeviceSecret");
            registerDeviceResponse.Data = data;

            return(registerDeviceResponse);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            RegisterDeviceResponse response = new RegisterDeviceResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("DeviceId", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.DeviceId = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        //在某一产品下创建一台设备
        public void TestRegisterDevice()
        {
            DefaultAcsClient acsClient = Demo.IotClient.GetClient();

            RegisterDeviceRequest request = new RegisterDeviceRequest();

            request.ProductKey = "<productKey>";
            request.DeviceName = "device0822";


            RegisterDeviceResponse response = acsClient.GetAcsResponse(request);

            Console.WriteLine(response.Success);
            Console.WriteLine(response.ErrorMessage);

            RegisterDeviceResponse.RegisterDevice_Data device = response.Data;
            Console.WriteLine("Device IotId: " + device.IotId);
            Console.WriteLine("Device Secret: " + device.DeviceSecret);
            Console.WriteLine("Device Name: " + device.DeviceName);
        }
Example #10
0
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse   = _ctx.HttpResponse;
            registerDeviceResponse.Code           = _ctx.StringValue("RegisterDevice.Code");
            registerDeviceResponse.HttpStatusCode = _ctx.IntegerValue("RegisterDevice.HttpStatusCode");
            registerDeviceResponse.Message        = _ctx.StringValue("RegisterDevice.Message");
            registerDeviceResponse.RequestId      = _ctx.StringValue("RegisterDevice.RequestId");

            List <string> registerDeviceResponse_params = new List <string>();

            for (int i = 0; i < _ctx.Length("RegisterDevice.Params.Length"); i++)
            {
                registerDeviceResponse_params.Add(_ctx.StringValue("RegisterDevice.Params[" + i + "]"));
            }
            registerDeviceResponse._Params = registerDeviceResponse_params;

            return(registerDeviceResponse);
        }
Example #11
0
        public static RegisterDeviceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            RegisterDeviceResponse registerDeviceResponse = new RegisterDeviceResponse();

            registerDeviceResponse.HttpResponse = _ctx.HttpResponse;
            registerDeviceResponse.RequestId    = _ctx.StringValue("RegisterDevice.RequestId");
            registerDeviceResponse.Success      = _ctx.BooleanValue("RegisterDevice.Success");
            registerDeviceResponse.Code         = _ctx.StringValue("RegisterDevice.Code");
            registerDeviceResponse.ErrorMessage = _ctx.StringValue("RegisterDevice.ErrorMessage");

            RegisterDeviceResponse.RegisterDevice_Data data = new RegisterDeviceResponse.RegisterDevice_Data();
            data.IotId                  = _ctx.StringValue("RegisterDevice.Data.IotId");
            data.ProductKey             = _ctx.StringValue("RegisterDevice.Data.ProductKey");
            data.DeviceName             = _ctx.StringValue("RegisterDevice.Data.DeviceName");
            data.DeviceSecret           = _ctx.StringValue("RegisterDevice.Data.DeviceSecret");
            data.DevEui                 = _ctx.StringValue("RegisterDevice.Data.DevEui");
            data.JoinEui                = _ctx.StringValue("RegisterDevice.Data.JoinEui");
            data.Nickname               = _ctx.StringValue("RegisterDevice.Data.Nickname");
            registerDeviceResponse.Data = data;

            return(registerDeviceResponse);
        }
Example #12
0
 /// <summary>
 /// Saves the credentials of the device to the local file system
 /// </summary>
 /// <param name="serialNumber">The device's serial number</param>
 /// <param name="cred">Credentials object</param>
 public void SaveCreds(string serialNumber, RegisterDeviceResponse cred)
 {
     FileMethods.WriteJsonToFile(CredFileName(serialNumber), cred);
 }