@leonardojc/capacitor-ioboard 2.0.9 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/leonardojc/capacitor/ioboard/CapacitorIoboardPlugin.java +137 -4
- package/dist/esm/definitions.d.ts +19 -0
- package/dist/esm/web.d.ts +1 -0
- package/dist/esm/web.js +12 -0
- package/dist/plugin.cjs.js +12 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +12 -0
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import com.getcapacitor.Plugin;
|
|
|
7
7
|
import com.getcapacitor.PluginCall;
|
|
8
8
|
import com.getcapacitor.PluginMethod;
|
|
9
9
|
import com.getcapacitor.annotation.CapacitorPlugin;
|
|
10
|
+
import org.json.JSONObject;
|
|
10
11
|
import java.util.List;
|
|
11
12
|
import java.util.ArrayList;
|
|
12
13
|
|
|
@@ -341,6 +342,97 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
341
342
|
}
|
|
342
343
|
}
|
|
343
344
|
|
|
345
|
+
@PluginMethod
|
|
346
|
+
public void executeMultipleActions(PluginCall call) {
|
|
347
|
+
Log.d(TAG, "🎭 executeMultipleActions called");
|
|
348
|
+
|
|
349
|
+
if (serialManager == null) {
|
|
350
|
+
call.reject("Serial connection not initialized");
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
if (!serialManager.isConnected()) {
|
|
355
|
+
call.reject("Not connected to serial port");
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
try {
|
|
360
|
+
int address = call.getInt("address", 1);
|
|
361
|
+
int delayBetweenCommands = call.getInt("delayBetweenCommands", 100);
|
|
362
|
+
JSArray actionsArray = call.getArray("actions");
|
|
363
|
+
|
|
364
|
+
if (actionsArray == null || actionsArray.length() == 0) {
|
|
365
|
+
call.reject("No actions specified");
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
Log.d(TAG, String.format("Executing %d actions with %dms delay between commands",
|
|
370
|
+
actionsArray.length(), delayBetweenCommands));
|
|
371
|
+
|
|
372
|
+
int successCount = 0;
|
|
373
|
+
int failCount = 0;
|
|
374
|
+
StringBuilder errorMessages = new StringBuilder();
|
|
375
|
+
|
|
376
|
+
for (int i = 0; i < actionsArray.length(); i++) {
|
|
377
|
+
try {
|
|
378
|
+
JSONObject actionJson = actionsArray.getJSONObject(i);
|
|
379
|
+
JSObject action = JSObject.fromJSONObject(actionJson);
|
|
380
|
+
|
|
381
|
+
int palletNumber = action.getInteger("palletNumber", 0);
|
|
382
|
+
boolean unlock = action.has("unlock") ? action.getBoolean("unlock") : true;
|
|
383
|
+
String ledColor = action.has("ledColor") ? action.getString("ledColor") : "green";
|
|
384
|
+
int intensity = action.has("intensity") ? action.getInteger("intensity") : 255;
|
|
385
|
+
int blinkTimes = action.has("blinkTimes") ? action.getInteger("blinkTimes") : 3;
|
|
386
|
+
int blinkSpeed = action.has("blinkSpeed") ? action.getInteger("blinkSpeed") : 1;
|
|
387
|
+
|
|
388
|
+
Log.d(TAG, String.format("Action %d: pallet=%d, unlock=%b, color=%s, intensity=%d, blink=%d, speed=%d",
|
|
389
|
+
i+1, palletNumber, unlock, ledColor, intensity, blinkTimes, blinkSpeed));
|
|
390
|
+
|
|
391
|
+
byte[] frame = createUnlockPalletFrameWithParams(address, palletNumber, ledColor,
|
|
392
|
+
unlock, intensity, blinkTimes, blinkSpeed);
|
|
393
|
+
|
|
394
|
+
boolean sent = serialManager.writeData(frame);
|
|
395
|
+
|
|
396
|
+
if (sent) {
|
|
397
|
+
successCount++;
|
|
398
|
+
} else {
|
|
399
|
+
failCount++;
|
|
400
|
+
errorMessages.append(String.format("Action %d (pallet %d) failed; ", i+1, palletNumber));
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
// Delay between commands (except after last command)
|
|
404
|
+
if (i < actionsArray.length() - 1 && delayBetweenCommands > 0) {
|
|
405
|
+
Thread.sleep(delayBetweenCommands);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
} catch (Exception e) {
|
|
409
|
+
failCount++;
|
|
410
|
+
errorMessages.append(String.format("Action %d error: %s; ", i+1, e.getMessage()));
|
|
411
|
+
Log.e(TAG, "Error executing action " + (i+1), e);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
JSObject result = new JSObject();
|
|
416
|
+
result.put("success", failCount == 0);
|
|
417
|
+
result.put("totalActions", actionsArray.length());
|
|
418
|
+
result.put("successCount", successCount);
|
|
419
|
+
result.put("failCount", failCount);
|
|
420
|
+
|
|
421
|
+
if (failCount > 0) {
|
|
422
|
+
result.put("message", String.format("Executed %d/%d actions successfully. Errors: %s",
|
|
423
|
+
successCount, actionsArray.length(), errorMessages.toString()));
|
|
424
|
+
} else {
|
|
425
|
+
result.put("message", String.format("All %d actions executed successfully", successCount));
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
call.resolve(result);
|
|
429
|
+
|
|
430
|
+
} catch (Exception e) {
|
|
431
|
+
Log.e(TAG, "Error in executeMultipleActions: " + e.getMessage(), e);
|
|
432
|
+
call.reject("Error executing multiple actions: " + e.getMessage());
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
344
436
|
@PluginMethod
|
|
345
437
|
public void listPorts(PluginCall call) {
|
|
346
438
|
try {
|
|
@@ -476,8 +568,10 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
476
568
|
int pallet = call.hasOption("pallet") ? call.getInt("pallet", 0) : call.getInt("palletNumber", 0);
|
|
477
569
|
// Soportar ambos nombres para compatibilidad
|
|
478
570
|
String color = call.hasOption("ledColor") ? call.getString("ledColor", "green") : call.getString("color", "green");
|
|
571
|
+
// New: Support unlock parameter (default: true)
|
|
572
|
+
boolean unlock = call.getBoolean("unlock", true);
|
|
479
573
|
|
|
480
|
-
Log.d(TAG, String.format("Parameters - address: %d, pallet: %d, color: %s", address, pallet, color));
|
|
574
|
+
Log.d(TAG, String.format("Parameters - address: %d, pallet: %d, color: %s, unlock: %b", address, pallet, color, unlock));
|
|
481
575
|
|
|
482
576
|
if (serialManager == null) {
|
|
483
577
|
call.reject("Serial connection not initialized");
|
|
@@ -490,7 +584,7 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
490
584
|
}
|
|
491
585
|
|
|
492
586
|
try {
|
|
493
|
-
byte[] frame = createUnlockPalletFrame(address, pallet, color);
|
|
587
|
+
byte[] frame = createUnlockPalletFrame(address, pallet, color, unlock);
|
|
494
588
|
boolean success = serialManager.writeData(frame);
|
|
495
589
|
|
|
496
590
|
if (success) {
|
|
@@ -832,7 +926,7 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
832
926
|
}
|
|
833
927
|
|
|
834
928
|
// Create MTC3P08L protocol frame for unlock pallet command
|
|
835
|
-
private byte[] createUnlockPalletFrame(int address, int palletNumber, String ledColor) {
|
|
929
|
+
private byte[] createUnlockPalletFrame(int address, int palletNumber, String ledColor, boolean unlock) {
|
|
836
930
|
// MTC3P08L Protocol Frame Structure (según documentación):
|
|
837
931
|
// [SOI][LEN][ADDR][TYPE][DATA][CRC][EOI]
|
|
838
932
|
// TYPE 01 = Single pallet parameter setting
|
|
@@ -847,7 +941,7 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
847
941
|
|
|
848
942
|
// DATA section:
|
|
849
943
|
byte palletNum = (byte) palletNumber; // NUM: 00-07 para pallets 1-8
|
|
850
|
-
byte doorLock = 0x01;
|
|
944
|
+
byte doorLock = unlock ? (byte) 0x01 : (byte) 0x00; // LOCK: 1=unlock, 0=no action
|
|
851
945
|
|
|
852
946
|
// LED section (6 bytes): [RGB_R][RGB_G][RGB_B][Intensity][BlinkTimes][BlinkSpeed]
|
|
853
947
|
int[] rgb = parseColorToRGB(ledColor);
|
|
@@ -878,6 +972,45 @@ public class CapacitorIoboardPlugin extends Plugin implements SerialConnectionMa
|
|
|
878
972
|
};
|
|
879
973
|
}
|
|
880
974
|
|
|
975
|
+
// Create MTC3P08L frame with full parameters (for executeMultipleActions)
|
|
976
|
+
private byte[] createUnlockPalletFrameWithParams(int address, int palletNumber, String ledColor,
|
|
977
|
+
boolean unlock, int intensity, int blinkTimes, int blinkSpeed) {
|
|
978
|
+
byte soi = 0x0D;
|
|
979
|
+
byte eoi = 0x0A;
|
|
980
|
+
byte dataLen = 8;
|
|
981
|
+
byte len = (byte) (dataLen + 7);
|
|
982
|
+
byte addr = (byte) address;
|
|
983
|
+
byte type = 0x01;
|
|
984
|
+
|
|
985
|
+
byte palletNum = (byte) palletNumber;
|
|
986
|
+
byte doorLock = unlock ? (byte) 0x01 : (byte) 0x00;
|
|
987
|
+
|
|
988
|
+
int[] rgb = parseColorToRGB(ledColor);
|
|
989
|
+
byte red = (byte) rgb[0];
|
|
990
|
+
byte green = (byte) rgb[1];
|
|
991
|
+
byte blue = (byte) rgb[2];
|
|
992
|
+
|
|
993
|
+
byte intensityByte = (byte) intensity;
|
|
994
|
+
byte blinkTimesByte = (byte) blinkTimes;
|
|
995
|
+
byte blinkSpeedByte = (byte) blinkSpeed;
|
|
996
|
+
|
|
997
|
+
byte[] dataForCrc = new byte[] {
|
|
998
|
+
soi, len, addr, type, palletNum, doorLock, red, green, blue, intensityByte, blinkTimesByte, blinkSpeedByte
|
|
999
|
+
};
|
|
1000
|
+
int crc16 = calculateCRC16Modbus(dataForCrc);
|
|
1001
|
+
|
|
1002
|
+
byte crcLow = (byte) (crc16 & 0xFF);
|
|
1003
|
+
byte crcHigh = (byte) ((crc16 >> 8) & 0xFF);
|
|
1004
|
+
|
|
1005
|
+
return new byte[] {
|
|
1006
|
+
soi, len, addr, type,
|
|
1007
|
+
palletNum, doorLock,
|
|
1008
|
+
red, green, blue, intensityByte, blinkTimesByte, blinkSpeedByte,
|
|
1009
|
+
crcLow, crcHigh,
|
|
1010
|
+
eoi
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
|
|
881
1014
|
// Create Full Pallet Control frame (TYPE 02) - controls all 8 pallets
|
|
882
1015
|
private byte[] createMultiplePalletsFrame(int address, String color, int intensity,
|
|
883
1016
|
int blinkTimes, int blinkSpeed, List<Integer> pallets) {
|
|
@@ -57,6 +57,12 @@ export interface CapacitorIoboardPlugin {
|
|
|
57
57
|
* @param options Full pallet control parameters
|
|
58
58
|
*/
|
|
59
59
|
controlMultiplePallets(options: MultiplePalletOptions): Promise<IOBoardResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Execute multiple actions on different pallets simultaneously
|
|
62
|
+
* Sends individual commands for each pallet action with configurable delay between commands
|
|
63
|
+
* @param options Multiple action parameters
|
|
64
|
+
*/
|
|
65
|
+
executeMultipleActions(options: MultipleActionsOptions): Promise<IOBoardResponse>;
|
|
60
66
|
/**
|
|
61
67
|
* Scan for IOBOARD devices on the network
|
|
62
68
|
* @param options Scan parameters
|
|
@@ -108,12 +114,25 @@ export interface UnlockPalletOptions extends DeviceOptions {
|
|
|
108
114
|
ledColor?: string;
|
|
109
115
|
blinkTimes?: number;
|
|
110
116
|
blinkSpeed?: number;
|
|
117
|
+
unlock?: boolean;
|
|
111
118
|
}
|
|
112
119
|
export interface MultiplePalletOptions extends DeviceOptions {
|
|
113
120
|
doorLockMask: number;
|
|
114
121
|
ledColor?: string;
|
|
115
122
|
ledControls?: LEDControlOptions[];
|
|
116
123
|
}
|
|
124
|
+
export interface PalletAction {
|
|
125
|
+
palletNumber: number;
|
|
126
|
+
unlock?: boolean;
|
|
127
|
+
ledColor?: string;
|
|
128
|
+
intensity?: number;
|
|
129
|
+
blinkTimes?: number;
|
|
130
|
+
blinkSpeed?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface MultipleActionsOptions extends DeviceOptions {
|
|
133
|
+
actions: PalletAction[];
|
|
134
|
+
delayBetweenCommands?: number;
|
|
135
|
+
}
|
|
117
136
|
export interface ScanOptions {
|
|
118
137
|
startAddress?: number;
|
|
119
138
|
endAddress?: number;
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare class CapacitorIoboardWeb extends WebPlugin {
|
|
|
8
8
|
getStatus(options: any): Promise<any>;
|
|
9
9
|
unlockPallet(options: any): Promise<any>;
|
|
10
10
|
controlMultiplePallets(options: any): Promise<any>;
|
|
11
|
+
executeMultipleActions(options: any): Promise<any>;
|
|
11
12
|
controlMultiple(options: any): Promise<any>;
|
|
12
13
|
startOTAUpdate(options: any): Promise<any>;
|
|
13
14
|
sendOTAData(options: any): Promise<any>;
|
package/dist/esm/web.js
CHANGED
|
@@ -62,6 +62,18 @@ export class CapacitorIoboardWeb extends WebPlugin {
|
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
|
+
async executeMultipleActions(options) {
|
|
66
|
+
console.log("Web: Executing multiple actions...", options);
|
|
67
|
+
const { actions, delayBetweenCommands = 100 } = options;
|
|
68
|
+
await new Promise(resolve => setTimeout(resolve, actions.length * (delayBetweenCommands + 50)));
|
|
69
|
+
return {
|
|
70
|
+
success: true,
|
|
71
|
+
totalActions: actions.length,
|
|
72
|
+
successCount: actions.length,
|
|
73
|
+
failCount: 0,
|
|
74
|
+
message: `All ${actions.length} actions executed successfully`
|
|
75
|
+
};
|
|
76
|
+
}
|
|
65
77
|
async controlMultiple(options) {
|
|
66
78
|
console.log("Web: Controlling multiple LEDs...", options);
|
|
67
79
|
await new Promise(resolve => setTimeout(resolve, 300));
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -307,6 +307,18 @@ class CapacitorIoboardWeb extends core.WebPlugin {
|
|
|
307
307
|
}
|
|
308
308
|
};
|
|
309
309
|
}
|
|
310
|
+
async executeMultipleActions(options) {
|
|
311
|
+
console.log("Web: Executing multiple actions...", options);
|
|
312
|
+
const { actions, delayBetweenCommands = 100 } = options;
|
|
313
|
+
await new Promise(resolve => setTimeout(resolve, actions.length * (delayBetweenCommands + 50)));
|
|
314
|
+
return {
|
|
315
|
+
success: true,
|
|
316
|
+
totalActions: actions.length,
|
|
317
|
+
successCount: actions.length,
|
|
318
|
+
failCount: 0,
|
|
319
|
+
message: `All ${actions.length} actions executed successfully`
|
|
320
|
+
};
|
|
321
|
+
}
|
|
310
322
|
async controlMultiple(options) {
|
|
311
323
|
console.log("Web: Controlling multiple LEDs...", options);
|
|
312
324
|
await new Promise(resolve => setTimeout(resolve, 300));
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/protocol.js","esm/index.js","esm/web.js"],"sourcesContent":["// Protocol Constants\nexport const IOBOARD_PROTOCOL = {\n SOI: 0x0D,\n EOI: 0x0A,\n FRAME_TYPES: {\n STATUS_QUERY: 0x00,\n SINGLE_PALLET: 0x01,\n FULL_PALLET: 0x02,\n OTA_REQUEST: 0xF1,\n OTA_DATA: 0xF2,\n OTA_RESPONSE: 0xF3\n },\n DEFAULT_BAUD_RATE: 115200,\n DEFAULT_DATA_BITS: 8,\n DEFAULT_STOP_BITS: 1,\n DEFAULT_PARITY: 'none',\n DEFAULT_TIMEOUT: 5000,\n // Address range\n MIN_ADDRESS: 1,\n MAX_ADDRESS: 63,\n // Pallet range\n MIN_PALLET: 0,\n MAX_PALLET: 7,\n // OTA Constants\n OTA_PACKET_SIZE: 128,\n // Response codes\n OTA_RESPONSES: {\n AREA_REQUEST: 0x26,\n REQUEST_A_ZONE: 0x41,\n REQUEST_B_ZONE: 0x42,\n DATA_REQUEST: 0x23,\n COMPLETION: 0x4F,\n ERROR: 0x45, // 'E'\n },\n // Error codes\n OTA_ERROR_CODES: {\n ILLEGAL_VERSION: 9,\n NON_OTA_STATUS: 8,\n WRITE_FAILED: 7,\n VERIFICATION_FAILED: 6,\n TRANSFER_FAILED: 5\n }\n};\n","/**\n * IOBOARD Protocol utilities for frame construction and parsing\n */\nexport class IOBoardProtocol {\n /**\n * Calculate CRC-16 CCITT checksum\n */\n static calculateCRC16(data) {\n let crc = 0xFFFF;\n for (const byte of data) {\n crc ^= (byte << 8);\n for (let bit = 0; bit < 8; bit++) {\n if (crc & 0x8000) {\n crc = (crc << 1) ^ 0x1021;\n }\n else {\n crc = crc << 1;\n }\n crc &= 0xFFFF;\n }\n }\n return crc;\n }\n /**\n * Build a command frame for IOBOARD\n */\n static buildFrame(address, frameType, data) {\n const frame = [];\n // SOI\n frame.push(0x0D);\n // Address\n frame.push(address);\n // Frame Type\n frame.push(frameType);\n // Data\n frame.push(...data);\n // Calculate CRC for address + frameType + data\n const crcData = [address, frameType, ...data];\n const crc = this.calculateCRC16(crcData);\n // CRC (high byte first)\n frame.push((crc >> 8) & 0xFF);\n frame.push(crc & 0xFF);\n // EOI\n frame.push(0x0A);\n return frame;\n }\n /**\n * Parse a response frame from IOBOARD\n */\n static parseFrame(frame) {\n if (frame.length < 6) {\n return { success: false, error: 'Frame too short' };\n }\n // Check SOI and EOI\n if (frame[0] !== 0x0D || frame[frame.length - 1] !== 0x0A) {\n return { success: false, error: 'Invalid frame markers' };\n }\n const address = frame[1];\n const frameType = frame[2];\n const dataLength = frame.length - 6; // SOI + Address + FrameType + CRC(2) + EOI\n const data = frame.slice(3, 3 + dataLength);\n // Extract CRC from frame\n const receivedCRC = (frame[frame.length - 3] << 8) | frame[frame.length - 2];\n // Calculate expected CRC\n const crcData = [address, frameType, ...data];\n const expectedCRC = this.calculateCRC16(crcData);\n if (receivedCRC !== expectedCRC) {\n return {\n success: false,\n error: `CRC mismatch: expected ${expectedCRC.toString(16)}, got ${receivedCRC.toString(16)}`\n };\n }\n return {\n success: true,\n address,\n frameType,\n data\n };\n }\n /**\n * Build status query frame\n */\n static buildStatusQuery(address) {\n return this.buildFrame(address, 0x00, []);\n }\n /**\n * Build single pallet control frame\n */\n static buildSinglePalletControl(address, palletNumber, doorLock, ledControl) {\n const data = [];\n // Pallet number\n data.push(palletNumber);\n // Door lock control (1 = unlock, 0 = no action)\n data.push(doorLock ? 1 : 0);\n // LED control (6 bytes)\n data.push(ledControl.red);\n data.push(ledControl.green);\n data.push(ledControl.blue);\n data.push(ledControl.intensity);\n data.push(ledControl.blinkTimes);\n data.push(ledControl.blinkSpeed);\n return this.buildFrame(address, 0x01, data);\n }\n /**\n * Build full pallet control frame\n */\n static buildFullPalletControl(address, doorLockControl, extendedControl, ledControls) {\n const data = [];\n // Door lock control (8-bit mask)\n data.push(doorLockControl);\n // Extended control\n data.push(extendedControl);\n // LED controls for 8 pallets (48 bytes total)\n for (let i = 0; i < 8; i++) {\n const led = ledControls[i] || {\n red: 0, green: 0, blue: 0,\n intensity: 0, blinkTimes: 0, blinkSpeed: 0\n };\n data.push(led.red);\n data.push(led.green);\n data.push(led.blue);\n data.push(led.intensity);\n data.push(led.blinkTimes);\n data.push(led.blinkSpeed);\n }\n return this.buildFrame(address, 0x02, data);\n }\n /**\n * Build OTA notification frame\n */\n static buildOTANotification(address, majorVersion, minorVersion, patchVersion, firmwareSize) {\n const data = [];\n // Version (3 bytes)\n data.push(majorVersion);\n data.push(minorVersion);\n data.push(patchVersion);\n // Firmware size (4 bytes, little-endian)\n data.push(firmwareSize & 0xFF);\n data.push((firmwareSize >> 8) & 0xFF);\n data.push((firmwareSize >> 16) & 0xFF);\n data.push((firmwareSize >> 24) & 0xFF);\n return this.buildFrame(address, 0xF1, data);\n }\n /**\n * Build OTA data frame\n */\n static buildOTAData(address, packetNumber, data) {\n const frameData = [];\n // Packet number (4 bytes, little-endian)\n frameData.push(packetNumber & 0xFF);\n frameData.push((packetNumber >> 8) & 0xFF);\n frameData.push((packetNumber >> 16) & 0xFF);\n frameData.push((packetNumber >> 24) & 0xFF);\n // Data bytes (up to 128 bytes)\n for (let i = 0; i < data.length; i++) {\n frameData.push(data[i]);\n }\n return this.buildFrame(address, 0xF2, frameData);\n }\n /**\n * Parse status response\n */\n static parseStatusResponse(data) {\n if (data.length < 4) {\n return null;\n }\n return {\n doorLockStatus: data[0],\n softwareVersion: {\n major: data[1],\n minor: data[2],\n patch: data[3]\n }\n };\n }\n /**\n * Convert frame to hex string for debugging\n */\n static frameToHex(frame) {\n return frame.map(b => b.toString(16).padStart(2, '0')).join(' ').toUpperCase();\n }\n /**\n * Convert hex string to frame\n */\n static hexToFrame(hex) {\n return hex.split(' ')\n .map(h => h.trim())\n .filter(h => h.length > 0)\n .map(h => parseInt(h, 16));\n }\n}\n","import { registerPlugin } from '@capacitor/core';\nconst CapacitorIoboard = registerPlugin('CapacitorIoboard', {\n web: () => import('./web').then(m => new m.CapacitorIoboardWeb()),\n});\nexport * from './definitions';\nexport * from './protocol';\nexport { CapacitorIoboard };\n","import { WebPlugin } from \"@capacitor/core\";\nexport class CapacitorIoboardWeb extends WebPlugin {\n constructor() {\n super();\n console.log(\"IOBoard Web Plugin v2.0 initialized\");\n }\n async connect(options) {\n console.log(\"Web: Connecting to IOBoard...\", options);\n await new Promise(resolve => setTimeout(resolve, 1000));\n return { success: true, message: `Connected to IOBoard at ${options.portPath}` };\n }\n async disconnect() {\n console.log(\"Web: Disconnecting from IOBoard...\");\n return { success: true, message: \"Disconnected from IOBoard\" };\n }\n async isConnected() {\n return { connected: false, portPath: null };\n }\n async listPorts() {\n console.log(\"Web: Listing available ports...\");\n const ports = [\"/dev/ttyS0\", \"/dev/ttyS1\", \"/dev/ttyS2\", \"/dev/ttyUSB0\", \"COM1\", \"COM2\", \"COM3\"];\n return { success: true, ports };\n }\n async getStatus(options) {\n console.log(\"Web: Getting device status...\", options);\n await new Promise(resolve => setTimeout(resolve, 100));\n return {\n success: true,\n status: {\n address: options.address,\n connected: true,\n firmwareVersion: \"2.1.0\",\n palletStates: Array(8).fill(false),\n temperature: 25.5,\n voltage: 12.0,\n uptime: 86400\n }\n };\n }\n async unlockPallet(options) {\n console.log(\"Web: Unlocking pallet...\", options);\n await new Promise(resolve => setTimeout(resolve, 200));\n return {\n success: true,\n message: `Pallet ${options.palletNumber} unlocked with RGB(${options.red}, ${options.green}, ${options.blue})`\n };\n }\n async controlMultiplePallets(options) {\n console.log(\"Web: Controlling multiple pallets...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n const { address, color, intensity, blinkTimes, blinkSpeed, pallets } = options;\n return {\n success: true,\n message: `Controlled ${pallets.length} pallets with ${color} color at ${intensity}% intensity`,\n details: {\n address,\n color,\n intensity,\n blinkTimes,\n blinkSpeed,\n palletsControlled: pallets\n }\n };\n }\n async controlMultiple(options) {\n console.log(\"Web: Controlling multiple LEDs...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n return { success: true, message: `Controlled ${options.leds.length} LEDs successfully` };\n }\n async startOTAUpdate(options) {\n console.log(\"Web: Starting OTA update...\", options);\n await new Promise(resolve => setTimeout(resolve, 500));\n return { success: true, message: `OTA update started for ${options.fileName} (${options.fileSize} bytes)` };\n }\n async sendOTAData(options) {\n console.log(\"Web: Sending OTA data packet...\", options.packetNumber);\n await new Promise(resolve => setTimeout(resolve, 50));\n if (Math.random() < 0.05) {\n return { success: false, error: `Packet ${options.packetNumber} transmission failed` };\n }\n return { success: true, message: `OTA packet ${options.packetNumber} sent successfully` };\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/protocol.js","esm/index.js","esm/web.js"],"sourcesContent":["// Protocol Constants\nexport const IOBOARD_PROTOCOL = {\n SOI: 0x0D,\n EOI: 0x0A,\n FRAME_TYPES: {\n STATUS_QUERY: 0x00,\n SINGLE_PALLET: 0x01,\n FULL_PALLET: 0x02,\n OTA_REQUEST: 0xF1,\n OTA_DATA: 0xF2,\n OTA_RESPONSE: 0xF3\n },\n DEFAULT_BAUD_RATE: 115200,\n DEFAULT_DATA_BITS: 8,\n DEFAULT_STOP_BITS: 1,\n DEFAULT_PARITY: 'none',\n DEFAULT_TIMEOUT: 5000,\n // Address range\n MIN_ADDRESS: 1,\n MAX_ADDRESS: 63,\n // Pallet range\n MIN_PALLET: 0,\n MAX_PALLET: 7,\n // OTA Constants\n OTA_PACKET_SIZE: 128,\n // Response codes\n OTA_RESPONSES: {\n AREA_REQUEST: 0x26,\n REQUEST_A_ZONE: 0x41,\n REQUEST_B_ZONE: 0x42,\n DATA_REQUEST: 0x23,\n COMPLETION: 0x4F,\n ERROR: 0x45, // 'E'\n },\n // Error codes\n OTA_ERROR_CODES: {\n ILLEGAL_VERSION: 9,\n NON_OTA_STATUS: 8,\n WRITE_FAILED: 7,\n VERIFICATION_FAILED: 6,\n TRANSFER_FAILED: 5\n }\n};\n","/**\n * IOBOARD Protocol utilities for frame construction and parsing\n */\nexport class IOBoardProtocol {\n /**\n * Calculate CRC-16 CCITT checksum\n */\n static calculateCRC16(data) {\n let crc = 0xFFFF;\n for (const byte of data) {\n crc ^= (byte << 8);\n for (let bit = 0; bit < 8; bit++) {\n if (crc & 0x8000) {\n crc = (crc << 1) ^ 0x1021;\n }\n else {\n crc = crc << 1;\n }\n crc &= 0xFFFF;\n }\n }\n return crc;\n }\n /**\n * Build a command frame for IOBOARD\n */\n static buildFrame(address, frameType, data) {\n const frame = [];\n // SOI\n frame.push(0x0D);\n // Address\n frame.push(address);\n // Frame Type\n frame.push(frameType);\n // Data\n frame.push(...data);\n // Calculate CRC for address + frameType + data\n const crcData = [address, frameType, ...data];\n const crc = this.calculateCRC16(crcData);\n // CRC (high byte first)\n frame.push((crc >> 8) & 0xFF);\n frame.push(crc & 0xFF);\n // EOI\n frame.push(0x0A);\n return frame;\n }\n /**\n * Parse a response frame from IOBOARD\n */\n static parseFrame(frame) {\n if (frame.length < 6) {\n return { success: false, error: 'Frame too short' };\n }\n // Check SOI and EOI\n if (frame[0] !== 0x0D || frame[frame.length - 1] !== 0x0A) {\n return { success: false, error: 'Invalid frame markers' };\n }\n const address = frame[1];\n const frameType = frame[2];\n const dataLength = frame.length - 6; // SOI + Address + FrameType + CRC(2) + EOI\n const data = frame.slice(3, 3 + dataLength);\n // Extract CRC from frame\n const receivedCRC = (frame[frame.length - 3] << 8) | frame[frame.length - 2];\n // Calculate expected CRC\n const crcData = [address, frameType, ...data];\n const expectedCRC = this.calculateCRC16(crcData);\n if (receivedCRC !== expectedCRC) {\n return {\n success: false,\n error: `CRC mismatch: expected ${expectedCRC.toString(16)}, got ${receivedCRC.toString(16)}`\n };\n }\n return {\n success: true,\n address,\n frameType,\n data\n };\n }\n /**\n * Build status query frame\n */\n static buildStatusQuery(address) {\n return this.buildFrame(address, 0x00, []);\n }\n /**\n * Build single pallet control frame\n */\n static buildSinglePalletControl(address, palletNumber, doorLock, ledControl) {\n const data = [];\n // Pallet number\n data.push(palletNumber);\n // Door lock control (1 = unlock, 0 = no action)\n data.push(doorLock ? 1 : 0);\n // LED control (6 bytes)\n data.push(ledControl.red);\n data.push(ledControl.green);\n data.push(ledControl.blue);\n data.push(ledControl.intensity);\n data.push(ledControl.blinkTimes);\n data.push(ledControl.blinkSpeed);\n return this.buildFrame(address, 0x01, data);\n }\n /**\n * Build full pallet control frame\n */\n static buildFullPalletControl(address, doorLockControl, extendedControl, ledControls) {\n const data = [];\n // Door lock control (8-bit mask)\n data.push(doorLockControl);\n // Extended control\n data.push(extendedControl);\n // LED controls for 8 pallets (48 bytes total)\n for (let i = 0; i < 8; i++) {\n const led = ledControls[i] || {\n red: 0, green: 0, blue: 0,\n intensity: 0, blinkTimes: 0, blinkSpeed: 0\n };\n data.push(led.red);\n data.push(led.green);\n data.push(led.blue);\n data.push(led.intensity);\n data.push(led.blinkTimes);\n data.push(led.blinkSpeed);\n }\n return this.buildFrame(address, 0x02, data);\n }\n /**\n * Build OTA notification frame\n */\n static buildOTANotification(address, majorVersion, minorVersion, patchVersion, firmwareSize) {\n const data = [];\n // Version (3 bytes)\n data.push(majorVersion);\n data.push(minorVersion);\n data.push(patchVersion);\n // Firmware size (4 bytes, little-endian)\n data.push(firmwareSize & 0xFF);\n data.push((firmwareSize >> 8) & 0xFF);\n data.push((firmwareSize >> 16) & 0xFF);\n data.push((firmwareSize >> 24) & 0xFF);\n return this.buildFrame(address, 0xF1, data);\n }\n /**\n * Build OTA data frame\n */\n static buildOTAData(address, packetNumber, data) {\n const frameData = [];\n // Packet number (4 bytes, little-endian)\n frameData.push(packetNumber & 0xFF);\n frameData.push((packetNumber >> 8) & 0xFF);\n frameData.push((packetNumber >> 16) & 0xFF);\n frameData.push((packetNumber >> 24) & 0xFF);\n // Data bytes (up to 128 bytes)\n for (let i = 0; i < data.length; i++) {\n frameData.push(data[i]);\n }\n return this.buildFrame(address, 0xF2, frameData);\n }\n /**\n * Parse status response\n */\n static parseStatusResponse(data) {\n if (data.length < 4) {\n return null;\n }\n return {\n doorLockStatus: data[0],\n softwareVersion: {\n major: data[1],\n minor: data[2],\n patch: data[3]\n }\n };\n }\n /**\n * Convert frame to hex string for debugging\n */\n static frameToHex(frame) {\n return frame.map(b => b.toString(16).padStart(2, '0')).join(' ').toUpperCase();\n }\n /**\n * Convert hex string to frame\n */\n static hexToFrame(hex) {\n return hex.split(' ')\n .map(h => h.trim())\n .filter(h => h.length > 0)\n .map(h => parseInt(h, 16));\n }\n}\n","import { registerPlugin } from '@capacitor/core';\nconst CapacitorIoboard = registerPlugin('CapacitorIoboard', {\n web: () => import('./web').then(m => new m.CapacitorIoboardWeb()),\n});\nexport * from './definitions';\nexport * from './protocol';\nexport { CapacitorIoboard };\n","import { WebPlugin } from \"@capacitor/core\";\nexport class CapacitorIoboardWeb extends WebPlugin {\n constructor() {\n super();\n console.log(\"IOBoard Web Plugin v2.0 initialized\");\n }\n async connect(options) {\n console.log(\"Web: Connecting to IOBoard...\", options);\n await new Promise(resolve => setTimeout(resolve, 1000));\n return { success: true, message: `Connected to IOBoard at ${options.portPath}` };\n }\n async disconnect() {\n console.log(\"Web: Disconnecting from IOBoard...\");\n return { success: true, message: \"Disconnected from IOBoard\" };\n }\n async isConnected() {\n return { connected: false, portPath: null };\n }\n async listPorts() {\n console.log(\"Web: Listing available ports...\");\n const ports = [\"/dev/ttyS0\", \"/dev/ttyS1\", \"/dev/ttyS2\", \"/dev/ttyUSB0\", \"COM1\", \"COM2\", \"COM3\"];\n return { success: true, ports };\n }\n async getStatus(options) {\n console.log(\"Web: Getting device status...\", options);\n await new Promise(resolve => setTimeout(resolve, 100));\n return {\n success: true,\n status: {\n address: options.address,\n connected: true,\n firmwareVersion: \"2.1.0\",\n palletStates: Array(8).fill(false),\n temperature: 25.5,\n voltage: 12.0,\n uptime: 86400\n }\n };\n }\n async unlockPallet(options) {\n console.log(\"Web: Unlocking pallet...\", options);\n await new Promise(resolve => setTimeout(resolve, 200));\n return {\n success: true,\n message: `Pallet ${options.palletNumber} unlocked with RGB(${options.red}, ${options.green}, ${options.blue})`\n };\n }\n async controlMultiplePallets(options) {\n console.log(\"Web: Controlling multiple pallets...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n const { address, color, intensity, blinkTimes, blinkSpeed, pallets } = options;\n return {\n success: true,\n message: `Controlled ${pallets.length} pallets with ${color} color at ${intensity}% intensity`,\n details: {\n address,\n color,\n intensity,\n blinkTimes,\n blinkSpeed,\n palletsControlled: pallets\n }\n };\n }\n async executeMultipleActions(options) {\n console.log(\"Web: Executing multiple actions...\", options);\n const { actions, delayBetweenCommands = 100 } = options;\n await new Promise(resolve => setTimeout(resolve, actions.length * (delayBetweenCommands + 50)));\n return {\n success: true,\n totalActions: actions.length,\n successCount: actions.length,\n failCount: 0,\n message: `All ${actions.length} actions executed successfully`\n };\n }\n async controlMultiple(options) {\n console.log(\"Web: Controlling multiple LEDs...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n return { success: true, message: `Controlled ${options.leds.length} LEDs successfully` };\n }\n async startOTAUpdate(options) {\n console.log(\"Web: Starting OTA update...\", options);\n await new Promise(resolve => setTimeout(resolve, 500));\n return { success: true, message: `OTA update started for ${options.fileName} (${options.fileSize} bytes)` };\n }\n async sendOTAData(options) {\n console.log(\"Web: Sending OTA data packet...\", options.packetNumber);\n await new Promise(resolve => setTimeout(resolve, 50));\n if (Math.random() < 0.05) {\n return { success: false, error: `Packet ${options.packetNumber} transmission failed` };\n }\n return { success: true, message: `OTA packet ${options.packetNumber} sent successfully` };\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -304,6 +304,18 @@ var capacitorIoboard = (function (exports, core) {
|
|
|
304
304
|
}
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
+
async executeMultipleActions(options) {
|
|
308
|
+
console.log("Web: Executing multiple actions...", options);
|
|
309
|
+
const { actions, delayBetweenCommands = 100 } = options;
|
|
310
|
+
await new Promise(resolve => setTimeout(resolve, actions.length * (delayBetweenCommands + 50)));
|
|
311
|
+
return {
|
|
312
|
+
success: true,
|
|
313
|
+
totalActions: actions.length,
|
|
314
|
+
successCount: actions.length,
|
|
315
|
+
failCount: 0,
|
|
316
|
+
message: `All ${actions.length} actions executed successfully`
|
|
317
|
+
};
|
|
318
|
+
}
|
|
307
319
|
async controlMultiple(options) {
|
|
308
320
|
console.log("Web: Controlling multiple LEDs...", options);
|
|
309
321
|
await new Promise(resolve => setTimeout(resolve, 300));
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/protocol.js","esm/index.js","esm/web.js"],"sourcesContent":["// Protocol Constants\nexport const IOBOARD_PROTOCOL = {\n SOI: 0x0D,\n EOI: 0x0A,\n FRAME_TYPES: {\n STATUS_QUERY: 0x00,\n SINGLE_PALLET: 0x01,\n FULL_PALLET: 0x02,\n OTA_REQUEST: 0xF1,\n OTA_DATA: 0xF2,\n OTA_RESPONSE: 0xF3\n },\n DEFAULT_BAUD_RATE: 115200,\n DEFAULT_DATA_BITS: 8,\n DEFAULT_STOP_BITS: 1,\n DEFAULT_PARITY: 'none',\n DEFAULT_TIMEOUT: 5000,\n // Address range\n MIN_ADDRESS: 1,\n MAX_ADDRESS: 63,\n // Pallet range\n MIN_PALLET: 0,\n MAX_PALLET: 7,\n // OTA Constants\n OTA_PACKET_SIZE: 128,\n // Response codes\n OTA_RESPONSES: {\n AREA_REQUEST: 0x26,\n REQUEST_A_ZONE: 0x41,\n REQUEST_B_ZONE: 0x42,\n DATA_REQUEST: 0x23,\n COMPLETION: 0x4F,\n ERROR: 0x45, // 'E'\n },\n // Error codes\n OTA_ERROR_CODES: {\n ILLEGAL_VERSION: 9,\n NON_OTA_STATUS: 8,\n WRITE_FAILED: 7,\n VERIFICATION_FAILED: 6,\n TRANSFER_FAILED: 5\n }\n};\n","/**\n * IOBOARD Protocol utilities for frame construction and parsing\n */\nexport class IOBoardProtocol {\n /**\n * Calculate CRC-16 CCITT checksum\n */\n static calculateCRC16(data) {\n let crc = 0xFFFF;\n for (const byte of data) {\n crc ^= (byte << 8);\n for (let bit = 0; bit < 8; bit++) {\n if (crc & 0x8000) {\n crc = (crc << 1) ^ 0x1021;\n }\n else {\n crc = crc << 1;\n }\n crc &= 0xFFFF;\n }\n }\n return crc;\n }\n /**\n * Build a command frame for IOBOARD\n */\n static buildFrame(address, frameType, data) {\n const frame = [];\n // SOI\n frame.push(0x0D);\n // Address\n frame.push(address);\n // Frame Type\n frame.push(frameType);\n // Data\n frame.push(...data);\n // Calculate CRC for address + frameType + data\n const crcData = [address, frameType, ...data];\n const crc = this.calculateCRC16(crcData);\n // CRC (high byte first)\n frame.push((crc >> 8) & 0xFF);\n frame.push(crc & 0xFF);\n // EOI\n frame.push(0x0A);\n return frame;\n }\n /**\n * Parse a response frame from IOBOARD\n */\n static parseFrame(frame) {\n if (frame.length < 6) {\n return { success: false, error: 'Frame too short' };\n }\n // Check SOI and EOI\n if (frame[0] !== 0x0D || frame[frame.length - 1] !== 0x0A) {\n return { success: false, error: 'Invalid frame markers' };\n }\n const address = frame[1];\n const frameType = frame[2];\n const dataLength = frame.length - 6; // SOI + Address + FrameType + CRC(2) + EOI\n const data = frame.slice(3, 3 + dataLength);\n // Extract CRC from frame\n const receivedCRC = (frame[frame.length - 3] << 8) | frame[frame.length - 2];\n // Calculate expected CRC\n const crcData = [address, frameType, ...data];\n const expectedCRC = this.calculateCRC16(crcData);\n if (receivedCRC !== expectedCRC) {\n return {\n success: false,\n error: `CRC mismatch: expected ${expectedCRC.toString(16)}, got ${receivedCRC.toString(16)}`\n };\n }\n return {\n success: true,\n address,\n frameType,\n data\n };\n }\n /**\n * Build status query frame\n */\n static buildStatusQuery(address) {\n return this.buildFrame(address, 0x00, []);\n }\n /**\n * Build single pallet control frame\n */\n static buildSinglePalletControl(address, palletNumber, doorLock, ledControl) {\n const data = [];\n // Pallet number\n data.push(palletNumber);\n // Door lock control (1 = unlock, 0 = no action)\n data.push(doorLock ? 1 : 0);\n // LED control (6 bytes)\n data.push(ledControl.red);\n data.push(ledControl.green);\n data.push(ledControl.blue);\n data.push(ledControl.intensity);\n data.push(ledControl.blinkTimes);\n data.push(ledControl.blinkSpeed);\n return this.buildFrame(address, 0x01, data);\n }\n /**\n * Build full pallet control frame\n */\n static buildFullPalletControl(address, doorLockControl, extendedControl, ledControls) {\n const data = [];\n // Door lock control (8-bit mask)\n data.push(doorLockControl);\n // Extended control\n data.push(extendedControl);\n // LED controls for 8 pallets (48 bytes total)\n for (let i = 0; i < 8; i++) {\n const led = ledControls[i] || {\n red: 0, green: 0, blue: 0,\n intensity: 0, blinkTimes: 0, blinkSpeed: 0\n };\n data.push(led.red);\n data.push(led.green);\n data.push(led.blue);\n data.push(led.intensity);\n data.push(led.blinkTimes);\n data.push(led.blinkSpeed);\n }\n return this.buildFrame(address, 0x02, data);\n }\n /**\n * Build OTA notification frame\n */\n static buildOTANotification(address, majorVersion, minorVersion, patchVersion, firmwareSize) {\n const data = [];\n // Version (3 bytes)\n data.push(majorVersion);\n data.push(minorVersion);\n data.push(patchVersion);\n // Firmware size (4 bytes, little-endian)\n data.push(firmwareSize & 0xFF);\n data.push((firmwareSize >> 8) & 0xFF);\n data.push((firmwareSize >> 16) & 0xFF);\n data.push((firmwareSize >> 24) & 0xFF);\n return this.buildFrame(address, 0xF1, data);\n }\n /**\n * Build OTA data frame\n */\n static buildOTAData(address, packetNumber, data) {\n const frameData = [];\n // Packet number (4 bytes, little-endian)\n frameData.push(packetNumber & 0xFF);\n frameData.push((packetNumber >> 8) & 0xFF);\n frameData.push((packetNumber >> 16) & 0xFF);\n frameData.push((packetNumber >> 24) & 0xFF);\n // Data bytes (up to 128 bytes)\n for (let i = 0; i < data.length; i++) {\n frameData.push(data[i]);\n }\n return this.buildFrame(address, 0xF2, frameData);\n }\n /**\n * Parse status response\n */\n static parseStatusResponse(data) {\n if (data.length < 4) {\n return null;\n }\n return {\n doorLockStatus: data[0],\n softwareVersion: {\n major: data[1],\n minor: data[2],\n patch: data[3]\n }\n };\n }\n /**\n * Convert frame to hex string for debugging\n */\n static frameToHex(frame) {\n return frame.map(b => b.toString(16).padStart(2, '0')).join(' ').toUpperCase();\n }\n /**\n * Convert hex string to frame\n */\n static hexToFrame(hex) {\n return hex.split(' ')\n .map(h => h.trim())\n .filter(h => h.length > 0)\n .map(h => parseInt(h, 16));\n }\n}\n","import { registerPlugin } from '@capacitor/core';\nconst CapacitorIoboard = registerPlugin('CapacitorIoboard', {\n web: () => import('./web').then(m => new m.CapacitorIoboardWeb()),\n});\nexport * from './definitions';\nexport * from './protocol';\nexport { CapacitorIoboard };\n","import { WebPlugin } from \"@capacitor/core\";\nexport class CapacitorIoboardWeb extends WebPlugin {\n constructor() {\n super();\n console.log(\"IOBoard Web Plugin v2.0 initialized\");\n }\n async connect(options) {\n console.log(\"Web: Connecting to IOBoard...\", options);\n await new Promise(resolve => setTimeout(resolve, 1000));\n return { success: true, message: `Connected to IOBoard at ${options.portPath}` };\n }\n async disconnect() {\n console.log(\"Web: Disconnecting from IOBoard...\");\n return { success: true, message: \"Disconnected from IOBoard\" };\n }\n async isConnected() {\n return { connected: false, portPath: null };\n }\n async listPorts() {\n console.log(\"Web: Listing available ports...\");\n const ports = [\"/dev/ttyS0\", \"/dev/ttyS1\", \"/dev/ttyS2\", \"/dev/ttyUSB0\", \"COM1\", \"COM2\", \"COM3\"];\n return { success: true, ports };\n }\n async getStatus(options) {\n console.log(\"Web: Getting device status...\", options);\n await new Promise(resolve => setTimeout(resolve, 100));\n return {\n success: true,\n status: {\n address: options.address,\n connected: true,\n firmwareVersion: \"2.1.0\",\n palletStates: Array(8).fill(false),\n temperature: 25.5,\n voltage: 12.0,\n uptime: 86400\n }\n };\n }\n async unlockPallet(options) {\n console.log(\"Web: Unlocking pallet...\", options);\n await new Promise(resolve => setTimeout(resolve, 200));\n return {\n success: true,\n message: `Pallet ${options.palletNumber} unlocked with RGB(${options.red}, ${options.green}, ${options.blue})`\n };\n }\n async controlMultiplePallets(options) {\n console.log(\"Web: Controlling multiple pallets...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n const { address, color, intensity, blinkTimes, blinkSpeed, pallets } = options;\n return {\n success: true,\n message: `Controlled ${pallets.length} pallets with ${color} color at ${intensity}% intensity`,\n details: {\n address,\n color,\n intensity,\n blinkTimes,\n blinkSpeed,\n palletsControlled: pallets\n }\n };\n }\n async controlMultiple(options) {\n console.log(\"Web: Controlling multiple LEDs...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n return { success: true, message: `Controlled ${options.leds.length} LEDs successfully` };\n }\n async startOTAUpdate(options) {\n console.log(\"Web: Starting OTA update...\", options);\n await new Promise(resolve => setTimeout(resolve, 500));\n return { success: true, message: `OTA update started for ${options.fileName} (${options.fileSize} bytes)` };\n }\n async sendOTAData(options) {\n console.log(\"Web: Sending OTA data packet...\", options.packetNumber);\n await new Promise(resolve => setTimeout(resolve, 50));\n if (Math.random() < 0.05) {\n return { success: false, error: `Packet ${options.packetNumber} transmission failed` };\n }\n return { success: true, message: `OTA packet ${options.packetNumber} sent successfully` };\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/protocol.js","esm/index.js","esm/web.js"],"sourcesContent":["// Protocol Constants\nexport const IOBOARD_PROTOCOL = {\n SOI: 0x0D,\n EOI: 0x0A,\n FRAME_TYPES: {\n STATUS_QUERY: 0x00,\n SINGLE_PALLET: 0x01,\n FULL_PALLET: 0x02,\n OTA_REQUEST: 0xF1,\n OTA_DATA: 0xF2,\n OTA_RESPONSE: 0xF3\n },\n DEFAULT_BAUD_RATE: 115200,\n DEFAULT_DATA_BITS: 8,\n DEFAULT_STOP_BITS: 1,\n DEFAULT_PARITY: 'none',\n DEFAULT_TIMEOUT: 5000,\n // Address range\n MIN_ADDRESS: 1,\n MAX_ADDRESS: 63,\n // Pallet range\n MIN_PALLET: 0,\n MAX_PALLET: 7,\n // OTA Constants\n OTA_PACKET_SIZE: 128,\n // Response codes\n OTA_RESPONSES: {\n AREA_REQUEST: 0x26,\n REQUEST_A_ZONE: 0x41,\n REQUEST_B_ZONE: 0x42,\n DATA_REQUEST: 0x23,\n COMPLETION: 0x4F,\n ERROR: 0x45, // 'E'\n },\n // Error codes\n OTA_ERROR_CODES: {\n ILLEGAL_VERSION: 9,\n NON_OTA_STATUS: 8,\n WRITE_FAILED: 7,\n VERIFICATION_FAILED: 6,\n TRANSFER_FAILED: 5\n }\n};\n","/**\n * IOBOARD Protocol utilities for frame construction and parsing\n */\nexport class IOBoardProtocol {\n /**\n * Calculate CRC-16 CCITT checksum\n */\n static calculateCRC16(data) {\n let crc = 0xFFFF;\n for (const byte of data) {\n crc ^= (byte << 8);\n for (let bit = 0; bit < 8; bit++) {\n if (crc & 0x8000) {\n crc = (crc << 1) ^ 0x1021;\n }\n else {\n crc = crc << 1;\n }\n crc &= 0xFFFF;\n }\n }\n return crc;\n }\n /**\n * Build a command frame for IOBOARD\n */\n static buildFrame(address, frameType, data) {\n const frame = [];\n // SOI\n frame.push(0x0D);\n // Address\n frame.push(address);\n // Frame Type\n frame.push(frameType);\n // Data\n frame.push(...data);\n // Calculate CRC for address + frameType + data\n const crcData = [address, frameType, ...data];\n const crc = this.calculateCRC16(crcData);\n // CRC (high byte first)\n frame.push((crc >> 8) & 0xFF);\n frame.push(crc & 0xFF);\n // EOI\n frame.push(0x0A);\n return frame;\n }\n /**\n * Parse a response frame from IOBOARD\n */\n static parseFrame(frame) {\n if (frame.length < 6) {\n return { success: false, error: 'Frame too short' };\n }\n // Check SOI and EOI\n if (frame[0] !== 0x0D || frame[frame.length - 1] !== 0x0A) {\n return { success: false, error: 'Invalid frame markers' };\n }\n const address = frame[1];\n const frameType = frame[2];\n const dataLength = frame.length - 6; // SOI + Address + FrameType + CRC(2) + EOI\n const data = frame.slice(3, 3 + dataLength);\n // Extract CRC from frame\n const receivedCRC = (frame[frame.length - 3] << 8) | frame[frame.length - 2];\n // Calculate expected CRC\n const crcData = [address, frameType, ...data];\n const expectedCRC = this.calculateCRC16(crcData);\n if (receivedCRC !== expectedCRC) {\n return {\n success: false,\n error: `CRC mismatch: expected ${expectedCRC.toString(16)}, got ${receivedCRC.toString(16)}`\n };\n }\n return {\n success: true,\n address,\n frameType,\n data\n };\n }\n /**\n * Build status query frame\n */\n static buildStatusQuery(address) {\n return this.buildFrame(address, 0x00, []);\n }\n /**\n * Build single pallet control frame\n */\n static buildSinglePalletControl(address, palletNumber, doorLock, ledControl) {\n const data = [];\n // Pallet number\n data.push(palletNumber);\n // Door lock control (1 = unlock, 0 = no action)\n data.push(doorLock ? 1 : 0);\n // LED control (6 bytes)\n data.push(ledControl.red);\n data.push(ledControl.green);\n data.push(ledControl.blue);\n data.push(ledControl.intensity);\n data.push(ledControl.blinkTimes);\n data.push(ledControl.blinkSpeed);\n return this.buildFrame(address, 0x01, data);\n }\n /**\n * Build full pallet control frame\n */\n static buildFullPalletControl(address, doorLockControl, extendedControl, ledControls) {\n const data = [];\n // Door lock control (8-bit mask)\n data.push(doorLockControl);\n // Extended control\n data.push(extendedControl);\n // LED controls for 8 pallets (48 bytes total)\n for (let i = 0; i < 8; i++) {\n const led = ledControls[i] || {\n red: 0, green: 0, blue: 0,\n intensity: 0, blinkTimes: 0, blinkSpeed: 0\n };\n data.push(led.red);\n data.push(led.green);\n data.push(led.blue);\n data.push(led.intensity);\n data.push(led.blinkTimes);\n data.push(led.blinkSpeed);\n }\n return this.buildFrame(address, 0x02, data);\n }\n /**\n * Build OTA notification frame\n */\n static buildOTANotification(address, majorVersion, minorVersion, patchVersion, firmwareSize) {\n const data = [];\n // Version (3 bytes)\n data.push(majorVersion);\n data.push(minorVersion);\n data.push(patchVersion);\n // Firmware size (4 bytes, little-endian)\n data.push(firmwareSize & 0xFF);\n data.push((firmwareSize >> 8) & 0xFF);\n data.push((firmwareSize >> 16) & 0xFF);\n data.push((firmwareSize >> 24) & 0xFF);\n return this.buildFrame(address, 0xF1, data);\n }\n /**\n * Build OTA data frame\n */\n static buildOTAData(address, packetNumber, data) {\n const frameData = [];\n // Packet number (4 bytes, little-endian)\n frameData.push(packetNumber & 0xFF);\n frameData.push((packetNumber >> 8) & 0xFF);\n frameData.push((packetNumber >> 16) & 0xFF);\n frameData.push((packetNumber >> 24) & 0xFF);\n // Data bytes (up to 128 bytes)\n for (let i = 0; i < data.length; i++) {\n frameData.push(data[i]);\n }\n return this.buildFrame(address, 0xF2, frameData);\n }\n /**\n * Parse status response\n */\n static parseStatusResponse(data) {\n if (data.length < 4) {\n return null;\n }\n return {\n doorLockStatus: data[0],\n softwareVersion: {\n major: data[1],\n minor: data[2],\n patch: data[3]\n }\n };\n }\n /**\n * Convert frame to hex string for debugging\n */\n static frameToHex(frame) {\n return frame.map(b => b.toString(16).padStart(2, '0')).join(' ').toUpperCase();\n }\n /**\n * Convert hex string to frame\n */\n static hexToFrame(hex) {\n return hex.split(' ')\n .map(h => h.trim())\n .filter(h => h.length > 0)\n .map(h => parseInt(h, 16));\n }\n}\n","import { registerPlugin } from '@capacitor/core';\nconst CapacitorIoboard = registerPlugin('CapacitorIoboard', {\n web: () => import('./web').then(m => new m.CapacitorIoboardWeb()),\n});\nexport * from './definitions';\nexport * from './protocol';\nexport { CapacitorIoboard };\n","import { WebPlugin } from \"@capacitor/core\";\nexport class CapacitorIoboardWeb extends WebPlugin {\n constructor() {\n super();\n console.log(\"IOBoard Web Plugin v2.0 initialized\");\n }\n async connect(options) {\n console.log(\"Web: Connecting to IOBoard...\", options);\n await new Promise(resolve => setTimeout(resolve, 1000));\n return { success: true, message: `Connected to IOBoard at ${options.portPath}` };\n }\n async disconnect() {\n console.log(\"Web: Disconnecting from IOBoard...\");\n return { success: true, message: \"Disconnected from IOBoard\" };\n }\n async isConnected() {\n return { connected: false, portPath: null };\n }\n async listPorts() {\n console.log(\"Web: Listing available ports...\");\n const ports = [\"/dev/ttyS0\", \"/dev/ttyS1\", \"/dev/ttyS2\", \"/dev/ttyUSB0\", \"COM1\", \"COM2\", \"COM3\"];\n return { success: true, ports };\n }\n async getStatus(options) {\n console.log(\"Web: Getting device status...\", options);\n await new Promise(resolve => setTimeout(resolve, 100));\n return {\n success: true,\n status: {\n address: options.address,\n connected: true,\n firmwareVersion: \"2.1.0\",\n palletStates: Array(8).fill(false),\n temperature: 25.5,\n voltage: 12.0,\n uptime: 86400\n }\n };\n }\n async unlockPallet(options) {\n console.log(\"Web: Unlocking pallet...\", options);\n await new Promise(resolve => setTimeout(resolve, 200));\n return {\n success: true,\n message: `Pallet ${options.palletNumber} unlocked with RGB(${options.red}, ${options.green}, ${options.blue})`\n };\n }\n async controlMultiplePallets(options) {\n console.log(\"Web: Controlling multiple pallets...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n const { address, color, intensity, blinkTimes, blinkSpeed, pallets } = options;\n return {\n success: true,\n message: `Controlled ${pallets.length} pallets with ${color} color at ${intensity}% intensity`,\n details: {\n address,\n color,\n intensity,\n blinkTimes,\n blinkSpeed,\n palletsControlled: pallets\n }\n };\n }\n async executeMultipleActions(options) {\n console.log(\"Web: Executing multiple actions...\", options);\n const { actions, delayBetweenCommands = 100 } = options;\n await new Promise(resolve => setTimeout(resolve, actions.length * (delayBetweenCommands + 50)));\n return {\n success: true,\n totalActions: actions.length,\n successCount: actions.length,\n failCount: 0,\n message: `All ${actions.length} actions executed successfully`\n };\n }\n async controlMultiple(options) {\n console.log(\"Web: Controlling multiple LEDs...\", options);\n await new Promise(resolve => setTimeout(resolve, 300));\n return { success: true, message: `Controlled ${options.leds.length} LEDs successfully` };\n }\n async startOTAUpdate(options) {\n console.log(\"Web: Starting OTA update...\", options);\n await new Promise(resolve => setTimeout(resolve, 500));\n return { success: true, message: `OTA update started for ${options.fileName} (${options.fileSize} bytes)` };\n }\n async sendOTAData(options) {\n console.log(\"Web: Sending OTA data packet...\", options.packetNumber);\n await new Promise(resolve => setTimeout(resolve, 50));\n if (Math.random() < 0.05) {\n return { success: false, error: `Packet ${options.packetNumber} transmission failed` };\n }\n return { success: true, message: `OTA packet ${options.packetNumber} sent successfully` };\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leonardojc/capacitor-ioboard",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
4
|
"description": "A comprehensive Capacitor plugin for IOBoard devices with integrated serial communication and complete MTC3P08L protocol support including OTA updates",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|