Merge pull request #118 from TobiasE-github/scripted_config
Scripted config
This commit is contained in:
commit
fd896e05a4
|
@ -0,0 +1,89 @@
|
|||
#!/bin/perl -w
|
||||
#A tool to generate that part of config.json that deals with pages and Fields.
|
||||
|
||||
use List::Util qw( min max );
|
||||
|
||||
|
||||
#List of all Pages and the number of parameters they expect.
|
||||
%NoOfFieldsPerPage=qw(
|
||||
ApparentWind 0
|
||||
Autobahn 0
|
||||
Battery2 0
|
||||
Battery 0
|
||||
BME280 0
|
||||
Clock 0
|
||||
DST810 0
|
||||
FourValues2 4
|
||||
FourValues 4
|
||||
Generator 0
|
||||
KeelPosition 0
|
||||
OneValue 1
|
||||
RollPitch 0
|
||||
RudderPosition 0
|
||||
Solar 0
|
||||
ThreeValues 3
|
||||
TwoValues 2
|
||||
Voltage 0
|
||||
White 0
|
||||
WindRose 0
|
||||
WindRoseFlex 6
|
||||
);
|
||||
# No changes neede beyond this pint
|
||||
$NoOfPages=10;
|
||||
@Defaults=qw(Voltage WindRose OneValue TwoValues ThreeValues FourValues FourValues2 Clock RollPitch Battery2);
|
||||
@Numbers=qw(one two three four five six seven eight nine ten);
|
||||
@Pages=sort(keys(%NoOfFieldsPerPage));
|
||||
$MaxNoOfFieldsPerPage=max(values(%NoOfFieldsPerPage));
|
||||
|
||||
|
||||
for ($PageNo=1;$PageNo<=$NoOfPages;$PageNo++){
|
||||
print "{\n";
|
||||
print "\t","\"name\": \"page", $PageNo,"type\",\n";
|
||||
print "\t","\"label\": \"Type\",\n";
|
||||
print "\t",'"type": "list",',"\n";
|
||||
print "\t",'"default": "';
|
||||
print "$Defaults[$PageNo-1]";
|
||||
print'"',"\n";
|
||||
print "\t",'"description": "Type of page for page ',$PageNo,'",',"\n";
|
||||
print "\t",'"list": [';
|
||||
for ($p=0;$p<=$#Pages;$p++) {
|
||||
print '"', $Pages[$p], '"' ;
|
||||
if ($p < $#Pages){print ","}
|
||||
}
|
||||
print "]\n";
|
||||
print "\t",'"category": "OBP60 Page ',$PageNo,'",',"\n";
|
||||
print "\t",'"capabilities": {',"\n";
|
||||
print "\t\t",'"obp60":"true"',"\n";
|
||||
print "\t",'}',"\n";
|
||||
print "\t",'"condition":[';
|
||||
for ($vp=$PageNo;$vp<=$NoOfPages;$vp++){
|
||||
print '"{visiblePages":"',$vp,'"},';
|
||||
}
|
||||
#"visiblePages":"2"},{"visiblePages":"3"},{"visiblePages":"4"},{"visiblePages":"5"},{"visiblePages":"6"},{"visiblePages":"7"},{"visiblePages":"8"},{"visiblePages":"9"},{"visiblePages":"10"}
|
||||
print "\b",']',"\n";
|
||||
print '},',"\n";
|
||||
for ($FieldNo=1; $FieldNo<=$MaxNoOfFieldsPerPage;$FieldNo++){
|
||||
print "{\n";
|
||||
print "\t",'"name": "page',$PageNo,'value',$FieldNo,'",',"\n";
|
||||
print "\t",'"label": "Field ',$FieldNo,'",',"\n";
|
||||
print "\t",'"type": "boatData",',"\n";
|
||||
print "\t",'"default": "",',"\n";
|
||||
print "\t",'"description": "The display for field ',$Numbers[$FieldNo-1],'",',"\n";
|
||||
print "\t",'"category": "OBP60 Page ',$PageNo,'",',"\n";
|
||||
print "\t",'"capabilities": {',"\n";
|
||||
print "\t",' "obp60":"true"',"\n";
|
||||
print "\t",'},',"\n";
|
||||
print "\t",'"condition":[';
|
||||
foreach $page (@Pages) {
|
||||
if($NoOfFieldsPerPage{$page}>=$FieldNo){
|
||||
print '{"page1type":"',$page,'"},';
|
||||
}
|
||||
|
||||
#{"page1type":"OneValue"},{"page1type":"TwoValues"},{"page1type":"ThreeValues"},{"page1type":"FourValues"},{"page1type":"FourValues2"},{"page1type":"WindRoseFlex"}
|
||||
}
|
||||
print "\b],\n";
|
||||
print '},',"\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue