diff --git a/dist/oocsi.zip b/dist/oocsi.zip index ca202b3..b9d6713 100644 Binary files a/dist/oocsi.zip and b/dist/oocsi.zip differ diff --git a/dist/oocsi/examples/Connectivity/SendResponseChannel/SendResponseChannel.pde b/dist/oocsi/examples/Connectivity/SendResponseChannel/SendResponseChannel.pde new file mode 100644 index 0000000..4f5502d --- /dev/null +++ b/dist/oocsi/examples/Connectivity/SendResponseChannel/SendResponseChannel.pde @@ -0,0 +1,93 @@ +import nl.tue.id.oocsi.*; +import nl.tue.id.oocsi.client.services.*; + +// ****************************************************** +// This example requires a running OOCSI server! +// +// How to do that? Check: Examples > Tools > LocalServer +// +// More information how to run an OOCSI server +// can be found here: https://iddi.github.io/oocsi/) +// ****************************************************** + +// variables for fill color and size of rectangle +int fillColor = 255; +int size = 3; + +OOCSI oocsi1; + +// second OOCSI instance for making calls to the registered handlers +OOCSI oocsi2; + +void setup() { + size(200, 200); + noStroke(); + rectMode(CENTER); + + // connect to OOCSI server running on the same machine (localhost) + // with "receiverName" to be my channel others can send data to + // (for more information how to run an OOCSI server refer to: https://iddi.github.io/oocsi/) + oocsi1 = new OOCSI(this, "channel_responder", "localhost"); + + // register this first OOCSI client for responses + // to call "numberNumer" + oocsi1.registerChannel("colorChannel", "newNumber"); + // and "newColor" + oocsi1.registerChannel("colorChannel", "newColor"); + + // register can take also the name of the function as an optional second parameter: + // oocsi1.register("newColor", "generateColor"); + + // --------------------------------------------------------------------------------- + + // connect with a second OOCSI client for calling the first one + oocsi2 = new OOCSI(this, "caller", "localhost"); +} + +// responder for calls to "newNumber", will receive the call message and then put the response data into +// the response OOCSIData object, which is same as for OOCSI events and messages +void newNumber(OOCSIEvent event, OOCSIData response) { + response.data("number", frameCount % 20); +} + +// responder for calls to "newColor", will receive the call message and then put the response data into +// the response OOCSIData object, which is same as for OOCSI events and messages +void newColor(OOCSIEvent event, OOCSIData response) { + int col = event.getInt("color", 0); + response.data("color", (fillColor + col) % 255); +} + +void draw() { + background(0); + + // draw a rect with the given size and fill color + fill(fillColor, 120, 120); + rect(width/2., height/2., 5 * size, 5 * size); +} + +void mousePressed() { + + // on mouse press call two different services and get new data... + + // first one for getting a new size + // 1: create call + OOCSICall call1 = oocsi2.call("colorChannel", "newNumber", 200); + // 2: send out and wait until either there is a response or the timeout has passed + call1.sendAndWait(); + // 3: check for response + if (call1.hasResponse()) { + // 4: get data out of the first response + size = call1.getFirstResponse().getInt("number", 0); + } + + // second one for getting a new color + // 1: create call with parameter "color", similar to normal OOCSI events + OOCSICall call2 = oocsi2.call("colorChannel", "newColor", 200).data("color", frameCount); + // 2: send out and wait until either there is a response or the timeout has passed + call2.sendAndWait(); + // 3: check for response + if (call2.hasResponse()) { + // 4: get data out of the first response + fillColor = call2.getFirstResponse().getInt("color", 0); + } +} \ No newline at end of file diff --git a/dist/oocsi/library.properties b/dist/oocsi/library.properties index 18c2125..f4112a8 100644 --- a/dist/oocsi/library.properties +++ b/dist/oocsi/library.properties @@ -40,11 +40,11 @@ paragraph = This library provides easy ways to connect a Processing sketch to a # compare different versions of the same library, and check if an update is # available. You should think of it as a counter, counting the total number of # releases you've had. -version = 136 +version = 137 # The version as the user will see it. If blank, the version attribute will be # used here. This should be a single word, with no spaces. -prettyVersion = 1.3.6 +prettyVersion = 1.3.7 # The min and max revision of Processing compatible with your library. # Note that these fields use the revision and not the version of Processing, diff --git a/dist/oocsi/library/oocsi.jar b/dist/oocsi/library/oocsi.jar index f1b8b29..0a1fd24 100644 Binary files a/dist/oocsi/library/oocsi.jar and b/dist/oocsi/library/oocsi.jar differ diff --git a/dist/oocsi/reference/allclasses-frame.html b/dist/oocsi/reference/allclasses-frame.html index 865aa35..07eb08b 100644 --- a/dist/oocsi/reference/allclasses-frame.html +++ b/dist/oocsi/reference/allclasses-frame.html @@ -2,9 +2,9 @@
- +public static final java.lang.String
VERSION
"1.3.6"
"1.3.7"
OOCSICall
call(java.lang.String callName)
-OOCSICall
call(java.lang.String callName,
int timeoutMS)
-call(java.lang.String callName,
int timeoutMS,
int maxResponses)
-OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName)
+OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName,
+ int timeoutMS)
+OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName,
+ int timeoutMS,
+ int maxResponses)
+OOCSIMessage
channel(java.lang.String channelName)
void
disconnect()
+java.lang.String
getChannels()
java.lang.String
getChannels(java.lang.String channelName)
java.lang.String
getClients()
boolean
isConnected()
static OOCSI
localInstance(java.lang.Object parent)
void
register(java.lang.String responderName)
void
register(java.lang.String responderName,
java.lang.String responderFunctionName)
-void
registerChannel(java.lang.String channelName,
+ java.lang.String responderName)
+void
registerChannel(java.lang.String channelName,
+ java.lang.String responderName,
+ java.lang.String responderFunctionName)
+void
sendRaw(java.lang.String channel,
java.lang.String data)
void
subscribe(java.lang.String channelName)
void
subscribe(java.lang.String channelName,
java.lang.String handlerName)
-void
subscribe(java.lang.String channelName,
java.lang.String handlerName,
int rate,
int seconds)
-void
subscribe(java.lang.String channelName,
java.lang.String handlerName,
int rate,
int seconds,
boolean ratePerSender)
-public void disconnect()+
public OOCSICall call(java.lang.String callName)-
callName
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName)+
channelName
- callName
- public OOCSICall call(java.lang.String callName, int timeoutMS)-
callName
- timeoutMS
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName, + int timeoutMS)+
channelName
- callName
- timeoutMS
- public OOCSICall call(java.lang.String callName, int timeoutMS, int maxResponses)-
callName
- timeoutMS
- maxResponses
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName, + int timeoutMS, + int maxResponses)+
channelName
- callName
- timeoutMS
- maxResponses
- public void subscribe(java.lang.String channelName, java.lang.String handlerName)-
channelName
- channelName
- public void register(java.lang.String responderName, java.lang.String responderFunctionName)-
responderName
- responderFunctionName
- public void registerChannel(java.lang.String channelName, + java.lang.String responderName)+
channelName
- responderName
- public void registerChannel(java.lang.String channelName, + java.lang.String responderName, + java.lang.String responderFunctionName)+
channelName
- responderName
- responderFunctionName
- OOCSIBoolean
limit(int rate,
int seconds)
-public OOCSIBoolean limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.Boolean>
OOCSICall
call(java.lang.String callName)
-OOCSICall
call(java.lang.String callName,
int timeoutMS)
-call(java.lang.String callName,
int timeoutMS,
int maxResponses)
-OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName)
+OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName,
+ int timeoutMS)
+OOCSICall
call(java.lang.String channelName,
+ java.lang.String callName,
+ int timeoutMS,
+ int maxResponses)
+OOCSIMessage
channel(java.lang.String channelName)
boolean
connect()
boolean
connect(java.lang.String hostname,
int port)
Handler
createSimpleCallerHandler(java.lang.String handlerName)
boolean
register(java.lang.String responderName)
-boolean
register(java.lang.String responderName,
java.lang.String handlerName)
-boolean
registerChannel(java.lang.String channelName,
+ java.lang.String responderName)
+boolean
registerChannel(java.lang.String channelName,
+ java.lang.String responderName,
+ java.lang.String handlerName)
+boolean
subscribe(java.lang.String channelName)
-boolean
subscribe(java.lang.String channelName,
java.lang.String handlerName)
-boolean
subscribe(java.lang.String channelName,
java.lang.String handlerName,
int rate,
int seconds)
-boolean
subscribe(java.lang.String channelName,
java.lang.String handlerName,
int rate,
int seconds,
boolean ratePerSender)
-channels, channels, clients, disconnect, getName, isConnected, kill, log, reconnect, register, register, send, send, setReconnect, subscribe, subscribe, unsubscribe
channels, channels, clients, disconnect, getName, isConnected, kill, log, reconnect, register, register, register, send, send, setReconnect, subscribe, subscribe, unsubscribe
public OOCSICall call(java.lang.String callName)-
callName
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName)+
channelName
- callName
- public OOCSICall call(java.lang.String callName, int timeoutMS)-
callName
- timeoutMS
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName, + int timeoutMS)+
channelName
- callName
- timeoutMS
- public OOCSICall call(java.lang.String callName, int timeoutMS, int maxResponses)-
callName
- timeoutMS
- maxResponses
- public OOCSICall call(java.lang.String channelName, + java.lang.String callName, + int timeoutMS, + int maxResponses)+
channelName
- callName
- timeoutMS
- maxResponses
- public boolean subscribe(java.lang.String channelName)-
channelName
- public boolean subscribe(java.lang.String channelName, java.lang.String handlerName)-
public boolean register(java.lang.String responderName)-
responderName
- public boolean register(java.lang.String responderName, java.lang.String handlerName)-
responderName
- handlerName
- public boolean registerChannel(java.lang.String channelName, + java.lang.String responderName)+
channelName
- responderName
- public boolean registerChannel(java.lang.String channelName, + java.lang.String responderName, + java.lang.String handlerName)+
channelName
- responderName
- handlerName
- OOCSIDouble
limit(int rate,
int seconds)
-public OOCSIDouble limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.Double>
generator
in class OOCSIVariable<java.lang.Double>
OOCSIFloat
limit(int rate,
int seconds)
-public OOCSIFloat limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.Float>
generator
in class OOCSIVariable<java.lang.Float>
OOCSIInt
limit(int rate,
int seconds)
-public OOCSIInt limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.Integer>
generator
in class OOCSIVariable<java.lang.Integer>
OOCSILong
limit(int rate,
int seconds)
-public OOCSILong limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.Long>
generator
in class OOCSIVariable<java.lang.Long>
OOCSIString
limit(int rate,
int seconds)
-public OOCSIString limit(int rate, int seconds)-
limit
in class OOCSIVariable<java.lang.String>
void
register(java.lang.String callName,
Responder responder)
-void
register(java.lang.String channelName,
+ java.lang.String callName,
+ Responder responder)
+void
send(java.lang.String channelName,
java.util.Map<java.lang.String,java.lang.Object> data)
void
send(java.lang.String channelName,
java.lang.String message)
void
setReconnect(boolean reconnect)
void
subscribe(Handler handler)
void
subscribe(java.lang.String channelName,
Handler handler)
void
unsubscribe(java.lang.String channelName)
public void register(java.lang.String callName, Responder responder)-
callName
- public void register(java.lang.String channelName, + java.lang.String callName, + Responder responder)+
channelName
- callName
- responder
- client
- channelName
- key
- myPosition
- neighbourThreshold
- neighborDistance
- OOCSIVariable<T>
limit(int rate,
int seconds)
-public OOCSIVariable<T> limit(int rate, int seconds)-
rate
- windowLength
- sigma
- periodMS
- static java.util.Map<java.lang.String,java.lang.Object>
parseData(java.lang.String data)
-static long
parseTimestamp(java.lang.String timestamp)
-public static java.util.Map<java.lang.String,java.lang.Object> parseData(java.lang.String data) throws java.io.IOException, java.lang.ClassNotFoundException-
data
- public static long parseTimestamp(java.lang.String timestamp)-
timestamp
- public abstract class RateLimitedClientEventHandler extends RateLimitedEventHandler-
RateLimitedClientEventHandler(int rate,
int seconds)
-public RateLimitedClientEventHandler(int rate, int seconds)-
rate
- public abstract class RateLimitedEventHandler extends EventHandler-
RateLimitedEventHandler(int rate,
int seconds)
-void
limit(int rate,
int seconds)
-public RateLimitedEventHandler(int rate, int seconds)-
rate
- public void limit(int rate, int seconds)-
rate
- oocsi
- oocsi
- void
register(java.lang.String callName,
Responder responder)
-boolean
startMulticastLookup()
startMulticastLookup()
+void
public boolean startMulticastLookup()+
public void register(java.lang.String callName, Responder responder)-
callName
-