#!/usr/local/bin/perl $|=1; $CRLF="\015\012"; $file = 'scope_7'; $path = 'F:\\jmp@r0\\'; # $path = ''; open IN, '<'.$path.$file.'.csv'; @INP = ; close IN; open OUT, '>'.$path.$file.'c.csv'; open OUT3, '>'.$path.$file.'t.csv'; for( $j = 0 ; $j < $#INP+1 ; $j++ ) { $str = $INP[$j]; # -696.04000E-06,255,255 # +1.005000E-06,255,255 if( $str =~ /([+-]?)(\d+).(\d\d\d)\d+E-06,(\d+),(\d+)/ ) { # print OUT3 "=1=[$1][$2][$3][$4][$5]\n"; $time = $2*1000 + $3; } elsif( $str =~ /([+-]?)(\d+).\d+(E-09),(\d+),(\d+)/ ) { # print OUT3 "=2=[$1][$2][$3][$4][$5]\n"; # -990.00E-09,184,251 # -10.00E-09,254,255 $time = $2; } elsif( $str =~ /([+-]?)\d.(\d)E\+(\d+),(\d+),(\d+)/ ) { # print OUT3 "=3=[$1][$2][$3][$4][$5]\n"; $time = 0; } if( index( $1, "-" ) != -1 ) { $time = -1 * $time; } if( $base_time == 0 ) { $base_time = $time; $time = 0; $time2 = "Time x 10 ns :"; $CLC_1 = "CLC 1 :"; $CLC_0 = "CLC 0 :"; $BSY_1 = "BSY 1 :"; $BSY_0 = "BSY 0 :"; $SYNC_1 = "SYNC 1 :"; $SYNC_0 = "SYNC 0 :"; $DIN_1 = "DIN 1 :"; $DIN_0 = "DIN 0 :"; $RPLY_1 = "RPLY 1 :"; $RPLY_0 = "RPLY 0 :"; $AD3_1 = "AD3 1 :"; $AD3_0 = "AD3 0 :"; $AD13_1 = "AD13 1 :"; $AD13_0 = "AD13 0 :"; $AD15_1 = "AD15 1 :"; $AD15_0 = "AD15 0 :"; $CLC_L = -1; $CLC_H = ""; $BSY_L = -1; $BSY_H = ""; $SYNC_L = -1; $SYNC_H = ""; $DIN_L = -1; $DIN_H = ""; $RPLY_L = -1; $RPLY_H = ""; $AD3_L = -1; $AD3_H = ""; $AD13_L = -1; $AD13_H = ""; $AD15_L = -1; $AD15_H = ""; } else { $time = $time - $base_time; } $CLC = 0; if( $4 & 1 ) { $CLC = 1; $CLC_1 = $CLC_1.'*'; $CLC_0 = $CLC_0.'.'; if( $CLC_L == -1 || $CLC_L == 1 ) { if( ($time % 10) == 0 ) { $CLC_H = $CLC_H.""; } else { $CLC_H = $CLC_H.""; }; $CLC_L = 1; } else { if( ($time % 10) == 0 ) { $CLC_H = $CLC_H.""; } else { $CLC_H = $CLC_H.""; }; $CLC_L = 1; } } else { $CLC_1 = $CLC_1.'.'; $CLC_0 = $CLC_0.'*'; if( $CLC_L == -1 || $CLC_L == 0 ) { if( ($time % 10) == 0 ) { $CLC_H = $CLC_H.""; } else { $CLC_H = $CLC_H.""; }; $CLC_L = 0; } else { if( ($time % 10) == 0 ) { $CLC_H = $CLC_H.""; } else { $CLC_H = $CLC_H.""; }; $CLC_L = 0; } } $BSY = 0; if( $4 & 2 ) { $BSY = 1; $BSY_1 = $BSY_1.'*'; $BSY_0 = $BSY_0.'.'; if( $BSY_L == -1 || $BSY_L == 1 ) { if( ($time % 10) == 0 ) { $BSY_H = $BSY_H.""; } else { $BSY_H = $BSY_H.""; }; $BSY_L = 1; } else { if( ($time % 10) == 0 ) { $BSY_H = $BSY_H.""; } else { $BSY_H = $BSY_H.""; }; $BSY_L = 1; } } else { $BSY_1 = $BSY_1.'.'; $BSY_0 = $BSY_0.'*'; if( $BSY_L == -1 || $BSY_L == 0 ) { if( ($time % 10) == 0 ) { $BSY_H = $BSY_H.""; } else { $BSY_H = $BSY_H.""; }; $BSY_L = 0; } else { if( ($time % 10) == 0 ) { $BSY_H = $BSY_H.""; } else { $BSY_H = $BSY_H.""; }; $BSY_L = 0; } } $SYNC = 0; if( $4 & 4 ) { $SYNC = 1; $SYNC_1 = $SYNC_1.'*'; $SYNC_0 = $SYNC_0.'.'; if( $SYNC_L == -1 || $SYNC_L == 1 ) { if( ($time % 10) == 0 ) { $SYNC_H = $SYNC_H.""; } else { $SYNC_H = $SYNC_H.""; }; $SYNC_L = 1; } else { if( ($time % 10) == 0 ) { $SYNC_H = $SYNC_H.""; } else { $SYNC_H = $SYNC_H.""; }; $SYNC_L = 1; } } else { $SYNC_1 = $SYNC_1.'.'; $SYNC_0 = $SYNC_0.'*'; if( $SYNC_L == -1 || $SYNC_L == 0 ) { if( ($time % 10) == 0 ) { $SYNC_H = $SYNC_H.""; } else { $SYNC_H = $SYNC_H.""; }; $SYNC_L = 0; } else { if( ($time % 10) == 0 ) { $SYNC_H = $SYNC_H.""; } else { $SYNC_H = $SYNC_H.""; }; $SYNC_L = 0; } } $DIN = 0; if( $4 & 8 ) { $DIN = 1; $DIN_1 = $DIN_1.'*'; $DIN_0 = $DIN_0.'.'; if( $DIN_L == -1 || $DIN_L == 1 ) { if( ($time % 10) == 0 ) { $DIN_H = $DIN_H.""; } else { $DIN_H = $DIN_H.""; }; $DIN_L = 1; } else { if( ($time % 10) == 0 ) { $DIN_H = $DIN_H.""; } else { $DIN_H = $DIN_H.""; }; $DIN_L = 1; } } else { $DIN_1 = $DIN_1.'.'; $DIN_0 = $DIN_0.'*'; if( $DIN_L == -1 || $DIN_L == 0 ) { if( ($time % 10) == 0 ) { $DIN_H = $DIN_H.""; } else { $DIN_H = $DIN_H.""; }; $DIN_L = 0; } else { if( ($time % 10) == 0 ) { $DIN_H = $DIN_H.""; } else { $DIN_H = $DIN_H.""; }; $DIN_L = 0; } } $DOUT = 0; if( $4 & 16 ) { $DOUT = 1; } $WTBT = 0; if( $4 & 32 ) { $WTBT = 1; } $RPLY = 0; if( $4 & 64 ) { $RPLY = 1; $RPLY_1 = $RPLY_1.'*'; $RPLY_0 = $RPLY_0.'.'; if( $RPLY_L == -1 || $RPLY_L == 1 ) { if( ($time % 10) == 0 ) { $RPLY_H = $RPLY_H.""; } else { $RPLY_H = $RPLY_H.""; }; $RPLY_L = 1; } else { if( ($time % 10) == 0 ) { $RPLY_H = $RPLY_H.""; } else { $RPLY_H = $RPLY_H.""; }; $RPLY_L = 1; } } else { $RPLY_1 = $RPLY_1.'.'; $RPLY_0 = $RPLY_0.'*'; if( $RPLY_L == -1 || $RPLY_L == 0 ) { if( ($time % 10) == 0 ) { $RPLY_H = $RPLY_H.""; } else { $RPLY_H = $RPLY_H.""; }; $RPLY_L = 0; } else { if( ($time % 10) == 0 ) { $RPLY_H = $RPLY_H.""; } else { $RPLY_H = $RPLY_H.""; }; $RPLY_L = 0; } } $AD0 = 0; if( $4 & 128 ) { $AD0 = 1; } $AD1 = 0; if( $5 & 1 ) { $AD1 = 1; } $AD2 = 0; if( $5 & 2 ) { $AD2 = 1; } $AD3 = 0; if( $5 & 4 ) { $AD3 = 1; $AD3_1 = $AD3_1.'*'; $AD3_0 = $AD3_0.'.'; if( $AD3_L == -1 || $AD3_L == 1 ) { if( ($time % 10) == 0 ) { $AD3_H = $AD3_H.""; } else { $AD3_H = $AD3_H.""; }; $AD3_L = 1; } else { if( ($time % 10) == 0 ) { $AD3_H = $AD3_H.""; } else { $AD3_H = $AD3_H.""; }; $AD3_L = 1; } } else { $AD3_1 = $AD3_1.'.'; $AD3_0 = $AD3_0.'*'; if( $AD3_L == -1 || $AD3_L == 0 ) { if( ($time % 10) == 0 ) { $AD3_H = $AD3_H.""; } else { $AD3_H = $AD3_H.""; }; $AD3_L = 0; } else { if( ($time % 10) == 0 ) { $AD3_H = $AD3_H.""; } else { $AD3_H = $AD3_H.""; }; $AD3_L = 0; } } $AD4 = 0; if( $5 & 8 ) { $AD4 = 1; } $AD5 = 0; if( $5 & 16 ) { $AD5 = 1; } $AD13 = 0; if( $5 & 32 ) { $AD13 = 1; $AD13_1 = $AD13_1.'*'; $AD13_0 = $AD13_0.'.'; if( $AD13_L == -1 || $AD13_L == 1 ) { if( ($time % 10) == 0 ) { $AD13_H = $AD13_H.""; } else { $AD13_H = $AD13_H.""; }; $AD13_L = 1; } else { if( ($time % 10) == 0 ) { $AD13_H = $AD13_H.""; } else { $AD13_H = $AD13_H.""; }; $AD13_L = 1; } } else { $AD13_1 = $AD13_1.'.'; $AD13_0 = $AD13_0.'*'; if( $AD13_L == -1 || $AD13_L == 0 ) { if( ($time % 10) == 0 ) { $AD13_H = $AD13_H.""; } else { $AD13_H = $AD13_H.""; }; $AD13_L = 0; } else { if( ($time % 10) == 0 ) { $AD13_H = $AD13_H.""; } else { $AD13_H = $AD13_H.""; }; $AD13_L = 0; } } $AD14 = 0; if( $5 & 64 ) { $AD14 = 1; } $AD15 = 0; if( $5 & 128 ) { $AD15 = 1; $AD15_1 = $AD15_1.'*'; $AD15_0 = $AD15_0.'.'; if( $AD15_L == -1 || $AD15_L == 1 ) { if( ($time % 10) == 0 ) { $AD15_H = $AD15_H.""; } else { $AD15_H = $AD15_H.""; }; $AD15_L = 1; } else { if( ($time % 10) == 0 ) { $AD15_H = $AD15_H.""; } else { $AD15_H = $AD15_H.""; }; $AD15_L = 1; } } else { $AD15_1 = $AD15_1.'.'; $AD15_0 = $AD15_0.'*'; if( $AD15_L == -1 || $AD15_L == 0 ) { if( ($time % 10) == 0 ) { $AD15_H = $AD15_H.""; } else { $AD15_H = $AD15_H.""; }; $AD15_L = 0; } else { if( ($time % 10) == 0 ) { $AD15_H = $AD15_H.""; } else { $AD15_H = $AD15_H.""; }; $AD15_L = 0; } } if( $j == 0 ) { print OUT "Time(ns);CLC;BSY;SYNC;DIN;DOUT;WTBT;RPLY;AD0;AD1;AD2;AD3;AD4;AD5;AD13;AD14;AD15\n"; print OUT3 "T(ns)\tCLC\tBSY\tSYNC\tDIN\tDOUT\tWTBT\tRPLY\tAD0\tAD1\tAD2\tAD3\tAD4\tAD5\tAD13\tAD14\tAD15\n"; } elsif( $j == 1 ) { print OUT "\n"; print OUT3 "\n"; } else { print OUT "$time;$CLC;$BSY;$SYNC;$DIN;$DOUT;$WTBT;$RPLY;$AD0;$AD1;$AD2;$AD3;$AD4;$AD5;$AD13;$AD14;$AD15\n"; print OUT3 "$time\t$CLC\t$BSY\t$SYNC\t$DIN\t$DOUT\t$WTBT\t$RPLY\t$AD0\t$AD1\t$AD2\t$AD3\t$AD4\t$AD5\t$AD13\t$AD14\t$AD15\n"; if( ($time % 10) == 0 ) { $time2 = $time2.(($time/10)% 10); } else { $time2 = $time2." "; } } } close OUT3; close OUT; open OUT2, '>'.$path.$file.'c.txt'; print OUT2 $time2."\n"; print OUT2 "\n"; print OUT2 $CLC_1."\n"; print OUT2 $CLC_0."\n"; print OUT2 "\n"; print OUT2 $BSY_1."\n"; print OUT2 $BSY_0."\n"; print OUT2 "\n"; print OUT2 $SYNC_1."\n"; print OUT2 $SYNC_0."\n"; print OUT2 "\n"; print OUT2 $DIN_1."\n"; print OUT2 $DIN_0."\n"; print OUT2 "\n"; print OUT2 $RPLY_1."\n"; print OUT2 $RPLY_0."\n"; print OUT2 "\n"; print OUT2 $AD3_1."\n"; print OUT2 $AD3_0."\n"; print OUT2 "\n"; print OUT2 $AD13_1."\n"; print OUT2 $AD13_0."\n"; print OUT2 "\n"; print OUT2 $AD15_1."\n"; print OUT2 $AD15_0."\n"; close OUT2; open HTML, '>'.$path.$file.'.html'; print HTML "
\r\n\r\n\r\n";
  print HTML  $CLC_H."\n"; 
  print HTML  $BSY_H."\n"; 
  print HTML  $SYNC_H."\n"; 
  print HTML  $DIN_H."\n"; 
  print HTML  $RPLY_H."\n"; 
  print HTML  $AD3_H."\n"; 
  print HTML  $AD13_H."\n"; 
  print HTML  $AD15_H."\n"; 
  close HTML;
  
  print "Lines in file : ".($#INP+1)."\n";