sccn / lsl_archived

Multi-modal time-synched data transmission over local network
242 stars 134 forks source link

EGIAmpServer app #86

Open WinslowStrong opened 8 years ago

WinslowStrong commented 8 years ago

The EGIAmpServer app doesn't seem to work with EGI's Net Amps 400 amplifier (which is the amp for the GES 400 series). Im running firmware 1.6.16 and have version 2.1 of EGI's SDK. When I click "link" within the app, it quickly crashes, and halts the data streams for any other devices subscribed to the AmpServer until you allow Windows to close it. The failure could be because:

EGI says they are in the process of writing new code for BCI2000 to get it working with the new packet format. So when that's available, maybe it will be easy to mod it for LSL. However, in the meantime, I'm searching for another solution.

chkothe commented 8 years ago

Hi Winslow, yes, the packet format change must be the reason, then. If the BCI2000 code breaks, this one will break, too.

Christian

On Mon, Feb 8, 2016 at 1:05 PM, WinslowStrong notifications@github.com wrote:

The EGIAmpServer app doesn't seem to work with EGI's Net Amps 400 amplifier (which is the amp for the GES 400 series). Im running firmware 1.6.16 and have version 2.1 of EGI's SDK. When I click "link" within the app, it quickly crashes, and halts the data streams for any other devices subscribed to the AmpServer until you allow Windows to close it. The failure could be because:

-

The AmpServer now runs on the Net Amps 400 on-board Linux OS, whereas it used to run on the Mac with Net Station on it. Of course I used the IP of the Net Amps in the app to try to link.

There has been a change to the packet format from what they are calling "Packet Format 1" to "Packet Format 2" as of Net Amps firmware 1.6.3 and later. EGI claims this broke the BCI2000 app, which this app is supposedly modeled after.

EGI says they are in the process of writing new code for BCI2000 to get it working with the new packet format. So when that's available, maybe it will be easy to mod it for LSL. However, in the meantime, I'm searching for another solution.

— Reply to this email directly or view it on GitHub https://github.com/sccn/labstreaminglayer/issues/86.

WinslowStrong commented 8 years ago

Does this version of code include within it some version (which?) of the EGI SDK libraries? If not, which version of the SDK was it written for, or known to work for?

This would be useful to know for figuring out how to upgrade it to work with the current version 2.1 SDK. I.e. whether it might be as simple as upgrading the SDK libraries, or something more involved would be required.

WinslowStrong commented 8 years ago

EGI has agreed to write a new app that will work with their current NetAmps 400 / GES 400 systems, with current firmware (1.6.x), updated packet format (#2). Expected release date is end of March.

dmedine commented 8 years ago

Howdy. Any news on this? If we are good, I'll go ahead and close this issue.

WinslowStrong commented 8 years ago

We aren't good yet, but EGI has promised to deliver the goods within a week. I'll update when they do. On Apr 5, 2016 15:01, "David Medine" notifications@github.com wrote:

Howdy. Any news on this? If we are good, I'll go ahead and close this issue.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/sccn/labstreaminglayer/issues/86#issuecomment-206001900

robertmabell commented 8 years ago

Is there an approval process for submitting code to LSL? This is Robert Bell of EGI.

dmedine commented 8 years ago

Robert -- Your contributions are certainly most welcome! If you want to add or change anything, you should just fork, code, and submit a PR. The approval process basically consists of Christian and me looking over the changes and testing the new code. We're pretty informal here.

If you have any specific suggestions or questions, please post those to the issues board as well.

On 4/27/16 8:37 AM, robertmabell wrote:

Is there an approval process for submitting code to LSL? This is Robert Bell of EGI.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/sccn/labstreaminglayer/issues/86#issuecomment-215123830

robertmabell commented 8 years ago

Perfect. I'll see if I can add some amplifier simulation code for you since you don't have the actual amplifiers.

dmedine commented 8 years ago

That would be awesome! Thank you very much.

On 4/27/16 1:48 PM, robertmabell wrote:

Perfect. I'll see if I can add some amplifier simulation code for you since you don't have the actual amplifiers.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/sccn/labstreaminglayer/issues/86#issuecomment-215224331

tstenner commented 6 years ago

@robertmabell I'm bringing the EGIAmp app up to date. Since I don't have access to our NA300 at the moment, I'd be very interested in the simulation code.

ntemple commented 5 years ago

@tstenner @dmedine @WinslowStrong My understanding is that EGIAmpServer is now working with the amp 400 series. However, I'm having trouble locating a recent binary distribution. (looking at the note here: https://github.com/sccn/labstreaminglayer and seeing builds from 2014 on the FTP server).

Can someone point me to a current build and / or to build instructions?

I do have access to a device, and will be testing as soon as I can locate a recent build.

Thanks!

cboulay commented 5 years ago

@ntemple I'm looking at the CMakeLists for the EGIAmpServer (here) and it doesn't seem to need any external SDK. If that's true then I can build it for you. It seems to be platform independent. What do you need? I have Ubuntu 18.04, MacOS, Win VS2017 (64 or 32).

ntemple commented 5 years ago

@cboulay thanks! I think we're close. I was able to use the release found here: https://github.com/labstreaminglayer/App-EGIAmpServer/releases on Windows. After installing the VC++ runtime 2015, we were able to link to the amp (400 series) and see the EGI Stream.

However, it hung almost immediately with a message "Waiting for 4294967295 Bytes" (after a few other success messages).

Looking through the code, but not the specs: https://github.com/labstreaminglayer/App-EGIAmpServer/blob/master/EGIAmpWindow.cpp

I see a comment on line 668 "Not necessary to convert endianness, as PacketFormat2 is little endian natively.", yet on line 572 the header length is being converted from big-endian. That's just a guess ... I do suspect that something is incorrect in reading the packet size and that's why it's hanging.

We're currently using Windows 64, and the release I found was compiled with VS2015 (at least that's the runtime needed). VS2017 should work fine.

I may up for an MSDN subscription and create a debug build if all fails. However it seems we're close.

imag0031

cboulay commented 5 years ago

The attached is a VS2017 Win64-Debug build using the latest LSL. I don't know if that will get you any further.

I may up for an MSDN subscription and create a debug build if all fails. However it seems we're close.

VS2017 Community Edition is free and does everything you need. No need for MSDN to get your own debug going.

EGIAmpServer_lsl1.13_Win64-Debug.zip

ntemple commented 5 years ago

@cboulay thanks, I'll take a look when I'm at the lab tomorrow. I'm close to having our build going ... just having an issue with it finding boost after installing it in c:\local ... have you seen the issue?

cboulay commented 5 years ago

I pushed a new commit to the EGIAmpServer repo that fixes a conflict between BOOST_ROOT and Boost_ROOT cmake variables when using recent versions of cmake (at least that's what I think the problem was).

Typically what I do is git clone --recursive the whole sccn/labstreaminglayer repo, then when browsing the labstreaminglayer folder in FileExplorer I right-click and choose Open in Visual Studio (only works with 2017). After a minute or two of it appearing to do nothing, the cmake menu becomes active and it's possible to modify the cmake parameters, including turning EGIAmpServer on and setting the BOOST_ROOT directory. After done configuring, I use the cmake menu to "debug from install location" which handles copying all of the dependencies to the executable folder.

More detailed build instructions here.