Index: trunk/psModules/src/camera/pmFPAfile.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfile.c	(revision 16835)
+++ trunk/psModules/src/camera/pmFPAfile.c	(revision 16841)
@@ -435,4 +435,7 @@
   if (!strcasecmp (type, "FRINGE")) {
     return PM_FPA_FILE_FRINGE;
+  }
+  if (!strcasecmp (type, "DARK"))     {
+    return PM_FPA_FILE_DARK;
   }
   if (!strcasecmp (type, "HEADER"))     {
@@ -473,4 +476,6 @@
     case PM_FPA_FILE_FRINGE:
       return ("FRINGE");
+    case PM_FPA_FILE_DARK:
+      return("DARK");
     case PM_FPA_FILE_HEADER:
       return ("HEADER");
Index: trunk/psModules/src/camera/pmFPAfile.h
===================================================================
--- trunk/psModules/src/camera/pmFPAfile.h	(revision 16835)
+++ trunk/psModules/src/camera/pmFPAfile.h	(revision 16841)
@@ -4,6 +4,6 @@
  * @author EAM, IfA
  *
- * @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
- * @date $Date: 2008-02-07 23:45:56 $
+ * @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-03-06 20:47:50 $
  * Copyright 2004-2005 Institute for Astronomy, University of Hawaii
  */
@@ -28,10 +28,11 @@
     PM_FPA_FILE_RAW,
     PM_FPA_FILE_IMAGE,
+    PM_FPA_FILE_MASK,
+    PM_FPA_FILE_WEIGHT,
+    PM_FPA_FILE_FRINGE,
+    PM_FPA_FILE_DARK,
     PM_FPA_FILE_PSF,
     PM_FPA_FILE_JPEG,
     PM_FPA_FILE_KAPA,
-    PM_FPA_FILE_MASK,
-    PM_FPA_FILE_WEIGHT,
-    PM_FPA_FILE_FRINGE,
     PM_FPA_FILE_HEADER,
     PM_FPA_FILE_ASTROM,
Index: trunk/psModules/src/camera/pmFPAfileFitsIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileFitsIO.c	(revision 16835)
+++ trunk/psModules/src/camera/pmFPAfileFitsIO.c	(revision 16841)
@@ -20,4 +20,5 @@
 #include "pmFPACopy.h"
 #include "pmFPAConstruct.h"
+#include "pmDark.h"
 
 pmFPA *pmFPAfileSuitableFPA(const pmFPAfile *file, const pmFPAview *view, const pmConfig *config)
@@ -243,4 +244,11 @@
 }
 
+bool pmFPAviewReadFitsDark(const pmFPAview *view, pmFPAfile *file)
+{
+    PS_ASSERT_PTR_NON_NULL(view, false);
+    PS_ASSERT_PTR_NON_NULL(file, false);
+    return fpaViewReadFitsImage(view, file, pmFPAReadDark, pmChipReadDark, pmCellReadDark);
+}
+
 bool pmFPAviewReadFitsHeaderSet(const pmFPAview *view, pmFPAfile *file)
 {
@@ -337,4 +345,11 @@
     PS_ASSERT_PTR_NON_NULL(file, false);
     return fpaViewWriteFitsImage(view, file, config, pmFPAWriteWeight, pmChipWriteWeight, pmCellWriteWeight);
+}
+
+bool pmFPAviewWriteFitsDark(const pmFPAview *view, pmFPAfile *file, const pmConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(view, false);
+    PS_ASSERT_PTR_NON_NULL(file, false);
+    return fpaViewWriteFitsImage(view, file, config, pmFPAWriteDark, pmChipWriteDark, pmCellWriteDark);
 }
 
Index: trunk/psModules/src/camera/pmFPAfileFitsIO.h
===================================================================
--- trunk/psModules/src/camera/pmFPAfileFitsIO.h	(revision 16835)
+++ trunk/psModules/src/camera/pmFPAfileFitsIO.h	(revision 16841)
@@ -5,6 +5,6 @@
  * @author PAP, IfA
  *
- * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-07-14 03:19:01 $
+ * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-03-06 20:47:50 $
  * Copyright 2004-2005 Institute for Astronomy, University of Hawaii
  */
@@ -30,4 +30,9 @@
                             );
 
+/// Read a dark into the current view
+bool pmFPAviewReadFitsDark(const pmFPAview *view,  ///< View specifying level of interest
+                           pmFPAfile *file ///< FPA file into which to read
+    );
+
 /// Read an image header into the current view
 bool pmFPAviewReadFitsHeaderSet(const pmFPAview *view,  ///< View specifying level of interest
@@ -52,4 +57,10 @@
                               const pmConfig *config ///< Configuration
                              );
+
+/// Write the dark for the specified view
+bool pmFPAviewWriteFitsDark(const pmFPAview *view, ///< View specifying level of interest
+                            pmFPAfile *file, ///< FPA file to write
+                            const pmConfig *config ///< Configuration
+    );
 
 /// Write a PHU for a fits image if needed
Index: trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileIO.c	(revision 16835)
+++ trunk/psModules/src/camera/pmFPAfileIO.c	(revision 16841)
@@ -174,6 +174,9 @@
         status = pmFPAviewReadFitsHeaderSet(view, file);
         break;
+      case PM_FPA_FILE_DARK:
+        status = pmFPAviewReadFitsDark(view, file);
+        break;
       case PM_FPA_FILE_FRINGE:
-        status = pmFPAviewReadFitsImage (view, file);
+        status = pmFPAviewReadFitsImage(view, file);
         if (status) {
             if (!pmFPAviewReadFitsTable(view, file, "FRINGE")) {
@@ -247,8 +250,9 @@
 
     switch (file->type) {
-    case PM_FPA_FILE_IMAGE:
-    case PM_FPA_FILE_MASK:
-    case PM_FPA_FILE_WEIGHT:
-    case PM_FPA_FILE_FRINGE: {
+      case PM_FPA_FILE_IMAGE:
+      case PM_FPA_FILE_MASK:
+      case PM_FPA_FILE_WEIGHT:
+      case PM_FPA_FILE_FRINGE:
+      case PM_FPA_FILE_DARK: {
             // create FPA structure component based on view
             psMetadata *format = file->format; // Camera format configuration
@@ -397,4 +401,5 @@
     fitsType |= (file->type == PM_FPA_FILE_HEADER);
     fitsType |= (file->type == PM_FPA_FILE_FRINGE);
+    fitsType |= (file->type == PM_FPA_FILE_DARK);
     fitsType |= (file->type == PM_FPA_FILE_CMP);
     fitsType |= (file->type == PM_FPA_FILE_CMF);
@@ -451,4 +456,7 @@
       case PM_FPA_FILE_HEADER:
         psAbort ("no HEADER write functions defined");
+        break;
+      case PM_FPA_FILE_DARK:
+        status = pmFPAviewWriteFitsDark(view, file, config);
         break;
       case PM_FPA_FILE_FRINGE:
@@ -532,4 +540,5 @@
       case PM_FPA_FILE_HEADER:
       case PM_FPA_FILE_FRINGE:
+      case PM_FPA_FILE_DARK:
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
@@ -593,4 +602,5 @@
       case PM_FPA_FILE_HEADER:
       case PM_FPA_FILE_FRINGE:
+      case PM_FPA_FILE_DARK:
         status = pmFPAviewFreeData(view, file);
         break;
@@ -736,4 +746,5 @@
       case PM_FPA_FILE_HEADER:
       case PM_FPA_FILE_FRINGE:
+      case PM_FPA_FILE_DARK:
       case PM_FPA_FILE_CMF:
       case PM_FPA_FILE_PSF:
@@ -882,4 +893,5 @@
       case PM_FPA_FILE_MASK:
       case PM_FPA_FILE_WEIGHT:
+      case PM_FPA_FILE_DARK:
       case PM_FPA_FILE_FRINGE:
         status = pmFPAviewFitsWritePHU (view, file, config);
