#!/bin/bash PATH_MAPT=/opt/fofb-opcua-server/app.mapt function read_reg () { # ARGS: regname # Fix name for grep fname="^${1} " # Grep MAPT file for reg name l=$(grep -e ${fname} ${PATH_MAPT}) if [[ -z "$l" ]]; then echo "Could not find register named $1" >&2 exit 1 fi # Retrieve fields raddr=$(awk '{print $3}' <<<$l ) rsize=$(awk '{print $4}' <<<$l ) # Read register data=$(devmem $raddr) echo $((data)) } function get_appname () { appcode=$(read_reg APP.ID) if [[ $appcode -eq 0x507E17A0 ]]; then echo cellnode return fi if [[ $appcode -eq 0x507E1722 ]]; then echo centralnode return fi printf "Application ID not recognized: %X\n" $appcode >&2 echo \#NA return 1 } function get_version () { vers=$(read_reg BSP.PRJ_VERSION) changes=$(($vers & 0xFF)) patch=$(( $(($vers>>8)) & 0xFF)) minor=$(( $(($vers>>16)) & 0xFF)) major=$(( $(($vers>>24)) & 0xFF)) shasum=$(printf "%x" $(read_reg BSP.PRJ_SHASUM)) echo "${major}.${minor}.${patch}-${changes}-(${shasum})" } printf "%10s %s\n" $(get_appname) $(get_version) printf "SynthTime: %s\n" "$(date -d"@$(read_reg BSP.PRJ_TIMESTAMP)")"