[Rock-dev] log file converter

Alexander Duda Alexander.Duda at dfki.de
Mon Jan 24 10:31:12 CET 2011


The first version of the log file converter is ready. I wrote some unit
tests but I would recommend if you are using it DON'T delete your source
files ;-).

To convert all /base/Time fields into the new version the syntax would
be:
Converter.register_converter "my_converter",Time.now,Orocos.registry do 
  register "/base/Time" do |dest,src|
    dest.microseconds = src.seconds * 1000000 + src.microseconds
  end
end

#Changing a type name:
Converter.register_converter "my_converter",Time.now,Orocos.registry do 
  register "/base/Time","/base/Time2" do |dest,src|
    dest.microseconds = src.seconds * 1000000 + src.microseconds
  end
end

#Changing an enum value
Converter.register_converter "my_converter",Time.now,Orocos.registry do 
  register "/base/MyEnum" do |dest,src|
    src = :bla if dest == :Test
    src = :bla2 if dest == :Test2
  end
end

#Converting more than one type on the same time
Converter.register_converter "my_converter",Time.now,Orocos.registry do 
  register "/base/MyEnum" do |dest,src|
    src = :bla if dest == :Test
    src = :bla2 if dest == :Test2
  end
  register "/base/MyEnum2" do |dest,src|
    src = :bla if dest == :Test
    src = :bla2 if dest == :Test2
  end
end

#Converting one field of a complex type
Converter.register_converter "my_converter",Time.now,Orocos.registry do 
  register "/base/samples/frame/Frame" do |dest,src|
	dest.time = Time.now
	exclude = [:self,"time"] 
	deep_cast(dest,src, exclude)   # auto copy+registered converters
  end
end

thoughts? 

Alex



-- 
Dipl.-Ing. Alexander Duda 
Unterwasserrobotik

DFKI Bremen
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany

Phone: +49 (0)421 178-456620
Fax:   +49 (0)421 178-454150
E-Mail: alexander.duda at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.:    DE 148646973
Steuernummer:  19/673/0060/3



More information about the Rock-dev mailing list