machine_setup 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -6,15 +6,14 @@ begin
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "machine_setup"
8
8
  gem.executables = %W{setup_config_gen setup_init_dsl setup_analyze_dat}
9
- gem.default_executable = gem.executables.first
10
9
  gem.summary = %Q{Generating configuration for machine setup parameters.}
11
10
  gem.description = %Q{Helps generating configuration files for machine setup parameters.}
12
11
  gem.email = "robi-wan@suyu.de"
13
12
  gem.homepage = "http://github.com/robi-wan/machine_setup"
14
13
  gem.authors = ["robi-wan"]
15
14
  gem.add_runtime_dependency "i18n", "~> 0.5"
16
- gem.add_runtime_dependency "inifile", "~> 0.3"
17
- gem.add_runtime_dependency "erubis", "~> 2.6"
15
+ gem.add_runtime_dependency "inifile", "~> 0.4"
16
+ gem.add_runtime_dependency "erubis", "~> 2.7"
18
17
  gem.add_development_dependency "shoulda"
19
18
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
20
19
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
data/bin/setup_config_gen CHANGED
@@ -26,16 +26,22 @@ begin
26
26
  if File.file?(trans_file)
27
27
  SetupConfiguration::Translation::Translator.i18n_load_path(trans_file)
28
28
  else
29
- puts "WARNING: expected file with translations '#{trans_file}' not found."
29
+ $stderr.puts "WARNING: expected file with translations '#{trans_file}' not found."
30
30
  end
31
31
  end
32
32
 
33
33
  generator.generate()
34
34
 
35
35
  puts("#{File.basename(__FILE__)} completed.")
36
- rescue Exception => e
37
- puts(e.message)
38
- puts(e.backtrace().join("\n")) if trace
36
+ rescue Exception => ex
37
+ $stderr.puts("#{File.basename(__FILE__)} aborted!")
38
+ $stderr.puts(ex.message)
39
+ if trace
40
+ $stderr.puts(ex.backtrace().join("\n"))
41
+ else
42
+ $stderr.puts "(See full trace by running with --trace)"
43
+ end
44
+
39
45
  exit(1)
40
46
 
41
- end
47
+ end
data/bin/setup_init_dsl CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  begin
4
+ trace = ARGV.delete("--trace")
4
5
  legacy_data_folder=ARGV[0]
5
6
  machine_name=ARGV[1]
6
7
  machine_abbreviation=ARGV[2]
@@ -18,10 +19,15 @@ begin
18
19
  importer.output
19
20
 
20
21
  puts("#{File.basename(__FILE__)} completed.")
21
- rescue Exception => e
22
- #puts("Error, program will exit => #{e}!")
23
- puts(e.message)
24
- #puts(e.backtrace().join("\n"))
22
+ rescue Exception => ex
23
+ $stderr.puts("#{File.basename(__FILE__)} aborted!")
24
+ $stderr.puts(ex.message)
25
+ if trace
26
+ $stderr.puts(ex.backtrace().join("\n"))
27
+ else
28
+ $stderr.puts "(See full trace by running with --trace)"
29
+ end
30
+
25
31
  exit(1)
26
32
 
27
33
  end
@@ -1,6 +1,6 @@
1
- # install java http://java.sun.com/javase/downloads/index.jsp
2
- # install jruby http://jruby.org/download
3
- # call jruby -S gem install machine_setup
1
+ # install ruby (1.8.x) http://rubyinstaller.org/
2
+ # or jruby http://jruby.org/
3
+ # call (j)ruby -S gem install machine_setup
4
4
  # call setup_config_gen <this file>
5
5
 
6
6
  SetupConfiguration :ssm, :ssm do
@@ -22,6 +22,9 @@ SetupConfiguration :ssm, :ssm do
22
22
  param :sensor_height, 4
23
23
  param :sensor_x_distance_to_grinding_point, 5
24
24
  param :grinding_point_height, 6
25
+ param :reference_angle_grinding_drive, 7
26
+ param :grinding_angle_drive_home_mode, 8
27
+ param :tooth_area, 9
25
28
  end
26
29
 
27
30
  category :drives do
@@ -43,39 +46,12 @@ SetupConfiguration :ssm, :ssm do
43
46
  depends_on :blade_drive_selection
44
47
  end
45
48
 
46
- param :linear_axis_drive_selection, 320
47
- param :linear_axis_drive_distance_revolution, 321 do
48
- depends_on :linear_axis_drive_selection
49
- end
50
- param :linear_axis_drive_gear_in, 322 do
51
- depends_on :linear_axis_drive_selection
52
- end
53
- param :linear_axis_drive_gear_out, 323 do
54
- depends_on :linear_axis_drive_selection
55
- end
56
- param :linear_axis_drive_length, 324 do
57
- depends_on :linear_axis_drive_selection
58
- end
59
- param :linear_axis_drive_motortype, 325 do
60
- depends_on :linear_axis_drive_selection
61
- end
49
+ drive :linear_axis, 320
62
50
 
63
- param :grinding_angle_drive_selection, 330
64
- param :grinding_angle_drive_distance_revolution, 331 do
65
- depends_on :grinding_angle_drive_selection
66
- end
67
- param :grinding_angle_drive_gear_in, 332 do
68
- depends_on :grinding_angle_drive_selection
69
- end
70
- param :grinding_angle_drive_gear_out, 333 do
71
- depends_on :grinding_angle_drive_selection
72
- end
73
- param :grinding_angle_drive_length, 334 do
74
- depends_on :grinding_angle_drive_selection
75
- end
76
- param :grinding_angle_drive_motortype, 335 do
77
- depends_on :grinding_angle_drive_selection
78
- end
51
+ drive :grinding_angle, 330
52
+
53
+ param :grinding_disc_drive_motortype, 345
54
+ param :sharpening_disc_drive_motortype, 355
79
55
  end
80
56
 
81
- end
57
+ end
@@ -13,7 +13,7 @@ de:
13
13
  xxx0: Steuerung mit realen Achsen und Schutzhauben
14
14
  xxx1: Steuerung simuliert alle nicht angew�hlten Achsen und Schutzhauben
15
15
  xxx2: Touch baut keine Verbindung zur Steuerung auf
16
-
16
+
17
17
 
18
18
  Zehnerstelle:
19
19
  xx0x: CanBus einschalten
@@ -31,46 +31,79 @@ de:
31
31
  grinding_point_height:
32
32
  name: "H�he des Schleifpunktes [mm]"
33
33
  comment: |
34
- H�he der Schleifscheibe �ber der 'Nullinie' - horitontale Linie durch den Messerdrehpunkt.
35
- Angabe erfolgt in Zehntelmillimeter.
34
+ H�he der Schleifscheibe �ber der 'Nullinie' - horitontale Linie durch den Messerdrehpunkt.
35
+ Angabe erfolgt in Zehntelmillimeter.
36
+
37
+
38
+ Bsp: Die Angabe 400 wird als 40 Millimeter interpretiert.
39
+
40
+ reference_angle_grinding_drive:
41
+ name: "Referenzwinkel Schleifwinkelmotor [�]"
42
+ comment: |
43
+ Der Winkel, bei dem der Schleifwinkelmotor seine Referenz erh�lt. Der Schleifwinkelmotor kann durch eine Fahrt auf Block referenzieren. Da es hierbei Fertigungstoleranzen geben kann, muss der dabei
44
+ angefahrene Winkel hier eingestellt werden.
45
+ Bei Referenzierung muss dieser Parameter auf den Winkel des Referenzk�rpers eingestellt werden.
46
+ Angabe erfolgt in Zehntelgrad.
36
47
 
37
48
 
38
- Bsp: Die Angabe 400 wird als 40 Millimeter interpretiert.
49
+ Bsp: Die Angabe 100 wird als 10 Grad interpretiert.
39
50
 
40
51
  drive_blade_reference_point:
41
52
  name: "Messer Referenzpunkt [�]"
42
- comment: "Einstellung des Referenz-Initiators f�r die Messerachse"
53
+ comment: |
54
+ Einstellung des Referenz-Initiators f�r die Messerachse.
55
+ Mit Hilfe des Parameters k�nnen unterschiedliche Referenz-Initiator-Positionen ausgeglichen werden.
56
+ Ziel ist es, einen Wert einzustellen, der daf�r sorgt, dass nach der Referenzfahrt der 'Halbmond' auf der rechten Seite ist und die Messeraufnahmeschrauben horizontal ausgerichtet sind.
43
57
 
44
58
  drive_linear_axis_reference_point:
45
59
  name: "Linearachse Referenzpunkt [mm]"
46
60
  comment: |
47
- Abstand des Schleifpunktes vom Nullpunkt (Mittelpunkt des Messers)
48
-
49
- SSM 100 : 590mm (Stand 1.Juli 2010)
50
-
51
- SSM 101 : 629mm (Stand 03.08.2010)
61
+ Maximalabstand des Schleifpunktes vom Nullpunkt (Mittelpunkt des Messers), wenn Schlitten auf den entferntesten Anschlag gefahren ist.
52
62
 
53
63
  sensor_height:
54
64
  name: "Sensor-H�he [mm]"
55
- comment: "H�he des Kontur-Sensors.��In welcher H�he ist der Sensor montiert (gemessen wird von der horizontalen Mittellinie)����Angabe erfolgt in Zehntelmillimeter.����Bsp: Die Angabe 1900 wird als 190 Millimeter interpretiert."
65
+ comment: |
66
+ H�he des Messerabtastsensors.
67
+ In welcher H�he ist der Sensor montiert (gemessen wird von der horizontalen Mittellinie).
68
+
69
+
70
+ Angabe erfolgt in Zehntelmillimeter.
71
+ Bsp: Die Angabe 1900 wird als 190 Millimeter interpretiert.
56
72
 
57
73
  sensor_x_distance_to_grinding_point:
58
74
  name: "Sensor-Linksposition [mm]"
59
75
  comment: |
60
- Relative Sensorpositon von Nullposition (Schleifpunkt) nach links in ausgefahrenem Zustand.
61
- Angabe erfolgt in Zehntelmillimeter.
76
+ Positon des Messerabtastsensors relativ zur Nullposition (Schleifpunkt) nach links in ausgefahrenem Zustand.
77
+
78
+
79
+ Angabe erfolgt in Zehntelmillimeter.
80
+ Bsp: Die Angabe 1550 wird als 155 Millimeter interpretiert.
81
+
82
+ grinding_angle_drive_home_mode:
83
+ name: "Referenzmodus des Schleifwinkelmotors"
84
+ comment: |
85
+ Konfiguriert die Art der Referenzierung f�r den Schleifwinkelmotor.
86
+
62
87
 
63
- Bsp: Die Angabe 1550 wird als 155 Millimeter interpretiert.
88
+ 0: Der Motor referenziert durch Fahrt auf Anschlag.
89
+ 1: Der Motor erh�lt seine Position durch Teachen (nur wirksam bei MultiTurn)
90
+
91
+
92
+ Achtung: Bei Wechsel des Referenzmodus auch den Parameter 'Referenzwinkel Schleifwinkelmotor' anpassen.
93
+
94
+ tooth_area:
95
+ name: "Schleifwinkelbereich mit Z�hnen"
96
+ comment: "Auswahl des Schleifwinkelbereiches, der Z�hne enth�lt. Schleifscheibe wird abgehoben."
64
97
 
65
98
  blade_drive_selection:
66
99
  name: "Messerantrieb abgew�hlt=0/Servo=1/FU=2"
67
100
  comment: &COMMON_DRIVE_CONFIG |
68
- An-/Abwahl der Achse
101
+ An-/Abwahl der Achse
69
102
 
70
103
 
71
- 0: Achse im System nicht vorhanden, wird vom System simuliert.
72
- 1: Achse ist im Antriebssystem als Servoantrieb vorhanden.
73
- 2: Achse ist im Antriebssystem als Frequenzumrichterantrieb vorhanden.
104
+ 0: Achse im System nicht vorhanden, wird vom System simuliert.
105
+ 1: Achse ist im Antriebssystem als Servoantrieb vorhanden.
106
+ 2: Achse ist im Antriebssystem als Frequenzumrichterantrieb vorhanden.
74
107
 
75
108
  blade_drive_distance_revolution:
76
109
  name: "Messerantrieb Weg/U [mm]"
@@ -91,17 +124,17 @@ de:
91
124
  blade_drive_motortype:
92
125
  name: "Messerantrieb Motortyp"
93
126
  comment: &COMMON_DRIVE_MOTORTYPE |
94
- Einerstelle:
95
- x0: Getriebemotor Nord, 0,37kW
96
- x1: Getriebemotor Nord, 0,75kW
97
- x2: Getriebemotor Lenze 063C32
98
- x3: Getriebemotor Lenze 047C22
99
- x4: Getriebemotor Lenze 063C22
127
+ Einerstelle:
128
+ x0: Getriebemotor Nord, 0,37kW
129
+ x1: Getriebemotor Nord, 0,75kW
130
+ x2: Getriebemotor Lenze 063C32
131
+ x3: Getriebemotor Lenze 047C22
132
+ x4: Getriebemotor Lenze 063C22
100
133
 
101
134
 
102
- Zehnerstelle:
103
- 0x: PTC inaktiv
104
- 1x: PTC aktiv
135
+ Zehnerstelle:
136
+ 0x: PTC inaktiv
137
+ 1x: PTC aktiv
105
138
 
106
139
  linear_axis_drive_selection:
107
140
  name: "Linearachse abgew�hlt=0/Servo=1/FU=2"
@@ -151,3 +184,12 @@ de:
151
184
  name: "Schleifwinkelachse Motortyp"
152
185
  comment: *COMMON_DRIVE_MOTORTYPE
153
186
 
187
+ grinding_disc_drive_motortype:
188
+ name: "Schleifscheibe Motortyp"
189
+ comment: &DISC_DRIVE_MOTORTYPE |
190
+ 0: Dunker
191
+ 1: Papst
192
+
193
+ sharpening_disc_drive_motortype:
194
+ name: "Abziehscheibe Motortyp"
195
+ comment: *DISC_DRIVE_MOTORTYPE
@@ -9,18 +9,18 @@ en:
9
9
  machine_config:
10
10
  name: "Machine virtual=1 / real=0"
11
11
  comment: |
12
- Units Place:
12
+ Unit's Place:
13
13
  xx0: Controller with real drives and covers
14
14
  xx1: Controller simulates all selected drives and covers
15
15
  xx2: Webertouch does not connect to Controller
16
16
 
17
17
 
18
- Tens Place:
18
+ Ten's Place:
19
19
  x0x: CanBus on
20
20
  x1x: CanBus off
21
21
 
22
22
 
23
- Hundreds Place:
23
+ Hundred's Place:
24
24
  1xx: The controller simulates all drives.
25
25
 
26
26
 
@@ -30,23 +30,59 @@ en:
30
30
 
31
31
  grinding_point_height:
32
32
  name: "Height of Grinding Point [mm]"
33
- comment: "Height of Grinding Point gemessen von der horizontalen Mittelpunkt-Linie [mm]"
33
+ comment: "Height of Grinding Point above horizontal central point (pivot point of blade drive) line [mm]"
34
34
 
35
35
  drive_blade_reference_point:
36
36
  name: "Blade Drive Reference Point [�]"
37
- comment: "Einstellung des Referenz-Initiators f�r die Messerachse����"
37
+ comment: |
38
+ Setting for reference initiator of blade drive.
39
+ This setting is for compensating different reference initiator positions.
40
+ You have to adjust this setting until the correct position of blade drive is reached.
41
+ Correct position means: half-moon is on the right hand side and blade holding fixture screws are horizontally alined.
38
42
 
39
43
  drive_linear_axis_reference_point:
40
44
  name: "Linear Axis Reference Point [mm]"
41
- comment: "vom Mittelpunkt des Messers nach rechts gemessen��SSM 100 : 590mm (Stand 1.Juli 2010)��SSM 101 :"
45
+ comment: "Maximum distance of Grinding Point to central point (pivot point of blade drive) when Linear Axis is as far away as possible from central point."
42
46
 
43
47
  sensor_height:
44
48
  name: "Sensorheight [mm]"
45
- comment: "Height des Kontur-Sensors [mm]��In welcher Height ist der Sensor montiert (gemessen wird von der horizontalen Mittellinie)"
49
+ comment: |
50
+ Height of Sensor [mm]
51
+ Height of Sensor above horizontal central point (pivot point of blade drive) line.
46
52
 
47
53
  sensor_x_distance_to_grinding_point:
48
54
  name: "Sensor Distance to Grinding Point [mm]"
49
- comment: "relative Sensorpositon von Nullposition nach links in ausgefahrenem Zustand [mm]����"
55
+ comment: |
56
+ Positon of Blade Scanning Sensor relative to Grinding Point in extended state.
57
+
58
+
59
+ Value is given in tenth of millimeter
60
+ Example: Value 1550 will be used as 155 millimeters.
61
+
62
+ reference_angle_grinding_drive:
63
+ name: "Reference Angle Grinding Angle Drive [�]"
64
+ comment: |
65
+ Value is given in tenth of degree.
66
+
67
+
68
+ Example: Value 100 will be used as 10 degree.
69
+
70
+ grinding_angle_drive_home_mode:
71
+ name: "Reference mode of Grinding Angle Drive"
72
+ comment: |
73
+ Configure the used mode for referencing the angle grinding drive.
74
+ This is especially useful if this drive has a MultiTurn-Encoder.
75
+
76
+
77
+ 0: Move drive until torque reached
78
+ 1: Teach drive position (only effective with multiturn drive)
79
+
80
+
81
+ Attention: When changing reference mode do not forget to adjust parameter 'Reference Angle Grinding Angle Drive'.
82
+
83
+ tooth_area:
84
+ name: "Grinding Angle Area with Teeth"
85
+ comment: "Grinding disc will lift off from blade at configured grinding area."
50
86
 
51
87
  blade_drive_selection:
52
88
  name: "Blade Drive - Select/Deselect"
@@ -74,12 +110,15 @@ en:
74
110
 
75
111
  blade_drive_length:
76
112
  name: "Blade Drive - Length [mm]"
77
- comment: "Gesamtl�nge oder Verfahrbereich des Antriebs in mm."
113
+ comment: &COMMON_DRIVE_LENGTH "Length or Traversing Range of Drive [in mm]."
78
114
 
79
115
  blade_drive_motortype:
80
116
  name: "Blade Drive - Motortype"
81
117
  comment: &COMMON_DRIVE_MOTORTYPE |
82
- Unit�s Place:
118
+ Select type of Drive
119
+
120
+
121
+ Unit's Place:
83
122
  x0: Nord, 0,37kW
84
123
  x1: Nord, 0,75kW
85
124
  x2: Lenze 063C32
@@ -87,7 +126,7 @@ en:
87
126
  x4: Lenze 063C22
88
127
 
89
128
 
90
- Tens Place:
129
+ Ten's Place:
91
130
  0x: without PTC
92
131
  1x: with PTC
93
132
 
@@ -109,7 +148,7 @@ en:
109
148
 
110
149
  linear_axis_drive_length:
111
150
  name: "Linear Axis - Length [mm]"
112
- comment: &COMMON_DRIVE_LENGTH "Length or Traversing Range of Drive in Millimeter."
151
+ comment: *COMMON_DRIVE_LENGTH
113
152
 
114
153
  linear_axis_drive_motortype:
115
154
  name: "Linear Axis - Motortype"
@@ -133,9 +172,21 @@ en:
133
172
 
134
173
  grinding_angle_drive_length:
135
174
  name: "Grinding Angle Axis - Length [mm]"
136
- comment: "Gesamtl�nge oder Verfahrbereich des Antriebs in mm."
175
+ comment: *COMMON_DRIVE_LENGTH
137
176
 
138
177
  grinding_angle_drive_motortype:
139
178
  name: "Grinding Angle Axis - Motortype"
140
179
  comment: *COMMON_DRIVE_MOTORTYPE
141
180
 
181
+ grinding_disc_drive_motortype:
182
+ name: "Grinding Disc - Motortype"
183
+ comment: &DISC_DRIVE_MOTORTYPE |
184
+ Select type of Drive
185
+
186
+
187
+ 0: Dunker
188
+ 1: Papst
189
+
190
+ sharpening_disc_drive_motortype:
191
+ name: "Sharpening Disc - Motortype"
192
+ comment: *DISC_DRIVE_MOTORTYPE
@@ -1,7 +1,8 @@
1
- # install java http://java.sun.com/javase/downloads/index.jsp
2
- # install jruby http://jruby.org/download
3
- # call jruby -S gem install machine_setup
1
+ # install ruby (1.8.x) http://rubyinstaller.org/
2
+ # or jruby http://jruby.org/
3
+ # call (j)ruby -S gem install machine_setup
4
4
  # call setup_config_gen <this file>
5
+
5
6
  SetupConfiguration :underleaver, :ul do
6
7
 
7
8
  setting do
@@ -142,4 +143,4 @@ SetupConfiguration :underleaver, :ul do
142
143
  end
143
144
  end
144
145
 
145
- end
146
+ end
@@ -36,15 +36,15 @@ de:
36
36
 
37
37
  distance_blade_to_sheet_drive:
38
38
  name: "Weg Schneide bis Blattantrieb [mm]"
39
- comment: ""
39
+ comment: "Konfiguriert den Abstand [mm] des Messers vom Blattantrieb."
40
40
 
41
41
  distance_sheet_drive_to_sheet_exit:
42
42
  name: "Weg Blattantrieb bis Blattaustritt [mm]"
43
- comment: ""
43
+ comment: "Konfiguriert den Abstand [mm] des Blattantriebes vom Blattaustritt."
44
44
 
45
45
  time_for_cutting_unit:
46
46
  name: "Zeit in der die Schneideeinrichtung oben sein muss [ms]"
47
- comment: ""
47
+ comment: "Konfiguriert die Zeit [ms], in der die Schneideinrichtung bei automatischen Hebevorg�ngen an der oberen Endposition angekommen sein mu�."
48
48
 
49
49
  paper_jam_detection_active:
50
50
  name: "Papierstau�berwachung"
@@ -349,7 +349,7 @@ de:
349
349
 
350
350
  paper_roll_drive_distance_revolution:
351
351
  name: "Bahnantrieb Weg/Umdrehung [mm]"
352
- comment: ""
352
+ comment: &COMMON_DISTANCE_REVOLUTION "L�nge des zur�ckgelegten Weges w�hrend einer Umdrehung [mm]"
353
353
 
354
354
  paper_roll_drive_gear_in:
355
355
  name: "Bahnantrieb Getriebefaktor Z�hler"
@@ -365,7 +365,7 @@ de:
365
365
 
366
366
  blade_drive_diameter:
367
367
  name: "Messerwelle Durchmesser [mm]"
368
- comment: ""
368
+ comment: "Durchmesser der Messerwelle [mm]"
369
369
 
370
370
  blade_drive_gear_in:
371
371
  name: "Messerwelle Getriebefaktor Z�hler"
@@ -381,7 +381,7 @@ de:
381
381
 
382
382
  paper_feed_drive_distance_revolution:
383
383
  name: "Blattantrieb Weg/Umdrehung [mm]"
384
- comment: ""
384
+ comment: *COMMON_DISTANCE_REVOLUTION
385
385
 
386
386
  paper_feed_drive_gear_in:
387
387
  name: "Blattantrieb Getriebefaktor Z�hler"
@@ -397,7 +397,7 @@ de:
397
397
 
398
398
  transport_drive_distance_revolution:
399
399
  name: "Portionsauflageband Weg/Umdrehung [mm]"
400
- comment: ""
400
+ comment: *COMMON_DISTANCE_REVOLUTION
401
401
 
402
402
  transport_drive_gear_in:
403
403
  name: "Portionsauflageband Getriebefaktor Z�hler"
@@ -417,7 +417,7 @@ de:
417
417
 
418
418
  infeed_drive_distance_revolution:
419
419
  name: "Einlegeband Weg/Umdrehung [mm]"
420
- comment: ""
420
+ comment: *COMMON_DISTANCE_REVOLUTION
421
421
 
422
422
  infeed_drive_gear_in:
423
423
  name: "Einlegeband Getriebefaktor Z�hler"
@@ -0,0 +1,84 @@
1
+ module SetupConfiguration
2
+
3
+ module Generator
4
+ @output_path=""
5
+
6
+ def output_path
7
+ @output_path
8
+ end
9
+
10
+ def output_path=(out)
11
+ @output_path=out
12
+ end
13
+
14
+ def output(bind, template)
15
+ if template then
16
+ rhtml = Erubis::Eruby.new(template)
17
+
18
+ File.open(File.join(output_path, bind.output), "w") do |f|
19
+ f << rhtml.result(bind.get_binding)
20
+ end
21
+ else
22
+ $stderr.puts "WARNING: No template found. Generation of #{bind.output} aborted."
23
+ end
24
+ end
25
+
26
+ # [:de, "deutsch", (0..199), "deutsch1.lng"],
27
+ # [:de, "deutsch", (200..599), "deutsch2.lng"],
28
+ # [:de, "deutsch", (600..1299), "deutsch3.lng"],
29
+ # [:en, "english", (0..199), "english1.lng"],
30
+ # [:en, "english", (200..599), "english2.lng"],
31
+ # [:en, "english", (600..1299), "english3.lng"],
32
+ def description_bindings()
33
+ Translation.languages().collect() do |lang|
34
+ SetupConfiguration.description_ranges().collect() do |range|
35
+ # constructs the output file names
36
+ out= "#{Translation.language_name(lang)}#{SetupConfiguration.description_ranges().index(range)+1}.lng"
37
+ ParameterTemplateBinding.new(lang, range, out)
38
+ end
39
+ end.flatten()
40
+ end
41
+
42
+ def description_template
43
+ %q{
44
+ [<%= lang_name.upcase %>]
45
+ <% parameter_range.each do |number| %>
46
+ HILFEPARAM<%= number %>=<%= description(number) %>
47
+ <% end %>
48
+ }.gsub(/^\s*/, '')
49
+ end
50
+
51
+ def parameter_bindings()
52
+ Translation.languages().collect() do |lang|
53
+ # constructs the output file names
54
+ out= "#{Translation.language_name(lang)}.lng"
55
+ ParameterTemplateBinding.new(lang, SetupConfiguration.parameter_range(), out)
56
+ end
57
+ end
58
+
59
+ def parameter_template(lang)
60
+ find_template("#{lang.to_s}.lng.erb")
61
+ end
62
+
63
+ def mps_template()
64
+ find_template("mps3.ini.erb")
65
+ end
66
+
67
+ def mps_binding()
68
+ MPSTemplateBinding.new do |mps|
69
+ mps.output="mps3.ini"
70
+ end
71
+ end
72
+
73
+ def find_template(name)
74
+ template=File.join(File.dirname(__FILE__), "templates", name)
75
+ if File.file?(template)
76
+ File.read(template)
77
+ else
78
+ $stderr.puts "WARNING: Template file #{template} expected but not found"
79
+ end
80
+ end
81
+
82
+ end #module Generator
83
+
84
+ end#module SetupConfiguration
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # encoding: windows-1252
2
2
  module SetupConfiguration
3
3
 
4
4
  module Legacy
@@ -45,7 +45,7 @@ module SetupConfiguration
45
45
  input = File.read(template)
46
46
  eruby = Erubis::Eruby.new(input)
47
47
 
48
- File.open(File.join(output_path, "#{@name}.#{SetupConfiguration::Translation::FILE_EXTENSION}" ), "w") do |f|
48
+ File.open(File.join(output_path, "#{@name}.#{Translation::FILE_EXTENSION}" ), "w") do |f|
49
49
  f << eruby.result(binding())
50
50
  end
51
51
 
@@ -130,7 +130,7 @@ module SetupConfiguration
130
130
  #check for multiple defined parameters (in different categories)
131
131
  #warn and skip
132
132
  if param_by_number(param_number) then
133
- puts("WARNING: parameter '#{ param_key(param_number)}' with number '#{param_number}' multiple defined. Duplicate found in category '#{category_name(cat_number)}' will be skipped.")
133
+ $stderr.puts("WARNING: parameter '#{ param_key(param_number)}' with number '#{param_number}' multiple defined. Duplicate found in category '#{category_name(cat_number)}' will be skipped.")
134
134
  else
135
135
  parameter = Parameter.new(param_number)
136
136
  parameter.depends_on(deps[index])