[add][mod] added consoleUtil to lib, beautified output
- simple coloring for print - [mod] changed console output to use colors
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package scim.components
|
||||
|
||||
import scim.datastruct.{Cell, Group, SensorResult, SharedMemory, Time, Truth}
|
||||
import scim.lib.consoleUtil.Color._
|
||||
|
||||
class Output(sharedMemory: SharedMemory, printOutput: Boolean = true) extends Runnable {
|
||||
def run(): Unit = {
|
||||
@@ -14,20 +15,19 @@ class Output(sharedMemory: SharedMemory, printOutput: Boolean = true) extends Ru
|
||||
}
|
||||
|
||||
def outputData(time: Time, sensors: Map[Cell, Map[Group, Vector[SensorResult]]], groundTruths: Map[Cell, Map[Group, Truth]]): Unit = {
|
||||
println("\n\nTICK: " + time)
|
||||
println(RED("\n\nTICK: ") + time)
|
||||
if(!printOutput) return
|
||||
sensors.foreach(cells => {
|
||||
val cell = cells._1
|
||||
println("Cell: " + cell)
|
||||
println(CYAN("Cell: ") + cell)
|
||||
cells._2.foreach(groups => {
|
||||
val group = groups._1
|
||||
print("Group: " + group + " ")
|
||||
groups._2.foreach(res => print(res.get._3.getOrElse("None") + " | "))
|
||||
if(groundTruths.contains(cell) && groundTruths(cell).contains(group)) print("\nGround Truth: " + groundTruths(cell)(group).peak().getOrElse("None"))
|
||||
val lastElement = groups._2.lastOption
|
||||
print(BLUE(" Group: ") + group + (if(!lastElement.isEmpty) MAGENTA("\n Results: ") else ""))
|
||||
groups._2.foreach(res => print(res.get._3.getOrElse("None") + (if(res.eq(lastElement.get)) "" else " | ")))
|
||||
if(groundTruths.contains(cell) && groundTruths(cell).contains(group)) print(GREEN("\n Ground Truth: ") + groundTruths(cell)(group).peak().getOrElse("None"))
|
||||
print("\n")
|
||||
})
|
||||
})
|
||||
//println(sensors)
|
||||
//println(groundTruths)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,30 @@ package object evalUtil {
|
||||
}
|
||||
}
|
||||
|
||||
package object consoleUtil {
|
||||
private val resetColor = "\u001b[0m"
|
||||
|
||||
sealed case class Color(value: String) {
|
||||
override def toString: String = value
|
||||
def apply(text: String): String = {
|
||||
value + text + resetColor
|
||||
}
|
||||
}
|
||||
|
||||
object Color {
|
||||
object BLACK extends Color("\u001b[30m")
|
||||
object RED extends Color("\u001b[31m")
|
||||
object GREEN extends Color("\u001b[32m")
|
||||
object YELLOW extends Color("\u001b[33m")
|
||||
object BLUE extends Color("\u001b[34m")
|
||||
object MAGENTA extends Color("\u001b[35m")
|
||||
object CYAN extends Color("\u001b[36m")
|
||||
object WHITE extends Color("\u001b[37m")
|
||||
object RESET extends Color(resetColor)
|
||||
val values = Seq(BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET)
|
||||
}
|
||||
}
|
||||
|
||||
package object debugUtil {
|
||||
sealed case class DebugType(name: String, level: Int)
|
||||
|
||||
@@ -81,7 +105,7 @@ package object debugUtil {
|
||||
object DEBUG extends DebugType("DEBUG", 4) // Debug messages
|
||||
val values = Seq(ERROR, WARNING, NOTICE, INFO, DEBUG)
|
||||
}
|
||||
val level: Int = DebugType.DEBUG.level
|
||||
val level: Int = DebugType.INFO.level
|
||||
|
||||
def currentMethodName: String = Thread.currentThread.getStackTrace()(2).getMethodName
|
||||
def currentMethodCallerName: String = Thread.currentThread.getStackTrace()(3).getMethodName
|
||||
|
||||
Reference in New Issue
Block a user