{"_id":"@elense/nestjs-serial-port","_rev":"5-a840a7631f91dd17df26a1acce5d7b33","name":"@elense/nestjs-serial-port","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@elense/nestjs-serial-port","version":"0.0.1","dependencies":{"serialport":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.1","gitHead":"edbc6de27504d8e836cbbe0148f175b5349fd078","description":"This library was generated with [Nx](https://nx.dev).","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-CCCpsGPZhyad+IUw/2NSdNDTb42Asyl2HqjaXDDqCrwJ5Bcuk+xlvzt4GLCLJZbmCnohzdY9nrYz7gGV2q0JhA==","shasum":"07b80609854f893ee236ff552298a04d69bc5292","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.1.tgz","fileCount":68,"unpackedSize":54027,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID20HPoscq2l9RoAPt4uuciVMFvb2ui/oeEj32entFm4AiEA8WHlPWyMcGB2IeMcRNKdiOfMNY1MX8zDlCP8SToT+r4="}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.1_1703868813568_0.21396442253882753"},"_hasShrinkwrap":false},"0.0.2":{"name":"@elense/nestjs-serial-port","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"version":"0.0.2","dependencies":{"serialport":"^12.0.0","@serialport/bindings-cpp":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.2","gitHead":"5a2b4b1029154639e441724a116a443b2fdcee34","description":"This library was generated with [Nx](https://nx.dev).","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-DmdcM0bL8oQfh/g+olncEmd9DnMbmnfko70YxhYdVhmAXpm60h4OV7xKkvpGwkeSK+OYeWo48lbLlCMH9wbf6g==","shasum":"00adcfb8471566d0cef109d9c815caa60b4d1141","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.2.tgz","fileCount":68,"unpackedSize":54168,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLSj4irbCtTPKXCBcm5agulqZo1mSJHy4ylT60lR1BKAiBklG2yFplyAQxSdIx0n2f2ZMx9Bz+n4AMpkyhe3oxMsw=="}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.2_1703871348268_0.2592735681394869"},"_hasShrinkwrap":false},"0.0.3":{"name":"@elense/nestjs-serial-port","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"version":"0.0.3","dependencies":{"serialport":"^12.0.0","@serialport/bindings-cpp":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.3","gitHead":"ecc3a5353521b0746d66e93036fac6864bfa5ec6","description":"# Overview This library is a NestJS wrapper around [serialport](https://serialport.io/) library. Messages received from device are emitted as NestJS events.  Messages sent to the device can be sent via ArduinoSerialPortConnectionService or via CQRS SendMe","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-98VRr1lw/rGGFt5nMR2+M6sqyuieTDXICpaNwYswZX6qUsTvQ4UmwZC0rMLJBtAaA6jKeQrlbMG9KHunPTHCZA==","shasum":"de8aaa2a80a2414942b47d15b62412118d6adf0c","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.3.tgz","fileCount":68,"unpackedSize":61620,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu+rA6h7Ng6Z7+KpFvAPRthrmFuBltQUARBxC2ZtE1lQIhAMqMsrw5fqtNji3tNWVSOKisfTeW2oDruS3nGJftN3Qs"}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.3_1703874288925_0.5249993599552305"},"_hasShrinkwrap":false},"0.0.4":{"name":"@elense/nestjs-serial-port","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/elense-software/nestjs-serial-port.git","directory":"@elense/nestjs-serial-port"},"version":"0.0.4","dependencies":{"serialport":"^12.0.0","@serialport/bindings-cpp":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.4","gitHead":"ecc3a5353521b0746d66e93036fac6864bfa5ec6","description":"# Announcement: - The package is relatively new, it's still developed.","bugs":{"url":"https://github.com/elense-software/nestjs-serial-port/issues"},"homepage":"https://github.com/elense-software/nestjs-serial-port#readme","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-qri+kSZQ67M/Qn5LUtmJONdvBfj7i6Snm1RJgd3JTV12jHQ2k4md629TVIuWp1K1pi2pEdUPhVXHjdnWYihrOw==","shasum":"71ac9333fb5940aa8637a67b1a768ee29a8c1543","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.4.tgz","fileCount":68,"unpackedSize":61853,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAjZr7nFf+QlbPWb+yrpXXKjnSIqbnP3cZWcH3uryH+uAiAS9/1T/C3MLg+EeEIytFQpUUhPDzcW65/2KYBs77W9uw=="}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.4_1703926818283_0.05189526654957999"},"_hasShrinkwrap":false},"0.0.5":{"name":"@elense/nestjs-serial-port","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/elense-software/nestjs-serial-port.git","directory":"@elense/nestjs-serial-port"},"version":"0.0.5","dependencies":{"serialport":"^12.0.0","@serialport/bindings-cpp":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.5","gitHead":"ed525305d3b8ea571ba9aefab97f42d941eab6d9","description":"# Announcement: - The package is relatively new, it's still developed.","bugs":{"url":"https://github.com/elense-software/nestjs-serial-port/issues"},"homepage":"https://github.com/elense-software/nestjs-serial-port#readme","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-8Jw71D1Ge9jkstGtN2WS4rHVF26DFHR8C7tzr1/pJTWDDPDgZ4z6ukdeUObHPW4Erw3PeAi8yr+AbnSmP3gLdw==","shasum":"5f74daf12307d1330445d14e2d0141779186cd1a","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.5.tgz","fileCount":47,"unpackedSize":47077,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIETnxppGUBxewqeBXN9itkYg/WvQ4DsujLJxc+TYsGMjAiEAszdQeEfIzDIooa5TLn0LFt7npgQr/khETtIBnNCdvzM="}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.5_1704227450164_0.7627245645255558"},"_hasShrinkwrap":false},"0.0.6":{"name":"@elense/nestjs-serial-port","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/elense-software/nestjs-serial-port.git","directory":"@elense/nestjs-serial-port"},"version":"0.0.6","dependencies":{"serialport":"^12.0.0","@serialport/bindings-cpp":"^12.0.0","socket.io-client":"^4.7.2","typescript":"^5.3.2","@nestjs/common":"^10.0.2","@nestjs/core":"^10.0.2","@nestjs/cqrs":"^10.2.6","@nestjs/event-emitter":"^2.0.3","@nestjs/platform-express":"^10.0.2","@nestjs/schedule":"^4.0.0","@serialport/stream":"^12.0.0","axios":"^1.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","rxjs":"^7.8.0","tslib":"^2.3.0"},"devDependencies":{"@nestjs/testing":"^10.0.2"},"type":"commonjs","main":"./src/index.js","typings":"./src/index.d.ts","_id":"@elense/nestjs-serial-port@0.0.6","gitHead":"cc444cc751349a8c356fb344bb9c8c444b67bea8","description":"# Announcement: - The package is relatively new, it's still developed.","bugs":{"url":"https://github.com/elense-software/nestjs-serial-port/issues"},"homepage":"https://github.com/elense-software/nestjs-serial-port#readme","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-Y9OJelqLZWpavEtI+gqaTXkhpc9uuW2Qqn3OOL8HZo7mBzHT3ZsOOS6fb/NO5BrL8IPYxxB/uU/G9BSfbyoUoA==","shasum":"09ae3f65c3f55a1dd56dc88a564e361d79ce3f1b","tarball":"https://registry.npmjs.org/@elense/nestjs-serial-port/-/nestjs-serial-port-0.0.6.tgz","fileCount":68,"unpackedSize":60424,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG855JWY/rHIy70uC+kYoCYEJFP7VSzP/wlDDhx7U6XqAiEA6lw6+8fXSWjCEz+j3Dm/5Lk1+M6pii+WyKz1jX3hoYs="}]},"_npmUser":{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"},"directories":{},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-serial-port_0.0.6_1704229733721_0.6954490702028171"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-29T16:53:33.459Z","0.0.1":"2023-12-29T16:53:33.718Z","modified":"2024-01-02T21:08:54.077Z","0.0.2":"2023-12-29T17:35:48.504Z","0.0.3":"2023-12-29T18:24:49.124Z","0.0.4":"2023-12-30T09:00:18.465Z","0.0.5":"2024-01-02T20:30:50.348Z","0.0.6":"2024-01-02T21:08:53.872Z"},"maintainers":[{"name":"elenseuser","email":"radoslaw.landowski@gmail.com"}],"description":"# Announcement: - The package is relatively new, it's still developed.","readme":"# nestjs-serial-port\n\n# Announcement:\n- The package is relatively new, it's still developed. \n\n# Overview\nThis library is a NestJS wrapper around [serialport](https://serialport.io/) library.\nMessages received from device are emitted as NestJS events. \nMessages sent to the device can be sent via ArduinoSerialPortConnectionService or via CQRS SendMessageCommand\n\nThe message sent to device is put between <>, for example:\n<dp,10,1>\n- dp - hardwareEventName - the only required field, it's used to identify the message type and determine proper event to be sent in NestJS app\n- 10,1 - payload of the event\n- Message elements are divided by comma, payload is optional, valid messages are:\n- <dp,10,1>, <dp>, <dp,Some name,Another name,12,123.9>, <dp,10,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15>\n- Receiving the message from device is done by ReadlineParser which expects the message to be terminated by \\n\n\n# How to\n- Connect your Serial Device to your machine\n- Upload the Arduino code listed below\n- Find the device path with `npx @serialport/list` or any other command line tool. Mine is: '/dev/tty.usbserial-1420'\n- Specify the configuration params: baudRate and targetDeviceSerialPortBufferSize (for Arduino it's 64)\n- Send messages to the device via ArduinoSerialPortConnectionService. Receive messages via NestJS event handlers by defining proper HardwareMessages using @HardwareMessage annotation.\n\n\n# Example: (Based on empty NestJS project)\n- Create the `pin-value-changed-hardware.message` and `pin-value-changed-hardware-message.handler`. \n- Register the `pin-value-changed-hardware-message.handler` as provider\n- Register the `pin-value-changed-hardware.message` into the hardwareMessages array in NestjsSerialPortModule config.\n- Add calling the arduinoSerialPortConnectionService.connect() in the AppModule constructor\n- Add calling the ardu in the AppController\n\n- Calling the controller sends message to the Device <dp,7> which in Arduino code is interpreted as 'Read the digital pin nr 7'. \n- Arduino responds with a hardcoded <dp,7,1> which is interpreted as 'The value of the digital pin nr 7 is 1'. The message is received by the NestJS app and sent to the handler which logs the message.\n\n```typescript\nimport {Module, OnModuleInit} from '@nestjs/common';\n\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\nimport {NestjsSerialPortModule} from \"@elense/nestjs-serial-port\";\nimport {EventEmitterModule} from \"@nestjs/event-emitter\";\nimport {PinValueChangedHardwareMessage} from \"./message/events/pin-value-changed-hardware.message\";\nimport {\n  PinValueChangedHardwareMessageHandler\n} from \"./message/event-handlers/pin-value-changed-hardware-message.handler\";\nimport {\n  ArduinoSerialPortConnectionService\n} from \"@elense/nestjs-serial-port/src/lib/hardware/arduino.serial.port.connection.service\";\n\n@Module({\n  imports: [\n    EventEmitterModule.forRoot({\n      wildcard: true,\n    }),\n    NestjsSerialPortModule.register({\n      baudRate: 9600,\n      deviceInfo: {devicePath: '/dev/tty.usbserial-1420'}, // Original Arduino: {vendorId: '2341', productId: '0043'};\n      targetDeviceSerialPortBufferSize: 64,\n      hardwareMessages: [\n        PinValueChangedHardwareMessage\n      ]\n    })\n  ],\n  controllers: [AppController],\n  providers: [AppService, PinValueChangedHardwareMessageHandler],\n})\nexport class AppModule implements OnModuleInit {\n  constructor(readonly service: ArduinoSerialPortConnectionService) {\n  }\n\n  async onModuleInit(): Promise<void> {\n    await this.service.connect()\n  }\n}\n```\n\nMessage Definition:\n```typescript\nimport {HardwareMessage} from \"@elense/nestjs-serial-port/src/lib/hardware/hardware-message-decorators\";\nimport {FromHardwareMessage} from \"@elense/nestjs-serial-port/src/lib/hardware/from-hardware-message\";\n\nexport const FROM_DEVICE_PIN_VALUE_CHANGED_EVENT = 'from-device.pin-value-changed'\n\n@HardwareMessage('dp', FROM_DEVICE_PIN_VALUE_CHANGED_EVENT, \"<dp,10,1>\")\nexport class PinValueChangedHardwareMessage implements FromHardwareMessage<PinValueChangedHardwareMessage> {\n  constructor(readonly hardwareEventName: string, readonly pin: string, readonly value: string) {\n  }\n}\n```\n\nMessage handler:\n```typescript\nimport {OnEvent} from \"@nestjs/event-emitter\";\nimport {Injectable, Logger} from \"@nestjs/common\";\nimport {\n  FROM_DEVICE_PIN_VALUE_CHANGED_EVENT,\n  PinValueChangedHardwareMessage\n} from \"../events/pin-value-changed-hardware.message\";\n\n@Injectable()\nexport class PinValueChangedHardwareMessageHandler {\n\n  constructor() {\n  }\n\n  @OnEvent(FROM_DEVICE_PIN_VALUE_CHANGED_EVENT, {async: true})\n  async handle(event: PinValueChangedHardwareMessage) {\n    Logger.log(`Received event about hardware pin value changed: ${JSON.stringify(event)}`, 'from-device')\n  }\n}\n```\n\n```typescript\nimport { Controller, Get } from '@nestjs/common';\n\nimport {\n  ArduinoSerialPortConnectionService\n} from \"@elense/nestjs-serial-port/src/lib/hardware/arduino.serial.port.connection.service\";\nimport {DefaultAppMessage} from \"@elense/nestjs-serial-port/src/lib/hardware/app-message\";\n\n@Controller()\nexport class AppController {\n  constructor(private readonly service: ArduinoSerialPortConnectionService) {}\n\n  @Get()\n  getData() {\n    return this.service.write(new DefaultAppMessage(['dp', '7']))\n  }\n}\n\n```\n\nArduino code:\n\n```text\n// Example 5 - Receive with start- and end-markers combined with parsing\n\nconst byte numChars = 32;\nchar receivedChars[numChars];\nchar tempChars[numChars];        // temporary array for use when parsing\n\n      // variables to hold the parsed data\nchar messageFromPC[numChars] = {0};\nint integerFromPC = 0;\n\nboolean newData = false;\n\n//============\n\nvoid setup() {\n    Serial.begin(9600);\n    establishContact();\n}\n\n//============\n\nvoid loop() {\n    recvWithStartEndMarkers();\n    if (newData == true) {\n        strcpy(tempChars, receivedChars);\n            // this temporary copy is necessary to protect the original data\n            //   because strtok() used in parseData() replaces the commas with \\0\n        parseData();\n        showParsedData();\n        newData = false;\n    }\n}\n\n// ===========\n\nvoid establishContact() {\n  while (Serial.available() <= 0) {\n      Serial.print(\"<_bootstrap,Awaiting handshake bootstrap message from server...>\");\n      Serial.println();\n\n      delay(1000);\n  }\n\n  while (Serial.available() > 0) {\n      Serial.read();\n  }\n}\n\n//============\n\nvoid recvWithStartEndMarkers() {\n    static boolean recvInProgress = false;\n    static byte ndx = 0;\n    char startMarker = '<';\n    char endMarker = '>';\n    char rc;\n\n    while (Serial.available() > 0 && newData == false) {\n        rc = Serial.read();\n\n        if (recvInProgress == true) {\n            if (rc != endMarker) {\n                receivedChars[ndx] = rc;\n                ndx++;\n                if (ndx >= numChars) {\n                    ndx = numChars - 1;\n                }\n            }\n            else {\n                receivedChars[ndx] = '\\0'; // terminate the string\n                recvInProgress = false;\n                ndx = 0;\n                newData = true;\n            }\n        }\n\n        else if (rc == startMarker) {\n            recvInProgress = true;\n        }\n    }\n}\n\n//============\n\nvoid parseData() {      // split the data into its parts\n\n    char * strtokIndx; // this is used by strtok() as an index\n\n    strtokIndx = strtok(tempChars,\",\");      // get the first part - the string\n    strcpy(messageFromPC, strtokIndx); // copy it to messageFromPC\n \n    strtokIndx = strtok(NULL, \",\"); // this continues where the previous call left off\n    integerFromPC = atoi(strtokIndx);     // convert this part to an integer\n}\n\n//============\n\nvoid showParsedData() {\n    Serial.println(String(\"<dp,\") + String(integerFromPC) + String(\",\") + String(1) + String('>'));\n}\n\n```\n","readmeFilename":"README.md","author":{"name":"Radosław Landowski","email":"radoslaw.landowski@gmail.com"},"homepage":"https://github.com/elense-software/nestjs-serial-port#readme","repository":{"type":"git","url":"git+https://github.com/elense-software/nestjs-serial-port.git","directory":"@elense/nestjs-serial-port"},"bugs":{"url":"https://github.com/elense-software/nestjs-serial-port/issues"}}