void UpdateStatus() { try { BatteryStates oldBatteryStates = BatteryStates.NotCharging; if (this.status != null) { oldBatteryStates = this.status.charging; } RovioStatusReport report = api.Movement.GetReport(); if (report == null) { return; } if (oldBatteryStates != BatteryStates.Normal && report.charging == BatteryStates.Normal) {//如果开始在充电位置,现在活动 this.settings.SetBlueLight(this.settings.BlueLights, true); } //!!!注意,这里的status引用有可能本来就是report。因为report实例不重新初始化。 this.status = report; if (this.StatusChanged != null) { this.StatusChanged(this, new StatusChangedEventArgs(report)); } } catch (Exception) { } finally { timerRefreshStatus.Start(); } }
internal static RovioStatusReport Parse(RovioStatusReport report, RovioResponse dic) { report.str = dic.ToString(); report.Location = new RovioLocation( short.Parse(dic["x"]), short.Parse(dic["y"]), double.Parse(dic["theta"])); report.parseRoomId(dic["room"]); report.parseNavStrength(dic["ss"]); //如果信号太弱,将RoomId置为-1。 if (!report.HasNavSignal) { report.RoomID = -1; } report.BeaconSignalStrength = UInt16.Parse(dic["beacon"]); report.BeaconPoitionX = Int16.Parse(dic["beacon_x"]); report.NextRoomID = int.Parse(dic["next_room"]); report.NextRoomSS = UInt16.Parse(dic["next_room_ss"]); report.parseNavState(dic["state"]); report.ui_status = int.Parse(dic["ui_status"]); report.resistance = int.Parse(dic["resistance"]); report.sm = int.Parse(dic["sm"]); report.WayPointIndex = int.Parse(dic["pp"]); report.parseFlags(dic["flags"]); report.brightness = byte.Parse(dic["brightness"]); report.ResolutionId = int.Parse(dic["resolution"]); report.VideoCompression = (VideoCompression)int.Parse(dic["video_compression"]); report.frame_rate = int.Parse(dic["frame_rate"]); report.Privilege = (UserPrivilege)int.Parse(dic["privilege"]); report.AuthenticationRequired = (int.Parse(dic["user_check"]) == 1);// ???? == 0 //0 (lowest) – 31 (highest) report.speaker_volume = double.Parse(dic["speaker_volume"]) / 31.0; //0 (lowest) – 31 (highest) report.mic_volume = double.Parse(dic["mic_volume"]) / 31.0; report.parseWifiStrength(dic["wifi_ss"]); // 0 = Not showing the time. 1 = Showing time. report.show_time = (int.Parse(dic["show_time"]) == 1); report.ddns_state = (DdnsStates)int.Parse(dic["ddns_state"]); report.email_state = int.Parse(dic["email_state"]); report.parseBatteryStrength(dic["battery"]); report.parseCharging(dic["charging"]); report.HeadPositionTickCount = int.Parse(dic["head_position"]); report.ACFrequency = (ACFrequency)int.Parse(dic["ac_freq"]); return(report); }
internal override void Load(Dictionary <FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { RovioAPI api = owner.rovio.API; this.brightness = report.brightness; this.resolutionId = report.ResolutionId; this.videoCompression = report.VideoCompression; this.frameRate = report.frame_rate; this.acFrequency = report.ACFrequency; this.modified = false; }
internal override void Load(Dictionary <FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { MailSettings settings = owner.rovio.API.GetMail(); this.enabled = settings.Enabled; this.mailServer = settings.MailServer; this.port = settings.Port; this.sender = settings.Sender; this.receiver = settings.Receiver; this.subject = settings.Subject; this.body = settings.Body; this.userName = settings.UserName; this.password = settings.Password; this.authRequired = settings.AuthRequired; this.interval = settings.Interval; this.modified = false; }
internal override void Load(Dictionary<FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { //此处跟Rovio Web设置保持一致,范围是1-10, 1为最慢 this.movementSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.MovementSpeed], 1, 10, 0.5); this.turnSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.TurnSpeed], 1, 10, 0.5); this.rotSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.RotSpeed], 1, 10, 0.8); this.modified = false; }
public void Open(string host, int port, int rtspPort, NetworkCredential credentials, BackgroundWorker bw = null) { try { this.api = new RovioAPI(host, port, credentials); this.api.CommandTimeout = this.commandTimeout; this.RtspUrl = string.Format("rtsp://{0}:{1}@{2}{3}/webcam", credentials.UserName, credentials.Password, host, (rtspPort == 554) ? "" : ":" + rtspPort); this.MJpegUrl = string.Format("http://{0}{1}/GetData.cgi", host, ((port == 80) ? "" : ":" + port)); if (bw != null) { bw.ReportProgress(0, string.Format("登录到 {0}{1} ...", host, (port == 80) ? "" : ":" + port)); } //检查是否登录 this.userInfo = api.GetMyself(true); FirmwareVersion firmware = api.GetVer(); string libNSVersion = api.Movement.GetLibNSVersion(); this.Version = new RovioVersionInfo(firmware, libNSVersion); if (bw != null) { bw.ReportProgress(0, "登录成功,载入Rovio配置..."); } this.settings.Load(); this.networkConfig = api.GetNetworkConfig(); //resetMovementSettings this.movement_speed = DEFAULT_SPEED; this.turn_speed = DEFAULT_TURN_SPEED; this.rot_speed = DEFAULT_ROT_SPEED; // upnp settings need to be called as soon as possible for RTSP feeds //loadUPnPFields this.upnp_info = api.GetUPnP(); //updateOnlineStatus(); //updateUPnPFields(); //initial_upnp_load = false; // need to know web port for ActiveX //loadWebPort this.net_web_port = api.GetHttp(); // need to know the manual external ip //refreshPathList this.listWays.Clear(); string[] list = api.Movement.GetPathList(); this.listWays.AddRange(list); //loadForceMJPEGFromURL(); //var force_reboot = getQueryVariable("reboot"); //if(force_reboot != null && parseInt(force_reboot)){ // $('settings_dialog').style.display = 'none'; // selectTab($('sidetab_1')); // initReboot(); // return; //} //access_settings_panel = 1; //$('move_ir').checked = IR_val; if (userInfo.Group == UserGroups.Administrator) {//管理员账号 // need to know if we are using a domain for checking external access //loadDynDNSSettings(); ////loadSettingsPanels(); //setServerTime(); //getEvoVersion(); //getWBVersion(); //loadSMTPSettings(); //setTimeout('getLatestVersion()',5000); } //if(!user_guest){ //setTimeout("access_settings_panel = 1",1000); //} RovioStatusReport report = api.Movement.GetReport(); this.status = report; timerRefreshStatus.Start(); timerMovement.Start(); StartWorkerThread(); isOpen = true; } catch (Exception ex) { this.api = null; isOpen = false; throw ex; } }
internal abstract void Load(Dictionary<FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport);
internal override void Load(Dictionary<FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { MailSettings settings = owner.rovio.API.GetMail(); this.enabled = settings.Enabled; this.mailServer = settings.MailServer; this.port = settings.Port; this.sender = settings.Sender; this.receiver = settings.Receiver; this.subject = settings.Subject; this.body = settings.Body; this.userName = settings.UserName; this.password = settings.Password; this.authRequired = settings.AuthRequired; this.interval = settings.Interval; this.modified = false; }
internal abstract void Load(Dictionary <FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport);
public void Load() { RovioAPI api = rovio.API; MovementController movement = api.Movement; CameraController camera = api.Camera; RovioStatusReport report = movement.GetReport(); RovioMcuReport mcuReport = movement.GetMCUReport(); Dictionary <FlashParameters, Int32> flashParameters = movement.ReadAllParameters(); this.Name = api.GetName(); this.DateTime = api.GetTime(); this.MaintainAspectRatio = RovioAPI.GetBoolean(flashParameters[FlashParameters.MaintainAspectRatio]); ///// <summary> ///// i_LR ///// </summary> //latency = 4, this.PlayerType = (VideoPlayers)flashParameters[FlashParameters.video_player]; ///// <summary> ///// i_UPnP upnp just enabled ///// </summary> //upnp_just_enabled = 6, ///// <summary> ///// i_SS show status ///// </summary> //show_online_status = 7, ///// <summary> ///// i_MIIP1 manual ip ///// </summary> //manual_internetip = 8, ///// <summary> ///// i_MIIP2 manual ip ///// </summary> //manual_internetip2 = 9, ///// <summary> ///// i_VIA verify internet access ///// </summary> //net_verify_access = 10, this.FirmwareAlert = RovioAPI.GetBoolean( flashParameters[FlashParameters.firmware_alert]); ///// <summary> ///// i_AVF auto set video frequency ///// </summary> //video_freq = 12, this.IrDetectEnabled = ((report.Flags & RovioFlags.IRDetectorActivated) == RovioFlags.IRDetectorActivated); this.HeadLight = mcuReport.HeadLight; this.BlueLights = (BlueLightState)RovioAPI.GetByte(flashParameters[FlashParameters.BlueLights], (byte)BlueLightState.All); this.NightMode = (NightMode)RovioAPI.GetByte(flashParameters[FlashParameters.NightMode], (byte)NightMode.Normal); this.SpeakerVolume = report.speaker_volume; this.MicrophoneVolume = report.mic_volume; groupVideo.Load(flashParameters, report, mcuReport); groupMovement.Load(flashParameters, report, mcuReport); groupMail.Load(flashParameters, report, mcuReport); }
internal override void Load(Dictionary<FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { RovioAPI api = owner.rovio.API; this.brightness = report.brightness; this.resolutionId = report.ResolutionId; this.videoCompression = report.VideoCompression; this.frameRate = report.frame_rate; this.acFrequency = report.ACFrequency; this.modified = false; }
internal override void Load(Dictionary <FlashParameters, Int32> flashParameters, RovioStatusReport report, RovioMcuReport mcuReport) { //此处跟Rovio Web设置保持一致,范围是1-10, 1为最慢 this.movementSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.MovementSpeed], 1, 10, 0.5); this.turnSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.TurnSpeed], 1, 10, 0.5); this.rotSpeed = RovioAPI.GetDouble( flashParameters[FlashParameters.RotSpeed], 1, 10, 0.8); this.modified = false; }
public StatusChangedEventArgs(RovioStatusReport report) { this.Data = report; }
internal static RovioStatusReport Parse(RovioStatusReport report, RovioResponse dic) { report.str = dic.ToString(); report.Location = new RovioLocation( short.Parse(dic["x"]), short.Parse(dic["y"]), double.Parse(dic["theta"])); report.parseRoomId(dic["room"]); report.parseNavStrength(dic["ss"]); //如果信号太弱,将RoomId置为-1。 if (!report.HasNavSignal) report.RoomID = -1; report.BeaconSignalStrength = UInt16.Parse(dic["beacon"]); report.BeaconPoitionX = Int16.Parse(dic["beacon_x"]); report.NextRoomID = int.Parse(dic["next_room"]); report.NextRoomSS = UInt16.Parse(dic["next_room_ss"]); report.parseNavState(dic["state"]); report.ui_status = int.Parse(dic["ui_status"]); report.resistance = int.Parse(dic["resistance"]); report.sm = int.Parse(dic["sm"]); report.WayPointIndex = int.Parse(dic["pp"]); report.parseFlags(dic["flags"]); report.brightness = byte.Parse(dic["brightness"]); report.ResolutionId = int.Parse(dic["resolution"]); report.VideoCompression = (VideoCompression)int.Parse(dic["video_compression"]); report.frame_rate = int.Parse(dic["frame_rate"]); report.Privilege = (UserPrivilege)int.Parse(dic["privilege"]); report.AuthenticationRequired = (int.Parse(dic["user_check"]) == 1);// ???? == 0 //0 (lowest) – 31 (highest) report.speaker_volume = double.Parse(dic["speaker_volume"]) / 31.0; //0 (lowest) – 31 (highest) report.mic_volume = double.Parse(dic["mic_volume"]) / 31.0; report.parseWifiStrength(dic["wifi_ss"]); // 0 = Not showing the time. 1 = Showing time. report.show_time = (int.Parse(dic["show_time"]) == 1); report.ddns_state = (DdnsStates)int.Parse(dic["ddns_state"]); report.email_state = int.Parse(dic["email_state"]); report.parseBatteryStrength(dic["battery"]); report.parseCharging(dic["charging"]); report.HeadPositionTickCount = int.Parse(dic["head_position"]); report.ACFrequency = (ACFrequency)int.Parse(dic["ac_freq"]); return report; }