#!/usr/bin/perl
# 以下は変更する必要なし
#-----------------------------------------------------------------------------
#
# RawHk2packet(version  $Id: eodv,v 1.4 2007/05/22 02:22:33 Exp $) 
#
# RawHkからをpacketデータを抽出する
# 
# Usage:
# > RawHk2packet.pl RawHk****.txt
#
# options: none
#
# example:
# RawHk2packet.pl RawHk****.txt				#(1)
#
#-----------------------------------------------------------------------------
# Libraries
#use strict;
#use warnings;

my $ver = "RawHk2CRT v1.0.0\n";
my $buf	= 0;
my $ch	= 0;
my $pint	= 0;
my $sint	= 0;
my $bnum	= 0;
my $flgc	= 0;
my $str1	= "_temp1.txt";
my $str2	= "_temp2.txt";
my $str3	= "_temp3.txt";
my $str4	= "_temp4.txt";
my $str5	= "_temp5.txt";
my $str6	= "_temp6.txt";
my $filename;
my @dat = ();

for(my $i=0;$i<256;$i++)
{
	for(my $j=0;$j<256;$j++)
  	{
  		$dat[$i][$j] = -1;
  	}
}
#-----------------------------------------------------------------------------
# Code begin
#-----------------------------------------------------------------------------
# オプションがない場合
if ($#ARGV == -1)
{
	print $ver;
	print "Error:ファイル名を指定してください\n";
}
# オプションが1つある場合
if ($#ARGV == 0)
{
	print "Now Loading...\n";
	
	## 1.元ファイルを読み込みテキスト変換を行う
	##------------------------------------------------------------------------
	# 対象のファイルオープン
	open INFILE, "<$ARGV[0]" or die "file open error: $!";
	# バイナリモードに変更
	binmode INFILE;
	
	# 内容読み込み
	#sysread(INFILE, $buf, $size);
	sysread(INFILE, $buf, -s INFILE);
	my @data = unpack("C*", $buf);
	
	# ファイルを閉じる
	close INFILE;
	
	
	## 2.HEX(テキスト)に変換したものを出力する
	##------------------------------------------------------------------------
	open OUT,">$str1" or die "file open error 1: $!";
	# Byte数読み込み
	for my $x (@data)
	{
		my $disp = sprintf("%02X",$x);
		print OUT $disp;
  	}
  	close OUT;
  	
  	## 3.HEXを読み込みヘッダ改行にする
  	##------------------------------------------------------------------------
  	open IN ,"<$str1" or die "file open error 1: $!";
  	my @line = <IN>;
  	close IN;
  	
  	$filename = (split(/\./,$ARGV[0]))[0];
  	open OUT,">$filename"."_crt.txt" or die "file open error $filename: $!";
  	
  	foreach(@line)
  	{
  		my $disp = $_;
  		$disp =~ s/499602D2000000C400000000000/\n499602D2000000C400000000000/gi;
  		print OUT 	$disp;
  	}
	close OUT;
	
  	## X.tempファイル削除
  	##------------------------------------------------------------------------
  	unlink($str1);  	
  	#unlink($str2);
  	#unlink($str3);
  	#unlink($str4);
  	#unlink($str5);
  	#unlink($str6); 	
}

# オプションが２つある場合
if ($#ARGV == 1){	
}
exit;

#-----------------------------------------------------------------------------
# Sub code begin
#-----------------------------------------------------------------------------
sub show_usage()
{
 print "Usage:\n";
 print "> RawHk2dssline.pl [-h]\n";
 print "\n";
 print "options:\n";
 print "         -h : 利用方法を提示する\n";
 print "\n";
 print "example:\n";
 print "RawHk2dssline.pl -h                         #(1) HELP\n";
}