mirror of
				https://github.com/stargieg/bacnet-stack
				synced 2025-10-26 23:35:52 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| PROG=`basename $0`
 | |
| OPTIONAL=0
 | |
| 
 | |
| usage()
 | |
| {
 | |
|  echo "usage: $PROG [OPTIONS] <<BACnetID>> [ <<BACnetID>> ... ]
 | |
|     
 | |
|     Will return Required and Optional property values
 | |
|     from the requested device.
 | |
| 
 | |
|     -o            Display optional properties [default behavior]
 | |
|     -O            Supress display of optional properties
 | |
|     -h            Display this help
 | |
| "
 | |
| }
 | |
| 
 | |
| while getopts ":oOh" opt; do
 | |
|     case $opt in
 | |
|         o  ) OPTIONAL=1
 | |
|             ;;
 | |
|         O  ) OPTIONAL=0
 | |
|             ;;
 | |
|         h  ) usage
 | |
|             exit 1
 | |
|             ;;
 | |
|         \? ) usage
 | |
|             exit 1
 | |
|     esac
 | |
| done
 | |
| shift $(($OPTIND -1))
 | |
| 
 | |
| if [ $# -eq 0 ] || [ "$1" = "" ] ; then
 | |
| 	usage
 | |
| 	exit
 | |
| fi
 | |
| 
 | |
| run_test()
 | |
| {
 | |
| 	echo -e -e "Test: Read Required Properties of Device Object $1\r"
 | |
| 	echo -n "OBJECT IDENTIFIER:"
 | |
| 	./bacrp $1 8 $1 75
 | |
| 	echo -n "OBJECT NAME:"
 | |
| 	./bacrp $1 8 $1 77
 | |
| 	echo -n "OBJECT TYPE:"
 | |
| 	./bacrp $1 8 $1 79
 | |
| 	echo -n "SYSTEM STATUS:"
 | |
| 	./bacrp $1 8 $1 112
 | |
| 	echo -n "VENDOR NAME:"
 | |
| 	./bacrp $1 8 $1 121
 | |
| 	echo -n "VENDOR IDENTIFIER:"
 | |
| 	./bacrp $1 8 $1 120
 | |
| 	echo -n "MODEL NAME:"
 | |
| 	./bacrp $1 8 $1 70
 | |
| 	echo -n "FIRMWARE REVISION:"
 | |
| 	./bacrp $1 8 $1 44
 | |
| 	echo -n "APPLICATION SOFTWARE VERSION:"
 | |
| 	./bacrp $1 8 $1 12
 | |
| 	echo -n "PROTOCOL VERSION:"
 | |
| 	./bacrp $1 8 $1 98
 | |
| 	echo -n "PROTOCOL REVISION:"
 | |
| 	./bacrp $1 8 $1 139
 | |
| 	echo -n "PROTOCOL SERVICES SUPPORTED:"
 | |
| 	./bacrp $1 8 $1 97
 | |
| 	echo -n "OBJECT TYPES SUPPORTED:"
 | |
| 	./bacrp $1 8 $1 96
 | |
| 	echo -n "OBJECT LIST LENGTH:"
 | |
| 	./bacrp $1 8 $1 76 0
 | |
| 	echo -n "OBJECT LIST:"
 | |
| 	./bacrp $1 8 $1 76 
 | |
| 	echo -n "MAX APDU LENGTH ACCEPTED:"
 | |
| 	./bacrp $1 8 $1 62
 | |
| 	echo -n "SEGMENTATION SUPPORTED:"
 | |
| 	./bacrp $1 8 $1 107
 | |
| 	echo -n "APDU TIMEOUT:"
 | |
| 	./bacrp $1 8 $1 11
 | |
| 	echo -n "NUMGER OF APDU ENTRIES:"
 | |
| 	./bacrp $1 8 $1 73
 | |
| 	echo -n "DEVICE ADDRESS BINDING:"
 | |
| 	./bacrp $1 8 $1 30
 | |
| 	echo -n "DATABASE REVISION:"
 | |
| 	./bacrp $1 8 $1 155
 | |
| 	if [ $OPTIONAL -eq 1 ] ; then
 | |
| 		echo -e "Test: Read Optional Properties of Device Object $1\r"
 | |
| 		echo -n "LOCATION:"
 | |
| 		./bacrp $1 8 $1 58
 | |
| 		echo -n "DESCRIPTION:"
 | |
| 		./bacrp $1 8 $1 28
 | |
| 		echo -n "MAX SEGMENTS SUPPORTED:"
 | |
| 		./bacrp $1 8 $1 167
 | |
| 		echo -n "VT CLASSES SUPPORTED:"
 | |
| 		./bacrp $1 8 $1 122
 | |
| 		echo -n "ACTIVE VT SESSIONS:"
 | |
| 		./bacrp $1 8 $1 5
 | |
| 		echo -n "LOCAL TIME:"
 | |
| 		./bacrp $1 8 $1 57
 | |
| 		echo -n "LOCAL DATE:"
 | |
| 		./bacrp $1 8 $1 56
 | |
| 		echo -n "UTC OFFSET:"
 | |
| 		./bacrp $1 8 $1 119
 | |
| 		echo -n "DAYLIGHT SAVINGS STATUS:"
 | |
| 		./bacrp $1 8 $1 24
 | |
| 		echo -n "APDU SEGMENT TIMEOUT:"
 | |
| 		./bacrp $1 8 $1 10
 | |
| 		echo -n "LIST OF SESSION KEYS:"
 | |
| 		./bacrp $1 8 $1 55
 | |
| 		echo -n "TIME SYNCHRONIZATION RECIPIENTS:"
 | |
| 		./bacrp $1 8 $1 116
 | |
| 		echo -n "MAX MASTER:"
 | |
| 		./bacrp $1 8 $1 64
 | |
| 		echo -n "MAX INFO FRAMES:"
 | |
| 		./bacrp $1 8 $1 63
 | |
| 		echo -n "ACK REQUIRED:"
 | |
| 		./bacrp $1 8 $1 1
 | |
| 		echo -n "CONFIGURATION FILES:"
 | |
| 		./bacrp $1 8 $1 154
 | |
| 		echo -n "LAST RESTORE TIME:"
 | |
| 		./bacrp $1 8 $1 157
 | |
| 		echo -n "BACKUP FAILURE TIMEOUT:"
 | |
| 		./bacrp $1 8 $1 153
 | |
| 		echo -n "ACTIVE COV SUBSCRIPTIONS:"
 | |
| 		./bacrp $1 8 $1 152
 | |
| 		echo -n "SLAVE PROXY ENABLE:"
 | |
| 		./bacrp $1 8 $1 172
 | |
| 		echo -n "MANUAL SLAVE ADDRESS BINDING:"
 | |
| 		./bacrp $1 8 $1 170
 | |
| 		echo -n "AUTO SLAVE DISCOVERY:"
 | |
| 		./bacrp $1 8 $1 169
 | |
| 		echo -n "SLAVE ADDRESS BINDING:"
 | |
| 		./bacrp $1 8 $1 171
 | |
| 		echo -n "PROFILE NAME:"
 | |
| 		./bacrp $1 8 $1 168
 | |
| 	fi
 | |
| 	echo -e " \r"
 | |
| }
 | |
| 
 | |
| while [ $# -gt 0 ] ; do
 | |
| 	ID=$(( $1 + 0 ))
 | |
| 	shift
 | |
| 	if [ $ID -eq 0 ] ; then
 | |
| 		echo "ERROR: Device ID must be an integer!! [ID=$ID]" >&2
 | |
| 	fi
 | |
| 	run_test $ID
 | |
| done
 | |
| 
 | |
| 
 | 
