Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers. Note that due to large amounts of spam attempts, your first three posts will be manually moderated, so please be patient.
Because of un-manageable amounts of spam despite our use of CAPTCHAs, email authorization, and other tools, we have discontinued this forum (see the 700k+ registered users with validated email addresses at right?). Please email us any questions or post bug reports and feature requests on GitHub at https://github.com/jevois -- The content below remains available for future reference.
Welcome to JeVois Tech Zone, where you can ask questions and receive answers from other members of the community.

"FTL Module::process: Not implemented in this module" when using Serial USB

0 votes
I have been trying to get Serial output from the JeVois using the sendSerial() command. I have a simple "sendSerial(std::to_string(i))" where i is a variable incremented every iteration, which does not get sent through Serial.

I run "setpar serout USB" and "setpar serlog USB" to configure sending Serial to the USB, and "setmapping2 YUYV 640 480 [FPS] [Vendor] [Module]" to set the module. However, when I run "streamon", I get the following error:

FTL Module::process: Not implemented in this module

Instead of the expected numbers coming from the variable 'i'

I notice that my code, based off of SampleModule.C, has a "virtual void process()". Is the fact that it's a "virtual" process an issue? How should this be resolved?

I assume due to the error, it's never running the sendSerial() command. Are there any other things I need to set up in my module?
asked May 12, 2018 in Programmer Questions by unswniarc (360 points)

1 Answer

+1 vote
 
Best answer

Great question! Have a look here: http://jevois.org/doc/classjevois_1_1Module.html

There are 2 versions of process(), one with video output over usb, and one without. When you do setmapping2 you tell jevois that you will not have video output over usb. So process(inframe) will called, not process(inframe, outframe). You should hence put your code inside an override of process(inframe)

For an example module with both versions see https://github.com/jevois/jevoisbase/blob/master/src/Modules/DemoQRcode/DemoQRcode.C or other modules in jevoisbase.

Virtual is normal, it just means derived classes will override this function safely.

answered May 12, 2018 by JeVois (46,580 points)
selected May 13, 2018 by unswniarc
...