![]() |
#1 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
THe new development toy from iRex: java
The new Mobipocket Java engine is actually an embedded real time operating system: Intent from the Tao Group.
http://tao-group.com/ First thing they've done in awhile that I can actually say: way to go. ![]() |
![]() |
![]() |
![]() |
#2 | |
iLiad fan
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 210
Karma: 3864
Join Date: Oct 2006
Device: iRex iLiad
|
Quote:
![]() |
|
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Addicted to Porting
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,697
Karma: 7194
Join Date: Oct 2006
Location: Indianapolis, IN
Device: iRex iLiad, Nokia 770, Samsung i760
|
A little more info can be found here: https://www.mobileread.com/forums/showthread.php?t=10698
|
![]() |
![]() |
![]() |
#4 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
One thing I've worked out: it doesn't want to load any class file with a version newer than 47 (JDK 1.3). Be sure to set your -target -source correctly when compiling the classes for your JAR's and inspect your 3rd party JAR's to make sure their class files are compiled to the correct version level as well.
Curiously iRex is sticking to JDK 1.2... Code:
DisplayUpdate.class: compiled Java class data, version 46.0 ErBusy.class: compiled Java class data, version 46.0 ErChannelClient.class: compiled Java class data, version 46.0 ErClientBase.class: compiled Java class data, version 46.0 ErDisplayClient.class: compiled Java class data, version 46.0 ErIpcChannel.class: compiled Java class data, version 46.0 ErIpcClient.class: compiled Java class data, version 46.0 ErIpcCmd.class: compiled Java class data, version 46.0 ErIpcServer.class: compiled Java class data, version 46.0 ErPageBar.class: compiled Java class data, version 46.0 ErToolBar.class: compiled Java class data, version 46.0 HelloWorld.class: compiled Java class data, version 46.0 HelloWorldAWT.class: compiled Java class data, version 46.0 IpcServerCallBack.class: compiled Java class data, version 46.0 Log.class: compiled Java class data, version 46.0 SDKTest.class: compiled Java class data, version 46.0 SimpleTest.class: compiled Java class data, version 46.0 UpdateRequest.class: compiled Java class data, version 46.0 ViewerSignal.class: compiled Java class data, version 46.0 The JVM benchmark ACE.jar for example doesn't work because it is entirely unpackaged. Last edited by scotty1024; 05-07-2007 at 10:10 PM. Reason: Fixed JDK version |
![]() |
![]() |
![]() |
#5 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
Code:
package com.irex.sdk; import com.mobipocket.common.library.reader.Security; import java.awt.GraphicsEnvironment; import java.io.PrintStream; public class SimpleTest { public void test() { System.out.println("====test null=="); String s = null; System.out.println("len=" + s.length()); } public void printFontList() { System.out.println("---------font family list---------"); String as[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); for(int i = 0; i < as.length; i++) System.out.println("[" + as[i] + "]"); System.out.println("---------done---------"); } public SimpleTest() { String s = Security.generatePID("00-16-7c-00-09-cf", 8); System.out.println("sDevicePID=[" + s + "]"); String s1 = Security.getChecksumedPID(s); System.out.println("sEndUserPID=[" + s1 + "]"); } public static void main(String args[]) { SimpleTest simpletest = new SimpleTest(); simpletest.printFontList(); } } |
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
Code:
package com.irex.sdk; import java.awt.Frame; import java.io.PrintStream; import java.util.Date; // Referenced classes of package com.irex.sdk: // DisplayUpdate public class HelloWorldAWT { public HelloWorldAWT() { } private void createAndShowGUI() { Frame frame = new Frame("HelloWorldSwing"); frame.pack(); frame.setSize(768, 1024); frame.setVisible(true); } public static void main(String args[]) { System.out.println("start time:" + (new Date()).getTime()); HelloWorldAWT helloworldawt = new HelloWorldAWT(); helloworldawt.createAndShowGUI(); DisplayUpdate.dispMainWinFullQ(); System.out.println("finished,time is:" + (new Date()).getTime()); } } |
![]() |
![]() |
![]() |
#7 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
Code:
package com.irex.sdk; import java.io.FileInputStream; import java.io.PrintStream; public class HelloWorld { public HelloWorld() { } public static void main(String args[]) { try { byte abyte0[] = new byte[12]; char c = '\u0106'; FileInputStream fileinputstream = new FileInputStream("ROOTDIR/proc/sysset/raw"); byte abyte1[] = new byte[c + 6]; int i = fileinputstream.read(abyte1); System.out.println("read:" + i + " bytes"); for(int j = 0; j < 6; j++) { byte byte0 = abyte1[c + j]; int k = byte0 >>> 4 & 0xf; int l = byte0 & 0xf; char c1 = Character.forDigit(k, 16); char c2 = Character.forDigit(l, 16); System.out.println(j + "=" + abyte1[c + j] + ",(" + k + "," + l + "),char=[" + c1 + "," + c2 + "]"); } } catch(Exception exception) { exception.printStackTrace(); } } } |
![]() |
![]() |
![]() |
#8 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
Code:
package com.irex.sdk; import java.io.PrintStream; // Referenced classes of package com.irex.sdk: // ErIpcServer, DisplayUpdate, Log, ErToolBar, // ErPageBar, ErBusy, ErDisplayClient public class SDKTest { public SDKTest() { } public static void main(String args[]) { System.out.println("start testing ipcserver"); ErIpcServer eripcserver = ErIpcServer.getInstanceByChannelId(10, null); if(eripcserver == null) return; System.out.println("will start ipcserver"); eripcserver.startServer(); System.out.println("sleep 25 seconds"); try { Thread.currentThread(); Thread.sleep(10000L); } catch(InterruptedException interruptedexception) { interruptedexception.printStackTrace(); } System.out.println("will stop ipcserver"); eripcserver.shutdownServer(); System.out.println("finish testing ipcserver"); System.out.println("starting test toolbar"); DisplayUpdate displayupdate = DisplayUpdate.getInstance(); if(displayupdate == null) return; System.out.println("sleep 10 seconds for prepare"); try { Thread.currentThread(); Thread.sleep(15000L); } catch(InterruptedException interruptedexception1) { interruptedexception1.printStackTrace(); } Log.logString(" firstly, we test the Log utility"); ErToolBar ertoolbar = ErToolBar.getInstance(); if(ertoolbar == null) return; byte byte0 = 103; ertoolbar.tbDisableUpdate(byte0); ertoolbar.tbSelectIconSet(byte0); ertoolbar.tbClearIconSet(byte0); ertoolbar.appendPlatformIcon(byte0, 1, 6); ertoolbar.tbSetStatePlatformIcon(byte0, 1, 1); ertoolbar.appendPlatformIcon(byte0, 2, 6); ertoolbar.appendPlatformIcon(byte0, 3, 6); ertoolbar.appendPlatformIcon(byte0, 4, 6); ertoolbar.tbEnableUpdate(byte0); DisplayUpdate _tmp = displayupdate; displayupdate.request_screen_refresh(4, 2); try { Thread.currentThread(); Thread.sleep(10000L); } catch(InterruptedException interruptedexception2) { interruptedexception2.printStackTrace(); } ertoolbar.tbRemovePlatformIcon(byte0, 1); ertoolbar.tbRemovePlatformIcon(byte0, 2); ertoolbar.tbRemovePlatformIcon(byte0, 3); System.out.println("toolbar testing finished"); ertoolbar.close(); System.out.println("starting test pagebar"); ErPageBar erpagebar = ErPageBar.getInstance(); if(erpagebar == null) return; erpagebar.pbReset(byte0); erpagebar.pbSetPageCount(byte0, 15); erpagebar.pbSetCurrentPage(byte0, 11); erpagebar.pbRedraw(byte0); DisplayUpdate _tmp1 = displayupdate; displayupdate.request_screen_refresh(4, 0); try { Thread.currentThread(); Thread.sleep(10000L); } catch(InterruptedException interruptedexception3) { interruptedexception3.printStackTrace(); } System.out.println("pagebar testing finished"); erpagebar.close(); System.out.println("starting test busy"); ErBusy erbusy = ErBusy.getInstance(); if(erbusy == null) return; erbusy.blink(); System.out.println("sleep 10 seconds"); try { Thread.currentThread(); Thread.sleep(10000L); } catch(InterruptedException interruptedexception4) { interruptedexception4.printStackTrace(); } erbusy.off(); System.out.println("busy off, testing finished"); erbusy.close(); System.out.println("start testing display manager client"); ErDisplayClient erdisplayclient = ErDisplayClient.getInstance(); if(erdisplayclient == null) return; System.out.println("display all"); ErDisplayClient _tmp2 = erdisplayclient; erdisplayclient.display(1, 0); System.out.println("sleep 10 seconds"); try { Thread.currentThread(); Thread.sleep(10000L); } catch(InterruptedException interruptedexception5) { interruptedexception5.printStackTrace(); } System.out.println("start erase to white"); erdisplayclient.eraseToWhite(2); System.out.println("all testing is finishing!"); } } |
![]() |
![]() |
![]() |
#9 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
I'm preparing JavaDoc for the actual API classes but the above test cases show how to use the API's. I posted them in this form so people can quote them to ask questions and or form answers.
|
![]() |
![]() |
![]() |
#10 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
Options the elate jvm groks.
Code:
Usage: app/stdio/jcode [option]... class [argument]... where options include: -classpath <directories> class search path (';' separated) -finalizerthreadpriority sets the priority of the finalizer thread -gcchunking set the gc chunking flags (0 = no chunking) -gccompaction set the gc compaction flags (0 = no compaction) -gcflushtool make gc force a tool flush -gcmaxheapsize <bytes> set the gc heap size -gcthreadpriority sets the priority of the gc thread -gcthreshold <bytes> set the gc threshold -help,-h print out this message -maxstacksize <bytes> upper bound for thread stack size -minstacksize <bytes> lower bound for thread stack size -noasyncgc disable asynchronous garbage collection -noclassgc disable class garbage collection -noillegalaccesschecks disable illegal access checks -noverify do not verify any class -verbose:class,-v print a message whenever a class is loaded -verbose:gc print a message when garbage collection occurs -verbose:jni print a message whenever a jni call is made -verify verify all classes when read in -verifyremote verify classes read in over the network [default] -D<name>=<value> set a system property Code:
root@ereader:/home/intent# sys/platform/linux/taoref/er10xx/elate -B sys/platform/linux/taoref/er10xx/target.img -l sys/platform/linux/taoref/er10xx/ "-capp/stdio/jcode -h" intent (Linux boot loader) Copyright (c) Tao Systems Ltd 1997-2000 0x564E24 bytes read Booting image at 0x401ce000-0x405ce400 root@ereader:/home/intent# cat /tmp/ktrace.log |
![]() |
![]() |
![]() |
#11 |
Gizmologist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,615
Karma: 929550
Join Date: Jan 2006
Location: Republic of Texas Embassy at Jackson, TN
Device: Pocketbook Touch HD3
|
So, does this mean you're doing development for the iLiad again, scotty1024?
![]() |
![]() |
![]() |
![]() |
#12 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
The road to my heart is paved in Java.
![]() |
![]() |
![]() |
![]() |
#13 |
Gizmologist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,615
Karma: 929550
Join Date: Jan 2006
Location: Republic of Texas Embassy at Jackson, TN
Device: Pocketbook Touch HD3
|
I'm sure that says something profound about your character, scotty1024, but I think I'll just have a good laugh over it and leave the deeper analysis for another day.
![]() |
![]() |
![]() |
![]() |
#14 |
Banned
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
|
So I've been abusing the DJVU Java Viewer to learn about the new shiny shiny.
No Swing, that really limits what you can grab "off the shelf". But I've got the swing ripped out of the DJVU Viewer now. But I've still got a missing class and the elate isn't very communicative about this class of error, you have to infer (and confirm by test) that -v shows it loading a linkage error class before issuing the class not found error to know it couldn't load some related class. If it can't find the class it doesn't load the linkage error class then throw the class not found exception. Yeah I'd prefer an explicit message with the class in question but at least it has this clue. ![]() Also, no Applet support. So there is another class of "off the shelf" that won't run at this point. So what's left? Looks like MIDP 1.0/2.0 apps using J2ME and Desktop apps written with AWT. And of course you'll need source to those since you have to add in the iRex API calls. |
![]() |
![]() |
![]() |
#15 |
No es el toro que piensas
![]() Posts: 44
Karma: 10
Join Date: Mar 2007
Device: iRex iliad
|
![]()
Whoa! Fantastic Scotty1024 is back!
![]() Java is one of my favourite programming languajes and I would like to port some develops to iliad, now we have an irex java sdk to iliad. What i'm trying is to use the tao group image on our VMware development environment, but with no luck. I add myself to this new iliad way and I will keep you on my advances. |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
iRex DR1000 Development VMWare Image | Adam B. | iRex | 9 | 08-19-2010 04:23 AM |
iRex DR1000 Software Development website | vwinstead | iRex | 23 | 02-04-2009 12:21 PM |
iRex Community Development Help | Adam B. | iRex | 33 | 02-02-2008 07:12 PM |
iRex Open Community Development | Adam B. | iRex | 16 | 12-05-2007 04:31 PM |
iLiad Other Java development options...? | thisisfrancis | iRex Developer's Corner | 5 | 09-27-2007 09:23 AM |