| | |
| | | |
| | | double avgSin = sumSin / size; |
| | | double avgCos = sumCos / size; |
| | | |
| | | if (avgSin > 0 && avgCos > 0) { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI; |
| | | } else if (avgCos < 0) { |
| | | } else if ((avgSin > 0 && avgCos < 0) || (avgSin < 0 && avgCos < 0)) { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI + 180; |
| | | } else { |
| | | } else if (avgSin < 0 && avgCos > 0) { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI + 360; |
| | | } else { |
| | | avgDir = 0; |
| | | } |
| | | double v = sciCal(avgDir, 4); |
| | | result.put(Constants.SENSOR_CODE_WIND_DIR, v); |