From 5a862c5f5a1c73e7774c6399cd917814c71aae96 Mon Sep 17 00:00:00 2001 From: qo-op Date: Tue, 17 Dec 2019 11:51:13 +0100 Subject: [PATCH] Tag Reader G1Tx --- _chain | 2 +- _comments | 1 + _nanodate | 2 +- _publishkey.gpg | Bin 1288 -> 1288 bytes shell/functions.sh | 5 +- shell/init.sh.old | 79 +++++++++++++++++++++++++++++++ shell/sms_G1TAG.sh | 27 ++++++----- shell/tag_OP.sh | 4 +- shell/tag_READ_X.sh | 55 +++++++++++++-------- shell/tools/G1_TUX_keygen.py | 0 shell/tools/G1_TUX_natools.py | 0 shell/tools/G1_request_cesium_profile.py | 0 shell/tools/matrixKeypad.py | 2 +- shell/tools/matrixKeypad_RPi_GPIO.pyc | Bin 14 files changed, 137 insertions(+), 40 deletions(-) create mode 100755 shell/init.sh.old mode change 100644 => 100755 shell/tools/G1_TUX_keygen.py mode change 100644 => 100755 shell/tools/G1_TUX_natools.py mode change 100644 => 100755 shell/tools/G1_request_cesium_profile.py mode change 100644 => 100755 shell/tools/matrixKeypad_RPi_GPIO.pyc diff --git a/_chain b/_chain index 33d4fcc..c021b22 100755 --- a/_chain +++ b/_chain @@ -1 +1 @@ -Qmad8nh1sLJJS8UtyXQJ2GzYrv768dDsBfwhtFyBjXh8Z3 +QmRd3LFiGbA8s17vsYdwWftSnEnnEQGzAzCEPbJBLDrXEf diff --git a/_comments b/_comments index 9cc3739..d7fd648 100755 --- a/_comments +++ b/_comments @@ -172,3 +172,4 @@ OK 2019-12-14: COMMENT 2019-12-14: 2019-12-14: +2019-12-17: Better G1Tx diff --git a/_nanodate b/_nanodate index d0acc79..ae44054 100755 --- a/_nanodate +++ b/_nanodate @@ -1 +1 @@ -1576284752579254475 +1576547374550330601 diff --git a/_publishkey.gpg b/_publishkey.gpg index 8927cc32575f599cf1239609f08309603c3c6fc6..9e229543f35e4b8b1aaf9a92855f6bae87534489 100755 GIT binary patch literal 1288 zcmV+j1^4=l4Fm}T0;bIgR`ao^9>CJ-0Se*$|7I8|a0Hmuj0#JKn7nH4RnrA`24H#5LIEaIipL^Q^2;VAUAt z@Q_xfe4>#BMQwW;pE|;NHr_$zHBBnbd|;pafQ^MO^rbNWu#<9hVVzVjkhkQuti88W zSYQ-`#OdE?F3C;kls^qAL|u@!al@_xK6HZvCG|~J%{hK~Hw!FnGX6tlLCbb-cphX< zySwJ%LoR01AG)OnjIGemk6iDtUCXa5>Z>S+v;JF!YOw$RB8zW(ox#}u@*FW3LO8j$f}RmZzZ zN_r{W_{uR_$ekb`o`ag6`YCSkilq6wD|>b!#PjwWDqBx2&(gbOS#t5)<5}@Yd*oBKnJ(b_!V!kbuGE4i{gOu)q4j_>Qn5Qyf^8`K$wvOoA3Iv(8|wcn@T3dOD(b< z2GyVa4M-o}U;$4{<7V7C!Ooesd-kaT5kGOFYxg^Js2nM;xe?@>BM{7?Waf-ub+nB`cT(x2Z$iCi6WF6@hU5u5u3J*{y*u}UYEPtRFz31RvZt3W_$a~|$-s0%AedTu%Q3cd z>4@U%B02j~%M?m;;a`Q`J+75%=Ku{jpr_vbx1!k2UTf66Qmkr=mW={dY;>-3l&Im0 z4EaA{DMyD_IeH?)3`ji?2uQpm?3_OK)IBJ%??Lsj$?-I)QJSTmycAQA@)M7GyhMmM z8?bx%$cIrG=?e%&_5BWKL?;S6Z2H%VbedfLd1DsR3@+Z-2n5%gESl1j1LT?1Tv!wO+o?ooi%S_$s@V=pqI@ zS(7CF5kv(+N=$IIj;S4 yLAzZG%Ncj^3LrtdKCE+wfEV967QKu*+66{P!;KiSaUE@Q(_@~S5bdw|)Zp zohX7+Oldp=hS`ie3$5X=xjS5`1&K;snAk5?x(3qVkW95ieBDSd-f7cR*Q4c+#yPvX z+M#=b!b6uvI)tt4({PqLCHBX8N%EX@vWMaH6FQO1kmJoK&@C*;tK)zoy0?$Yt7w6h;HXj(+ZT~fFE116La7t@gcZIG)7RD^lSF0&ZL?UIEl zZhvjP7{9z&9_wqmZu=)GX*0iUI81FJJOGY-`EJF2ve`fNXr!F}nr7>=!5B_CCUIZx zD?!+l=jla{MjW^npADhf*59u`%TIGpd!OzC2eUBSA>hI8-V$$e(|)V}6~vl;fr{9o z>Ixk8QX>{29Jp{@3v_WI(naFZL#&+)6u3ak?-hd@whqRrtu4Z`F1yYJe)`SGTZ}oH z$ga1OE6u?maxyD0>v>AyZX?)%-oo#}MBAC6YScpsKe^eP1@U@VKTijY`$`eJ)14yk zRQnr;ih7vk%+SnU#qYttdK$8|%7oTECdDyPwHE;9*}&mW-Yhcih|vVLCQqAz%Iqa zN`fBbY|boZz%}85FskzKldD*o(El=0+8aX}iAaLEz)w1Wf&^-O9FbPASclp@4pKu=w{b;Yk> /tmp/g1sms.log + fi +} + + +################################################################################################################################### +fn_exists() { + # appended double quote is an ugly trick to make sure we do get a string -- if $1 is not a known command, type does not output anything + [ `type -t $1`"" == 'file' ] +} +# ATOMATIC gammu-smsd-inject desactivation if no gammu is installed on system +if ! fn_exists gammu-smsd-inject; then +log ":p) DESACTIVATION ENVOI DE SMS .............." +function gammu-smsd-inject () { + log "$PHONE: >>> SENDING SMS $4 TO $2 " +} +else +export G1SMS="YES" +fi + + + export YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1) + export CHEMIN="/home/$YOU/G1sms+" + cd $CHEMIN + ################################################################## + # Activate logging to /tmp/g1sms.log (YES/NO) + export DOLOG="YES" + export CPERROR="NOYES" + ################################################################## + # Country Node Phone international prefix (TODO Worldwide) + export COUNTRY="+33" + ################################################################## + # DU has a G1 value changed every 6 month! + # ./_DU Updated by cron_CODE.backup.sh + if [[ -f "./_DU" ]]; then export DUFACTOR=$(bc <<< "scale=2; $(cat "./_DU") / 100"); else log "__SUB:init.sh: FAILING TO FIND ./_DU EXIT!!!"; exit; fi + ################################################################## + # Choose Default Unit: G1, DU, LOVE (DU cents), ZEN (G1 cents) + export COIN="G1" + ################################################################## + # Limit and commission values + export LIMIT=2 # Solde minimum = 2 G1 + # FIXED COMMISSION SYSTEM + export COMMISSION=1 # transaction commission amount (G1) + export BILLCOM=20 + ################################################################## + # COMMISSION PARTS FROM TX FOR NODE & G1SMS NETWORK + # PART COMMISSION SYSTEM + export SWARMCOMM=10 + # TODO: NODE G1sms Wallet can receive rewards from SWARM or WALLETS/FILES + export NODECOMM=10 + ################################################################## + # SMS SIM Card Phone Number + export MASTERPHONE="+33651136520" + export ADRESSE="G1_Fablab_Toulouse" + export G1DAB="NO" + ################################################################## + # ADMIN COMMAND PHONE ORIGIN + export ADMINPHONE="+33647683646" + export ADMINPSEUDO="Fred" + ################################################################## + # DUNITER/CESIUM+ DEFAULT SERVERS + export DUNITER="https://g1.duniter.org" + export CESIUM="https://g1.data.le-sou.org" + + # TODO Use latest Silkaj from "sudo fredp3 install silkaj" + # export SILKAJ="/usr/local/bin/silkaj" + source $CHEMIN/shell/init_keys.sh + diff --git a/shell/sms_G1TAG.sh b/shell/sms_G1TAG.sh index 2951d25..e022f48 100755 --- a/shell/sms_G1TAG.sh +++ b/shell/sms_G1TAG.sh @@ -49,11 +49,11 @@ if [[ $UNKNOWN == "unknown" ]]; then fi ## NEEDED FOR Avatar + GeoPoint -if [[ ! $PASSENGER && "$MEMBER" == "" ]]; then - sms_ERROR "$PHONE" "Aucun membre associé à votre Portefeuille!? Envoyer N suivi de votre Pseudo membre pour activer la création de G1Tag..." - log "__SUB:sms_G1TAG.sh: Aucun membre associé" - exit -fi +#if [[ ! $PASSENGER && "$MEMBER" == "" ]]; then +# sms_ERROR "$PHONE" "Aucun membre associé à votre Portefeuille!? Envoyer N suivi de votre Pseudo membre pour activer la création de G1Tag..." +# log "__SUB:sms_G1TAG.sh: Aucun membre associé" +# exit +#fi ########################################################### # CALCULATE if wallet have enough for VIR+PERCENT @@ -115,16 +115,19 @@ log "__SUB:sms_G1TAG.sh: CREATE $NUMBER x $2 $UNIT G1Tag(s) for $MEMBER ($PHONE) c=0 while [[ $c -lt $NUMBER ]]; do ((c++)) - # Create Unique SWARM G1tag! - AA=$(./shell/diceware.sh 6 | xargs); RR=$(echo ${AA} | sed s/\ //g ); PR=$(echo ${AA} | cut -d ' ' -f 1 ); - while [ -d "./wallets_swarm/TAG/${RR}" ]; do - AA=$(./shell/diceware.sh 6 | xargs); - RR=$(echo ${AA} | sed s/\ //g ); + # Nom du G1Tag imprimé du le QRCode RJ + AA=$(./shell/diceware.sh 6 | xargs); # Nom = Diceware de 6 mots + RR=$(echo ${AA} | sed s/\ //g ); # Nom concaténé + PR=$(echo ${AA} | cut -d ' ' -f 1 ); # Prénom du G1Tag + # Create Unique G1tag! + while [[ $(ls "./wallets_swarm/.Qm*/TAG/${RR}") ]]; do + AA=$(./shell/diceware.sh 6 | xargs); RR=$(echo ${AA} | sed s/\ //g ); PR=$(echo ${AA} | cut -d ' ' -f 1 ); done + # Clef de chiffrage PGP imprimée sur le QRCode BJ BB=$(date +%N | sha256sum | base64 | head -c 32) #YjY4MDc3OTVjNmUxN2JhYWVjYmU3MDcy # BB=$(openssl rand -base64 32 | base64) #Yk8yMnVtdzZmendJbHNoK2Q0b0liakRpNHNJUk9UQW5Dd042cFdDODlJTT0K -# G1Tag init +# G1Tag init : Nom et usage des fichiers du G1Tag # TODO CHECK _nanodate to detect bad nodes/tx behaviour... and banish them) TAGDATE="./TAG/${RR}/TAG_nanodate" # Nanodate notification (ntpdate in init.sh for NODE sync in case of TAGNID="./TAG/${RR}/TAG_nodeid" # G1sms+ NODE IPFS ID managing that G1Tag @@ -153,7 +156,7 @@ TAGCHAIN="./TAG/${RR}/TAG_chain" # contains IPFS current ipfs hash #################################################### # IPFS files are created and calculated immutable I #################################################### - # A or R is the Human readable G1tag ID (kind of TAG pubkey) + # A or R is Human readable G1tag Name echo "${AA}" > "$TAGID" echo "0" > "$TAGN" echo "${NANODATE}" > "$TAGDATE" diff --git a/shell/tag_OP.sh b/shell/tag_OP.sh index 4a47744..a7075de 100755 --- a/shell/tag_OP.sh +++ b/shell/tag_OP.sh @@ -69,7 +69,7 @@ if [[ $FINALSOURCE -lt 0 ]]; then echo "__SUB:tag_OP.sh: KO. La valeur de ce G1T if [[ -f $KEYFILE && ! -f "/home/$YOU/.ipfs/keystore/$JSOURCERR" ]]; then ./shell/natools.py decrypt -k "$KEYFILE" -i "$JSOURCEPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JSOURCERR" else - if [[ ! -f $KEYFILE ]] then + if [[ ! -f $KEYFILE ]]; then echo "__SUB:tag_OP.sh: KO. La clef de dévérouillage pour $JSOURCERR est inexistante. Contact: https://g1sms.fr" fi fi @@ -90,7 +90,7 @@ FINALDEST=$(echo "${JDESTVALUE} + ${VALUE}" | bc -l) if [[ -f $KEYFILE && ! -f "/home/$YOU/.ipfs/keystore/$JDESTRR" ]]; then ./shell/natools.py decrypt -k "$KEYFILE" -i "$JDESTPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JDESTRR" else - if [[ ! -f $KEYFILE ]] then + if [[ ! -f $KEYFILE ]]; then echo "__SUB:tag_OP.sh: KO. La clef de dévérouillage pour $JDESTRR est inexistante. Contact: https://g1sms.fr" fi fi diff --git a/shell/tag_READ_X.sh b/shell/tag_READ_X.sh index 5e101c5..538939c 100755 --- a/shell/tag_READ_X.sh +++ b/shell/tag_READ_X.sh @@ -27,14 +27,16 @@ if [ ! -f $MASTERKEYFILE ]; then echo "ERREUR CLEF DECHIFFRAGE!"; exit; fi # DOUCHETTE ES TU LA? if [ ! $G1TX ]; then echo "Branchez votre lecteur de QR code!"; exit; fi ./shell/tools/4LETTER.scroll.py "G1TX START" -./shell/timeout.sh -t 2 ./shell/tools/4LETTER.spinner.py - +./shell/tools/4LETTER.clock.py & +clockpid=$! # TABLEAU MEMOIRE DE SCAN declare -a act declare -a obj declare -a val cat /dev/ttyACM0 | while read line; do + kill $clockpid + lon=${#line} pref=$(echo $line | cut -d ":" -f 1) qrvalue=$(echo $line | cut -d ":" -f 2) @@ -55,7 +57,7 @@ cat /dev/ttyACM0 | while read line; do FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "G1TAG $FID READ" + ./shell/tools/4LETTER.scroll.py "G1TAG $FID >" RVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount"); CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') if [[ "$CURRENCY" == "zen" ]]; then CUR="zène"; else CUR=$CURRENCY; fi # Correction du défaut de prononciation. @@ -65,7 +67,7 @@ cat /dev/ttyACM0 | while read line; do else G1VAL=$(bc -l <<< "scale=2; $RVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: G1Tag $FID. Valeur $RVALUE $CURRENCY = $G1VAL G1" - ./shell/tools/4LETTER.scroll.py "$RVALUE ZEN *** $RVALUE ZEN" + ./shell/tools/4LETTER.scroll.py "$RVALUE ZEN *** $G1VAL G1" fi cmd="RJ" CASHBACK="" @@ -85,7 +87,7 @@ cat /dev/ttyACM0 | while read line; do FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "G1TAG $FID >>TX>> " + ./shell/tools/4LETTER.scroll.py "G1TAG [TX] $FID >" BVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount") CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') if [[ "$CURRENCY" == "zen" ]]; then CUR="zène"; else CUR=$CURRENCY; fi # Correction du défaut de prononciation. @@ -110,8 +112,9 @@ cat /dev/ttyACM0 | while read line; do log "__SUB:tag_READ_X.sh: !!!! $FID REC Tag = $BVALUE $CURRENCY" ./shell/tools/4LETTER.scroll.py "G1TAG PASSENGER $BVALUE ZEN" else + G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: Ce G1 Tag $FID contient $BVALUE $CURRENCY" - ./shell/tools/4LETTER.scroll.py "$BVALUE ZEN *** $BVALUE ZEN MAX" + ./shell/tools/4LETTER.scroll.py "$BVALUE ZEN *** $G1VAL G1 MAX" fi cmd="BJ" val+=("$BVALUE") @@ -132,21 +135,21 @@ cat /dev/ttyACM0 | while read line; do cmd="G1" val+=("$VALUE") else - log "__SUB:tag_READ_X.sh: ERREUR QR code illisible. longueur $J = ${#J}" if [[ "$VALUE" == "" ]]; then DUNITER=$(./shell/checknodes.sh 'BAN') - echo "ERREUR TIMEOUT. CHANGE SILKAJ SERVER: $DUNITER" + log "__SUB:tag_READ_X.sh: ERREUR TIMEOUT. CHANGE SILKAJ SERVER: $DUNITER" ./shell/tools/4LETTER.scroll.py "ERREUR TIMEOUT SILKAJ" ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py CASHBACK="" else + log "__SUB:tag_READ_X.sh: ERREUR QRCODE ILLISIBLE. longueur $J = ${#J}" ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py CASHBACK="" fi fi else - ./shell/tools/4LETTER.scroll.py "G1 ${val[0]} / G1 ${val[0]}" + ./shell/tools/4LETTER.scroll.py " 2 X " fi else ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" @@ -159,10 +162,12 @@ cat /dev/ttyACM0 | while read line; do ############################################################### # APRES G1 CASHBACK : G1 Tag BJ WRITE => ENCAISSEMENT if [[ "${cmd}" == "BJ" && "$CASHBACK" != "" && -f /home/$YOU/.ipfs/keystore/${RR} ]]; then - ./shell/tools/4LETTER.scroll.py "ENCAISSEMENT G1TAG" + ./shell/tools/4LETTER.scroll.py "ZEN -> G1" log "__SUB:tag_READ_X.sh: G1 tag de $BVALUE G1 ! /ipns/$J Virement vers $CASHBACK? " - ./shell/tools/4LETTER.scroll.py "VERS PORTEFEUILLE G1" + ./shell/tools/4LETTER.spinner.py & + spinnerpid=$! + # ipfs get G1Tag vers ./TAG/${RR} mkdir -p ./TAG/${RR}; rm -f ./TAG/${RR}/*; chown -R $YOU ./TAG/${RR}/ log "__SUB:tag_READ_X.sh: ipfs get --output=./TAG/${RR} /ipns/$J" @@ -173,16 +178,19 @@ cat /dev/ttyACM0 | while read line; do # Make Silkaj TX G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: Silkaj TX $MASTERKEYFILE ($G1VAL) -> $CASHBACK" - PAY=$(./silkaj/silkaj transaction --auth-file -file="$MASTERKEYFILE" --amount=$G1VAL --output=$CASHBACK --comment="[G1sms+] CAPTURE G1Tag $RR" -y) + PAY=$(./silkaj/silkaj transaction --auth-file -file="$MASTERKEYFILE" --amount=$G1VAL --output=$CASHBACK --comment="[G1sms+] G1Tag $RR ZEN -> G1" -y) log "__SUB:tag_READ_X.sh: Silkaj output = $PAY" - if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" ]]; then + # Stop 1LETTER.spinner.py + kill $spinnerpid + + if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" && "$PAY" != "" ]]; then new=$(./shell/checknodes.sh "BAN") sms_ERROR "$ADMINPHONE" "Il est survenu un problème avec un virement. Retour silkaj: $PAY ... $new"; ./shell/tools/4LETTER.scroll.py "ERREUR SILKAJ ERREUR" else # ENCAISSEMENT G1Tag - ./shell/tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 ---) OK" + ./shell/tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 -> OK " # CAPTURE / DESTRUCTION du G1 Tag echo "0" > "./TAG/${RR}/TAG_amount" echo "${J}" > "./TAG/${RR}/TAG_ipns" @@ -208,7 +216,7 @@ cat /dev/ttyACM0 | while read line; do J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}") log "__SUB:tag_READ_X.sh: Destruction de ce G1 Tag publish -k ${RR} --quieter /ipfs/${I} :: ipfs ls /ipns/$J" - ./shell/tools/4LETTER.scroll.py "${FID} G1TAG VIDE !! DETRUCTION !!" + ./shell/tools/4LETTER.scroll.py "DETRUIRE G1TAG ${FID}" # CLEAN IPFS keystore: remove NOT created NODE keys SOURCENODEID=$(cat "./TAG/${RR}/TAG_nodeid") @@ -236,14 +244,17 @@ cat /dev/ttyACM0 | while read line; do if [[ "$PASSENGER" != "" ]]; then ./shell/tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER"; else - # READ KEYBOARD VALUE !!! - COMBIEN=$(./shell/tools/matrixKeypad.py) + ########################################################### + # READ KEYBOARD VALUE !!! 4 DIGIT REMOVING LEADING 0 + COMBIEN=$(./shell/tools/matrixKeypad.py | sed 's/^0*//') if [[ $COMBIEN -le ${val[1]} ]]; then + COMBIENZEN=$(bc -l <<< "$COMBIEN * 100") log "__SUB:tag_READ_X.sh: Transfert de G1 Tag à G1 Tag. $COMBIEN" - ./shell/tools/4LETTER.scroll.py "G1TAG ${FID} TRANSFERT DE $COMBIEN ZEN" - log "__SUB:tag_READ_X.sh: $(./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIEN $MASTERKEYFILE)" + ./shell/tools/4LETTER.scroll.py "G1TAG ${FID} -> TX $COMBIENZEN ZEN *** $COMBIEN G1" + log "__SUB:tag_READ_X.sh: ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN $MASTERKEYFILE" + ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN "$MASTERKEYFILE" else - ./shell/tools/4LETTER.scroll.py "$COMBIEN DEPASSE ${val[1]} $CUR DU G1TAG ${FID}" + ./shell/tools/4LETTER.scroll.py "ERREUR $COMBIEN > VALEUR DE ${FID} *** ${val[1]} ZEN" fi fi CASHBACK="" @@ -265,9 +276,11 @@ cat /dev/ttyACM0 | while read line; do act=() obj=() val=() + # END OF 2-PASS READ ./shell/timeout.sh -t 2 ./shell/tools/4LETTER.spinner.py fi ./shell/tools/4LETTER.blink.py - + ./shell/tools/4LETTER.clock.py & + clockpid=$! done diff --git a/shell/tools/G1_TUX_keygen.py b/shell/tools/G1_TUX_keygen.py old mode 100644 new mode 100755 diff --git a/shell/tools/G1_TUX_natools.py b/shell/tools/G1_TUX_natools.py old mode 100644 new mode 100755 diff --git a/shell/tools/G1_request_cesium_profile.py b/shell/tools/G1_request_cesium_profile.py old mode 100644 new mode 100755 diff --git a/shell/tools/matrixKeypad.py b/shell/tools/matrixKeypad.py index 492de43..ba1c3d4 100755 --- a/shell/tools/matrixKeypad.py +++ b/shell/tools/matrixKeypad.py @@ -6,7 +6,7 @@ from time import sleep # Initialize the keypad class kp = keypad() -fourletterphat.print_str("ZEN?") +fourletterphat.print_str(" G1?") fourletterphat.show() def digit(): diff --git a/shell/tools/matrixKeypad_RPi_GPIO.pyc b/shell/tools/matrixKeypad_RPi_GPIO.pyc old mode 100644 new mode 100755