- Timestamp:
- Jan 16, 2012, 7:23:11 PM (13 years ago)
- google:author:
- gregli@hotmail.com
- Location:
- trunk/Serial_Server
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Serial_Server/library/FlatImage.cpp
r209 r211 25 25 fp = fopen( name, "r" ); 26 26 if( fp ) 27 log( 0, "Create Failure: '%s' already exists", name );27 log( -1, "Create Failure: '%s' already exists", name ); 28 28 29 29 if( !(fp = fopen( name, "w" )) ) 30 log( 0, "Could not create file '%s'", name );30 log( -1, "Could not create file '%s'", name ); 31 31 32 32 memset( &buff[0], 0, 512 ); … … 35 35 { 36 36 if( fwrite( &buff[0], 1, 512, fp ) != 512 ) 37 log( 0, "Create write black sector error" );37 log( -1, "Create write black sector error" ); 38 38 } 39 39 fclose( fp ); 40 40 41 41 sizef = size2/2048.0; 42 log( 1, "Created file '%s' with geometry %u:%u:%u, size %.1lf megabytes\n", name, p_cyl, p_sect, p_head, sizef );42 log( 0, "Created file '%s' with geometry %u:%u:%u, size %.1lf megabytes\n", name, p_cyl, p_sect, p_head, sizef ); 43 43 } 44 44 45 45 fp = fopen( name, "r+" ); 46 46 if( !fp ) 47 log( 0, "Could not Open %s", name ); 48 49 log( 1, "Opening disk image '%s'", name ); 47 log( -1, "Could not Open '%s'", name ); 50 48 51 49 fseek( fp, 0, SEEK_END ); … … 53 51 54 52 if( !totallba ) 55 log( 0, "Could not get file size");53 log( -1, "Could not get file size for '%s'", name ); 56 54 57 55 if( totallba & 0x1ff ) 58 log( 0, "File not made up of 512 byte sectors");56 log( -1, "'%s' not made up of 512 byte sectors", name ); 59 57 60 58 totallba >>= 9; … … 62 60 { 63 61 if( p_sect || p_head || p_cyl ) 64 log( 0, "File size does not match geometry");62 log( -1, "'%s', file size does not match geometry", name ); 65 63 else if( (totallba % 16) != 0 || ((totallba/16) % 63) != 0 ) 66 log( 0, "File size does not match standard geometry (x:16:63), please give explicitly with -g");64 log( -1, "'%s', file size does not match standard geometry (x:16:63), please geometry explicitly with -g", name ); 67 65 else 68 66 { … … 80 78 81 79 sizef = totallba/2048.0; 82 log( 1, "Using geometry %u:%u:%u, total size %.1lf megabytes", cyl, sect, head, sizef );80 log( 0, "Opening disk image '%s', geometry %u:%u:%u, total size %.1lf MB", name, cyl, sect, head, sizef ); 83 81 } 84 82 -
trunk/Serial_Server/library/Image.cpp
r209 r211 33 33 34 34 if( *(shortFileName) == 0 ) 35 log( 0, "Can't parse %s\n\n", name ); 35 { 36 log( 1, "Can't parse '%s' for short file name\n\n", name ); 37 shortFileName = "SerDrive"; 38 } 36 39 37 40 readOnly = p_readOnly; -
trunk/Serial_Server/library/Process.cpp
r210 r211 68 68 sprintf( &logBuff[logCount*9], "... " ); 69 69 70 log( 4, "%s%s", message, logBuff );70 log( 3, "%s%s", message, logBuff ); 71 71 } 72 72 } … … 118 118 len = 1; 119 119 workCount = 0; 120 log( 2, "Timeout waiting on command" );120 log( 1, "Timeout waiting on command" ); 121 121 continue; 122 122 } … … 149 149 { 150 150 if( buff.b[0] >= 0x20 && buff.b[0] <= 0x7e ) 151 log( 3, "Spurious: [%d:%c]", buff.b[0], buff.b[0] );151 log( 2, "Spurious: [%d:%c]", buff.b[0], buff.b[0] ); 152 152 else 153 log( 3, "Spurious: [%d]", buff.b[0] );153 log( 2, "Spurious: [%d]", buff.b[0] ); 154 154 } 155 155 buffoffset = 0; … … 172 172 if( (crc = checksum( &buff.w[0], 256 )) != buff.w[256] ) 173 173 { 174 log( 1, "Bad Write Sector Checksum" );174 log( 0, "Bad Write Sector Checksum" ); 175 175 continue; 176 176 } … … 178 178 if( img->readOnly ) 179 179 { 180 log( 2, "Attempt to write to read-only image" );180 log( 1, "Attempt to write to read-only image" ); 181 181 continue; 182 182 } … … 189 189 // 190 190 if( serial->writeCharacters( &buff.w[256], 2 ) != 2 ) 191 log( 1, "Serial Port Write Error" );191 log( 0, "Serial Port Write Error" ); 192 192 193 193 workOffset++; … … 209 209 if( buff.b[0] != (workCount-0) ) 210 210 { 211 log( 1, "Continue Fault: Received=%d, Expected=%d", buff.b[0], workCount );211 log( 0, "Continue Fault: Received=%d, Expected=%d", buff.b[0], workCount ); 212 212 workCount = 0; 213 213 continue; … … 221 221 if( (crc = checksum( &buff.w[0], 3 )) != buff.w[3] ) 222 222 { 223 log( 1, "Bad Command Checksum: %02x %02x %02x %02x %02x %02x %02x %02x, Checksum=%02x",223 log( 0, "Bad Command Checksum: %02x %02x %02x %02x %02x %02x %02x %02x, Checksum=%02x", 224 224 buff.b[0], buff.b[1], buff.b[2], buff.b[3], buff.b[4], buff.b[5], buff.b[6], buff.b[7], crc); 225 225 continue; … … 230 230 if( !image1 ) 231 231 { 232 log( 2, "Slave drive selected when not supplied" );232 log( 1, "Slave drive selected when not supplied" ); 233 233 img = NULL; 234 234 continue; … … 261 261 if( (workCommand & SERIAL_COMMAND_WRITE) && img->readOnly ) 262 262 { 263 log( 2, "Write attempt to Read Only disk" );263 log( 1, "Write attempt to Read Only disk" ); 264 264 continue; 265 265 } … … 293 293 294 294 if( br ) 295 log( 2, " Ignoring Inquire with Baud Rate=%d", br->rate );295 log( 1, " Ignoring Inquire with Baud Rate=%d", br->rate ); 296 296 else 297 log( 2, " Ignoring Inquire with Unknown Baud Rate (portAndBaud=%d)", buff.inquire.portAndBaud );297 log( 1, " Ignoring Inquire with Unknown Baud Rate (portAndBaud=%d)", buff.inquire.portAndBaud ); 298 298 workCount = 0; 299 299 continue; … … 314 314 315 315 if( serial->writeCharacters( &buff.w[0], 514 ) != 514 ) 316 log( 1, "Serial Port Write Error" );316 log( 0, "Serial Port Write Error" ); 317 317 318 318 workCount--; … … 327 327 328 328 if( vtype == 1 ) 329 log( 2, "%s %d: LBA=%u, Count=%u", comStr, img == image0 ? 0 : 1,329 log( 1, "%s %d: LBA=%u, Count=%u", comStr, img == image0 ? 0 : 1, 330 330 mylba, workCount ); 331 331 else if( vtype == 2 ) 332 log( 2, "%s %d: Cylinder=%u, Sector=%u, Head=%u, Count=%u, LBA=%u", comStr, img == image0 ? 0 : 1,332 log( 1, "%s %d: Cylinder=%u, Sector=%u, Head=%u, Count=%u, LBA=%u", comStr, img == image0 ? 0 : 1, 333 333 cyl, sect, head, workCount+1, mylba ); 334 334 … … 336 336 337 337 if( workOffset > 1 ) 338 log( 3, " Continuation: Offset=%u, Checksum=%04x", workOffset-1, buff.w[256] );338 log( 2, " Continuation: Offset=%u, Checksum=%04x", workOffset-1, buff.w[256] ); 339 339 340 340 if( !(workCommand & SERIAL_COMMAND_WRITE) && verboseLevel >= 4 ) … … 342 342 343 343 if( workCount == 0 && workOffset > 100 ) 344 log( 2, " Block Complete: %.2lf bytes per second", (512.0 * workOffset) / (GetTime() - perfTimer) * 1000.0 );344 log( 1, " Block Complete: %.2lf bytes per second", (512.0 * workOffset) / (GetTime() - perfTimer) * 1000.0 ); 345 345 } 346 346 } -
trunk/Serial_Server/makefile
r209 r211 13 13 WIN32OBJS = build/win32.obj build/win32serial.obj build/checksum.obj build/serial.obj build/flatimage.obj build/process.obj build/image.obj 14 14 15 build/ser serve.exe: $(WIN32OBJS)16 $(CL) /Febuild/ser serve.exe $(WIN32OBJS)15 build/serdrive.exe: $(WIN32OBJS) 16 $(CL) /Febuild/serdrive.exe $(WIN32OBJS) 17 17 18 18 build/%.obj: win32/%.cpp -
trunk/Serial_Server/win32/Win32.cpp
r209 r211 21 21 { 22 22 char *usageStrings[] = { 23 "usage: SerServe [options] master-imagefile [[slave-options] slave-imagefile]", 23 "SerDrive - XTIDE Universal BIOS Serial Drive Server", 24 "Version 1.2.0_wip, Built " __DATE__, 25 "", 26 "usage: SerDrive [options] imagefile [[slave-options] slave-imagefile]", 27 "", 24 28 " -g cyl:sect:head Geometry in cylinders, sectors per cylinder, and heads", 25 29 " (default is 65:63:16 for a 32 MB disk)", 26 " -n [megabytes] New, Create new disk with given size or use -g geometry", 27 " -p Named pipe mode for emulators (pipe is " PIPENAME ")", 28 " -c PortNumber COM Port to use (default is first found)", 30 "", 31 " -n [megabytes] Create new disk with given size or use -g geometry", 32 "", 33 " -p Named Pipe mode for emulators (pipe is '" PIPENAME "')", 34 "", 35 " -c COMPortNumber COM Port to use (default is first found)", 36 "", 29 37 " -b BaudRate Baud rate to use on the COM port ", 30 " 9600, 38400, 115200, 230400, or 460800", 31 " (default 9600, 115200 in pipe mode)", 38 " Without a rate multiplier: 2400, 9600, 38400, 115200", 39 " With a 2x rate multiplier: 4800, 19200, 76800, 230400", 40 " With a 4x rate multiplier: 9600, 38400, 153600, 460800", 41 " Abbreviations also accepted (ie, '460K', '38.4K', etc)", 42 " (default is 9600, 115200 in named pipe mode)", 43 "", 32 44 " -t Disable timeout, useful for long delays when debugging", 33 " -r Read Only disk", 34 " -v [level] Reporting level 1-6, increasing information", 45 "", 46 " -r Read Only disk, do not allow writes", 47 "", 48 " -v [level] Reporting level 1-6, with increasing information", 35 49 NULL }; 36 50 … … 41 55 } 42 56 43 int verbose = 1;57 int verbose = 0; 44 58 45 59 int main(int argc, char* argv[]) … … 158 172 159 173 if( serial->resetConnection ) 160 log( 1, "==== Resetting Connection ====" );174 log( 0, "Connection closed, reset..." ); 161 175 } 162 176 while( serial->resetConnection ); … … 169 183 va_start( args, message ); 170 184 171 if( level == 0 ) 172 { 173 vfprintf( stderr, message, args ); 174 fprintf( stderr, "\n" ); 175 exit( 1 ); 185 if( level < 0 ) 186 { 187 fprintf( stderr, "ERROR: " ); 188 vfprintf( stderr, message, args ); 189 fprintf( stderr, "\n" ); 190 exit( 1 ); 176 191 } 177 192 else if( verbose >= level ) 178 193 { 179 180 194 vprintf( message, args ); 195 printf( "\n" ); 181 196 } 182 197 -
trunk/Serial_Server/win32/Win32Serial.cpp
r209 r211 40 40 } 41 41 if( !name ) 42 log( 0, "No Physical COM Ports Found" );42 log( -1, "No physical COM ports found" ); 43 43 } 44 44 45 45 if( !strcmp( name, "PIPE" ) ) 46 46 { 47 log( 1, "Opening named pipe %s (simulating %lu baud)", PIPENAME, baudRate->rate );47 log( 0, "Opening named pipe %s (simulating %lu baud)", PIPENAME, baudRate->rate ); 48 48 49 49 pipe = CreateNamedPipeA( PIPENAME, PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE|PIPE_REJECT_REMOTE_CLIENTS, 2, 1024, 1024, 0, NULL ); 50 50 if( !pipe ) 51 log( 0, "Could not CreateNamedPipe " PIPENAME );51 log( -1, "Could not CreateNamedPipe " PIPENAME ); 52 52 53 53 if( !ConnectNamedPipe( pipe, NULL ) ) 54 log( 0, "Could not ConnectNamedPipe" );54 log( -1, "Could not ConnectNamedPipe" ); 55 55 56 56 speedEmulation = 1; … … 61 61 if( QueryDosDeviceA( name, buff2, sizeof(buff2) ) ) 62 62 { 63 log( 1, "Opening %s (%lu baud)", name, baudRate->rate );63 log( 0, "Opening %s (%lu baud)", name, baudRate->rate ); 64 64 65 65 pipe = CreateFileA( name, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); 66 66 if( !pipe ) 67 log( 0, "Could not Open \"%s\"", name );67 log( -1, "Could not Open \"%s\"", name ); 68 68 69 69 FillMemory(&dcb, sizeof(dcb), 0); … … 74 74 dcb.Parity = NOPARITY; 75 75 if( !SetCommState( pipe, &dcb ) ) 76 log( 0, "Could not SetCommState" );76 log( -1, "Could not SetCommState" ); 77 77 78 78 if( !SetCommTimeouts( pipe, &timeouts ) ) 79 log( 0, "Could not SetCommTimeouts" );79 log( -1, "Could not SetCommTimeouts" ); 80 80 } 81 81 else 82 82 { 83 int first = 1;84 83 char logbuff[ 1024 ]; 85 sprintf( logbuff, "Serial Port Not Found \"%s\", Available: ", name ); 86 for( int t = 1; t <= 30 && !name; t++ ) 84 int found = 0; 85 86 sprintf( logbuff, "serial port '%s' not found, detected COM ports:", name ); 87 88 for( int t = 1; t <= 40; t++ ) 87 89 { 88 90 sprintf( buff1, "COM%d", t ); 89 91 if( QueryDosDeviceA( buff1, buff2, sizeof(buff2) ) ) 90 92 { 91 if( !first ) 92 strcat( logbuff, ", " ); 93 else 94 first = 0; 93 strcat( logbuff, "\n " ); 95 94 strcat( logbuff, buff1 ); 95 found = 1; 96 96 } 97 97 } 98 log( 0, logbuff ); 98 if( !found ) 99 strcat( logbuff, "\n (none)" ); 100 101 log( -1, logbuff ); 99 102 } 100 103 }
Note:
See TracChangeset
for help on using the changeset viewer.