[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r571 - in /projects/zb4osgi/trunk/zigbee.tester: pom.xml src/main/java/org/persona/zigbee/tester/gui/CommandActionPanel.java
scm-notify at zb4osgi.aaloa.org
scm-notify at zb4osgi.aaloa.org
Fri Oct 26 11:27:46 CEST 2012
Author: stefano.lenzi
Date: Fri Oct 26 11:27:46 2012
New Revision: 571
Log:
Added dependencies with zigbee.cc2480.datalink due ByteUtils class with should be moved into zigbee.common
Displaying command result for all kind of response with a better message ( refs #162 )
Modified:
projects/zb4osgi/trunk/zigbee.tester/pom.xml
projects/zb4osgi/trunk/zigbee.tester/src/main/java/org/persona/zigbee/tester/gui/CommandActionPanel.java
Modified: projects/zb4osgi/trunk/zigbee.tester/pom.xml
==============================================================================
--- projects/zb4osgi/trunk/zigbee.tester/pom.xml (original)
+++ projects/zb4osgi/trunk/zigbee.tester/pom.xml Fri Oct 26 11:27:46 2012
@@ -104,14 +104,17 @@
</Export-Package>
<Private-Package>
org.persona.zigbee.tester.*,
- org.persona.zigbee.util.*
+ org.persona.zigbee.util.*,
+ com.itaca.ztool.util
</Private-Package>
<Import-Package>
+ !com.itaca.ztool.api,
javax.swing.*,
it.cnr.isti.zigbee.api.*,
it.cnr.isti.zigbee.ha.*,
it.cnr.isti.zigbee.zcl.*,
- org.osgi.*
+ org.osgi.*,
+ org.slf4j; provider=paxlogging
</Import-Package>
</instructions>
</configuration>
@@ -162,6 +165,10 @@
<groupId>org.aaloa.zb4osgi</groupId>
<artifactId>org.aaloa.zb4osgi.zigbee.basedriver.api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.aaloa.zb4osgi</groupId>
+ <artifactId>org.aaloa.zb4osgi.zigbee.cc2480.datalink</artifactId>
+ </dependency>
<!--
Modified: projects/zb4osgi/trunk/zigbee.tester/src/main/java/org/persona/zigbee/tester/gui/CommandActionPanel.java
==============================================================================
--- projects/zb4osgi/trunk/zigbee.tester/src/main/java/org/persona/zigbee/tester/gui/CommandActionPanel.java (original)
+++ projects/zb4osgi/trunk/zigbee.tester/src/main/java/org/persona/zigbee/tester/gui/CommandActionPanel.java Fri Oct 26 11:27:46 2012
@@ -21,6 +21,9 @@
limitations under the License.
*/
package org.persona.zigbee.tester.gui;
+
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+import it.cnr.isti.zigbee.zcl.library.impl.core.ResponseImpl;
import java.awt.BorderLayout;
import java.awt.Component;
@@ -50,6 +53,8 @@
import org.persona.zigbee.tester.gui.Command.CommandParsingException;
+import com.itaca.ztool.util.ByteUtils;
+
/**
*
* @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
@@ -95,11 +100,7 @@
}
try {
Object returned = action.invoke(params);
- if ( returned == null ) {
- result.setText("Invokation successed without error, but without return values");
- } else {
- result.setText(returned.toString());
- }
+ showActionResult(returned);
} catch (CommandParsingException ex) {
ByteArrayOutputStream bof = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(bof);
@@ -127,7 +128,37 @@
}
}
- private void printReport(String[] params,Object result) {
+ private void showActionResult(Object returned) {
+ if ( returned == null ) {
+ result.setText("Invokation successed without error, but without return values");
+ return;
+ }
+ final Class clz = returned.getClass();
+ if ( clz.isPrimitive() || clz == String.class ){
+ result.setText(returned.toString());
+ } else if ( returned instanceof Response){
+ Response r = (Response) returned;
+ String str = r.toString();
+ try {
+ final Class clzToString = clz.getMethod("toString").getDeclaringClass();
+ if ( clzToString == Object.class || clzToString == ResponseImpl.class) {
+ //TODO A default response to String in a ResponseBase class or Response.stringValueOf(Response) should be provided
+ str = "The response object do not provide any String representation of itself";
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ result.setText(
+ "Invokation successed, the raw response payload is \n" +
+ ByteUtils.toBase16( r.getPayload() ) + "\n" +
+ "String representaion of the response is:\n" + str
+ );
+ } else {
+ result.setText("Invokation successed without error, but unknown return type "+returned.getClass()+" ["+returned.toString()+"]");
+ }
+ }
+
+ private void printReport(String[] params,Object result) {
String input = "";
String output = "";
if (params != null) input = Arrays.toString(params);
More information about the Commit
mailing list