From 017b9611efaad791df9c5cb7874aa7dc3e796537 Mon Sep 17 00:00:00 2001
From: niepra01 <rolf.niepraschk@ptb.de>
Date: Mon, 3 Apr 2017 11:30:05 +0200
Subject: [PATCH] umgeschrieben, vereinfacht, 2 Parameter

---
 SRG-2/createImages | 171 +++++++++++++++++++++++----------------------
 1 file changed, 88 insertions(+), 83 deletions(-)

diff --git a/SRG-2/createImages b/SRG-2/createImages
index 2c5cafd..6684448 100755
--- a/SRG-2/createImages
+++ b/SRG-2/createImages
@@ -1,31 +1,36 @@
 #!/bin/bash
 #
-# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-03-27
+# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2017-04-03
 #
 # Erzeugt aus einem leeren Messgeräte-Bild und neun 7-Segment-Bildern
-# neue Messgeräte-Bilder mit zufälliger 6-stelliger Anzeige
+# neue Messgeräte-Bilder 
 #
-# Parameter=Anzahl der Mantissenziffern
-# (wenn angegeben, dann kein Exponenent)
+# Parameter1 = Anzahl der erzeugten Bilddateien
+#
+# Parameter2 = Anzahl der Einzelziffern
 
 MAIN="SRG-2" # device name
 IMAGE_DIR=./images
-MAX_FILES=10
-MAX_DIGITS=6
+MAX_DIGITS=6 # do not edit!
+MAX_FILES=10 # do not edit!
+NUMBER_OF_DIGITS=$MAX_DIGITS
+
+SHOW_EXP=1
 
 if [ -n "$1" ]; then
-  NUMBER_OF_DIGITS=$1
-  SHOW_EXP=0
-else
-  NUMBER_OF_DIGITS=$MAX_DIGITS
-  SHOW_EXP=1
+  MAX_FILES=$1
+  if [ -n "$2" ]; then
+    SHOW_EXP=0
+    NUMBER_OF_DIGITS=$2
+  fi  
 fi
 
 if (( $NUMBER_OF_DIGITS > $MAX_DIGITS )); then
   NUMBER_OF_DIGITS=$MAX_DIGITS
-fi 
-if (( $NUMBER_OF_DIGITS < 1 )); then
-  NUMBER_OF_DIGITS=1
+else 
+  if (( $NUMBER_OF_DIGITS < 1 )); then
+    NUMBER_OF_DIGITS=1
+  fi
 fi 
 
 rm -rf "$IMAGE_DIR"
@@ -47,98 +52,98 @@ digitFile[8]='digit-8.png'
 digitFile[9]='digit-9.png'
 digitFile[99]=$emptyCanvas
 
-digitPos[10]='+119+177'
-digitPos[9]='+161.4+177'
-digitPos[8]='+203.8+177'
-digitPos[7]='+246.2+177'
-digitPos[6]='+288.6+177'
-digitPos[5]='+331+177'
-digitPos[4]='+373.4+177'
-digitPos[3]='+415.8+177'
-digitPos[2]='+458.2+177'
-digitPos[1]='+500.6+177' 
-
-esignPos=${digitPos[3]}
-
-dotPos[10]='+119+177'
-dotPos[9]='+161.4+177'
-dotPos[8]='+203.8+177'
-dotPos[7]='+246.2+177'
-dotPos[6]='+288.6+177'
-dotPos[5]='+331+177'
-dotPos[4]='+373.4+177'
-dotPos[3]='+415.8+177'
-dotPos[2]='+458.2+177'
-dotPos[1]='+500.6+177'
+digitPos[1]='+119+177'
+digitPos[2]='+161.4+177'
+digitPos[3]='+203.8+177'
+digitPos[4]='+246.2+177'
+digitPos[5]='+288.6+177'
+digitPos[6]='+331+177'
+digitPos[7]='+373.4+177'
+digitPos[8]='+415.8+177'
+digitPos[9]='+458.2+177'
+digitPos[10]='+500.6+177' 
+
+dotPos[1]=${digitPos[1]}
+dotPos[2]=${digitPos[2]}
+dotPos[3]=${digitPos[3]}
+dotPos[4]=${digitPos[4]}
+dotPos[5]=${digitPos[5]}
+dotPos[6]=${digitPos[6]}
+dotPos[7]=${digitPos[7]}
+dotPos[8]=${digitPos[8]}
+dotPos[9]=${digitPos[9]}
+dotPos[10]=${digitPos[10]}
 
 for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
 
-DPR=$((RANDOM % 6 + 5)) # random dot position (5..10)
-ESIGN=$((RANDOM % 2)) # random (0|1=' '|-)
-if [ $ESIGN == 1 ]; then
-  ESF=$minusFile # sign file
-  ESCH='-'  # sign character
+if (( $SHOW_EXP > 0 )); then 
+  if [ $((RANDOM % 2)) == 1 ]; then # random sign (0|1)
+    esignFile=$minusFile
+    esignChar='-'
+  else
+    esignFile=$emptyCanvas
+    esignChar='_'
+  fi
+  DNR[9]=$((RANDOM % 10))
+  DIGIT9=${digitFile[ ${DNR[9]} ]}
+  DNR[10]=$((RANDOM % 10))
+  DIGIT10=${digitFile[ ${DNR[10]} ]}
+  eSep='_'
 else
-  ESF=$emptyCanvas
-  ESCH='_'
-fi
+  esignFile=$emptyCanvas
+  esignChar=''
+  DNR[9]=''  
+  DIGIT9=$emptyCanvas
+  DNR[10]=''
+  DIGIT10=$emptyCanvas
+  eSep=''  
+fi 
 
-for i in {1..10}; do
+DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS)
+for (( i=1; i<=$MAX_DIGITS; i++ )); do
   DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
   if [ $DPR == $i ]; then
     DF[$i]="$dotFile"
-    DP[$i]="." # dot character
+    dotChar[$i]="." # dot character
   else
     DF[$i]=$emptyCanvas
-    DP[$i]=""
+    dotChar[$i]=""
   fi  
-done 
-
-value="${DNR[10]}${DP[10]}${DNR[9]}${DP[9]}${DNR[8]}${DP[8]}"
-value+="${DNR[7]}${DP[7]}${DNR[6]}${DP[6]}${DNR[5]}${DP[5]}"
-value+="_$ESCH"
-value+="${DNR[2]}${DP[2]}${DNR[1]}${DP[1]}"
-
-fname="$IMAGE_DIR/$MAIN@$value@.png"
+done
 
 value=""
 for (( i=1; i<=$MAX_DIGITS; i++ )); do  
-  if (( $i <= $NUMBER_OF_DIGITS )); then 
-    eval DIGIT$i=${digitFile[ ${DNR[i+4]} ]}
-    eval DF$i=${DF[i+4]}
-    value+="${DNR[i+4]}${DP[i+4]}" 
+  if (( $i <= $NUMBER_OF_DIGITS )); then
+    eval DIGIT$i=${digitFile[ ${DNR[i]} ]}
+    eval DOT$i=${DF[i]}
+    value+="${DNR[i]}${dotChar[i]}" 
   else
     eval DIGIT$i=$emptyCanvas;
-    eval DF$i=$emptyCanvas;
+    eval DOT$i=$emptyCanvas;
   fi
 done
-
-if (( $SHOW_EXP > 0 )); then
-  value+="E${DNR[2]}${DNR[1]}"
-fi
+value+="$eSep$esignChar${DNR[9]}${DNR[10]}"
 
 fname="$IMAGE_DIR/$MAIN@$value@.png"
 
 convert body.png \
-  $DIGIT1  -geometry ${digitPos[10]} -composite \
-  $DF1                  -geometry ${dotPos[10]}   -composite \
-  $DIGIT2  -geometry ${digitPos[9]}  -composite \
-  $DF2                   -geometry ${dotPos[9]}    -composite \
-  $DIGIT3  -geometry ${digitPos[8]}  -composite \
-  $DF3                   -geometry ${dotPos[8]}    -composite \
-  $DIGIT4  -geometry ${digitPos[7]}  -composite \
-  $DF4                   -geometry ${dotPos[7]}    -composite \
-  $DIGIT5  -geometry ${digitPos[6]}  -composite \
-  $DF5                   -geometry ${dotPos[6]}    -composite \
-  $DIGIT6  -geometry ${digitPos[5]}  -composite \
-  $DF6                   -geometry ${dotPos[5]}    -composite \
-  $ESF                       -geometry $esignPos       -composite \
-  ${digitFile[ ${DNR[2]} ]}  -geometry ${digitPos[2]}  -composite \
-  ${DF[2]}                   -geometry ${dotPos[2]}    -composite \
-  ${digitFile[ ${DNR[1]} ]}  -geometry ${digitPos[1]}  -composite \
-  ${DF[1]}                   -geometry ${dotPos[1]}    -composite \
+  $DIGIT1  -geometry ${digitPos[1]} -composite \
+  $DOT1                   -geometry ${dotPos[1]}    -composite \
+  $DIGIT2  -geometry ${digitPos[2]}  -composite \
+  $DOT2                   -geometry ${dotPos[2]}    -composite \
+  $DIGIT3  -geometry ${digitPos[3]}  -composite \
+  $DOT3                   -geometry ${dotPos[3]}    -composite \
+  $DIGIT4  -geometry ${digitPos[4]}  -composite \
+  $DOT4                   -geometry ${dotPos[4]}    -composite \
+  $DIGIT5  -geometry ${digitPos[5]}  -composite \
+  $DOT5                   -geometry ${dotPos[5]}    -composite \
+  $DIGIT6  -geometry ${digitPos[6]}  -composite \
+  $DOT6                   -geometry ${dotPos[6]}    -composite \
+  $esignFile -geometry ${digitPos[8]} -composite \
+  $DIGIT9 -geometry ${digitPos[9]}  -composite \
+  $DIGIT10 -geometry ${digitPos[10]}  -composite \
   $fname
-
+  
 exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
 
 echo -e "$FNb:\t$fname"
-- 
GitLab