Clean up logging in setup functions

This commit is contained in:
Sam Edwards 2024-02-17 11:22:27 -08:00
parent 0a30396c3b
commit 1d49003fe1
1 changed files with 73 additions and 61 deletions

View File

@ -147,6 +147,9 @@ void readSCSIDeviceConfig(uint8_t scsi_id, SCSI_DEVICE *dev) {
return;
}
LOG_FILE.println();
LOG_FILE.print("\t\tINI Overrides: ");
// create section name from id
section[4] = INT_TO_CHAR(scsi_id);
@ -155,13 +158,13 @@ void readSCSIDeviceConfig(uint8_t scsi_id, SCSI_DEVICE *dev) {
case 0:
dev->m_type = SCSI_DEVICE_HDD;
memcpy(iq, &default_hdd, sizeof(default_hdd));
LOG_FILE.println("Forced HDD");
LOG_FILE.print("Forced HDD");
break;
case 2:
dev->m_type = SCSI_DEVICE_OPTICAL;
memcpy(iq, &default_optical, sizeof(default_optical));
LOG_FILE.println("Forced Optical");
LOG_FILE.print("Forced CDROM");
break;
case 99:
@ -169,25 +172,25 @@ void readSCSIDeviceConfig(uint8_t scsi_id, SCSI_DEVICE *dev) {
break;
default:
LOG_FILE.println("Unsupported override type");
LOG_FILE.print("Unsupported type override");
}
if(ini_gets(section, "vendor", NULL, buf, SCSI_BUF_SIZE, BLUESCSI_INI)) {
memcpy(iq->vendor, buf, SCSI_VENDOR_LENGTH);
LOG_FILE.print("vendor:");
LOG_FILE.println(buf);
LOG_FILE.print(" / Vendor: ");
LOG_FILE.print(buf);
}
if(ini_gets(section, "product", NULL, buf, SCSI_BUF_SIZE, BLUESCSI_INI)) {
memcpy(iq->product, buf, SCSI_PRODUCT_LENGTH);
LOG_FILE.print("product:");
LOG_FILE.println(buf);
LOG_FILE.print(" / Product: ");
LOG_FILE.print(buf);
}
if(ini_gets(section, "revision", NULL, buf, SCSI_BUF_SIZE, BLUESCSI_INI)) {
memcpy(iq->revision, buf, SCSI_REVISION_LENGTH);
LOG_FILE.print("revision:");
LOG_FILE.println(buf);
LOG_FILE.print(" / Revision: ");
LOG_FILE.print(buf);
}
}
@ -197,42 +200,44 @@ void readSDCardInfo(int success_mhz)
cid_t sd_cid;
LOG_FILE.println("SDCard Info:");
LOG_FILE.print(" Format:");
LOG_FILE.print("\tFormat: ");
switch(SD.vol()->fatType()) {
case FAT_TYPE_EXFAT:
LOG_FILE.println("exFAT");
break;
LOG_FILE.println("exFAT");
break;
default:
LOG_FILE.print("FAT32/16/12 - exFAT may improve performance");
LOG_FILE.println("FAT32/16/12 - exFAT may improve performance");
}
LOG_FILE.print("SPI speed: ");
LOG_FILE.print("\tSPI Speed: ");
LOG_FILE.print(success_mhz);
LOG_FILE.println("Mhz");
LOG_FILE.print(" Max Filename Length:");
LOG_FILE.println("MHz");
LOG_FILE.print("\tMax Filename Length: ");
LOG_FILE.println(MAX_FILE_PATH);
if(SD.card()->readCID(&sd_cid))
{
LOG_FILE.print(" MID:");
LOG_FILE.print("\tMID: ");
LOG_FILE.print(sd_cid.mid, 16);
LOG_FILE.print(" OID:");
LOG_FILE.print(" OID: ");
LOG_FILE.print(sd_cid.oid[0]);
LOG_FILE.println(sd_cid.oid[1]);
LOG_FILE.print(" Name:");
LOG_FILE.print("\tName: ");
LOG_FILE.print(sd_cid.pnm[0]);
LOG_FILE.print(sd_cid.pnm[1]);
LOG_FILE.print(sd_cid.pnm[2]);
LOG_FILE.print(sd_cid.pnm[3]);
LOG_FILE.print(sd_cid.pnm[4]);
LOG_FILE.print(" Date:");
LOG_FILE.print(" Date: ");
LOG_FILE.print(sd_cid.mdtMonth());
LOG_FILE.print("/");
LOG_FILE.println(sd_cid.mdtYear());
LOG_FILE.print(" Serial:");
LOG_FILE.print("\tSerial: ");
LOG_FILE.println(sd_cid.psn());
} else {
LOG_FILE.println("\tWARNING: Unable to read SDCard CID data");
}
LOG_FILE.sync();
}
@ -271,16 +276,16 @@ bool hddimageOpen(SCSI_DEVICE *dev, FsFile *file,int id,int lun,int blocksize)
dev->m_fileSize = dev->m_file.size();
if(dev->m_fileSize < 1) {
LOG_FILE.println(" - file is 0 bytes, can not use.");
LOG_FILE.println("\t\tERROR: File is 0 bytes");
goto failed;
}
if(!dev->m_file.isContiguous())
{
LOG_FILE.println(" - file is fragmented, see https://github.com/erichelgeson/BlueSCSI/wiki/Image-File-Fragmentation");
LOG_FILE.println("\t\tWARNING: File is fragmented, see https://github.com/erichelgeson/BlueSCSI/wiki/Image-File-Fragmentation");
}
if(dev->m_type == SCSI_DEVICE_OPTICAL) {
LOG_FILE.print(" CDROM");
dev->m_blocksize = CDROM_COMMON_SECTORSIZE;
// Borrowed from PCEM
@ -303,6 +308,7 @@ bool hddimageOpen(SCSI_DEVICE *dev, FsFile *file,int id,int lun,int blocksize)
// Last ditch effort
// size must be less than 700MB
if(dev->m_fileSize > 912579600) {
LOG_FILE.println("\t\tERROR: ISO too large!");
goto failed;
}
@ -314,27 +320,25 @@ bool hddimageOpen(SCSI_DEVICE *dev, FsFile *file,int id,int lun,int blocksize)
dev->m_rawblocksize = CDROM_COMMON_SECTORSIZE;
} else {
// I give up!
LOG_FILE.println(" InvalidISO");
LOG_FILE.println("\t\tERROR: Invalid ISO!");
goto failed;
}
}
} else {
LOG_FILE.print(" HDD");
}
dev->m_blockcount = dev->m_fileSize / dev->m_blocksize;
// check blocksize dummy file
LOG_FILE.print(" / ");
LOG_FILE.print("\t\tFile size: ");
LOG_FILE.print(dev->m_fileSize);
LOG_FILE.print("bytes / ");
LOG_FILE.print(" bytes, ");
LOG_FILE.print(dev->m_fileSize / 1024);
LOG_FILE.print("KiB / ");
LOG_FILE.print("KiB, ");
LOG_FILE.print(dev->m_fileSize / 1024 / 1024);
LOG_FILE.println("MiB");
if(dev->m_type == SCSI_DEVICE_OPTICAL) {
LOG_FILE.print(" MODE2:");LOG_FILE.print(IS_MODE2(dev->flags));
LOG_FILE.print(" BlockSize:");LOG_FILE.println(IS_RAW(dev->flags));
LOG_FILE.print(" MODE2: ");LOG_FILE.print(IS_MODE2(dev->flags));
LOG_FILE.print(" BlockSize: ");LOG_FILE.println(IS_RAW(dev->flags));
}
return true; // File opened
@ -527,10 +531,11 @@ void setup()
#endif
flashError(ERROR_NO_SDCARD);
}
initFileLog();
readSDCardInfo(mhz);
//HD image file open
// HD image file open
scsi_id_mask = 0x00;
if(ini_getl("SCSI", "MapLunsToIDs", 0, BLUESCSI_INI))
@ -553,12 +558,13 @@ void setup()
if (root.isDirectory()) {
LOG_FILE.print("Looking for images in: ");
LOG_FILE.println(image_set_dir_name);
LOG_FILE.sync();
} else {
root.close();
root.open("/");
LOG_FILE.println("Looking for images in: /");
}
LOG_FILE.sync();
findDriveImages(root);
root.close();
@ -578,8 +584,8 @@ void setup()
}
finalizeFileLog();
LED_OFF();
//Occurs when the RST pin state changes from HIGH to LOW
// Occurs when the RST pin state changes from HIGH to LOW
attachInterrupt(RST, onBusReset, FALLING);
}
@ -635,6 +641,8 @@ void findDriveImages(FsFile root) {
int lun = DEFAULT_SCSI_LUN;
int blk = HDD_BLOCK_SIZE;
LOG_FILE.print("\t- "); LOG_FILE.println(name);
// Positionally read in and coerce the chars to integers.
// We only require the minimum and read in the next if provided.
int file_name_length = strlen(name);
@ -645,8 +653,7 @@ void findDriveImages(FsFile root) {
if(tmp_id > -1 && tmp_id <= MAX_SCSIID) {
id = tmp_id;
} else {
LOG_FILE.print(name);
LOG_FILE.println(" - bad SCSI id in filename, Using default ID 1");
LOG_FILE.println("\t\tWARNING: Bad SCSI ID in filename, Using default ID 1");
}
}
@ -657,8 +664,7 @@ void findDriveImages(FsFile root) {
if(tmp_lun > -1 && tmp_lun <= NUM_SCSILUN) {
lun = tmp_lun;
} else {
LOG_FILE.print(name);
LOG_FILE.println(" - bad SCSI LUN in filename, Using default LUN ID 0");
LOG_FILE.println("\t\tWARNING: Bad SCSI LUN in filename, Using default LUN ID 0");
}
}
@ -678,30 +684,36 @@ void findDriveImages(FsFile root) {
blk = 2048;
}
if(id < NUM_SCSIID && lun < NUM_SCSILUN) {
dev = &scsi_device_list[id][lun];
LOG_FILE.print(" - ");
LOG_FILE.print(name);
dev->m_type = device_type;
image_ready = hddimageOpen(dev, &file, id, lun, blk);
if(image_ready) { // Marked as a responsive ID
scsi_id_mask |= 1<<id;
LOG_FILE.print("\t\tParsed: ");
if(device_type == SCSI_DEVICE_OPTICAL) {
LOG_FILE.print("CDROM");
} else {
LOG_FILE.print("HDD");
}
LOG_FILE.print(" ID "); LOG_FILE.print(id);
LOG_FILE.print(" LUN "); LOG_FILE.print(lun);
LOG_FILE.print(" Blocksize "); LOG_FILE.print(blk); LOG_FILE.println("k");
switch(dev->m_type)
{
case SCSI_DEVICE_HDD:
// default SCSI HDD
dev->inquiry_block = default_hdd;
break;
dev = &scsi_device_list[id][lun];
dev->m_type = device_type;
image_ready = hddimageOpen(dev, &file, id, lun, blk);
if(image_ready) { // Marked as a responsive ID
scsi_id_mask |= 1<<id;
case SCSI_DEVICE_OPTICAL:
// default SCSI CDROM
dev->inquiry_block = default_optical;
break;
}
switch(dev->m_type)
{
case SCSI_DEVICE_HDD:
// default SCSI HDD
dev->inquiry_block = default_hdd;
break;
readSCSIDeviceConfig(id, dev);
case SCSI_DEVICE_OPTICAL:
// default SCSI CDROM
dev->inquiry_block = default_optical;
break;
}
readSCSIDeviceConfig(id, dev);
}
}
LOG_FILE.sync();
@ -719,7 +731,7 @@ void initFileLog() {
LOG_FILE.print("VER: ");
LOG_FILE.print(VERSION);
LOG_FILE.println(BUILD_TAGS);
LOG_FILE.print("DEBUG:");
LOG_FILE.print("DEBUG: ");
LOG_FILE.println(DEBUG);
LOG_FILE.sync();
}