Explorar el Código

Move more into the pool interface, do conversions.

Sacha Ligthert hace 2 años
padre
commit
ae05a283ac
Se han modificado 4 ficheros con 40 adiciones y 16 borrados
  1. 16 6
      functions.go
  2. 18 5
      main.go
  3. 5 5
      tcp_listener.go
  4. 1 0
      types.go

+ 16 - 6
functions.go

@@ -6,29 +6,39 @@ import (
 	"github.com/umahmood/haversine"
 )
 
-func rad2deg(rad float64) float64 {
+func (pool *Pool) rad2deg(rad float64) float64 {
 	return rad * (180 / math.Pi)
 }
 
-func calcDistance(lat_from float64, lon_from float64, lat_to float64, lon_to float64) float64 {
+func (pool *Pool) calcDistance(lat_from float64, lon_from float64, lat_to float64, lon_to float64) float64 {
 	from := haversine.Coord{Lat: lat_from, Lon: lon_from}
 	to := haversine.Coord{Lat: lat_to, Lon: lon_to}
 	_, km := haversine.Distance(from, to)
 	return km
 }
 
-func calcMps(km float64, seconds float64) float64 {
+func (pool *Pool) calcMps(km float64, seconds float64) float64 {
 	return (km * 1000) / seconds
 }
 
-func calcKnots(mps float64) float64 {
+func (pool *Pool) calcKnots(mps float64) float64 {
 	return mps * 1.94384449
 }
 
-func calcKph(mps float64) float64 {
+func (pool *Pool) calcKph(mps float64) float64 {
 	return mps * 3.6
 }
 
-func calcMph(mps float64) float64 {
+func (pool *Pool) calcMph(mps float64) float64 {
 	return mps * 2.23694
 }
+
+func (pool *Pool) coalition(side string) string {
+	if side == "Allies" {
+		return "REDFOR"
+	} else if side == "Enemies" {
+		return "BLUFOR"
+	} else {
+		return "GRNFOR"
+	}
+}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 18 - 5
main.go


+ 5 - 5
tcp_listener.go

@@ -88,11 +88,11 @@ func (pool *Pool) handleRequest(conn net.Conn) {
 			for _, vvoor := range json_latest.Units {
 				for _, vna := range json_oldest.Units {
 					if vna.UnitName == vvoor.UnitName {
-						SpeedInMps := calcMps(calcDistance(vvoor.Latitude, vvoor.Longitude, vna.Latitude, vna.Longitude), vvoor.AgeInSeconds-vna.AgeInSeconds)
-						SpeedInKnots := calcKnots(SpeedInMps)
-						SpeedInKph := calcKph(SpeedInMps)
-						SpeedInMph := calcMph(SpeedInMps)
-						units = append(units, Unit{vna.AgeInSeconds, vna.UnitName, vna.GroupName, vna.Name, vna.Latitude, vna.Longitude, vna.AltitudeInFeet, SpeedInKnots, SpeedInKph, SpeedInMps, SpeedInMph, vna.HeadingInRads, rad2deg(vna.HeadingInRads), vna.PitchInRads, rad2deg(vna.PitchInRads), vna.BankInRads, rad2deg(vna.BankInRads), vna.Coalition, vna.Type})
+						SpeedInMps := pool.calcMps(pool.calcDistance(vvoor.Latitude, vvoor.Longitude, vna.Latitude, vna.Longitude), vvoor.AgeInSeconds-vna.AgeInSeconds)
+						SpeedInKnots := pool.calcKnots(SpeedInMps)
+						SpeedInKph := pool.calcKph(SpeedInMps)
+						SpeedInMph := pool.calcMph(SpeedInMps)
+						units = append(units, Unit{vna.AgeInSeconds, vna.UnitName, vna.GroupName, vna.Name, vna.Latitude, vna.Longitude, vna.AltitudeInFeet, SpeedInKnots, SpeedInKph, SpeedInMps, SpeedInMph, vna.HeadingInRads, pool.rad2deg(vna.HeadingInRads), vna.PitchInRads, pool.rad2deg(vna.PitchInRads), vna.BankInRads, pool.rad2deg(vna.BankInRads), pool.coalition(vna.Coalition), pool.unitTypes[vna.Type]})
 					}
 				}
 			}

+ 1 - 0
types.go

@@ -11,6 +11,7 @@ type Pool struct {
 	logger    *log.Logger
 	http_port string
 	tcp_port  string
+	unitTypes map[string]string
 }
 
 type json_units struct {

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio