Commit 71504bef authored by garciay's avatar garciay
Browse files

Update rotation external function

parent 7505615e
...@@ -54,11 +54,6 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -54,11 +54,6 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
*/ */
public static final String Version = "1.0.0.0"; public static final String Version = "1.0.0.0";
/**
* Logger instance
*/
//private final static Logger _logger = Logger.getLogger("org.etsi.its");
/** /**
* Unique instance of TciCDWrapper class * Unique instance of TciCDWrapper class
*/ */
...@@ -85,7 +80,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -85,7 +80,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* Default ctor * Default ctor
*/ */
public ItsExternalFunctionsProvider() { public ItsExternalFunctionsProvider() {
//_logger.entering("ItsExternalFunctionsProvider", "Constructor", String.format("version:%s", Version)); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "Constructor", String.format("version:%s", Version));
_tcicdWrapper = TciCDWrapperFactory.getTciCDInstance(); _tcicdWrapper = TciCDWrapperFactory.getTciCDInstance();
...@@ -111,7 +106,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -111,7 +106,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
@Override @Override
public synchronized IntegerValue fx_getCurrentTime() { public synchronized IntegerValue fx_getCurrentTime() {
IntegerValue now = null; IntegerValue now = null;
//_logger.entering("ItsExternalFunctionsProvider", "fx_getCurrentTime"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getCurrentTime");
if (gnssScenarioSupport) { if (gnssScenarioSupport) {
now = _tcicdWrapper.setInteger(GNSS.getGpsTime()); now = _tcicdWrapper.setInteger(GNSS.getGpsTime());
...@@ -131,7 +126,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -131,7 +126,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
now = _tcicdWrapper.setInteger(0); now = _tcicdWrapper.setInteger(0);
} }
//_logger.exiting("ItsExternalFunctionsProvider", "fx_getCurrentTime", String.format("%10d", _tcicdWrapper.getBigInteger(now))); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getCurrentTime", String.format("%10d", _tcicdWrapper.getBigInteger(now)));
} }
return now; return now;
} // End of method fx_getCurrentTime } // End of method fx_getCurrentTime
...@@ -139,24 +134,24 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -139,24 +134,24 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
@Override @Override
public IntegerValue fx_getCurrentTimeMark() { public IntegerValue fx_getCurrentTimeMark() {
IntegerValue now = null; IntegerValue now = null;
//_logger.entering("ItsExternalFunctionsProvider", "fx_getCurrentTimeMark"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getCurrentTimeMark");
ZonedDateTime t = ZonedDateTime.now(ZoneOffset.UTC); ZonedDateTime t = ZonedDateTime.now(ZoneOffset.UTC);
now = _tcicdWrapper.setInteger(new Integer((t.getMinute() * 60 + t.getSecond()) * 10)); now = _tcicdWrapper.setInteger(new Integer((t.getMinute() * 60 + t.getSecond()) * 10));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_getCurrentTimeMark", String.format("%4d", _tcicdWrapper.getBigInteger(now))); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getCurrentTimeMark", String.format("%4d", _tcicdWrapper.getBigInteger(now)));
return now; return now;
} }
@Override @Override
public IntegerValue fx_getMinuteOfTheYear() { public IntegerValue fx_getMinuteOfTheYear() {
IntegerValue now = null; IntegerValue now = null;
//_logger.entering("ItsExternalFunctionsProvider", "fx_getMinuteOfTheYear"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getMinuteOfTheYear");
ZonedDateTime t = ZonedDateTime.now(ZoneOffset.UTC); ZonedDateTime t = ZonedDateTime.now(ZoneOffset.UTC);
now = _tcicdWrapper.setInteger(new Integer((t.getDayOfYear() - 1) * 24 * 60 + t.getHour() * 60 + t.getMinute())); now = _tcicdWrapper.setInteger(new Integer((t.getDayOfYear() - 1) * 24 * 60 + t.getHour() * 60 + t.getMinute()));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_getMinuteOfTheYear", String.format("%4d", _tcicdWrapper.getBigInteger(now))); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_getMinuteOfTheYear", String.format("%4d", _tcicdWrapper.getBigInteger(now)));
return now; return now;
} }
...@@ -181,7 +176,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -181,7 +176,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
public synchronized FloatValue fx_computeDistance( public synchronized FloatValue fx_computeDistance(
final IntegerValue p_latitudeA, final IntegerValue p_longitudeA, final IntegerValue p_latitudeA, final IntegerValue p_longitudeA,
final IntegerValue p_latitudeB, final IntegerValue p_longitudeB) { final IntegerValue p_latitudeB, final IntegerValue p_longitudeB) {
// //_logger.entering("ItsExternalFunctionsProvider", "fx_computeDistance", // //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_computeDistance",
// String.format("%d, %d, %d, %d", // String.format("%d, %d, %d, %d",
// p_latitudeA.getInteger(), // p_latitudeA.getInteger(),
// p_longitudeA.getInteger(), // p_longitudeA.getInteger(),
...@@ -233,7 +228,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -233,7 +228,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
final IntegerValue p_refLongitude, final FloatValue p_distance, final IntegerValue p_refLongitude, final FloatValue p_distance,
final IntegerValue p_orientation, IntegerValue p_latitude, final IntegerValue p_orientation, IntegerValue p_latitude,
IntegerValue p_longitude) { IntegerValue p_longitude) {
// //_logger.entering( // //TERFactory.getInstance().logDebug(
// "ItsExternalFunctionsProvider", // "ItsExternalFunctionsProvider",
// "fx_computePositionUsingDistance", // "fx_computePositionUsingDistance",
// String.format("%d, %d", p_distance.getInteger(), // String.format("%d, %d", p_distance.getInteger(),
...@@ -297,23 +292,29 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -297,23 +292,29 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
final FloatValue p_rotation, final FloatValue p_rotation,
IntegerValue p_latitude, IntegerValue p_latitude,
IntegerValue p_longitude) { IntegerValue p_longitude) {
// //_logger.entering( // //TERFactory.getInstance().logDebug(
// "ItsExternalFunctionsProvider", // "ItsExternalFunctionsProvider",
// "fx_computePositionFromRotation", // "fx_computePositionFromRotation",
// String.format("%d", p_rotation.getFloat())); // String.format("%d", p_rotation.getFloat()));
// Get rotation angle
double rotation = Math.toRadians(p_rotation.getFloat());
FloatValue v_rotation = _tcicdWrapper.getFloat();
v_rotation.setFloat(p_rotation.getFloat());
// X = longitude, Y = latitude // X = longitude, Y = latitude
double long_ = _tcicdWrapper.getInteger(p_cenLongitude) + Math.cos(v_rotation.getFloat()) * (_tcicdWrapper.getInteger(p_refLongitude) - _tcicdWrapper.getInteger(p_cenLongitude)) - Math.sin(v_rotation.getFloat()) * (_tcicdWrapper.getInteger(p_refLatitude) - _tcicdWrapper.getInteger(p_cenLatitude)); // I assume this is a very small geographic area ==> 2D plan formula applied
double lat = _tcicdWrapper.getInteger(p_cenLatitude) + Math.sin(v_rotation.getFloat()) * (_tcicdWrapper.getInteger(p_refLongitude) - _tcicdWrapper.getInteger(p_cenLongitude)) + Math.cos(v_rotation.getFloat()) * (_tcicdWrapper.getInteger(p_refLatitude) - _tcicdWrapper.getInteger(p_cenLatitude)); double x = _tcicdWrapper.getInteger(p_refLongitude);
Long rlat = Math.round(lat); double y = _tcicdWrapper.getInteger(p_refLatitude);
Long rlong = Math.round(long_); double xcen = _tcicdWrapper.getInteger(p_cenLongitude);
double ycen = _tcicdWrapper.getInteger(p_cenLatitude);
double X = x - xcen;
double Y = y - ycen;
double long_ = xcen + Math.cos(rotation) * X - Math.sin(rotation) * Y;
double lat = ycen + Math.sin(rotation) * X + Math.cos(rotation) * Y;
// The out parameter needs to be set on the object level // The out parameter needs to be set on the object level
Long rlat = Math.round(lat);
Long rlong = Math.round(long_);
_tcicdWrapper.setInteger(p_latitude, rlat.intValue()); _tcicdWrapper.setInteger(p_latitude, rlat.intValue());
_tcicdWrapper.setInteger(p_longitude, rlong.intValue()); _tcicdWrapper.setInteger(p_longitude, rlong.intValue());
} // End of method fx_computePositionFromRotation } // End of method fx_computePositionFromRotation
@Override @Override
...@@ -402,7 +403,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -402,7 +403,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
final OctetstringValue p_destinationAddress, final OctetstringValue p_destinationAddress,
final IntegerValue p_payloadLength, final IntegerValue p_payloadLength,
final OctetstringValue p_payload, final IntegerValue p_nextHdr) { final OctetstringValue p_payload, final IntegerValue p_nextHdr) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_computeIPv6CheckSum"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_computeIPv6CheckSum");
// Build the pseudo header according RFC 2460 - Clause 8.1 // Build the pseudo header according RFC 2460 - Clause 8.1
ByteArrayOutputStream pseudoheader = new ByteArrayOutputStream(); ByteArrayOutputStream pseudoheader = new ByteArrayOutputStream();
...@@ -446,14 +447,14 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -446,14 +447,14 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
--length; --length;
} }
sum = (~((sum & 0xFFFF) + (sum >> 16))) & 0xFFFF; sum = (~((sum & 0xFFFF) + (sum >> 16))) & 0xFFFF;
//_logger.info(String.format("ItsExternalFunctionsProvider.fx_computeIPv6CheckSum: finalSum=%d",sum)); //TERFactory.getInstance().logDebug(String.format("ItsExternalFunctionsProvider.fx_computeIPv6CheckSum: finalSum=%d",sum));
// Set the return value // Set the return value
OctetstringValue checksum = _tcicdWrapper.getOctetstring(); OctetstringValue checksum = _tcicdWrapper.getOctetstring();
checksum.setLength(2); checksum.setLength(2);
checksum.setOctet(0, (byte) ((byte) (sum >> 8) & 0xff)); checksum.setOctet(0, (byte) ((byte) (sum >> 8) & 0xff));
checksum.setOctet(1, (byte) (sum & 0x00ff)); checksum.setOctet(1, (byte) (sum & 0x00ff));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_computeIPv6CheckSum", checksum); // FIXME Check which method to call for logging //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_computeIPv6CheckSum", checksum); // FIXME Check which method to call for logging
return checksum; return checksum;
} }
...@@ -485,7 +486,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -485,7 +486,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* @return The hash value * @return The hash value
*/ */
public OctetstringValue fx_hashWithSha256(final OctetstringValue p_toBeHashedData) { public OctetstringValue fx_hashWithSha256(final OctetstringValue p_toBeHashedData) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_hashWithSha256"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_hashWithSha256");
byte[] toBeHashedData = new byte[p_toBeHashedData.getLength()]; byte[] toBeHashedData = new byte[p_toBeHashedData.getLength()];
for (int i = 0; i < toBeHashedData.length; i++) { for (int i = 0; i < toBeHashedData.length; i++) {
...@@ -508,7 +509,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -508,7 +509,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* @return The signature value * @return The signature value
*/ */
public OctetstringValue fx_signWithEcdsaNistp256WithSha256(final OctetstringValue p_toBeSignedData, final OctetstringValue/*IntegerValue*/ p_privateKey) { public OctetstringValue fx_signWithEcdsaNistp256WithSha256(final OctetstringValue p_toBeSignedData, final OctetstringValue/*IntegerValue*/ p_privateKey) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_signWithEcdsaNistp256WithSha256"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_signWithEcdsaNistp256WithSha256");
byte[] toBeSignedData = new byte[p_toBeSignedData.getLength()]; byte[] toBeSignedData = new byte[p_toBeSignedData.getLength()];
for (int i = 0; i < toBeSignedData.length; i++) { for (int i = 0; i < toBeSignedData.length; i++) {
...@@ -545,7 +546,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -545,7 +546,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* @return true on success, false otherwise * @return true on success, false otherwise
*/ */
public BooleanValue fx_verifyWithEcdsaNistp256WithSha256(final OctetstringValue p_toBeVerifiedData, final OctetstringValue p_signature, final OctetstringValue p_ecdsaNistp256PublicKeyX, final OctetstringValue p_ecdsaNistp256PublicKeyY) { public BooleanValue fx_verifyWithEcdsaNistp256WithSha256(final OctetstringValue p_toBeVerifiedData, final OctetstringValue p_signature, final OctetstringValue p_ecdsaNistp256PublicKeyX, final OctetstringValue p_ecdsaNistp256PublicKeyY) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_verifyWithEcdsaNistp256WithSha256"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_verifyWithEcdsaNistp256WithSha256");
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(false); result.setBoolean(false);
...@@ -577,7 +578,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -577,7 +578,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
e.printStackTrace(); e.printStackTrace();
} }
//_logger.exiting("ItsExternalFunctionsProvider", "fx_verifyWithEcdsaNistp256WithSha256"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_verifyWithEcdsaNistp256WithSha256");
return result; return result;
} }
...@@ -589,7 +590,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -589,7 +590,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* @return true on success, false otherwise * @return true on success, false otherwise
*/ */
public BooleanValue fx_generateKeyPair(OctetstringValue/*IntegerValue*/ p_privateKey, OctetstringValue p_publicKeyX, OctetstringValue p_publicKeyY) { public BooleanValue fx_generateKeyPair(OctetstringValue/*IntegerValue*/ p_privateKey, OctetstringValue p_publicKeyX, OctetstringValue p_publicKeyY) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_generateKeyPair"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_generateKeyPair");
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(true); result.setBoolean(true);
...@@ -611,7 +612,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -611,7 +612,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
p_publicKeyY.setOctet(i, ref[i]); p_publicKeyY.setOctet(i, ref[i]);
} // End 'for' statement } // End 'for' statement
//_logger.exiting("ItsExternalFunctionsProvider", "fx_generateKeyPair"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_generateKeyPair");
return result; return result;
} }
...@@ -621,7 +622,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -621,7 +622,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
* @return true on success, false otherwise * @return true on success, false otherwise
*/ */
public BooleanValue fx_isValidPolygonalRegion(final RecordOfValue p_region) { public BooleanValue fx_isValidPolygonalRegion(final RecordOfValue p_region) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isValidPolygonalRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isValidPolygonalRegion");
// Setup arguments // Setup arguments
ArrayList<WGS84> polygonalArea = new ArrayList<WGS84>(); ArrayList<WGS84> polygonalArea = new ArrayList<WGS84>();
...@@ -638,13 +639,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -638,13 +639,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isValidPolygonArea(polygonalArea)); result.setBoolean(Positioning.getInstance().isValidPolygonArea(polygonalArea));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isValidPolygonalRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isValidPolygonalRegion");
return result; return result;
} }
@Override @Override
public BooleanValue fx_isPolygonalRegionInside(final RecordOfValue p_parent, final RecordOfValue p_region) { public BooleanValue fx_isPolygonalRegionInside(final RecordOfValue p_parent, final RecordOfValue p_region) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isPolygonalRegionInside"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isPolygonalRegionInside");
// Setup arguments // Setup arguments
ArrayList<WGS84> parentArea = new ArrayList<WGS84>(); ArrayList<WGS84> parentArea = new ArrayList<WGS84>();
...@@ -670,13 +671,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -670,13 +671,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isPolygonalRegionInside(parentArea, regionArea)); result.setBoolean(Positioning.getInstance().isPolygonalRegionInside(parentArea, regionArea));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isPolygonalRegionInside"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isPolygonalRegionInside");
return result; return result;
} }
@Override @Override
public BooleanValue fx_isLocationInsideCircularRegion(final RecordValue p_region, final RecordValue p_location) { public BooleanValue fx_isLocationInsideCircularRegion(final RecordValue p_region, final RecordValue p_location) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isLocationInsideCircularRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideCircularRegion");
// Setup arguments // Setup arguments
RecordValue rv = (RecordValue)p_region.getField("center"); // Center RecordValue rv = (RecordValue)p_region.getField("center"); // Center
...@@ -694,13 +695,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -694,13 +695,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isLocationInsideCircularArea(location, center, radius)); result.setBoolean(Positioning.getInstance().isLocationInsideCircularArea(location, center, radius));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isLocationInsideCircularRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideCircularRegion");
return result; return result;
} }
@Override @Override
public BooleanValue fx_isLocationInsideRectangularRegion(final RecordOfValue p_region, final RecordValue p_location) { public BooleanValue fx_isLocationInsideRectangularRegion(final RecordOfValue p_region, final RecordValue p_location) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isLocationInsideRectangularRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideRectangularRegion");
// Setup arguments // Setup arguments
ArrayList< ArrayList<WGS84> > polygonalAreas = new ArrayList< ArrayList<WGS84> >(); ArrayList< ArrayList<WGS84> > polygonalAreas = new ArrayList< ArrayList<WGS84> >();
...@@ -748,13 +749,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -748,13 +749,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isLocationInsidePolygonalAreas(location, polygonalAreas)); result.setBoolean(Positioning.getInstance().isLocationInsidePolygonalAreas(location, polygonalAreas));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isLocationInsideRectangularRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideRectangularRegion");
return result; return result;
} }
@Override @Override
public BooleanValue fx_isLocationInsidePolygonalRegion(final RecordOfValue p_region, final RecordValue p_location) { public BooleanValue fx_isLocationInsidePolygonalRegion(final RecordOfValue p_region, final RecordValue p_location) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isLocationInsidePolygonalRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsidePolygonalRegion");
// Setup arguments // Setup arguments
ArrayList<WGS84> polygonalArea = new ArrayList<WGS84>(); ArrayList<WGS84> polygonalArea = new ArrayList<WGS84>();
...@@ -775,13 +776,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -775,13 +776,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isLocationInsidePolygonalArea(location, polygonalArea)); result.setBoolean(Positioning.getInstance().isLocationInsidePolygonalArea(location, polygonalArea));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isLocationInsidePolygonalRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsidePolygonalRegion");
return result; return result;
} }
@Override @Override
public BooleanValue fx_isLocationInsideIdentifiedRegion(final RecordValue p_region, final RecordValue p_location) { public BooleanValue fx_isLocationInsideIdentifiedRegion(final RecordValue p_region, final RecordValue p_location) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_isLocationInsideIdentifiedRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideIdentifiedRegion");
// Setup arguments // Setup arguments
int regionDictionary = ((EnumeratedValue) p_region.getField("region_dictionary")).getInt(); int regionDictionary = ((EnumeratedValue) p_region.getField("region_dictionary")).getInt();
...@@ -796,13 +797,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -796,13 +797,13 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
BooleanValue result = _tcicdWrapper.getBoolean(); BooleanValue result = _tcicdWrapper.getBoolean();
result.setBoolean(Positioning.getInstance().isLocationInsideIdentifiedRegion(regionDictionary, regionId, localRegion, location)); result.setBoolean(Positioning.getInstance().isLocationInsideIdentifiedRegion(regionDictionary, regionId, localRegion, location));
//_logger.exiting("ItsExternalFunctionsProvider", "fx_isLocationInsideIdentifiedRegion"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_isLocationInsideIdentifiedRegion");
return result; return result;
} }
@Override @Override
public FloatValue fx_dms2dd(final IntegerValue p_degrees, final IntegerValue p_minutes, final FloatValue p_seconds, final OctetstringValue p_latlon) { public FloatValue fx_dms2dd(final IntegerValue p_degrees, final IntegerValue p_minutes, final FloatValue p_seconds, final OctetstringValue p_latlon) {
//_logger.entering("ItsExternalFunctionsProvider", "fx_dms2dd"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_dms2dd");
// Call Geodesic function // Call Geodesic function
FloatValue result = _tcicdWrapper.getFloat(); FloatValue result = _tcicdWrapper.getFloat();
...@@ -814,7 +815,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid ...@@ -814,7 +815,7 @@ public class ItsExternalFunctionsProvider implements IItsExternalFunctionsProvid
); );
result.setFloat((float) location.toDD()); result.setFloat((float) location.toDD());
//_logger.exiting("ItsExternalFunctionsProvider", "fx_dms2dd"); //TERFactory.getInstance().logDebug("ItsExternalFunctionsProvider", "fx_dms2dd");
return result; return result;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment