mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-06 01:08:25 +01:00
607 lines
16 KiB
Plaintext
607 lines
16 KiB
Plaintext
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
casey -- this is a bunch of crap that i've scribbled down as i've
|
||
|
thought of it.. maybe they should be moved to your list or removed if
|
||
|
they're not useful?
|
||
|
|
||
|
|
||
|
DOCS
|
||
|
_ mention connection to java and docs on getting started in java
|
||
|
_ make clear that setup is just for setup
|
||
|
_ but should also in the future allow to create static image
|
||
|
_ notes on debugging
|
||
|
_ run with java -Xint blahblah (turns off jit)
|
||
|
// I don't know where this should live, on BBS? What do you think
|
||
|
_ p5 faq items: re midi support, msgs w/ adam hoyle in mail folder
|
||
|
_ also 'why p5' message from amit pitaru on 12/15/02
|
||
|
_ and p5 versus flash stuff
|
||
|
_ lists the main arguments, could be a useful document
|
||
|
_ list of reserved keywords
|
||
|
_ make note of functions/variables used by ProcessingApplet
|
||
|
_ using them in your app will break things (i.e. init())
|
||
|
_ explain using inner classes and using non-public classes
|
||
|
_ start 'errors' section
|
||
|
_ NullPointerException inside setup usually means no size()
|
||
|
_ ability to write functions and inner classes
|
||
|
_ mention ability to use import statements in java mode
|
||
|
_ ability to do real (but not public) classes in same document
|
||
|
_ check to see if get/set functions in applet actually work
|
||
|
_ fix documentation appropriately
|
||
|
_ image formats supported (gif and jpeg)
|
||
|
_ if image doesn't load, just prints an error on console
|
||
|
_ notes about running on win98 and that stupid startup exception
|
||
|
_ make note in documentation about convex polygons
|
||
|
|
||
|
|
||
|
DOCS / technotes
|
||
|
_ using runtime.exec to run .ai files
|
||
|
_ code to automatically open generated .ai files (exec(..ai))
|
||
|
_ debugging serial code
|
||
|
_ hyperterminal - watching for binary garbage vs ascii text
|
||
|
_ first debug (maybe even using ascii) and watch in hyperterminal
|
||
|
_ or ship pooterm along with processing
|
||
|
_ flicker - often ascii instead of binary
|
||
|
_ timing of sleep, size of message, timing of write
|
||
|
_ starting processing first, then stamp
|
||
|
_ using objectXYZ() and screenXYZ()
|
||
|
_ using curves
|
||
|
_ making things faster
|
||
|
_ memory running out, using ms and mx
|
||
|
_ noBackground() if you're covering everything
|
||
|
_ converting to/from ascii/decimal/hex/binary
|
||
|
_ fixed width font format as technote and how to use
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
LANGUAGE
|
||
|
|
||
|
Adding to the API for advanced users, supporting concise coding
|
||
|
|
||
|
|
||
|
foreach String line (lines)
|
||
|
foreach (String line = lines)
|
||
|
foreach (String line, lines)
|
||
|
foreach (String line) of lines
|
||
|
..would translate to..
|
||
|
for (int i = 0; i < lines.length; i++) {
|
||
|
String line = lines[i];
|
||
|
}
|
||
|
|
||
|
for (int i = 0..10) or for (int i, 0..10)
|
||
|
foreach (int i) of 0..10
|
||
|
for (int i = start..stop)
|
||
|
..translating to..
|
||
|
for (int i = 0; i < 10; i++)
|
||
|
for (int i = start; i < stop; i++)
|
||
|
|
||
|
emit(arrayImageX) or printvar? or vprint?
|
||
|
..would translate to..
|
||
|
println("arrayImageX = " + arrayImageX);
|
||
|
|
||
|
emit(arrayImageX, arrayImageY)
|
||
|
..would translate to..
|
||
|
println("arrayImageX, arrayImageY = " + arrayImageX + ", " + arrayImageY)
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
EXTENSIONS
|
||
|
|
||
|
Scribblings for future API...
|
||
|
|
||
|
|
||
|
BXSocket, BXServerSocket
|
||
|
BXNetwork
|
||
|
|
||
|
BXSerial
|
||
|
|
||
|
> - playback of samples :
|
||
|
> - methods: startSound (loop_num, start_ms, end_ms) , stopSound(),
|
||
|
> volume() , pan()
|
||
|
> - properties: duration
|
||
|
> - formats: wav ( mp3 would be nice for compression )
|
||
|
> - events: onSoundEnd(), onSoundLoop()
|
||
|
>
|
||
|
> - synthesis (generating waves, filtering waves) would be wonderful to have
|
||
|
> as well, but i think that samples should come first.
|
||
|
|
||
|
BXSound, BXSampler or BXAudio
|
||
|
play aiff or mp3 sound with a single command
|
||
|
play buffer of samples with a single command
|
||
|
full class allows play/pause/more advanced loading
|
||
|
|
||
|
BXMovieInput/Output or BXVideo or BXQuickTimeOutput/Input
|
||
|
BXMovie and BXCamera?
|
||
|
|
||
|
BXImageIO, BXTiffImage
|
||
|
|
||
|
BXDataFile (csv or tab separated data)
|
||
|
BXDataMatrix
|
||
|
|
||
|
BXDatabase, BXDatabaseCache (keeps queries to fill out table)
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
MISCELLANEOUS NOTES
|
||
|
|
||
|
|
||
|
buzz.pl
|
||
|
opt-in/opt-out #ifdef setup
|
||
|
rather than forcing people to use buzz.pl to compile. could pick
|
||
|
features that are opt-out, like net, that would have comments:
|
||
|
//#ifdef NET
|
||
|
//#endif
|
||
|
meaning that it would normally get compiled without any trouble
|
||
|
or similarly, could have other sections commented out that are opt-in,
|
||
|
that use #ifdefs to be enabled.`
|
||
|
|
||
|
|
||
|
Things that break often/things to test
|
||
|
_ handling of key events (both as applet and in application)
|
||
|
_ per-vertex coloring for different kinds of shapes
|
||
|
_ that each shape type works as expected
|
||
|
_ what if one short or one too many vertices?
|
||
|
_ transforms are affecting geometry
|
||
|
_ i.e. are line and point working in 3D?
|
||
|
_ why did i think that z was backwards from gl?
|
||
|
|
||
|
biggest problems from french workshop
|
||
|
_ syntax more difficult than expected: semicolons and braces
|
||
|
_ part is translation issue--wasn't a quick fix
|
||
|
_ curly braces weren't on the keyboard
|
||
|
_ encouraging people to indent their code for clarity
|
||
|
_ slow to understand 'blocks'
|
||
|
_ translation issue but could be aided by visual cues in editor
|
||
|
_ might be better to use braces on separate lines to reinforce
|
||
|
_ couldn't enforce people working on specific exercises
|
||
|
_ too many cubes.. people playing with 3d before understanding it
|
||
|
_ would be nice to have examples for all concepts on site
|
||
|
_ or in a small printed book that serves as a reference
|
||
|
_ courseware not complete--difficult to collect assignments
|
||
|
|
||
|
teaching 3D
|
||
|
_ expectation for 3D objects is that they begin in the center
|
||
|
_ rather than a translate(W/2, H/2) then draw rotating cube
|
||
|
|
||
|
_ make processing useful/usable
|
||
|
_ start working on writing pdf files
|
||
|
_ loading images/files from same dir as .pde file
|
||
|
_ option to use jikes
|
||
|
_ use external editor or write a usable one
|
||
|
_ write simple class for lcd panel
|
||
|
_ build adapter to plug directly into db9 serial port
|
||
|
_ figure out characters used on screen by default (check web)
|
||
|
_ make unicode converter from unicode char -> lcd screen bytes
|
||
|
_ hook up lcd screen to power/serial port to test
|
||
|
_ code to reprogram lcd screen
|
||
|
_ look through rabbit api
|
||
|
_ look into integration of cmd line compiler
|
||
|
_ check out flash for its text editor
|
||
|
_ write function to swap different names for Proce55ing
|
||
|
_ use for window title
|
||
|
_ simple app that does swapping of letters as an animation
|
||
|
|
||
|
also an interesting possibility (for tech-minded only)
|
||
|
use terminal emulator, and run iostream from process
|
||
|
use pooterm stuff for the emulation window
|
||
|
key commands would conflict
|
||
|
but could use emacs under osx, linux
|
||
|
use nano (maybe emacs?) under windows
|
||
|
and nothing for macos9
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
BUILDING P5
|
||
|
|
||
|
where to install jikes, jre, others?
|
||
|
jre may need to be back in cvs, but annoying for dist
|
||
|
because of all the CVS directories that it makes
|
||
|
|
||
|
cvs co processing
|
||
|
cd processing
|
||
|
cvs update -P
|
||
|
# optional, if you're only doing java dev
|
||
|
rm -rf web
|
||
|
|
||
|
need to have rt.jar from jdk 1.1 and comm.jar in the CLASSPATH
|
||
|
to build bagel.. just gotta be that way, it's too messy otherwise
|
||
|
|
||
|
need cygwin: zip, unzip, perl
|
||
|
little guys: rm, cp, mv, tcsh
|
||
|
|
||
|
build jikes for cygwin, use version 1.14, later than that has bugs
|
||
|
./configure, make, make install
|
||
|
add $cygwin/usr/local/bin to path
|
||
|
|
||
|
dist directories contain only the files specific to that platform
|
||
|
(those are the ones checked into cvs)
|
||
|
when dist.sh is run:
|
||
|
1) a copy of the dist dir is created, renamed 'processing-nnnn'
|
||
|
2) the remaining files are added (buttons.gif, pde.properties)
|
||
|
3) files are lf converted (i.e. notes.txt)
|
||
|
comm.jar now needs to be in CLASSPATH for build environment
|
||
|
|
||
|
macos may be superior platform for building
|
||
|
retain unix file permissions for linux
|
||
|
resource fork goodness for the mac
|
||
|
|
||
|
for jgl version of bagel, jgl.jar needs to be in classpath
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
(C)BAGEL WORK
|
||
|
|
||
|
The C Language version of the Bagel Graphics Library
|
||
|
|
||
|
|
||
|
bagel engine: memoryimagesource, opengl, illustrator, postscript, pdf
|
||
|
|
||
|
bagel to run on j2me / phones
|
||
|
|
||
|
output to multiple languages: java -> c++ conversion
|
||
|
|
||
|
cbagel engine: memory array, opengl bindings
|
||
|
|
||
|
|
||
|
_ modify cbagel for opie
|
||
|
_ would be interesting to build pre-processor for java p5
|
||
|
_ but that converts into cpp version of bagel apps.. mmm
|
||
|
_ update cbagel to current bagel status
|
||
|
_ get gcc tied into processing
|
||
|
_ java disassembly inside p5
|
||
|
_ and assmebling it back again
|
||
|
_ color() has a different meaning
|
||
|
_ formerly a normalized 0..1 float to a packed rgb int
|
||
|
_ now it's a color according to current standards
|
||
|
_ float_color is a private version of the previous color()
|
||
|
_ curve was broken (cvertexIndex being reset)
|
||
|
_ curve() now doubles start/end points to be more logical
|
||
|
_ (fits all four points by drawing six points)
|
||
|
_ try screengrab using malloc and/or gobs of extra memory
|
||
|
_ debug the version inside bagel b/c it's simpler
|
||
|
_ bagel needs to be able to resize itself
|
||
|
_ also to address screen as if it's another size
|
||
|
_ is that simply a matter of changing the viewport?
|
||
|
_ letterboxing as appropriate
|
||
|
_ build windows app for testing bagel c++ ... -lgdi32 for cygwin
|
||
|
_ updates from p5 api changes
|
||
|
_ triangle() 6 parameters
|
||
|
_ quad() 8 parameters
|
||
|
_ rect/rectMode again
|
||
|
_ new color solution
|
||
|
_ color() -> uses colorMode
|
||
|
_ red/green/blue() hue/saturation/value() functions
|
||
|
_ getPixel/setPixel
|
||
|
_ swap in 'color' as an int
|
||
|
_ color c = #67aa78
|
||
|
_ keyDown(), mouseDown(), lastMouseX, lastMouseY
|
||
|
_ degrees(), radians()
|
||
|
_ fill, background, stroke all with int version for packed rgb
|
||
|
|
||
|
_ why won't glut shut up about modifiers?
|
||
|
_ add millis() to bappletgl that returns glut millis
|
||
|
|
||
|
_ BGL_PATH should turn paths into os9 ready paths for os9
|
||
|
_ or whatever else for the other platforms
|
||
|
_ macos9: font = loadFont(":fonts:Univers55.vlw");
|
||
|
_ or could use a "File" style object
|
||
|
_ or do all path conversions internally:
|
||
|
_ loadFont, loadImage.. already do gz decoding
|
||
|
|
||
|
_ makingmovie/screengrab should be moved into bapplet,
|
||
|
_ along with the stuff for making an ai screen grab
|
||
|
|
||
|
_ mouseX/lastMouseX should be handled automatically
|
||
|
_ mousePressed() function may not need vars passed in
|
||
|
_ or maybe the only vars are alt/left-right/ctrl/shift
|
||
|
|
||
|
_ maybe mouseevent is passed in, but not used in the
|
||
|
_ function unless people want advanced features
|
||
|
_ mouseX/mouseY/lastMouseX/lastMouseY all set by parent class
|
||
|
|
||
|
_ lastKey and lastKeyCode -- not as useful as the mouse stuff
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
MENU PROPOSALS
|
||
|
|
||
|
|
||
|
// File
|
||
|
New
|
||
|
Open
|
||
|
Save
|
||
|
Save as
|
||
|
Export Web
|
||
|
Export Application
|
||
|
-----
|
||
|
Proce55ing.net
|
||
|
Reference
|
||
|
-----
|
||
|
Quit
|
||
|
|
||
|
|
||
|
// Edit
|
||
|
Undo
|
||
|
Redo
|
||
|
-----
|
||
|
Cut
|
||
|
Copy
|
||
|
Paste
|
||
|
-----
|
||
|
Find
|
||
|
Replace
|
||
|
-----
|
||
|
Select All
|
||
|
|
||
|
|
||
|
// Control
|
||
|
Run
|
||
|
Present
|
||
|
Stop
|
||
|
-----
|
||
|
Step Forward (farway future)
|
||
|
Step Backward (faraway future)
|
||
|
|
||
|
|
||
|
// Sketch
|
||
|
History
|
||
|
Clear History
|
||
|
Beautify
|
||
|
|
||
|
|
||
|
// Environment
|
||
|
Serial Port
|
||
|
Use External Editor
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
JAVA PACKAGES
|
||
|
|
||
|
|
||
|
jdk 1.3 packages
|
||
|
|
||
|
java.applet
|
||
|
java.awt
|
||
|
java.awt.color
|
||
|
java.awt.datatransfer
|
||
|
java.awt.dnd
|
||
|
java.awt.event
|
||
|
java.awt.font
|
||
|
java.awt.geom
|
||
|
java.awt.im
|
||
|
java.awt.im.spi
|
||
|
java.awt.image
|
||
|
java.awt.image.renderable
|
||
|
java.awt.print
|
||
|
java.beans
|
||
|
java.beans.beancontext
|
||
|
java.io
|
||
|
java.lang
|
||
|
java.lang.ref
|
||
|
java.lang.reflect
|
||
|
java.math
|
||
|
java.net
|
||
|
java.rmi
|
||
|
java.rmi.activation
|
||
|
java.rmi.dgc
|
||
|
java.rmi.registry
|
||
|
java.rmi.server
|
||
|
java.security
|
||
|
java.security.acl
|
||
|
java.security.cert
|
||
|
java.security.interfaces
|
||
|
java.security.spec
|
||
|
java.sql
|
||
|
java.text
|
||
|
java.util
|
||
|
java.util.jar
|
||
|
java.util.zip
|
||
|
javax.accessibility
|
||
|
javax.naming
|
||
|
javax.naming.directory
|
||
|
javax.naming.event
|
||
|
javax.naming.ldap
|
||
|
javax.naming.spi
|
||
|
javax.rmi
|
||
|
javax.rmi.CORBA
|
||
|
javax.sound.midi
|
||
|
javax.sound.midi.spi
|
||
|
javax.sound.sampled
|
||
|
javax.sound.sampled.spi
|
||
|
javax.swing
|
||
|
javax.swing.border
|
||
|
javax.swing.colorchooser
|
||
|
javax.swing.event
|
||
|
javax.swing.filechooser
|
||
|
javax.swing.plaf
|
||
|
javax.swing.plaf.basic
|
||
|
javax.swing.plaf.metal
|
||
|
javax.swing.plaf.multi
|
||
|
javax.swing.table
|
||
|
javax.swing.text
|
||
|
javax.swing.text.html
|
||
|
javax.swing.text.html.parser
|
||
|
javax.swing.text.rtf
|
||
|
javax.swing.tree
|
||
|
javax.swing.undo
|
||
|
javax.transaction
|
||
|
org.omg.CORBA
|
||
|
org.omg.CORBA_2_3
|
||
|
org.omg.CORBA_2_3.portable
|
||
|
org.omg.CORBA.DynAnyPackage
|
||
|
org.omg.CORBA.ORBPackage
|
||
|
org.omg.CORBA.portable
|
||
|
org.omg.CORBA.TypeCodePackage
|
||
|
org.omg.CosNaming
|
||
|
org.omg.CosNaming.NamingContextPackage
|
||
|
org.omg.SendingContext
|
||
|
org.omg.stub.java.rmi
|
||
|
|
||
|
jdk 1.4 packages
|
||
|
|
||
|
java.applet
|
||
|
java.awt
|
||
|
java.awt.color
|
||
|
java.awt.datatransfer
|
||
|
java.awt.dnd
|
||
|
java.awt.event
|
||
|
java.awt.font
|
||
|
java.awt.geom
|
||
|
java.awt.im
|
||
|
java.awt.im.spi
|
||
|
java.awt.image
|
||
|
java.awt.image.renderable
|
||
|
java.awt.print
|
||
|
java.beans
|
||
|
java.beans.beancontext
|
||
|
java.io
|
||
|
java.lang
|
||
|
java.lang.ref
|
||
|
java.lang.reflect
|
||
|
java.math
|
||
|
java.net
|
||
|
java.nio
|
||
|
java.nio.channels
|
||
|
java.nio.channels.spi
|
||
|
java.nio.charset
|
||
|
java.nio.charset.spi
|
||
|
java.rmi
|
||
|
java.rmi.activation
|
||
|
java.rmi.dgc
|
||
|
java.rmi.registry
|
||
|
java.rmi.server
|
||
|
java.security
|
||
|
java.security.acl
|
||
|
java.security.cert
|
||
|
java.security.interfaces
|
||
|
java.security.spec
|
||
|
java.sql
|
||
|
java.text
|
||
|
java.util
|
||
|
java.util.jar
|
||
|
java.util.logging
|
||
|
java.util.prefs
|
||
|
java.util.regex
|
||
|
java.util.zip
|
||
|
javax.accessibility
|
||
|
javax.crypto
|
||
|
javax.crypto.interfaces
|
||
|
javax.crypto.spec
|
||
|
javax.imageio
|
||
|
javax.imageio.event
|
||
|
javax.imageio.metadata
|
||
|
javax.imageio.plugins.jpeg
|
||
|
javax.imageio.spi
|
||
|
javax.imageio.stream
|
||
|
javax.naming
|
||
|
javax.naming.directory
|
||
|
javax.naming.event
|
||
|
javax.naming.ldap
|
||
|
javax.naming.spi
|
||
|
javax.net
|
||
|
javax.net.ssl
|
||
|
javax.print
|
||
|
javax.print.attribute
|
||
|
javax.print.attribute.standard
|
||
|
javax.print.event
|
||
|
javax.rmi
|
||
|
javax.rmi.CORBA
|
||
|
javax.security.auth
|
||
|
javax.security.auth.callback
|
||
|
javax.security.auth.kerberos
|
||
|
javax.security.auth.login
|
||
|
javax.security.auth.spi
|
||
|
javax.security.auth.x500
|
||
|
javax.security.cert
|
||
|
javax.sound.midi
|
||
|
javax.sound.midi.spi
|
||
|
javax.sound.sampled
|
||
|
javax.sound.sampled.spi
|
||
|
javax.sql
|
||
|
javax.swing
|
||
|
javax.swing.border
|
||
|
javax.swing.colorchooser
|
||
|
javax.swing.event
|
||
|
javax.swing.filechooser
|
||
|
javax.swing.plaf
|
||
|
javax.swing.plaf.basic
|
||
|
javax.swing.plaf.metal
|
||
|
javax.swing.plaf.multi
|
||
|
javax.swing.table
|
||
|
javax.swing.text
|
||
|
javax.swing.text.html
|
||
|
javax.swing.text.html.parser
|
||
|
javax.swing.text.rtf
|
||
|
javax.swing.tree
|
||
|
javax.swing.undo
|
||
|
javax.transaction
|
||
|
javax.transaction.xa
|
||
|
javax.xml.parsers
|
||
|
javax.xml.transform
|
||
|
javax.xml.transform.dom
|
||
|
javax.xml.transform.sax
|
||
|
javax.xml.transform.stream
|
||
|
org.ietf.jgss
|
||
|
org.omg.CORBA
|
||
|
org.omg.CORBA_2_3
|
||
|
org.omg.CORBA_2_3.portable
|
||
|
org.omg.CORBA.DynAnyPackage
|
||
|
org.omg.CORBA.ORBPackage
|
||
|
org.omg.CORBA.portable
|
||
|
org.omg.CORBA.TypeCodePackage
|
||
|
org.omg.CosNaming
|
||
|
org.omg.CosNaming.NamingContextExtPackage
|
||
|
org.omg.CosNaming.NamingContextPackage
|
||
|
org.omg.Dynamic
|
||
|
org.omg.DynamicAny
|
||
|
org.omg.DynamicAny.DynAnyFactoryPackage
|
||
|
org.omg.DynamicAny.DynAnyPackage
|
||
|
org.omg.IOP
|
||
|
org.omg.IOP.CodecFactoryPackage
|
||
|
org.omg.IOP.CodecPackage
|
||
|
org.omg.Messaging
|
||
|
org.omg.PortableInterceptor
|
||
|
org.omg.PortableInterceptor.ORBInitInfoPackage
|
||
|
org.omg.PortableServer
|
||
|
org.omg.PortableServer.CurrentPackage
|
||
|
org.omg.PortableServer.POAManagerPackage
|
||
|
org.omg.PortableServer.POAPackage
|
||
|
org.omg.PortableServer.portable
|
||
|
org.omg.PortableServer.ServantLocatorPackage
|
||
|
org.omg.SendingContext
|
||
|
org.omg.stub.java.rmi
|
||
|
org.w3c.dom
|
||
|
org.xml.sax
|
||
|
org.xml.sax.ext
|
||
|
org.xml.sax.helpers
|