jAER Wiki
Brought to you by:
llongi,
tobidelbruck
To add a new AEChip class, subclass ch.unizh.ch.ini.caviar.chip.AEChip, set the chip size, etc.
You may want to define a custom EventExtractor if your events cannot be simply obtained by masking and shifting the raw addresses.
There is no need to add your new AEChip to any static arrays. You can add the new chip from the AEChip/Customize... menu in AEViewer.
This simple example is Conv32
public class Conv32 extends AEChip { /** Creates a new instance of Tmpdiff128 */ public Conv32() { setSizeX(32); setSizeY(32); setNumCellTypes(2); // there are two types (positive and negative) of events from each x,y setEventClass(TypedEvent.class); // the chip puts out these kinds of events setEventExtractor(new Extractor(this)); // we use the default extractor here setBiasgen(null); // don't have one on this chip } public class Extractor extends TypedEventExtractor implements java.io.Serializable{ public Extractor(AEChip chip){ super(chip); setEventClass(TypedEvent.class); setXmask((short)0x001f); // mask this part for x setXshift((byte)0); // don't shift x setYmask((short)0x1f00); setYshift((byte)8); setTypemask((short)1); setTypeshift((byte)0); setFlipx(true); } } }
The most evolved example is DVS128. This chip has a bias generator and a highly optimized event extractor. It also has a custom panel for controlling the bias generator functionally instead of at the bias current level.
CochleaChip, the superclass of Cochlea chips, is an example of an AEChip that has custom DisplayMethod's.