c# - Accessing properties from Java Binding Library Interface in Xamarin -


i getting abstractmethoderror when trying x java.lang.object.

class datamessagehandler : java.lang.object, iroutemanagermessagehandler {       public void process(message p0)       {            var message = p0;            var cartesian = class.fromtype(typeof(cartesianfloat));             var value = (icartesian)message.getdata(cartesian);            var x = value.x();       } } 

where cartesianfloat implementation of icartesian.

icartesian:

[global::java.interop.javatypeparameters (new string [] {"t extends java.lang.number"})] public partial interface icartesian : ijavaobject {      // metadata.xml xpath method reference: path="/api/package[@name='com.mbientlab.metawear.data']/interface[@name='cartesian']/method[@name='x' , count(parameter)=0]"     [register ("x", "()ljava/lang/number;", "getxhandler:com.mbientlab.metawear.data.icartesianinvoker, metawearandroid")]     global::java.lang.object x ();      // metadata.xml xpath method reference: path="/api/package[@name='com.mbientlab.metawear.data']/interface[@name='cartesian']/method[@name='y' , count(parameter)=0]"     [register ("y", "()ljava/lang/number;", "getyhandler:com.mbientlab.metawear.data.icartesianinvoker, metawearandroid")]     global::java.lang.object y ();      // metadata.xml xpath method reference: path="/api/package[@name='com.mbientlab.metawear.data']/interface[@name='cartesian']/method[@name='z' , count(parameter)=0]"     [register ("z", "()ljava/lang/number;", "getzhandler:com.mbientlab.metawear.data.icartesianinvoker, metawearandroid")]     global::java.lang.object z ();  } 

cartesianfloat:

        public unsafe cartesianfloat ()         : base (intptr.zero, jnihandleownership.donottransfer)     {         if (handle != intptr.zero)             return;          try {             if (gettype () != typeof (cartesianfloat)) {                 sethandle (                         global::android.runtime.jnienv.startcreateinstance (gettype (), "()v"),                         jnihandleownership.transferlocalref);                 global::android.runtime.jnienv.finishcreateinstance (handle, "()v");                 return;             }              if (id_ctor == intptr.zero)                 id_ctor = jnienv.getmethodid (class_ref, "<init>", "()v");             sethandle (                     global::android.runtime.jnienv.startcreateinstance (class_ref, id_ctor),                     jnihandleownership.transferlocalref);             jnienv.finishcreateinstance (handle, class_ref, id_ctor);         } {         }     }      // method explicitly implemented member of instantiated com.mbientlab.metawear.data.icartesian     global::java.lang.object global::com.mbientlab.metawear.data.icartesian.x ()     {         return global::java.interop.javaobjectextensions.javacast<java.lang.object>(((icartesian) this).x ());     }      // method explicitly implemented member of instantiated com.mbientlab.metawear.data.icartesian     global::java.lang.object global::com.mbientlab.metawear.data.icartesian.y ()     {         return global::java.interop.javaobjectextensions.javacast<java.lang.object>(((icartesian) this).y ());     }      // method explicitly implemented member of instantiated com.mbientlab.metawear.data.icartesian     global::java.lang.object global::com.mbientlab.metawear.data.icartesian.z ()     {         return global::java.interop.javaobjectextensions.javacast<java.lang.object>(((icartesian) this).z ());     }  } 

if try cast value cartesianfloat, says no method x() exists on value.

putting watch on value, has value of {(-0.062, 0.070, 1.010)}

metwear api sends encoded data in ble packet , can decode using following code. translated (than optimized) java code.

public void process(message p0)   {     var message = p0 bmi160threeaxismessage;     var data = message.getdata();     var x = ((short)(data[1] << 8 | data[0])) / message.scale;     var y = ((short)(data[3] << 8 | data[2])) / message.scale;     var z = ((short)(data[5] << 8 | data[4])) / message.scale; } 

Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -