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);
}
else {
//printf("SSSSSNNNNN %s\n", ElementStatus->DataTransferElementSerialNumber[TransferElementNumber]);
printf("Data Transfer Element %d ", ElementStatus->DataTransferElementAddress[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,
ElementStatus->DataTransferElementSerialNumber[TransferElementNumber]);
ElementStatus->DataTransferElementSerialNumber[TransferElementNumber],
ElementStatus->DataTransferElementProductId[TransferElementNumber]
);
}
if (ElementStatus->DataTransferElementFull[TransferElementNumber])
{

View File

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

View File

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