61 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| import java.util.concurrent.TimeUnit;
 | |
| 
 | |
| public class RoadSensor {
 | |
|     private boolean hazardDetected; //flag for whether a hazard is detected
 | |
|     private String roadwayDetails; //stores road quality details, eg wet, uneven
 | |
|     private double[] laneEdges; //stores distance to left/right lane edges
 | |
|     private String roadSigns; //stores roadsign text for visible signs
 | |
| 
 | |
|     public void detectLaneEdges() {
 | |
|         laneEdges[0] = 1;
 | |
|         laneEdges[1] = 1.1;
 | |
|     }
 | |
| 
 | |
|     public int detectSpeedLimit() {
 | |
|         //image intepretation api call to review any street signs with a speed limit marking
 | |
|         //in practice this will be combined with route mapping data to confirm current
 | |
|         //speed limits
 | |
|         return 45;
 | |
|     }
 | |
| 
 | |
|     public static boolean identifyHazard() {
 | |
|         //image processing algorithms from external cameras would
 | |
|         //review data and identify a hazard
 | |
|         //types of hazards could be
 | |
|         //Stopped vehicle
 | |
|         //Road construction
 | |
|         //lane closure
 | |
|         //pedestrian on roadway
 | |
|         //stationary object on roadway
 | |
|         //for testing purposes, this function will roll a 1/100 chance of detecting a hazard
 | |
|     	//and a value of 1 means a hazard was detected
 | |
|     	double detection = Math.floor(Math.random()*100);
 | |
|     	if (detection == 1) { return true; }
 | |
|     	else { return false; }
 | |
|     }
 | |
|     
 | |
|     public static boolean detectTrafficLight() { //rolls a 1 in 5 that a traffic light will be detected when approaching an intersection
 | |
|     	double detection = Math.floor(Math.random()*5);
 | |
|     	if (detection == 1) { return true; }
 | |
|     	else { return false; }
 | |
|     }
 | |
|     
 | |
|     public static int roadQuality(String type) {
 | |
|     	//function to check road state
 | |
|     	//for testing purposes, these checks are being separated
 | |
|     	//so they can proc independently during a roadtrip
 | |
|     	double rand = 0;
 | |
|     	switch (type) {
 | |
| 	    	case "WET":
 | |
| 	    		rand = Math.floor(Math.random()*10);
 | |
| 	    		if (rand == 1) {return 1;}
 | |
| 	    		else {return 0;}
 | |
| 	    	case "SURFACE": {
 | |
| 	    		rand = Math.floor(Math.random()*20);
 | |
| 	    		if (rand == 1) {return 1;}
 | |
| 	    		else {return 0;}
 | |
| 	    	}
 | |
|     	}
 | |
|     	return 1;
 | |
|     }
 | |
| }
 |