Added product id to Status() output

This commit is contained in:
Alexander Moibenko
2018-08-17 09:52:29 -05:00
parent 7b8da461e5
commit 71e237e6e8
4 changed files with 12 additions and 6 deletions

Binary file not shown.

View File

@@ -502,12 +502,13 @@ static void Status(void)
printf("Data Transfer Element %d:", TransferElementNumber); printf("Data Transfer Element %d:", TransferElementNumber);
} }
else { else {
//printf("SSSSSNNNNN %s\n", ElementStatus->DataTransferElementSerialNumber[TransferElementNumber]);
printf("Data Transfer Element %d ", ElementStatus->DataTransferElementAddress[TransferElementNumber]); printf("Data Transfer Element %d ", ElementStatus->DataTransferElementAddress[TransferElementNumber]);
phys_loc = (PhysicalLocation_T *) &ElementStatus->DataTransferElementPhysicalLocation[TransferElementNumber]; phys_loc = (PhysicalLocation_T *) &ElementStatus->DataTransferElementPhysicalLocation[TransferElementNumber];
printf("Phys Loc F%u,C%u,R%u,Z%u SN%s:", printf("Phys Loc F%u,C%u,R%u,Z%u SN%s ID %s:",
phys_loc->frame, phys_loc->column, phys_loc->row, phys_loc->zone, phys_loc->frame, phys_loc->column, phys_loc->row, phys_loc->zone,
ElementStatus->DataTransferElementSerialNumber[TransferElementNumber]); ElementStatus->DataTransferElementSerialNumber[TransferElementNumber],
ElementStatus->DataTransferElementProductId[TransferElementNumber]
);
} }
if (ElementStatus->DataTransferElementFull[TransferElementNumber]) if (ElementStatus->DataTransferElementFull[TransferElementNumber])
{ {

View File

@@ -575,6 +575,7 @@ typedef struct ElementStatus {
int *DataTransferElementAddress; /* array. */ int *DataTransferElementAddress; /* array. */
int *DataTransferElementSourceStorageElementNumber; /* array */ int *DataTransferElementSourceStorageElementNumber; /* array */
int *DataTransferElementPhysicalLocation; /*array */ int *DataTransferElementPhysicalLocation; /*array */
serialnumber *DataTransferElementProductId; /*array */
serialnumber *DataTransferElementSerialNumber; /*array */ serialnumber *DataTransferElementSerialNumber; /*array */
barcode *StorageElementPhysicalLocation; /*array */ barcode *StorageElementPhysicalLocation; /*array */
barcode *DataTransferPrimaryVolumeTag; /* array. */ barcode *DataTransferPrimaryVolumeTag; /* array. */

View File

@@ -528,6 +528,7 @@ static void FreeElementData(ElementStatus_T *data)
free(data->DataTransferElementAddress); free(data->DataTransferElementAddress);
free(data->DataTransferElementSourceStorageElementNumber); free(data->DataTransferElementSourceStorageElementNumber);
free(data->DataTransferElementPhysicalLocation); free(data->DataTransferElementPhysicalLocation);
free(data->DataTransferElementProductId);
free(data->DataTransferElementSerialNumber); free(data->DataTransferElementSerialNumber);
free(data->StorageElementPhysicalLocation); free(data->StorageElementPhysicalLocation);
free(data->DataTransferPrimaryVolumeTag); free(data->DataTransferPrimaryVolumeTag);
@@ -557,6 +558,8 @@ static ElementStatus_T *AllocateElementData(ElementModeSense_T *mode_sense)
(int *)xzmalloc(sizeof(int) * (mode_sense->NumDataTransfer + 1)); (int *)xzmalloc(sizeof(int) * (mode_sense->NumDataTransfer + 1));
retval->DataTransferElementPhysicalLocation = retval->DataTransferElementPhysicalLocation =
(int *)xzmalloc(sizeof(int) * (mode_sense->NumDataTransfer + 1)); (int *)xzmalloc(sizeof(int) * (mode_sense->NumDataTransfer + 1));
retval->DataTransferElementProductId =
(serialnumber *)xzmalloc(sizeof(serialnumber) * (mode_sense->NumDataTransfer + 1));
retval->DataTransferElementSerialNumber = retval->DataTransferElementSerialNumber =
(serialnumber *)xzmalloc(sizeof(serialnumber) * (mode_sense->NumDataTransfer + 1)); (serialnumber *)xzmalloc(sizeof(serialnumber) * (mode_sense->NumDataTransfer + 1));
retval->StorageElementPhysicalLocation = retval->StorageElementPhysicalLocation =
@@ -608,13 +611,13 @@ void copy_physical_location(unsigned char *src, unsigned char *dest)
strcpy((char *)dest, (char *)src); strcpy((char *)dest, (char *)src);
} }
void copy_serial_number(unsigned char *src, unsigned char *dest) void copy_char_buffer(unsigned char *src, unsigned char *dest, int num)
{ {
int i; int i;
while ((*src< 32) || (*src > 127)) { while ((*src< 32) || (*src > 127)) {
src++; src++;
} }
for (i=0; i < 12; i++) for (i=0; i < num; i++)
{ {
*dest = *src++; *dest = *src++;
@@ -1096,7 +1099,8 @@ static void ParseElementStatus( int *EmptyStorageElementAddress,
BigEndian16(TransportElementDescriptor->SourceStorageElementAddress); BigEndian16(TransportElementDescriptor->SourceStorageElementAddress);
InquiryShort_T *inqs; InquiryShort_T *inqs;
inqs = (InquiryShort_T *) TransportElementDescriptor->PrimaryVolumeTag; inqs = (InquiryShort_T *) TransportElementDescriptor->PrimaryVolumeTag;
copy_serial_number(inqs->SerialNumber, ElementStatus->DataTransferElementSerialNumber[ElementStatus->DataTransferElementCount]); copy_char_buffer(inqs->SerialNumber, ElementStatus->DataTransferElementSerialNumber[ElementStatus->DataTransferElementCount], 12);
copy_char_buffer(inqs->ProductIdentification+2, ElementStatus->DataTransferElementProductId[ElementStatus->DataTransferElementCount], 12);
ElementStatus->DataTransferElementCount++; ElementStatus->DataTransferElementCount++;
break; break;
} }