Добавить общий API старого CAN terminal
This commit is contained in:
@@ -6,6 +6,53 @@
|
||||
#include "setprotocol_abi.h"
|
||||
#include "set_trends.h"
|
||||
#include "set_spectrum.h"
|
||||
#include "balsam_can.h"
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_ru_setcorp_setprotocol_NativeSetProtocol_nativeBalsamDecode(
|
||||
JNIEnv *env, jobject self, jlong can_id, jbyteArray input)
|
||||
{
|
||||
(void)self;
|
||||
balsam_can_frame_t frame;
|
||||
jsize size;
|
||||
jbyte data[BALSAM_CAN_DLC];
|
||||
jint values[7];
|
||||
if (input == NULL) return NULL;
|
||||
size = (*env)->GetArrayLength(env, input);
|
||||
if (size != (jsize)BALSAM_CAN_DLC) return NULL;
|
||||
(*env)->GetByteArrayRegion(env, input, 0, size, data);
|
||||
if (balsam_can_decode((uint32_t)can_id, (const uint8_t *)data,
|
||||
(size_t)size, &frame) != 1) return NULL;
|
||||
values[0] = frame.device;
|
||||
values[1] = frame.direction;
|
||||
values[2] = frame.present_mask;
|
||||
values[3] = frame.start_address;
|
||||
values[4] = frame.values[0];
|
||||
values[5] = frame.values[1];
|
||||
values[6] = frame.values[2];
|
||||
jintArray result = (*env)->NewIntArray(env, 7);
|
||||
if (result != NULL) (*env)->SetIntArrayRegion(env, result, 0, 7, values);
|
||||
return result;
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_ru_setcorp_setprotocol_NativeSetProtocol_nativeBalsamDeviceName(
|
||||
JNIEnv *env, jobject self, jint device)
|
||||
{
|
||||
(void)self;
|
||||
return (*env)->NewStringUTF(env, balsam_can_device_name((uint8_t)device));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_ru_setcorp_setprotocol_NativeSetProtocol_nativeBalsamRegisterName(
|
||||
JNIEnv *env, jobject self, jint device, jint address)
|
||||
{
|
||||
(void)self;
|
||||
char name[128];
|
||||
balsam_can_register_name((uint8_t)device, (uint16_t)address,
|
||||
name, sizeof name);
|
||||
return (*env)->NewStringUTF(env, name);
|
||||
}
|
||||
|
||||
JNIEXPORT jdoubleArray JNICALL
|
||||
Java_ru_setcorp_setprotocol_NativeSetProtocol_nativeSpectrum(
|
||||
|
||||
Reference in New Issue
Block a user