Re: [Monobotics-develop] [ES] Error al acceder a atributo heredado desde objeto hijo.
Brought to you by:
buhochileno
|
From: <buh...@gm...> - 2009-09-15 19:39:00
|
Hi,
Ya pille el problem, ...
Lo que pasa es que en 1er lugar estas haciendo que cm11 y cp10 tengan
sus propios puertoserie y sus propios "LoadResources" para
reconstruirlos, pero a su vez heredan de X10Interface que tiene otro
puerto serie, entonces cuando se setea la propiedad Interface en module
se enlaza con un objeto de tipo padre y luego se arma todo un enredo
respecto a cual objeto serialport se esta usando, el del padre o el del
hijo...
Lo que debes hacer (ya lo probe) es que ni cp10 ni cm11 tienen nada en
su contructor, solo llaman al contructor del padre:
public X10Cm11() :
base() {
Y luego en sus LoadResources solo llaman al del padre:
protected override void LoadResources() {
base.LoadResources();
}
Por lo tanto no necesitas archivos de recursos para cm11 o cp10, solo el
ipx del padre (X10Interface) y el se encarga del LoadResource completo
(si mas tarde por diferencias cm11 o cp10 necesitan otros objetos y por
lo tanto otros archivos de recursos se hace algo mixto entre reconstruir
sus propios objetos en sus loadresource y los base/comunes en el
loadresource del padre...), de la misma forma tampoco cm11 o cp10
necesitan una propiedad "Port" ya que deberia estar solo en el padre, te
recomiendo hacer que X10Interface herede de SerialKit..en cualquier caso
la propiedad publica deberia llamarse SerialPort y no solo "Port", te
recomiendo que cuando construyas el .ipx para el X10Interface el nodo
"raiz" del kit sea un "SerialKit" y que de todas formas agregues un
objeto SerialPort, etc para que la herramienta del generacion de codigo
te genere el LoadResource con los objectid, etc, pero luego eliminas del
codigo el "objeto" SerialPort , puesto que al heredar de SerialKit ya lo
tendrias y en el LoadResources simplemente cambias por serialport =
()embedded.blablabla
Mira la Sabertooth2x25Kit que hereda de SerialKit y en el LoadResources
tiene algo como:
serialport =
(MBF.Ports.SerialPort)embedded.FindByObjectID("5e96021c-8015-4750-a205-5a26a4f00b41");
El objeto raiz en el ipx del Sabertooth2x25Kit es un "SerialKit", pero
el generador de codigo le creo igual un objeto serialPort (ya que no
sabe que objetos son provistos por el padre/raiz en este caso serialkit
que ya provee un serialport), luego se elimino ese objeto serialport y
se ocupa el del padre...
Ademas please cambia los nombre X10Cm11 a X10CM11 y X10Cp10 a X10CP10,
eso tambien para ipx (si correspondiera), etc..
Cualquier duda me avisas..
Mauricio
Jaime Alvarado wrote:
> 7:55:54 PM 130ms - 1> Initialising Simulation
> 7:55:54 PM 131ms - 1> Initialising Simulation for Monoscopic Rendering
> 7:55:54 PM 131ms - 1> Initialising Simulation for Viewport 1
> 7:55:54 PM 131ms - 1> Initialising Simulation for Camera 1
> 7:55:54 PM 131ms - 1> Initialising Simulation for X10Cm11
> 7:55:54 PM 131ms - 1> Simulacion de : X10Cm11
> (b5d35f2e-dbf5-4112-8617-ff09e345ac98) Port no null
> 7:55:54 PM 131ms - 1> Initialising Simulation for X10Module
> 7:55:54 PM 132ms - 1> Interface desde X10Cm11
> (b5d35f2e-dbf5-4112-8617-ff09e345ac98) Port null
> 7:55:54 PM 132ms - 1> Simulation Initialised
> 7:55:56 PM 105ms - 3> Form deactivated
>
> Esta es la salida como le conte anteriormente, en la simulacion del
> Cm11 me dice port no null, mientras que en el del Modulo me dice Port
> null.
>
>
> --------------------------------------------------
> From: "Mauricio Heneiquez" <buh...@gm...>
> Sent: Monday, September 14, 2009 7:23 PM
> To: "Jaime Alvarado" <obe...@ho...>
> Cc: "monoBOTICS Developers" <mon...@li...>
> Subject: Re: [Monobotics-develop] [ES] Error al acceder a atributo
> heredado desde objeto hijo.
>
>> Raro, debería funcionar, enviame los archivos necesarios para probar
>> acá...
>>
>>
>> Mauricio
>>
>> El 14/09/2009, a las 19:12, "Jaime Alvarado"
>> <obe...@ho...
>> > escribió:
>>
>>>
>>>
>>> --------------------------------------------------
>>> From: <buh...@gm...>
>>> Sent: Monday, September 14, 2009 5:38 PM
>>> Cc: "monoBOTICS Developers" <mon...@li...>
>>> Subject: Re: [Monobotics-develop] [ES] Error al acceder a atributo
>>> heredado desde objeto hijo.
>>>
>>>> Jaime Alvarado wrote:
>>>>> Hola. En la escena hay dos objetos de tipo X10Module y X10Cm11.
>>>>>
>>>>> X10Module
>>>>> {
>>>>> private X10Interface interface; // desde el inspector asocio esta
>>>>> propiedad con el objeto Cm11 presenta en la escena
>>>>> SetAddress() // Esta función la llamo desde el initialicesimul ation
>>>>> {
>>>>> interface.Transmit();
>>>>> }
>>>>> }
>>>>>
>>>>> X10Interface
>>>>> {
>>>>> private serialport Port;
>>>>>
>>>>> Transmit()
>>>>> {
>>>>> string msg = this.Port == null ? "null" : "no null";
>>>>> ISE.IConsole.Write(msg); // Cuando se ejecuta esta función dice
>>>>> que port es "null".
>>>>> }
>>>>> }
>>>>>
>>>> Esta clase tiene la parte "Designer" con el "LoadResources" donde se
>>>> re-crea el Port verdad?, de donde hereda X10Interface? y necesito
>>>> ver su
>>>> constructor...
>>>
>>> La clase tiene la parte Designer con el LoadResources.
>>> Hereda de DomoKits
>>> y este es su constructor
>>>
>>> public X10Interface() : base()
>>> {
>>> try
>>> {
>>> this.embeddedfile = "X10Interface.ipx";
>>> this.embeddedheadid = "634dd788-905d-409c-9314-1e23341b60db";
>>> }
>>> catch (Exception e)
>>> {
>>> ISE.IConsole.Write(e.Message);
>>> }
>>> }
>>>
>>>>> X10Cm11 : X10Interface
>>>>> {
>>>>> SetInterfaceClock() // Esta funcion la llamo desde el
>>>>> initicalicesimulation
>>>>> {
>>>>> string msg = this.Port == null ? "null" : "no null";
>>>>> ISE.IConsole.Write(msg); // Cuando se ejecuta esta función dice
>>>>> que port es "no null"
>>>>> }
>>>>> }
>>>>>
>>>>> --------------------------------------------------
>>>>> From: <buh...@gm...>
>>>>> Sent: Monday, September 14, 2009 9:18 AM
>>>>> Cc: "monoBOTICS Developers" <mon...@li...
>>>>> >
>>>>> Subject: Re: [Monobotics-develop] [ES] Error al acceder a atributo
>>>>> heredado desde objeto hijo.
>>>>>
>>>>>> Necesitaria un extracto de codigo (code snippet) para entender
>>>>>> mejor la
>>>>>> situacion, pero tal vez el esquema del Sabertooh2x5Kit te ayude,
>>>>>> en el
>>>>>> proyecto MBF.RobotKit existe el kit SaberTooth2x5Kit que hereda de
>>>>>> SaberTooth2x , hay puedes ver que las funcionalidades estan
>>>>>> implementadas en la clase padre SaberTooth2x pero los objetos
>>>>>> propiamente tal estan y se usan en SaberTooth2x5Kit...
>>>>>>
>>>>>> Mauricio
>>>>>>
>>>>>> Jaime Alvarado wrote:
>>>>>>> Hola.
>>>>>>> Tengo una clase X10Cm11 la cual hereda desde X10Interface la cual
>>>>>>> hereda de Domokits y a la vez esta compuesta de un serialport. (No
>>>>>>> supe como heredad directamente desde SerialKit).
>>>>>>> Pasa que desde la clase X10Cm11 puedo acceder al serialport, no hay
>>>>>>> ningun problema pero cuando ocupo las funciones de x10Interface
>>>>>>> para
>>>>>>> acceder al serialport desde X10Cm11, esta dice que: object
>>>>>>> reference
>>>>>>> not set to an instance of an object, lo cual no entiendo ya que el
>>>>>>> miembro serialport dice que es null, pero desde los metodos de CM11
>>>>>>> dice que no es null pudiendo operar el serialport sin ningun
>>>>>>> problema.
>>>>>>> --- ---
>>>>>>> ------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>> --- --- --- ---
>>>>>>> ------------------------------------------------------------------
>>>>>>>
>>>>>>> Let Crystal Reports handle the reporting - Free Crystal Reports
>>>>>>> 2008
>>>>>>> 30-Day
>>>>>>> trial. Simplify your report design, integration and deployment -
>>>>>>> and
>>>>>>> focus on
>>>>>>> what you do best, core application coding. Discover what's new with
>>>>>>> Crystal Reports now. http://p.sf.net/sfu/bobj-july
>>>>>>> --- ---
>>>>>>> ------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Monobotics-develop mailing list
>>>>>>> Mon...@li...
>>>>>>> https://lists.sourceforge.net/lists/listinfo/monobotics-develop
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --- --- --- ---
>>>>>> ------------------------------------------------------------------
>>>>>>
>>>>>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>>>>>> 30-Day
>>>>>> trial. Simplify your report design, integration and deployment - and
>>>>>> focus on
>>>>>> what you do best, core application coding. Discover what's new with
>>>>>> Crystal Reports now. http://p.sf.net/sfu/bobj-july
>>>>>> _______________________________________________
>>>>>> Monobotics-develop mailing list
>>>>>> Mon...@li...
>>>>>> https://lists.sourceforge.net/lists/listinfo/monobotics-develop
>>>>>>
>>>>>
>>>>
>>>>
>>>> --- --- ---
>>>> ---------------------------------------------------------------------
>>>> Come build with us! The BlackBerry® Developer Conference in SF, CA
>>>> is the only developer event you need to attend this year. Jumpstart
>>>> your
>>>> developing skills, take BlackBerry mobile applications to market
>>>> and stay
>>>> ahead of the curve. Join us from November 9-12, 2009. Register
>>>> now!
>>>> http://p.sf.net/sfu/devconf
>>>> _______________________________________________
>>>> Monobotics-develop mailing list
>>>> Mon...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/monobotics-develop
>>
>
|