Adapt the 'generate_xml_bbf.sh' script to the new way of datamodel

This commit is contained in:
Amin Ben Ramdhane 2019-10-23 18:45:22 +01:00
parent d4298475a3
commit f8a23753dc

View file

@ -1,5 +1,13 @@
#!/bin/sh #!/bin/sh
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Copyright (C) 2019 iopsys Software Solutions AB
# Author: Amin Ben Ramdhane <amin.benramdhane@pivasoftware.com>
# USAGE: # USAGE:
# ./generate_xml.sh # ./generate_xml.sh
@ -7,10 +15,8 @@
############################################ VARIABLES ######################################################### ############################################ VARIABLES #########################################################
CURRENT_PATH=`pwd` CURRENT_PATH=`pwd`
OUT_STREAM="tmp.txt" OUT_STREAM="tmp.txt"
ROOT_FILE="root.c" ROOT_FILE="device.c"
TREE_TXT=$CURRENT_PATH"/"$OUT_STREAM TREE_TXT=$CURRENT_PATH"/"$OUT_STREAM
DM_PATH=${2:-"$(pwd)/../dmtree/"}
SCRIPTS_PATH_COMMON=${DM_PATH}/"common/"
obj_look_obj_child_list="" obj_look_obj_child_list=""
obj_look_param_child_list="" obj_look_param_child_list=""
@ -60,14 +66,10 @@ get_param_type(){
} }
get_leaf_obj_line_number(){ get_leaf_obj_line_number(){
if [ "$1" != "root.c" ]; then if [ "$1" != "device.c" ]; then
echo `grep -nE DMOBJ\|DMLEAF $1 | grep -v UPNP |cut -f1 -d: | tr "\n" " "` echo `grep -nE DMOBJ\|DMLEAF $1 | grep -v UPNP |cut -f1 -d: | tr "\n" " "`
else else
if [ $DATA_MODEL == "tr098" ]; then echo `grep -nE DMOBJ\|DMLEAF $1 |grep "181" |grep -v UPNP | cut -f1 -d: | tr "\n" " "`
echo `grep -nE DMOBJ\|DMLEAF $1 |grep "098" |grep -v UPNP | cut -f1 -d: | tr "\n" " "`
else
echo `grep -nE DMOBJ\|DMLEAF $1 |grep "181" |grep -v UPNP | cut -f1 -d: | tr "\n" " "`
fi
fi fi
} }
@ -181,7 +183,7 @@ gen_dm_tree(){
done done
######## Create Childs list ######## Create Childs list
while IFS=, read -r f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11; do while IFS=, read -r f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13; do
name=`echo ${f1//{} | sed 's/^"\(.*\)"$/\1/'` name=`echo ${f1//{} | sed 's/^"\(.*\)"$/\1/'`
permission=${f2// &} permission=${f2// &}
type=${f3// } type=${f3// }
@ -193,9 +195,6 @@ gen_dm_tree(){
instance="readOnly" instance="readOnly"
fi fi
if [ "$name" == "(char *)&dmroot" ]; then
name=${ROOT_PATH}
fi
if [ "$o_found" == "1" ]; then if [ "$o_found" == "1" ]; then
name=`set_obj_object_child "$father_name" "$name"` name=`set_obj_object_child "$father_name" "$name"`
@ -219,8 +218,8 @@ gen_dm_tree(){
fi fi
if [ -n "$str" ]; then if [ -n "$str" ]; then
child_objects=${f9// } child_objects=${f10// }
child_parameters=${f10// } child_parameters=${f11// }
obj_name=${name} obj_name=${name}
#Add the actual object to the list of objects looking for their children objects ######## #Add the actual object to the list of objects looking for their children objects ########
if [ "$child_objects" != "NULL" ]; then if [ "$child_objects" != "NULL" ]; then
@ -334,7 +333,7 @@ gen_data_model_xml_file() {
echo " <model name=\"$model_name\">" echo " <model name=\"$model_name\">"
echo " <object name=\"$ROOT_PATH\" access=\"readOnly\" minEntries=\"1\" maxEntries=\"1\">" echo " <object name=\"$ROOT_PATH\" access=\"readOnly\" minEntries=\"1\" maxEntries=\"1\">"
echo " <description>" echo " <description>"
echo " The top-level for $DATA_MODEL" echo " The top-level for $DM_TR181"
echo " </description>" echo " </description>"
echo " </object>" echo " </object>"
add_dm_xml $OUT_STREAM add_dm_xml $OUT_STREAM
@ -345,55 +344,28 @@ gen_data_model_xml_file() {
############################################### MAIN ###################################################### ############################################### MAIN ######################################################
cnt_obj=1 cnt_obj=1
cnt_param=0 cnt_param=0
DATA_MODEL="tr098" DM_TR181="tr181"
SCRIPTS_PATH=${DM_PATH}/${DATA_MODEL} DM_TR104="tr104"
DIR_LIST="$SCRIPTS_PATH_COMMON $SCRIPTS_PATH" DM_TR143="tr143"
ROOT_PATH="InternetGatewayDevice" DM_TR157="tr157"
DM_HEAD="$ROOT_PATH-1.8" DM_PATH=${2:-"$(pwd)/../dmtree"}
DM_FILE="tr-098-1-8-0-full.xml" SCRIPTS_PATH_TR181=${DM_PATH}/${DM_TR181}
DM_VERSION="tr-098-1-8-0-cwmp" SCRIPTS_PATH_TR104=${DM_PATH}/${DM_TR104}
model_name="$ROOT_PATH:1.4" SCRIPTS_PATH_TR143=${DM_PATH}/${DM_TR143}
XML_OUT_STREAM_BBF_098="iopsys_bbf_tr098.xml" SCRIPTS_PATH_TR157=${DM_PATH}/${DM_TR157}
############## GEN TR098 TREE ############## DIR_LIST="$SCRIPTS_PATH_TR181 $SCRIPTS_PATH_TR104 $SCRIPTS_PATH_TR143 $SCRIPTS_PATH_TR157"
echo "Start Generation of TR098..."
echo "Please wait..."
rm -rf $OUT_STREAM
rm -rf $XML_OUT_STREAM_BBF_098
cd "$SCRIPTS_PATH_COMMON"
gen_dm_tree $ROOT_FILE
for dir in $DIR_LIST; do
cd $dir
files=`ls *.c |grep -v $ROOT_FILE`
for file in $files; do
gen_dm_tree "$file"
done
done
cd $CURRENT_PATH
file_filter $OUT_STREAM
gen_data_model_xml_file > $XML_OUT_STREAM_BBF_098
echo "Number of TR098 objects is $cnt_obj"
echo "Number of TR098 parameters is $cnt_param"
echo "End of TR098 Generation"
echo "=============================="
##################################################################################################
cnt_obj=1
cnt_param=0
DATA_MODEL="tr181"
SCRIPTS_PATH=${DM_PATH}/${DATA_MODEL}
DIR_LIST="$SCRIPTS_PATH_COMMON $SCRIPTS_PATH"
ROOT_PATH="Device" ROOT_PATH="Device"
DM_HEAD="$ROOT_PATH-2.12" DM_HEAD="$ROOT_PATH-2.12"
DM_FILE="tr-181-2-12-0-cwmp-full.xml" DM_FILE="tr-181-2-12-0-cwmp-full.xml"
DM_VERSION="tr-181-2-12-0-cwmp" DM_VERSION="tr-181-2-12-0-cwmp"
model_name="$ROOT_PATH:2.12" model_name="$ROOT_PATH:2.12"
XML_OUT_STREAM_BBF_181="iopsys_bbf_tr181.xml" XML_OUT_STREAM_BBF="iopsys_bbf.xml"
############## GEN TR181 TREE ############## ############## GEN BBF Data Models TREE ##############
echo "Start Generation of TR181..." echo "Start Generation of BBF Data Models..."
echo "Please wait..." echo "Please wait..."
rm -rf $OUT_STREAM rm -rf $OUT_STREAM
rm -rf $XML_OUT_STREAM_BBF_181 rm -rf $XML_OUT_STREAM_BBF
cd "$SCRIPTS_PATH_COMMON" cd "$SCRIPTS_PATH_TR181"
gen_dm_tree $ROOT_FILE gen_dm_tree $ROOT_FILE
for dir in $DIR_LIST; do for dir in $DIR_LIST; do
cd $dir cd $dir
@ -404,9 +376,9 @@ for dir in $DIR_LIST; do
done done
cd $CURRENT_PATH cd $CURRENT_PATH
file_filter $OUT_STREAM file_filter $OUT_STREAM
gen_data_model_xml_file > $XML_OUT_STREAM_BBF_181 gen_data_model_xml_file > $XML_OUT_STREAM_BBF
echo "Number of TR181 objects is $cnt_obj" echo "Number of BBF Data Models objects is $cnt_obj"
echo "Number of TR181 parameters is $cnt_param" echo "Number of BBF Data Models parameters is $cnt_param"
echo "End of TR181 Generation" echo "End of BBF Data Models Generation"
rm -rf $OUT_STREAM rm -rf $OUT_STREAM