Changeset 3341 for trunk/psLib/src/fits/psFits.c
- Timestamp:
- Feb 28, 2005, 1:34:10 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFits.c (modified) (18 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFits.c
r3298 r3341 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 19$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-02-2 2 19:25:52$9 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-02-28 23:34:10 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 162 162 } 163 163 164 static bool convert PsTypeToBinaryTForm(psElemType type, char** fitsType)164 static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType) 165 165 { 166 166 switch (type) { 167 case PS_ TYPE_BOOL:167 case PS_META_BOOL: 168 168 *fitsType = psStringCopy("1L"); 169 169 break; 170 case PS_ TYPE_S32:170 case PS_META_S32: 171 171 *fitsType = psStringCopy("1J"); 172 172 break; 173 case PS_ TYPE_F32:173 case PS_META_F32: 174 174 *fitsType = psStringCopy("1E"); 175 175 break; 176 case PS_ TYPE_F64:176 case PS_META_F64: 177 177 *fitsType = psStringCopy("1D"); 178 178 break; … … 506 506 PS_LIST_TAIL, 507 507 keyName, 508 PS_TYPE_S32, 509 PS_META_PRIMITIVE, 508 PS_META_S32, 510 509 keyComment, 511 510 atoi(keyValue)); … … 517 516 PS_LIST_TAIL, 518 517 keyName, 519 PS_TYPE_F64, 520 PS_META_PRIMITIVE, 518 PS_META_F64, 521 519 keyComment, 522 520 atof(keyValue)); … … 529 527 PS_LIST_TAIL, 530 528 keyName, 531 PS_TYPE_PTR,532 529 PS_META_STR, 533 530 keyComment, … … 537 534 PS_LIST_TAIL, 538 535 keyName, 539 PS_TYPE_PTR,540 536 PS_META_STR, 541 537 keyComment, … … 548 544 PS_LIST_TAIL, 549 545 keyName, 550 PS_TYPE_BOOL, 551 PS_META_PRIMITIVE, 546 PS_META_BOOL, 552 547 keyComment, 553 548 tempBool); … … 1072 1067 psMetadataItem* item; 1073 1068 while ( (item=psListGetAndIncrement(iter)) != NULL ) { 1074 if (item->type == PS_META_PRIMITIVE) { // we only write primitive data types. 1075 switch (item->pType) { 1076 case PS_TYPE_BOOL: { 1077 int value = item->data.B; 1078 fits_update_key(fits->p_fd, 1079 TLOGICAL, 1080 item->name, 1081 &value, 1082 item->comment, 1083 &status); 1084 break; 1085 } 1086 case PS_TYPE_S32: 1069 switch (item->type) { 1070 case PS_META_BOOL: { 1071 int value = item->data.B; 1087 1072 fits_update_key(fits->p_fd, 1088 T INT,1073 TLOGICAL, 1089 1074 item->name, 1090 & item->data.S32,1075 &value, 1091 1076 item->comment, 1092 1077 &status); 1093 1078 break; 1094 case PS_TYPE_F32:1095 fits_update_key(fits->p_fd,1096 TFLOAT,1097 item->name,1098 &item->data.F32,1099 item->comment,1100 &status);1101 break;1102 case PS_TYPE_F64:1103 fits_update_key(fits->p_fd,1104 TDOUBLE,1105 item->name,1106 &item->data.F64,1107 item->comment,1108 &status);1109 break;1110 default:1111 psError(PS_ERR_BAD_PARAMETER_TYPE, true,1112 PS_ERRORTEXT_psFits_METADATA_PTYPE_UNSUPPORTED,1113 item->pType);1114 break;1115 1079 } 1116 } else if (item->type == PS_META_STR) { 1080 case PS_META_S32: 1081 fits_update_key(fits->p_fd, 1082 TINT, 1083 item->name, 1084 &item->data.S32, 1085 item->comment, 1086 &status); 1087 break; 1088 case PS_META_F32: 1089 fits_update_key(fits->p_fd, 1090 TFLOAT, 1091 item->name, 1092 &item->data.F32, 1093 item->comment, 1094 &status); 1095 break; 1096 case PS_META_F64: 1097 fits_update_key(fits->p_fd, 1098 TDOUBLE, 1099 item->name, 1100 &item->data.F64, 1101 item->comment, 1102 &status); 1103 break; 1104 case PS_META_STR: 1117 1105 fits_update_key(fits->p_fd, 1118 1106 TSTRING, … … 1121 1109 item->comment, 1122 1110 &status); 1111 break; 1112 default: // all other META types are ignored 1113 break; 1123 1114 } 1124 1115 … … 1214 1205 1, 1, NULL, &value, &anynul, &status); \ 1215 1206 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1216 PS_ TYPE_##TYPE, PS_META_PRIMITIVE, \1207 PS_META_##TYPE, \ 1217 1208 "", (ps##TYPE)value); \ 1218 1209 break; \ … … 1234 1225 if (anynul == 0) { 1235 1226 psMetadataAdd(data,PS_LIST_TAIL, name, 1236 PS_ TYPE_PTR, PS_META_STR,1227 PS_META_STR, 1237 1228 "", value); 1238 1229 } … … 1487 1478 PS_LIST_HEAD,true); 1488 1479 while ( (item=psListGetAndIncrement(iter)) != NULL) { 1489 if ( item->type == PS_META_PRIMITIVE) {1480 if (PS_META_IS_PRIMITIVE(item->type)) { 1490 1481 bool found = false; 1491 1482 for (int n=0; n < columns->n && ! found; n++) { … … 1515 1506 char* fitsType; 1516 1507 columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name); 1517 if ( ! convert PsTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->pType,1518 &fitsType)) {1508 if ( ! convertMetadataTypeToBinaryTForm(((psMetadataItem*)columns->data[n])->type, 1509 &fitsType)) { 1519 1510 // XXX: error message 1520 1511 return false; … … 1540 1531 int row; 1541 1532 item = columns->data[n]; 1542 1543 if (item->type == PS_META_PRIMITIVE) {1544 psVector* col = psVectorAlloc(table->n, item->pType);1545 switch (item->pType) {1546 case PS_TYPE_S32:1533 if (PS_META_IS_PRIMITIVE(item->type)) { 1534 psVector* col = NULL; 1535 switch (item->type) { 1536 case PS_META_S32: 1537 col = psVectorAlloc(table->n, PS_TYPE_S32); 1547 1538 for (row = 0; row < table->n; row++) { 1548 1539 col->data.S32[row] = psMetadataLookupS32(NULL, … … 1558 1549 &status); 1559 1550 break; 1560 case PS_TYPE_F32: 1551 case PS_META_F32: 1552 col = psVectorAlloc(table->n, PS_TYPE_F32); 1561 1553 for (row = 0; row < table->n; row++) { 1562 1554 col->data.F32[row] = psMetadataLookupF32(NULL, … … 1572 1564 &status); 1573 1565 break; 1574 case PS_TYPE_F64: 1566 case PS_META_F64: 1567 col = psVectorAlloc(table->n, PS_TYPE_F64); 1575 1568 for (row = 0; row < table->n; row++) { 1576 1569 col->data.F64[row] = psMetadataLookupF64(NULL, … … 1586 1579 &status); 1587 1580 break; 1588 case PS_TYPE_BOOL: 1581 case PS_META_BOOL: 1582 col = psVectorAlloc(table->n, PS_TYPE_BOOL); 1589 1583 for (row = 0; row < table->n; row++) { 1590 1584 col->data.S8[row] = psMetadataLookupBool(NULL, … … 1601 1595 break; 1602 1596 default: 1603 // XXX: error message 1597 // XXX: error message? 1604 1598 break; 1605 1599 }
Note:
See TracChangeset
for help on using the changeset viewer.
