Huhu,
ich hab große Probleme mit JavaCards.
Ich habe einen code gegeben den ich erweitern soll . es handelt sich dabei um so eine art tamagotchi-farm wo man mit den tieren interagieren kann.
Leider verstehe ich den code teilweise gar nicht .
ich habe z.B. folgendes:
Code
public Animal() {
feed_send_buffer = new byte[2];
mode_send_buffer = new byte[1];
contagious_send_buffer = new byte[1];
symptoms_send_buffer = new byte[1];
}
public void process(APDU apdu) throws ISOException
{
byte[] buffer = apdu.getBuffer();
// process is called on applet selection,
// but we don't do anything in this applet
if ((buffer[ISO.OFFSET_CLA] == SELECT_CLA) &&
(buffer[ISO.OFFSET_INS] == SELECT_INS)) return;
if (buffer[ISO.OFFSET_CLA] == ANIMAL_CLA) {
short size = (short) buffer[ISO.OFFSET_LC];
byte[] temp;
switch (buffer[ISO.OFFSET_INS]) {
case ANIMAL_WHO_ARE_YOU:
apdu.setIncomingAndReceive();
sendResponse(apdu, getWhoAreYou());
break;
case ANIMAL_MESSAGE:
apdu.setIncomingAndReceive();
System.beginTransaction();
mode = MODE_SAD;
System.commitTransaction();
sendResponse(apdu, getMessage());
break;
case ANIMAL_WHERE_YOU_ARE:
temp = receive(apdu);
byte[] loc = new byte[size-LOCATION_OFFSET];
Util.arrayCopy(temp, LOCATION_OFFSET, loc,
(short)0, (short)loc.length);
setWhereYouAre(temp[INDOOR_TEMPERATURE_OFFSET],
temp[OUTDOOR_TEMPERATURE_OFFSET],
temp[LIGHT_OFFSET], loc);
break;
case ANIMAL_LAST_LOCATION:
apdu.setIncomingAndReceive();
if (getLastLocation() != null) sendResponse(apdu, getLastLocation());
break;
case ANIMAL_FEED:
sendResponse(apdu, feed(receive(apdu), size));
break;
case ANIMAL_MODE:
apdu.setIncomingAndReceive();
mode_send_buffer[0] = getMode();
sendResponse(apdu, mode_send_buffer);
break;
case ANIMAL_OPERATIONS:
apdu.setIncomingAndReceive();
sendResponse(apdu, getOperations());
break;
/** case INSECT_MOVE:
sendResponse(apdu, moveInsect(receive(apdu)));
break;
*/
default:
processGeneric(apdu); // Let the generic animal handle it
}
} else if (buffer[ISO.OFFSET_CLA] == ANIMAL_OP) {
// It is an instruction for an Animal-specific operation...
performOperation(buffer[ISO.OFFSET_INS]);
} else {
// Don't know what to do with this instruction...
throw new ISOException(ISO.SW_CLA_NOT_SUPPORTED);
}
}
.....
Alles anzeigen
Ich habe keine Ahnung wie ich mit dem Tier mittels dem Buffer kommunizieren soll. Wie schreibe ich irgendwas da rein?
Bitte helft mir, ich habe keine Ahnung wie ich vorgehen soll.
Hoffe auf Antworten
Gruß
Maggi