Port.InterruptMode.InterruptEdgeBoth
(1)
DateTime.Now.TimeOfDay
(1)
Port.ResistorMode.PullUp
(1)
RawButtonActions.ButtonDown
(1)
GPIOInterruptEventHandler
(1)
RawButtonActions.ButtonUp
(1)
GPIOButtonInputProvider
(1)
GPIOButtonInpurProvider
(1)

Hardware Event Handle with Software

Asked By Jignesh
20-Mar-08 02:29 AM
Hi
Here Can we fire Hardware/Buttoen events through program? or some Timer
based?
Like, if we pressed any button, automatically ButtonEventArgs will handle
and events occure. Same thing can i fired through software?

regards,
Jignesh

You can use the "AutoResetEvent" object to dispatch events in your program.

Asked By gregAdene
20-Mar-08 04:47 AM
You can use the "AutoResetEvent" object to dispatch events in your program.

To catch and event, create a thread that will wait on the event as follows:

Thread EventThread = new Thread(new ThreadStart(EventProcessingThread));
AutoResetEvent event1 = new AutoResetEvent(false);

EventThread.Start();

void EventProcessingThread()
{
while(true)
{
event1.WaitOne();  // Will block until the event is set

// Process the event here

}
}

Then you can fire the event from anywhere in your code like, let's say, when
you push a button:

void OnButtonUp(...)
{
event1.Set();
}

--------------------------------------------
Grégory LEMERCIER
ADENEO - Adetel Group
http://www.adeneo.adetelgroup.com
--------------------------------------------

Hello Jignesh,if you keep reference to the input provider, you can call

Asked By Jan Kucera
20-Mar-08 06:05 AM
Hello Jignesh,
if you keep reference to the input provider, you can call ReportInput to
simulate the input and have it pass the standard WPF processing.

For example, in the startup windows project:

in Program.cs, add
static GPIOButtonInputProvider inputProvider;

and change the constructor to use this reference
inputProvider = new GPIOButtonInputProvider(null);

In GPIOButtonInputProvider.cs, make the InputProviderSite accessible by
adding
public InputProviderSite Site { get { return site; } }


And to fire the ButtonUp event of Select button, use:
inputProvider.Site.ReportInput(new RawButtonInputReport(null,
DateTime.Now.TimeOfDay, Button.Select, RawButtonActions.ButtonUp));

You should call ReportInput on dispatcher thread.

Is this what you were looking for?

Jan

Hi JanThanks for reply, but i think I am looking bit different way.

Asked By Jignesh
20-Mar-08 07:04 AM
Hi Jan
Thanks for reply, but i think I am looking bit different way.
Actually I am using I. MXS kit and interfacing ScrollWheel, and other Key
pad. As here i have taken Scrollwheel on interrupt Based, to count no of
cycles. Same time I am also using  void OnButtonDown(ButtonEvents e) method
for capturing my events from Different Buttons. Here Scroll Wheel is use for
Fwd and Rewind direction, as like UP and Down Key. I am trying to fire an
event, which wil take me to UP key or Down Key after completion of certaion
no of Cycles. Is this possible?

Regards,
Jignesh
Hi Jignesh,could you please explain more what the flow should be?
Asked By milous
20-Mar-08 08:08 AM
Hi Jignesh,
could you please explain more what the flow should be?
If you have the scroll wheel attached to an interrupt port, why you cannot
just add it to the GPIOButtonInpurProvider?

Jan
HI JanAs i have tried, GPIOButtonInputProvider is not allowing me to use more
Asked By Jignesh
20-Mar-08 08:29 AM
HI Jan
As i have tried, GPIOButtonInputProvider is not allowing me to use more key,
due to that i am attaching scroll Wheel at another GPIO and working with
interrupt.

As per my working flow, I shuld have to scroll menu, or other things from UP
/DOWN key as well as Scroll Button. Here through Buttonbased we are working
with proper Menu and chnaging menu ITEM etc,... Same thing I want to apply
for  ScrollWheel Through. When ever it scroll, after some certain pulse i
want to call void OnButtonDown(ButtonEvents e) method, Because every thing
is taking care from here. All menu item update, child process etc..
hope you may get my flow for application.
Could you please tell me is this possible? or else what is alternate way?

Jignesh
Well...
Asked By milous
20-Mar-08 08:36 AM
Well... first of all you are free to call OnButtonDown(ButtonEvents e)
directly from your code wherever you need as normal method.
This could help and is enough if you are not dealing with focus and WPF
input handlings stuff.
Otherwise I'm afraid we will need some sample of your code ;-)

You mean you have used all 13 buttons?

Jan
Hi JanHere I have occupied rest of all 13 buttons.
Asked By Jignesh
20-Mar-08 09:14 AM
Hi Jan
Here I have occupied rest of all 13 buttons. I have tried to call  void
OnButtonDown(ButtonEvetnArgu e) from ScrollWheel Interrupt Function with
Button.Down as an event. It is giving Compiler Error.

Error 1 The name 'OnButtonDown' does not exist in the current context

So I guess here MF is not allowing me to use this methode directly.
for sample code please send me your personal Mail Id due to confidential
matter, I will Send you more on that.

Regards,
Jignesh
PS.
Asked By milous
20-Mar-08 09:18 AM
PS. From the design point of view you should wrap your logic into a method
and call it both from OnButtonDown handler and from where you need.
If you need to simulate some action on a standard control, consider deriving
from it and putting the logic there.
Hardware Event Handle with Software
Asked By Jignesh
20-Mar-08 09:22 AM
Hi Jan Please find code for this.




begin 666 Practice1.zip
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
M/8\"M:I7\K6J,VK<L1*%]]7@3&#-*18_L S'F^1TYI1;3MW]M4D;U>[M"'7
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
MV]N>#86%[,M/!<D">R*%,@)JW:3*.B.,@UT52@ML)!<*"V"$B=<ZK/(3KLI
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
M9J)9'\<+P8/WD,S4$FSBRVXK>A%UVM"-GK=?=5RJ<GZ,W)\`O@$Y@#7($&3
M`:F1H@;\-.0"L+9@"",NEQ#2?L U!$;I))=Y>I3OD"EERUHHN83__HE:K82_
M'61/IPD:6/E])80M;I5 _RW#&\,6`E+^G(4<P;VI>>IBI%@X9#1"?BMKH:]6
M:Z9!5RFSKT(8:_6%AZ +=##EMY"SRJ(W9R(&=)QLUG'=<N%8K7<[KF?'@G_Q
M__AX<9EJ4RK3&"Z!9Z%*7R2$1ST_LAZI6 > OK5E4_6VP6+!@DO0^D]K&Y.M
MK:156>Q=Q=H^*Z%]([(@V0J>')P+AN9*A3SB$)X<Q&##T:!G.WN825TI$M `
M^;-O=Z77W[]F'A>W-\*C>6MZ-]=GR25;^(;+))+&J_P9Q!438A<L_P)02P,$
M% ````@`"E5E.!A4S3.8````6 $``#4```!0<F%C=&EC93$O4')A8W1I8V4Q
M+V]B:B]0<F%C=&EC93$N8W-P<F]J+D9I;&5,:7-T+G1X='60L0J#,!"&=\%W
M\ D"7;M)'3IT$%MP"4B2_MJT)I%+E/KV!2E6:-SN^+Z[_SBI+2\@QXZ7)%30
M"@>&-Y@15K?P(4UDW(B#X2[3Q,GG%U3PKI^0>P\C^[E""X)58$JH![;F3=OY
M=*F:I5L]_R_NG5D<^3F_-K6CE[8='ZV>0%[T&<&X@'4N*\EU),QOT::*Q0S[
M\7&P_. #4$L#!!0````(`%"6=#@Y9PLRG@```( #```]````4')A8W1I8V4Q
M+U!R86-T:6-E,2]O8FHO4')A8W1I8V4Q+F-S<')O:BY&:6QE3&ES=$%B<V]L
M=71E+G1X=+62L0K",!1%=\%_Z!<$7-V*'1P<2A2Z!$H2;V.T2<I+6^S?"T5:
M!\=F>^\.YW!YKSB*<WZMJT OZXT8O!U!4;89P84>HB2I>ZN1E10,2;<$AY])
M62\*J,&L&<,;S$EO&\1^ORL2:A+2N[O:B![4\TOGB*$=D<<(I]J)HP'!:S M
M]6.K,JON9OUTNO!ZWA993&1+>O]_FBYQAX3T^;D^4$L#!!0````(`!R6=#BN
M6 #%K ,``!\*```D````4')A8W1I8V4Q+U!R86-T:6-E,2]0<F%C=&EC93$N
M8W-P<F]JQ5;=;N)&%+ZOU'>P4*0D%_X!G+!TC24PAD7*`@+2[052-;:/85I[
MQIH99T.S^V2]V$?:5^C8V(Z](67WHNKEG/-]<_Z^.?;7O[]82T;_`%\H8PA1
M&HD-8CL0?- :I3@*6LIC'!%YV@N1_*+KW-]#C+@68Y]13D.A^336`WB B";
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
M_B!@T<#!.=:I.&.7`#B%545<;2^6EG U_ZO)4E''2$0L0)1YB@<$C8GJLHY
M8<E[.L0H&L)$Q9D>PD;?&X@,R-0:'Y%LZKD*4:K]UER[Z\C1IMOJ"=7*(&'+
MIF!@8TP32%6G+':$B7(*#2VD&'E.]P%T[.DMUF512%5SNF4P;VKFN-;UC^TT
M3%0V10+(3*E0H\<X#]3LX)'&?UPJ<2?7QK)1TM9#;:1J<K<'JEQ!:;,2,QN)
M>A$12XV;L4J:L+XRM(^@H9SK!O(F5<(4(XL!&M'".JV-DPZ5#541925&4]AN
M)V05,HP8%9JYGH>TAR&>L&LJE@9:(!_2O$3<U/D#),/4V#[/%RN]Z+7$NN_
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
M)]<+M:IGU' 2CIY7A9G!@"@QI\.<MR5K0[G+G.GRH)3ZFCFQEK"/UITQ]@7
MWM040FEKE[&5O.-MW3KG+FV]F=+&2;J]IV6L>;> ?2E<ITQ;U^/K0JKDGVVG
ML^A^7^1&8=/I;3I;32*[M'@ST85FK:0Q6]/IP3ODW^TO4$L#!!0````(`*]A
M5#@%EL]QU0(``"@$```K````4')A8W1I8V4Q+U!R86-T:6-E,2]297-O=7)C
M97,O<VUA;&PN=&EN>69N=)V374A381C'W_=LV+2%Q^7%PLRSXRRGU#S:AT+H
MEEMHJV@ZC"C$.2,3A<S"9 IS=K'&*ET?!IF82HD96=&%@12V!A:TO/$FT#X(
MH6Y<%S$K=_J?K12Z[('?_L]YW^?_O'OV[HR,7UMB""&I0 $HD8(A2CDA2F@2
MD/;E) U:&]M]B**D6!:OYH@KIG:P+"Z+]^/+*[4(&6HI!6@K>6DR5(WG=.2;
M`(=>/#0+Y& ]%[H5N@UU`O*=A#)%T&)0"LK `5 !#H-CP([Z6N! 7@^:P&G0
MBAZ=P(.]B\ />D$?& !WP#TP!L;!$S !GH.7X#5X"V;!._ >O3Y#OT##X =R
M49H-(RHP91)F7H=AD_&\'OD&Y&F `UD@!^C!=BK27=#=P$@)LX>*C!F><N3[
MH%:L5X&CH 8<!_6@";Y3T+/ B?[GH1>@EZ!^Z'5X>Z$WP6WD=Z6?GM#X3;#D
MO\+R-',LD:3?*IWK6""DL)T-38K5/L$]XYQK*4G(#$9.R!AJJ&'SI3^+07)$
M9%&1$LNLJJ&?##GJ^"EU)V?JRA:"K-VG"Q;X[#ZMEQ_UF&5R:N!8;L57QDSE
M4?*S5]7@==5J;/H!=>N\L4,G!%BC+TOR*;5>F\X\+3\7:FL5\^?[G=&HX%-_
MLN2_@$\S\77O]RX^I3*L64@D@[Q9'Q"7+N>.[FC_T**ML*7PTW*7$!Q1/][L
M\ E&JW\XM?R5=%ZX<OB(^P:?N#_/KVB>[^$[<!Z^YVB1\J0;/AU?3A:%P -U
MB^0[:*TP7S7))5^W;;C<;>#-OP0_YG,],DGS]0G^(F6S5\M[LE56XA&"`_'S
M#O5H!FWQ^7H*/U8Q=1N?E;Y)64@@W8WNT&1&=6/XRLS:ZC,!C<?TS4H60VWZ
MC((M0\[B4+]&-6UAHB54NC\#(X_?":1K]57CXF*4/EP*%J\S*Z6*,H9PL2H7
M7?6UDW_#$9&*UBC_^A(BLC^^6/P&4$L#!!0````(`%"6=#A@YBRO)0(``!@&
M```B````4')A8W1I8V4Q+U!R86-T:6-E,2]38W)O;&Q7:&5E;"YC<XU346_:
M,!!^1^(_W&,BD-DF37M G53H-GB@B0K5]H;<Y *6'#NR';(*];_/3C)(("D]
M)8KM^[[SY>Z[7#.Q@_6K-IA.AX.\L24;_&M.9RL6*:EE8L@Z##8]QV0ILKR/
M0T*%&H6AADG1AUE0%1=4X2T_^:D0=40YKOZL'S"5EC <")JBSFB$\(A%\[KA
MX#@<`$"6OW 60<2IUK"VD3G_O4?DI1..+@;4EBEVH 9!NP@1O$C)'8//]X+?
MPQTDE&N7Y@E?A:[A.1,&2N@VS"UP+G-A4%G>IQN<UXA;=)J9)J7&M_*KN ?)
M8@A$]2^>?_8?STMG2Q=+Y9D)I7*948'E;P@LVC[OHQ4G(1.:_ J7P38,GC;;
MV?;SMW%5EC&X2.0)-=-&JI6,D=@R\.>L]IQN+%VGW8]XAS-I]OZTG7R=+@G$
M"0JC*G=W_YE_L U?4!%S5%Y9$L=TU&V#VHS>OF<R"<0L-T:*!UD(KUH2M_:G
MT+ 6Z[QY:_3G'2F5+>O-SIMGN2LMV'=<R\[R;$TW+,5U1@48NY"YZ6_V9 (+
M5 BEA-P4/4J02:4M#;:9H*2+&4.B9%H/`A1N$LA%Y2_E.!KU5P)8`EZ'@._@
MB]\&7N3KK%OX';BKH;(I7</*5*[G[SM\]:_!'>DXNSF_3?M?\R5 0>T@&PEV
M6#AT**J4Z;W::4 ?I(+J%)ZS\Z84'91 *W/;*!LN80H[[^X7[37\K7W4V-9+
M^['//U!+`0(4"Q0````(`+%A5#A-=GAC;0$``#H$```7``````````$`( ``
M``````!0<F%C=&EC93$O4')A8W1I8V4Q+G-L;E!+`0(4"Q0````(`'F6=#A3
MDY(AK@\```!V```7````````````(@```*(!``!0<F%C=&EC93$O4')A8W1I
M8V4Q+G-U;U!+`0(4"PH``````(F6=#@````````````````4````````````
M$ ```(41``!0<F%C=&EC93$O4')A8W1I8V4Q+U!+`0(4"PH``````(F6=#@`
M```````````````8````````````$ ```+<1``!0<F%C=&EC93$O4')A8W1I
M8V4Q+V)I;B]02P$"% L*``````")EG0X````````````````'@``````````
M`! ```#M$0``4')A8W1I8V4Q+U!R86-T:6-E,2]B:6XO1&5B=6<O4$L!`A0+
M% ````@`PI1T.,$9%!5I! ``HR<``"P``````````0`@````*1(``%!R86-T
M:6-E,2]0<F%C=&EC93$O8FEN+T1E8G5G+U!R86-T:6-E,2YP9&)X4$L!`A0+
M% ````@`%6.+-6.4_L<7! ``NB ``!H``````````0`@````W!8``%!R86-T
M:6-E,2]0<F%C=&EC93$O0U!5+F-S4$L!`A0+% ````@`+Y!T.$4:#5'>````
MOP$``"4``````````0`@````*QL``%!R86-T:6-E,2]0<F%C=&EC93$O17AT
M96YD961"=71T;VXN8W-02P$"% L4````" #$:%4XYQ@ZG$P%``!!% ``+@``
M```````!`" ```!,' ``4')A8W1I8V4Q+U!R86-T:6-E,2]'4$E/0G5T=&]N
M26YP=710<F]V:61E<BYC<U!+`0(4"Q0````(`)F"(CB?GV)<,00``!0'```A
M````````````( ```.0A``!0<F%C=&EC93$O4')A8W1I8V4Q+TYI;F%"+G1I
M;GEF;G102P$"% L*``````")EG0X````````````````& ```````````! `
M``!4)@``4')A8W1I8V4Q+U!R86-T:6-E,2]O8FHO4$L!`A0+"@``````B99T
M. ```````````````!X````````````0````BB8``%!R86-T:6-E,2]0<F%C
M=&EC93$O;V)J+T1E8G5G+U!+`0(4"Q0````(`,*4=#C!&105:00``*,G```L
M``````````$`( ```,8F``!0<F%C=&EC93$O4')A8W1I8V4Q+V]B:B]$96)U
M9R]0<F%C=&EC93$N<&1B>%!+`0(4"Q0````(`.N85#C@R89I]08``#T+```_
M````````````( ```'DK``!0<F%C=&EC93$O4')A8W1I8V4Q+V]B:B]$96)U
M9R]0<F%C=&EC93$N4F5S;W5R8V5S+G1I;GER97-O=7)C97-02P$"% L*````
M``")EG0X````````````````)0```````````! ```#+,@``4')A8W1I8V4Q
M+U!R86-T:6-E,2]O8FHO1&5B=6<O5&5M<%!%+U!+`0(4"Q0````(`.F85#@G
ML:-42P4````0```^````````````( ````XS``!0<F%C=&EC93$O4')A8W1I
M8V4Q+V]B:B]$96)U9R]496UP4$4O4F5S;W5R8V5S+D1E<VEG;F5R+F-S+F1L
M;%!+`0(4"Q0````(`.N85#B 6_ 5L0$``#H#```N``````````$`( ```+4X
M``!0<F%C=&EC93$O4')A8W1I8V4Q+V]B:B]$96)U9R]4:6YY4F5S1V5N+F-A
M8VAE4$L!`A0+% ````@`"E5E.!A4S3.8````6 $``#4``````````0`@````
MLCH``%!R86-T:6-E,2]0<F%C=&EC93$O;V)J+U!R86-T:6-E,2YC<W!R;VHN
M1FEL94QI<W0N='AT4$L!`A0+% ````@`4)9T.#EG"S*>````@ ,``#T`````
M`````0`@````G3L``%!R86-T:6-E,2]0<F%C=&EC93$O;V)J+U!R86-T:6-E
M,2YC<W!R;VHN1FEL94QI<W1!8G-O;'5T92YT>'102P$"% L4````" `<EG0X
MKE@`Q:P#```?"@``) `````````!`" ```"6/ ``4')A8W1I8V4Q+U!R86-T
M:6-E,2]0<F%C=&EC93$N8W-P<F]J4$L!`A0+% ````@`\U1E.#/@B:[*````
M&0$``"D``````````0`@````A$ ``%!R86-T:6-E,2]0<F%C=&EC93$O4')A
M8W1I8V4Q+F-S<')O:BYU<V5R4$L!`A0+% ````@`+Y9T.)>?,)]4! ``R@T`
M`!X``````````0`@````E4$``%!R86-T:6-E,2]0<F%C=&EC93$O4')O9W)A
M;2YC<U!+`0(4"PH``````(F6=#@````````````````?````````````$ ``
M`"5&``!0<F%C=&EC93$O4')A8W1I8V4Q+U!R;W!E<G1I97,O4$L!`A0+% ``
M``@`KV%4..6P=?U\`0``<P,``"X``````````0`@````8D8``%!R86-T:6-E
M,2]0<F%C=&EC93$O4')O<&5R=&EE<R]!<W-E;6)L>4EN9F\N8W-02P$"% L4
M````" #IF%0X[98+E_\!``!X!@``*0`````````!`" ````J2 ``4')A8W1I
M8V4Q+U!R86-T:6-E,2]297-O=7)C97,N1&5S:6=N97(N8W-02P$"% L4````
M" #IF%0X.6+O8E8&``!E&0``(@`````````!`" ```!P2@``4')A8W1I8V4Q
M+U!R86-T:6-E,2]297-O=7)C97,N<F5S>%!+`0(4"PH``````(F6=#@`````
M```````````>````````````$ ````91``!0<F%C=&EC93$O4')A8W1I8V4Q
M+U)E<V]U<F-E<R]02P$"% L4````" "9@B(XGY]B7#$$```4!P``*P``````
M`````" ```!"40``4')A8W1I8V4Q+U!R86-T:6-E,2]297-O=7)C97,O3FEN
M84(N=&EN>69N=%!+`0(4"Q0````(`*]A5#@%EL]QU0(``"@$```K````````
M````( ```+Q5``!0<F%C=&EC93$O4')A8W1I8V4Q+U)E<V]U<F-E<R]S;6%L
M;"YT:6YY9FYT4$L!`A0+% ````@`4)9T.&#F+*\E`@``& 8``"(`````````
M`0`@````VE@``%!R86-T:6-E,2]0<F%C=&EC93$O4V-R;VQL5VAE96PN8W-0
52P4&`````!X`'@#3"0``/UL`````
`
end
Jignesh, you are trying to call instance method from static one, this is why
Asked By milous
20-Mar-08 10:11 AM
Jignesh, you are trying to call instance method from static one, this is why
it fails.

The steps to make this working with minimum changes are:
1) In the Program.cs, make the OnButtonDown method public instead of
protected.
2) In the ScrollWheel.cs, change the
OnButtonDown(ButtonDown);
to
((MainMenuWindow)Application.MainWindow).OnButtonDown(ButtonDown);

Although this may help you figuring out what's the problem, I strongly feel
this is not the right solution. I think you can use the InputProviderSite
way I suggested originally, which would be my preferred answer to your
question.

Jan
By the way, you are not extending the buttons using the ScrollWheel class, so
Asked By milous
20-Mar-08 10:19 AM
By the way, you are not extending the buttons using the ScrollWheel class,
so I suggest to transform your ScrollWheel class into kind of ButtonPad one,
and just register it in the GPIOButtonInputProvider as others ButtonPads...

Jan
Hi JanI am trying on your suggestion.
Asked By Jignesh
21-Mar-08 02:26 AM
Hi Jan

I am trying on your suggestion. Please tell me more on InputProviderSite
suggetion. Here I also need 32 GPIO Pin, I am also trying to impliment (8x4
based Matrix Key Board) Please also tell me in that side.

Regards,
Jignesh
Hardware Event Handle with Software
Asked By milous
21-Mar-08 02:56 AM
Hello,
For the InputProviderSite, the solution would be like:

// The emulated device provides a button pad containing five buttons
// for user input. This class represents the button pad.
internal class ButtonPad
{
... // the standard ButtonPad code here
}

// you can of course have this in separate file
internal class ScrollWheel
{
private Button button;
private InterruptPort port;
private GPIOButtonInputProvider sink;
private uint ChnlA_PulseCounter = 0;
private uint CycleComptCounter = 0;

public ScrollWheel(GPIOButtonInputProvider sink, Button button,
Cpu.Pin pin)
{
this.sink = sink;
this.button = button;

port = new InterruptPort(pin, false,
Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeBoth);
port.OnInterrupt += new
GPIOInterruptEventHandler(this.Interrupt);
}

void Interrupt(Cpu.Pin port, bool state, TimeSpan time)
{
CycleComptCounter++;
if (CycleComptCounter == 2)
{
CycleComptCounter = 0;
ChnlA_PulseCounter++;
if (ChnlA_PulseCounter > 5)
{
ChnlA_PulseCounter = 0;

RawButtonInputReport report = new
RawButtonInputReport(sink.source, time, button,
RawButtonActions.ButtonDown);
sink.Dispatcher.BeginInvoke(sink.callback, report);

// every ButtonDown should be with ButtonUp in pair
report = new RawButtonInputReport(sink.source, time,
button, RawButtonActions.ButtonUp);
sink.Dispatcher.BeginInvoke(sink.callback, report);
}
}
}
}

Then, when registering the inputs, have
public sealed class GPIOButtonInputProvider
{
public readonly Dispatcher Dispatcher;

//private ButtonPad[] buttons;
private object[] buttons; // alternatively, you can derive the
ScrollWheel from ButtonPad class (elegant idea ;-))

...

public GPIOButtonInputProvider(InputReport inputReport)
{
...

// Allocate button pads and assign the (emulated) hardware pins
as input
// from specific buttons.
buttons = new object[]
{
new ButtonPad(this, (Button)ExtendedButton.Menu     ,
Pins.GPIO_PORT_B_9),
new ButtonPad(this, (Button)ExtendedButton.Select   ,
Pins.GPIO_PORT_B_17),
new ButtonPad(this, (Button)ExtendedButton.Left     ,
Pins.GPIO_PORT_B_16),
new ButtonPad(this, (Button)ExtendedButton.Right    ,
Pins.GPIO_PORT_B_12),
new ButtonPad(this, (Button)ExtendedButton.Up     ,
Pins.GPIO_PORT_B_11),
new ButtonPad(this, (Button)ExtendedButton.Down     ,
Pins.GPIO_PORT_B_10),
new ButtonPad(this, (Button)ExtendedButton.Back    ,
Pins.GPIO_PORT_B_14),
new ButtonPad(this, (Button)ExtendedButton.Enter ,
Pins.GPIO_PORT_B_8),
new ScrollWheel(this, Button.Down, Pins.GPIO_PORT_B_17),
};

this.buttons = buttons; // I think the array is stored in the
class because otherwise it could get garbage collected
}





Well are you sure your keyboard has 32 single outputs? What hardware it is?


Jan
Hi Janfor keyboard, I am using Port B 8 to 15 for raw and port A 10-13 for
Asked By Jignesh
21-Mar-08 03:31 AM
Hi Jan
for keyboard, I am using Port B 8 to 15 for raw and port A 10-13 for Column,
and making Matrix Key pad.
so here total using 8 x 4 = 32 Inputs for Key pad. Can I map Raw& Column
like this?
How can i Map in software?

Regads,
Jignesh
Hi,well do you build the keys yourself or use already manufactured product?
Asked By milous
21-Mar-08 04:29 AM
Hi,
well do you build the keys yourself or use already manufactured product?

First of all we need to know how the output works. There are several
keyboard out there which only connect the wires of selected row and column
together.

But if you do the keyboard yourself and you have active row and column
output from it, than it should be okay to map it as you did...

Jan
HiWe are going to develop ourself, direct map with GPIO, as Active Low.
Asked By Jignesh
21-Mar-08 05:04 AM
Hi
We are going to develop ourself, direct map with GPIO, as Active Low.
Here how can we impliment  in rowInput based / other way?
Jignesh
Without any external logic I think that is a good solution.
Asked By milous
21-Mar-08 05:22 AM
Without any external logic I think that is a good solution.
But if you have rows and columns separated, it is enough to use rows+columns
GPIOs, like 12 in your case.

Handle all 12 inputs in one handler and do the proper decoding in the
application.


Jan
Post Question To EggHeadCafe