В настоящее время я пытаюсь получить изображение с камеры, подключенной к цепи Uart Raspberry Pi. Я пытаюсь сделать это с помощью pi4j. Поскольку мне удалось инициализировать камеру, я не думаю, что проблема связана с командами, которые я посылаю. Однако, когда я пытаюсь открыть сгенерированный файл .jpg, файл поврежден.
Кто-нибудь знает, что я делаю неправильно, или ему удалось получить изображение с камеры, подключенной к Uart Raspberry Pi с помощью java?
Камера: Grove - Комплект последовательной камеры
Лист данных: Grove - Лист последовательной камеры PDF
Пример кода : Python Код
private void getPicture(long pictureLength) {
try {
byte[] receiveDataPackageCommand = { (byte) 0xaa, (byte) 0x0e, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00 };
byte[] ackPackageEndCommand = { (byte) 0xaa, (byte) 0x0e, (byte) 0x00, (byte) 0x00, (byte) 0xf0,
(byte) 0xF0 };
File picture = new File(getFileName());
console.println("created file " + picture.getName());
if (picture.createNewFile()) {
FileOutputStream stream = new FileOutputStream(picture.getName());
int i = 0;
while (pictureLength > 0) {
receiveDataPackageCommand[4] = (byte) (i & 0xff);
receiveDataPackageCommand[5] = (byte) ((i >> 8) & 0xff);
serial.write(receiveDataPackageCommand);
byte[] bytes = pictureLength >= 128 ? serial.read(128) : serial.read((int) pictureLength);
stream.write(bytes);
pictureLength = pictureLength - 128;
i++;
}
stream.close();
serial.write(ackPackageEndCommand);
console.println("picture received and saved");
} else {
console.println("file already exists");
}
} catch (Exception ex) {
console.println(ex);
}
}