[Rock-dev] log file converter

Janosch Machowinski Janosch.Machowinski at dfki.de
Mon Jan 24 11:24:14 CET 2011


Is it possible, to get a Hash representing the source/target type ?
Then you could write converters for a special type only and not for a 
whole Registry.
Greetings
     Janosch

On 24.01.2011 10:31, Alexander Duda wrote:
> 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. Inf. Janosch Machowinski
  SAR-&  Sicherheitsrobotik

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

  Phone: +49 (0)421 218-64100
  Fax:   +49 (0)421 218-64150
  E-Mail: robotik 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