#! /bin/sh

# GE Software
GE_TXATT=0
GE_RXATT=25

DST_DIR=`pwd`
PROJECT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

echo "Creating <df_datalink_ge>..."
cp -rL $PROJECT_DIR/df_datalink_ge/src $DST_DIR/df_datalink_ge
sed -i'' -e "s/antConfig->rfTxMgc = 0;/antConfig->rfTxMgc = $GE_TXATT;/g" $DST_DIR/df_datalink_ge/networking/phy_layer/phy_antenna.c
sed -i'' -e "s/antConfig->rcvMgc = 0;/antConfig->rcvMgc = $GE_RXATT;/g" $DST_DIR/df_datalink_ge/networking/phy_layer/phy_antenna.c

# SP Software
source $PROJECT_DIR/caldata

for key in ${!calMap[*]};do
    projName=df_datalink_$key
    id=$(echo "$key" | grep -o -E '[0-9]+')
    type=$(echo "$key" | grep -o -E '(LJ)|(JG)')
    echo "Creating <$projName>..."
    cp -rL $PROJECT_DIR/df_datalink_sp/src $DST_DIR/$projName

    # substitute ID
    if [ $type == "LJ" ]; then
        sed -i'' "s/#define PHY_DEVICE_ID 0/#define PHY_DEVICE_ID (0x$id | 0x80)/g" $DST_DIR/$projName/config/app_config.h
    elif [ $type == "JG" ]; then
        sed -i'' "s/#define PHY_DEVICE_ID 0/#define PHY_DEVICE_ID (0x$id | 0x00)/g" $DST_DIR/$projName/config/app_config.h
    else
        echo "Unrecognized node Type [$type] ID [$id]"
        exit 1
    fi
    # substitute table
    sed -i'' "/^const uint16_t antCalTable\[L1_FRAME_MAX_HOPS\]\[L1_ANT_NUM_CH\] =/{
    :table
    N
    /\};/!b table
    s/=.*\};/=\n\/\/Antenna-$key\n${calMap[$key]}/
    }" $DST_DIR/$projName/networking/phy_layer/phy_antenna.c
done