Posts by andyinfsnet


    I want to use a USB/WLAN stick from D-Link(DW140) on PicoCom2. I can´t get it running because this device is not found in the supported USB device table.
    Does anybody know what to to better, do I need another Kernel component? When using this device in Netdcu8, everything works well.

    Here the registry settings(adapted from a cab file from the driver supplier ralink)

    Here the serial output:


    All very strange...
    With odd I meant that odd number of program start is ok and even number of program start it is not working ok.
    I don´t understand what you mean with the relation of my other thread please get me on it.

    Should we check if our hardware is really the same?

    I tried user defined Kernel from 15.3.10 and I tried V1.45 Kernel. Behaviour is the same.

    The STOP work´s fine, why don´t you believe? It is set by debugger to true with a breakpoint.

    I will think about InterruptDone() to use only in WaitForSingleObject(). I am not sure what happens If I leave WaitForSingleObject() without a real interrupt.
    After this, no interrupt would be possible without reboot.

    Have you made already such test like I described with signal generator at input and scope at an output?

    Or could be some issue with wiring of my input signal? I use a standard signal generator TTL output and wire that via a 1k resistor to the
    3,3V input of Pin2. Pin 2 doesn´t need a pull up, so you desrcibed it in your documents. I measure 3,4V at the input of Pin2.

    This is funny, I just made a test.
    It works when first starting the program.
    Then I start program again, and the program stops because an interrupt was triggered, but not from me.
    Then I start again, and it is working ok.
    So every odd try it is ok.
    I have a user defined Kernel from 15.3.10

    I will try your kernel too.


    On Netdcu8 I have an additional networkadapter. Both adapters have a fixed IP but of course within different IP range.
    Is it possible to make a ethernet bridge from the built in network adapter to the additional network adapter so that I cann access this IP range?
    I think in desktop area this is called network bridging.
    I found something in www:
    <!-- m --><a class="postlink" href=""> ... 1e33121279</a><!-- m -->

    Is this possible for Netdcu8 perhaps with a user kernel or whatever?


    I did what you say but still the interrupt only comes after power on and nomore after program restart.
    I work in a DLL, does this matter?
    Also strange, after I do

    1. DeviceIoControl( m_hDIO, IOCTL_DIO_RELEASE_SYSINTR, &m_dwSysIntr_Pin1, sizeof(DWORD), NULL, 0, NULL, NULL );
    2. this->WaitISR_J5_Pin1();

    and then want to close the IST event handle

    1. if(m_hIsrEvent_J5_Pin1!=INVALID_HANDLE_VALUE)
    2. {
    3. CloseHandle(m_hIsrEvent_J5_Pin1);
    4. m_hIsrEvent_J5_Pin1 = INVALID_HANDLE_VALUE;
    5. }

    The code sticks in the CloseHandle()....Program cannot finish.
    If I do all the stuff my way (also Pin1 working not correclty) then I can close the handles properly.
    Very strange stuff.

    Any idea?


    For a future application I needed to test external interrupt capabilities of a Netdcu8. For this I connected a signal generator as interrupt input source to J5 Pin2 and measure
    J5 Pin 7 (configured as output) with a scope. On interrupt rising edge at input Pin 2 I clear output Pin 7 and at interrupt falling edge I set it to high.
    With this I want to see the time behaviour "through the system" without load and later under load.

    So the first test was to apply some "easy" frequency input in the sub KHz area, around 158Hz. What I realized on scope was surprising me.
    I speak now from the rising edge only. I saw a non surprising Jitter of about 250us(microseconds) where the output signal follows the input rising edge, this was something expected when reading the www, they give you values like this.
    But then, approximately 900us later in time there is also 250us Jitter area where the output signal comes low.
    Unfortunately I am not able to insert my scope picture here. I could send the scope picture per email if it helps.
    I think this beavoiur is not ok. Could anyone explain this? I post the code, but this is nothing special, same as in F&S manuals. But may be you find something bad.
    By the way, no other software was running, so ther was nearly no other system load.

    The problem is, when I not call InterruptDisable(SYSINTR_EXTIO), I never get out of the blocking call WaitForSingleObject(m_hIsrEvent_J5_Pin1,INFINITE)
    ,what is waiting all the time for the interrupt, and can not end my programm properly. Don´t ask me why this is so, the other 3 interrupt inputs (Pin2,3,4) are well working with this.
    Do you have other ideas what I could try?


    I try to use (on Netdcu8) connector J5 the Pins 1-4 for input interrupts.
    Pin 2,3,4 are working properly. Pin 1 only works one time after power on of the Netdcu and program start. When closing and restart the program again, Pin 1 is´nt rising a interrupt anymore, only Pin 2,3,4 are working ok. I have to say I use a customer kernel with CF35.
    Could you give me a idea what I could check?

    I like to show here the code fragments for the Pin1:

    I initialise so:

    1. m_hIsrEvent_J5_Pin1=CreateEvent( NULL, FALSE, FALSE, _T("ISR_Pin1") );//Geht nur als interupt
    2. //DIGITALIO driver is not respsonsible for this pin.
    3. //The interrupt is triggered at low level, not at an edge.
    4. m_dwSysIntr_Pin1=SYSINTR_EXTIO; //J5 pin 1
    5. if(!InterruptInitialize(m_dwSysIntr_Pin1,m_hIsrEvent_J5_Pin1,NULL,0))
    6. {
    7. ErrorMessage(_T("J5 pin 1 InterruptInitialize failed"));
    8. return false;
    9. }
    10. InterruptDone(SYSINTR_EXTIO);

    The waiting part:

    1. DWORD dwReturn=WaitForSingleObject(m_hIsrEvent_J5_Pin1,INFINITE);
    3. Sleep(100); // TODO
    4. #endif
    5. InterruptDone(SYSINTR_EXTIO);
    6. RETAILMSG(1, (_T("\r\nirq pin1 received")));

    When program stop I do this:

    1. InterruptDone(SYSINTR_EXTIO);
    2. InterruptDisable(SYSINTR_EXTIO);
    3. DeviceIoControl( m_hDIO, IOCTL_DIO_RELEASE_SYSINTR, &m_dwSysIntr_Pin1, sizeof(DWORD), NULL, 0, NULL, NULL );
    4. SetEvent(m_hIsrEvent_J5_Pin1);

    The registry settings:
    reg set value Channel dword 20
    reg open \drivers\builtin\digitalio
    reg set value port dword 0
    reg set value index dword 0
    reg set value UseAsIO DWORD 0x00ff0fff
    reg set value DataDir DWORD 0x00000f1f
    reg set value DataInit DWORD 0x00000000
    reg set value IRQCfg0 DWORD 0x000000e0
    reg set value IRQCfg1 DWORD 0x000000e0
    reg set value IRQCfg2 DWORD 0x00000000

    No that´s not exactly what I needed. I need to close it by application name not by PID.
    So the Behrenbeck tool was better for me.
    By the way, I modified it a bit so that it first tries to close application by Sending a WM_CLOSE and only if it fails it starts to "kill".
    This better a way because some of my programms didn´t stop just by gigve them the TerminateProcess() method.
    With sending WM_CLOSE to the Windows and some extra timing things were going better. If one wants to see the extra code it just give me a sign.
    But in internet you will also find s.t. similar, too.


    Is there a possibility to kill or close a running process only by knowing the DEVICE IP and the PROGRAM NAME via ethernet?
    I do not want to use no active sync for this. Something like this ....
    shell -c
    ....when I like to start a program
    It should be done by a batchfile or a script like Python started from the desktop PC. Or I could do programmatically If I only knew how.

    What I want to do is to download a remote directory tree from NETDCU8 (FTP server is running on the NETDCU8).
    This works fine so far, only some files are skipped because they are still used/shared by some Processes that are still running.
    So I would like to stop these processes remotely and then be able to download all my files from NETDCU8 ftp server because they are free after closing.

    Thanks for any idea.

    What I currently use, a light approach for C++ projects under Visual Studio could be to use a header file with some defines in it which are manipulated before a release build by en external executable
    (->look in internet <!-- m --><a class="postlink" href=""></a><!-- m -->)
    in a way that the numbers in the header file are increased.
    Then use this defines at runtime for show (or whatever) the build number..

    Another, complex approach with an addin here, I never tried it but sounds good.
    <!-- m --><a class="postlink" href=""></a><!-- m -->


    The problem occured again:

    After start of the debugger from VS2008 there is the following ouput at the serial debug interface of the NETCDU8:
    Data Abort: Thread=83b13a78 Proc=80eff0d0 'conmanclient2.exe'
    AKY=ffffffff PC=8015c300(NK.EXE+0x00023300) RA=8015c2a0(NK.EXE+0x000232a0) BVA=1800003c FSR=00000007

    VS says that it cannot start application.

    Workarround, if s.o. has this problem, too:
    After you find such an error, when you start you application afterwards directly on the device(no VS debugger), then stop it, then you can debug again afterwards(don´t ask em why). At least here it was like this.

    @F&S: Are there fir this case descriptions about AKY, PC, RA BVA, FSR to make further investigation? (mapping Files ??)



    Kann mir jemand die Treiber für Windows CE 5.0 für den USB/WLAN Stick DWA 140 mit dem RT2870 Chipset geben?
    Habe Ralink schon paarmal kontaktiert, aber irgendwie antwortet keiner. (<!-- e --><a href=""></a><!-- e -->)