From f5dc96334f8109224ad642ea1341747f35467721 Mon Sep 17 00:00:00 2001
From: niepra01 <rolf.niepraschk@ptb.de>
Date: Mon, 3 Apr 2017 08:49:57 +0200
Subject: [PATCH] umgeschrieben, vereinfacht, 2 Parameter

---
 FLUKE-8840A/createImages | 159 ++++++++++++++++++---------------------
 1 file changed, 75 insertions(+), 84 deletions(-)

diff --git a/FLUKE-8840A/createImages b/FLUKE-8840A/createImages
index 050ba3f..75b32b0 100755
--- a/FLUKE-8840A/createImages
+++ b/FLUKE-8840A/createImages
@@ -1,14 +1,26 @@
 #!/bin/bash
 #
-# Rolf Niepraschk <Rolf.Niepraschk@ptb.de>, 2016-12-14
+# 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 mit zufälliger Anzeige
 #
+# Parameter1 = Anzahl der erzeugten Bilddateien
+#
+# Parameter2 = Anzahl der Einzelziffern
 
 MAIN="FLUKE-8840A" # device name
 IMAGE_DIR=./images
-MAX_FILES=10
+MAX_DIGITS=6 # do not edit!
+MAX_FILES=10 # do not edit!
+NUMBER_OF_DIGITS=$MAX_DIGITS
+
+if [ -n "$1" ]; then
+  MAX_FILES=$1
+  if [ -n "$2" ]; then
+    NUMBER_OF_DIGITS=$2
+  fi  
+fi
 
 rm -rf "$IMAGE_DIR"
 mkdir -p "$IMAGE_DIR"
@@ -30,44 +42,48 @@ digitFile[8]='digit-8.png'
 digitFile[9]='digit-9.png'
 digitFile[99]=$emptyCanvas
 
-digitPos[6]='+192+173.65'
-digitPos[5]='+226+173.65'
-digitPos[4]='+260+173.65'
-digitPos[3]='+294+173.65'
-digitPos[2]='+328+173.65'
-digitPos[1]='+362+173.65'
+digitPos[1]='+192+173.65'
+digitPos[2]='+226+173.65'
+digitPos[3]='+260+173.65'
+digitPos[4]='+294+173.65'
+digitPos[5]='+328+173.65'
+digitPos[6]='+362+173.65'
 
-dotPos[6]='+192+173.65'
-dotPos[5]='+226+173.65'
-dotPos[4]='+260+173.65'
-dotPos[3]='+294+173.65'
-dotPos[2]='+328+173.65'
-dotPos[1]='+362+173.65'
+dotPos[1]=${digitPos[1]}
+dotPos[2]=${digitPos[2]}
+dotPos[3]=${digitPos[3]}
+dotPos[4]=${digitPos[4]}
+dotPos[5]=${digitPos[5]}
+dotPos[6]=${digitPos[6]}
 
 signPos='+187+173'
 
+NUM2CHAR[0]='0'
+NUM2CHAR[1]='1'
+NUM2CHAR[2]='2'
+NUM2CHAR[3]='3'
+NUM2CHAR[4]='4'
+NUM2CHAR[5]='5'
+NUM2CHAR[6]='6'
+NUM2CHAR[7]='7'
+NUM2CHAR[8]='8'
+NUM2CHAR[9]='9'
+NUM2CHAR[99]=''
+
+
 for ((FNb=1; FNb<=MAX_FILES; FNb++)); do
 
-DPR=$((RANDOM % 6 + 1)) # random dot position (1..6)
-SIGN=$((RANDOM % 2)) # random (0|1=+|-)
-if [ $SIGN == 0 ]; then
-  SF=$plusFile # sign file
-  SCH='+'  # sign character
-else
-  SF=$minusFile
-  SCH='-'
-fi 
-
-for i in {1..6}; do
-  if [ $i == 6 ]; then # position 6: "1" or nothing
-    DNR[6]=$((RANDOM % 2))
-    if [ ${DNR[6]} == 0 ]; then 
-      DNR[6]=99
-      DNR6="_"
+DPR=$((RANDOM % $NUMBER_OF_DIGITS + 1)) # random dot position (1..$NUMBER_OF_DIGITS)
+for (( i=1; i<=$MAX_DIGITS; i++ )); do
+  if [ $i == 1 ]; then # first digit is "1" combined with "+" or "-"
+    DNR[$i]=1
+    if [ $((RANDOM % 2)) == 1 ]; then # random sign (0|1)
+      signFile=$minusFile
+      signChar='-'
     else
-      DNR6="1"
+      signFile=$plusFile
+      signChar='+'
     fi
-    # random digit number (99|1)
   else
     DNR[$i]=$((RANDOM % 10)) # random digit number (0..9)
   fi
@@ -77,28 +93,37 @@ for i in {1..6}; do
   else
     DF[$i]=$emptyCanvas
     DP[$i]=""
+  fi  
+done 
+
+value="${signChar}"
+for (( i=1; i<=$MAX_DIGITS; i++ )); do  
+  if (( $i <= $NUMBER_OF_DIGITS )); then
+    eval DIGIT$i=${digitFile[ ${DNR[i]} ]}
+    eval DOT$i=${DF[i]}
+    value+="${NUM2CHAR[ ${DNR[i]} ]}${DP[i]}" 
+  else
+    eval DIGIT$i=$emptyCanvas;
+    eval DOT$i=$emptyCanvas;
   fi
 done
 
-value="${SCH}${DNR6}${DP[6]}${DNR[5]}${DP[5]}${DNR[4]}${DP[4]}"
-value+="${DNR[3]}${DP[3]}${DNR[2]}${DP[2]}${DNR[1]}${DP[1]}"
-
 fname="$IMAGE_DIR/$MAIN@$value@.png"
 
 convert body.png \
-  $SF                       -geometry $signPos       -composite \
-  ${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \
-  ${DF[6]} -geometry ${dotPos[6]} -composite \
-  ${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \
-  ${DF[5]} -geometry ${dotPos[5]} -composite \
-  ${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \
-  ${DF[4]} -geometry ${dotPos[4]} -composite \
-  ${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \
-  ${DF[3]} -geometry ${dotPos[3]} -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 \
+  $signFile -geometry $signPos       -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 \
   $fname
 
 exiv2 -M"set Exif.Image.ImageDescription value=$value" $fname
@@ -108,45 +133,11 @@ echo -e "$FNb:\t$fname"
 done # MAX_FILES
 
 exit
-
-Test:
-
-SF=$plusFile
-fname=yy.png
-DNR[6]=1
-DNR[5]=7
-DNR[4]=3
-DNR[3]=0
-DNR[2]=5
-DNR[1]=6
-
-DF[6]=$dotFile
-DF[5]=$emptyCanvas
-DF[4]=$emptyCanvas
-DF[3]=$emptyCanvas
-DF[2]=$emptyCanvas
-DF[1]=$emptyCanvas
-
-convert body.png \
-  $SF                       -geometry $signPos       -composite \
-  ${digitFile[ ${DNR[6]} ]} -geometry ${digitPos[6]} -composite \
-  ${DF[6]} -geometry ${dotPos[6]} -composite \
-  ${digitFile[ ${DNR[5]} ]} -geometry ${digitPos[5]} -composite \
-  ${DF[5]} -geometry ${dotPos[5]} -composite \
-  ${digitFile[ ${DNR[4]} ]} -geometry ${digitPos[4]} -composite \
-  ${DF[4]} -geometry ${dotPos[4]} -composite \
-  ${digitFile[ ${DNR[3]} ]} -geometry ${digitPos[3]} -composite \
-  ${DF[3]} -geometry ${dotPos[3]} -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 \
-  yy.png
   
 -----------------------------------------------------------------------
 
 Auslesen der Exif-Daten:
-exiv2 -g Exif.Image.ImageDescription -P v ./images/151.108@GERAET_X.png
+exiv2 -g Exif.Image.ImageDescription -P v ./images/FLUKE-8840A@+3724.05@.png
 --> value=151.108
 
 
-- 
GitLab