private static void SubFrameChecking(DEVICENAME DeviceName, StationHandler ExistingStation) { try { int STARTX = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_STARTX).Value); int STARTY = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_STARTX).Value); int CAMERAXSIZE = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_CCD_CAMERAXSIZE).Value); int CAMERAYSIZE = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_CCD_CAMERAYSIZE).Value); int NUMX = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_STARTX).Value); int NUMY = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_STARTX).Value); int BINX = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_CCD_BINX).Value); int BINY = Convert.ToInt32(ExistingStation.GetInformation(DeviceName, IMAGING.IMAGING_CCD_BINY).Value); if (STARTX > 0 && STARTY > 0 && NUMX < CAMERAXSIZE && NUMY < CAMERAYSIZE && BINX > 1 && BINY > 1) { ExistingStation.NewIMAGINGInformation(DeviceName, IMAGING.IMAGING_CCD_ISSUBFRAMEON, true, DateTime.UtcNow); } else { ExistingStation.NewIMAGINGInformation(DeviceName, IMAGING.IMAGING_CCD_ISSUBFRAMEON, false, DateTime.UtcNow); } } catch { ExistingStation.NewIMAGINGInformation(DeviceName, IMAGING.IMAGING_CCD_ISSUBFRAMEON, false, DateTime.UtcNow); } }
public static void NewIMAGINGInformation(STATIONNAME StationName, DEVICENAME DeviceName, dynamic FieldName, Object Value, DateTime DataTimestamp) { StationHandler ExistingStation = KeeperData.FirstOrDefault(Item => Item.StationName == StationName); if (ExistingStation != null) { ExistingStation.NewIMAGINGInformation(DeviceName, FieldName, Value, DataTimestamp); switch (FieldName) { case IMAGING.IMAGING_CCD_ACTIVE_IMAGE_FILENAME: ActiveFileName(Value.ToString()); break; case IMAGING.IMAGING_CCD_DOWNLOAD_STATUS: if (Value.ToString() == "Completed") { LoadFITSImage(StationName, DeviceName, ExistingStation); } break; case IMAGING.IMAGING_PREVIEW_DOWNLOAD_STATUS: if (Value.ToString() == "Completed") { LoadPerviewImage(StationName, DeviceName, ExistingStation); } break; case IMAGING.IMAGING_STARTX: SubFrameChecking(DeviceName, ExistingStation); break; case IMAGING.IMAGING_STARTY: SubFrameChecking(DeviceName, ExistingStation); break; case IMAGING.IMAGING_NUMX: SubFrameChecking(DeviceName, ExistingStation); break; case IMAGING.IMAGING_NUMY: SubFrameChecking(DeviceName, ExistingStation); break; case IMAGING.IMAGING_CCD_BINX: SubFrameChecking(DeviceName, ExistingStation); break; case IMAGING.IMAGING_CCD_BINY: SubFrameChecking(DeviceName, ExistingStation); break; } } }
private static void LoadFITSImage(STATIONNAME StationName, DEVICENAME DeviceName, StationHandler ExistingStation) { Image <Gray, UInt16> ImageData = null; Task PreviewTask = Task.Run(async() => { if (Client == null) { Client = new FtpClient("192.168.2.217"); Client.Credentials = new NetworkCredential("astronetbot", "P@ssw0rd"); Client.ConnectTimeout = 1000; } if (!Client.IsConnected) { Client.Connect(); } String FilePath = "/files/" + StationName.ToString() + "/FITS/" + FileName; if (Client.FileExists(FilePath)) { Client.DownloadFile(@"FITS/" + FileName, FilePath); ImageData = FITSHandler.ReadFITSFile(@"FITS/" + FileName); if (ImageData != null) { ExistingStation.NewIMAGINGInformation(DeviceName, IMAGING.IMAGING_CCD_IMAGEARRAY16, ImageData.Data, DateTime.UtcNow); } } else { await Task.Delay(1000); LoadFITSImage(StationName, DeviceName, ExistingStation); } }); /* * String PathName = null; * * switch (StationName) * { * case STATIONNAME.AIRFORCE: PathName = @"c:\FTP\AF\Lastest.FITS"; break; * case STATIONNAME.ASTROPARK: PathName = @"c:\FTP\ASP\Lastest.FITS"; break; * case STATIONNAME.CHACHOENGSAO: PathName = @"c:\FTP\CCO\Lastest.FITS"; break; * case STATIONNAME.NAKHONRATCHASIMA: PathName = @"c:\FTP\NKA\Lastest.FITS"; break; * case STATIONNAME.CHINA: PathName = @"c:\FTP\CHA\Lastest.FITS"; break; * case STATIONNAME.AUSTRALIA: PathName = @"c:\FTP\AUS\Lastest.FITS"; break; * case STATIONNAME.USA: PathName = @"c:\FTP\USA\Lastest.FITS"; break; * } * * if (PathName != null) * { * Task ImagingTask = Task.Run(() => * { * ImageData = FITSHandler.ReadFITSFile(PathName); * * if (ImageData != null) * ExistingStation.NewIMAGINGInformation(DeviceName, IMAGING.IMAGING_CCD_IMAGEARRAY16, ImageData.Data, DateTime.UtcNow); * }); * } */ }