#!/bin/sh

#srec_cat id19com.tfw -binary -exclude 0x00 0x40 -offset -0x40 id19com.tfw -binary -crop 0x00 0x40 -offset 0x0FE00 -o flash.bin
./srec_cat id19com.tfw -binary -exclude 0x00 0x40 -offset -0x40 -o flash.bin -binary || exit 1
#./srec_cat id19com.tfw -binary -exclude 0x00 0x40 -offset -0x40 -o flash.hex -intel

#delka musi byt zarovnana na 4 byty
FSIZE=$(stat -c%s flash.bin)
FADD=$((4-(($FSIZE-(($FSIZE/4*4))))))

if [ $FADD -eq 1 ]; then
  echo >> flash.bin
fi

if [ $FADD -eq 2 ]; then
  echo a >> flash.bin
fi

if [ $FADD -eq 3 ]; then
  echo aa >> flash.bin
fi

# BOOT0=1 + reset stm32
echo 1 > /sys/class/gpio/gpio83/value 
echo 0 > /sys/class/gpio/gpio82/value
echo 1 > /sys/class/gpio/gpio82/value

# zastavime komunikacni server, aby nam uvolnil kanal do stm32
killall -19 PLCComS >/dev/null 2>&1

./stm32flash -w flash.bin -v /dev/ttyO1 || exit 1

# naprogramujeme identifikacni zaznam
./create_id || exit 1

# BOOT0=0 + reset stm32
echo 0 > /sys/class/gpio/gpio83/value 
echo 0 > /sys/class/gpio/gpio82/value
echo 1 > /sys/class/gpio/gpio82/value

# spustime komunikacni server
killall -18 PLCComS >/dev/null 2>&1

exit 0
