# SmartHomeNetworkSim

Smart Home Network Simulation for Visualization and Generation of IoT/SmartHome Network traffic

## Gradle tasks
Gradle will download required libraries and handle the build process

	$ gradlew build		# Assembles and tests this project
	
	$ gradlew jar 		# Creates an executable Jar-file

	$ gradlew javadoc	# Generates Java Doc for the framework
	
	$ gradlew test		# Runs the included unit tests
	
	$ gradlew run		# Runs the SmartHomeNetworkSim as a JVM Application
	
	$ gradlew runIt		# Runs the SmartHomeNetworkSim as a Jar-file
	
	$ gradlew tasks		# Displays further available tasks

## Prerequisites
* {Java SE JDK 8.0](https://www.oracle.com/technetwork/java/javase/downloads/index.html) or greater
	
## Required Libraries
Gradle downloads these during the build process

* [JUnit4](https://junit.org/junit4/) - Java unit test framework
* [Pcap4j](https://www.pcap4j.org/) - Java Library used for Pcap File creation (not yet implemented)
* [Math3](https://commons.apache.org/proper/commons-math/) - Apache Common Maths (for Distribution function)

<!-- PCAP file writing example (as part of the export manager - but probably required packet transformation): https://www.devdungeon.com/content/packet-capturing-java-pcap4j#writing_pcap_file -->

### Developed by
Andreas T. Meyer-Berg (As part of his Bachelor Thesis)
