IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 9, 2006, 3:55:20 PM (20 years ago)
Author:
Paul Price
Message:

Was having trouble reading and writing concepts at different levels. Added 'propagateUp' and 'propagateDown' flags to the pmConceptsRead and pmConceptsWrite functions so we can read up and down the hierarchy. For example, when you read a header at the chip level, it may be a PHU so that you want the FPA to also read concepts from it if it doesn't have its own HDU, and you want the cell to read concepts from it if it doesn't have its own HDU. But if I add a PHU, I only want to propagate upwards, because the downwards propagation will occur when I read the header lower down.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/pmFPAHeader.c

    r7314 r7469  
    66#include "pmConcepts.h"
    77#include "pmFPAHeader.h"
    8 
    9 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    10 // File-static (private) functions
    11 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    12 
    13 // Read concepts for all cells in a chip
    14 static bool chipConcepts(pmChip *chip   // The chip for which to read the concepts
    15                         )
    16 {
    17     assert(chip);
    18 
    19     bool status = true;                 // Status of concept reading
    20     status |= pmConceptsReadChip(chip, PM_CONCEPT_SOURCE_HEADER, false, NULL);
    21     psArray *cells = chip->cells;       // The cells
    22     for (int i = 0; i < cells->n; i++) {
    23         pmCell *cell = cells->data[i];  // The cell of interest
    24         if (!cell) {
    25             continue;
    26         }
    27         status |= pmConceptsReadCell(cell, PM_CONCEPT_SOURCE_HEADER, false, NULL);
    28     }
    29 
    30     return status;
    31 }
    32 
    33 // Read concepts for all chips in an FPA
    34 static bool fpaConcepts(pmFPA *fpa   // The FPA for which to read the concepts
    35                        )
    36 {
    37     assert(fpa);
    38 
    39     bool status = true;                 // Status of concept reading
    40     status |= pmConceptsReadFPA(fpa, PM_CONCEPT_SOURCE_HEADER, NULL);
    41     psArray *chips = fpa->chips;        // The chips
    42     for (int i = 0; i < chips->n; i++) {
    43         pmChip *chip = chips->data[i];  // The chip of interest
    44         if (!chip) {
    45             continue;
    46         }
    47         status |= chipConcepts(chip);
    48     }
    49 
    50     return status;
    51 }
    52 
    538
    549//////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    9045    }
    9146
    92     if (!chipConcepts(chip)) {
     47    if (!pmConceptsReadChip(chip, PM_CONCEPT_SOURCE_HEADER, true, true, NULL)) {
    9348        psError(PS_ERR_UNKNOWN, false, "Unable to read concepts for chip.\n");
    9449        return false;
     
    11469    }
    11570
    116     if (!fpaConcepts(fpa)) {
     71    if (!pmConceptsReadFPA(fpa, PM_CONCEPT_SOURCE_HEADER, true, NULL)) {
    11772        psError(PS_ERR_UNKNOWN, false, "Unable to read concepts for FPA.\n");
    11873        return false;
Note: See TracChangeset for help on using the changeset viewer.