WIZnet Developer Forum

WIZ750sr 데이터 파싱

안녕하세요

WIZ750sr을 이용해 개발 중 node.js를 이용해 컴퓨터로 데이터를 수신하니 log확인 결과 데이터에 임의로 개행문자가 입력되는 상황이 발생합니다

이더넷 모듈이 하나의 문자열 데이터를 여러 조각으로 쪼개어 전송하기 때문이라고 생각이 드나, 데이터 전처리에 불편함이 존재해 원인이나 해결책이 있을지 문의드립니다

(1) 정상 데이터

0 1234567890 1234567890 1234567890 1234567890 1234567890
1 1234567890 1234567890 1234567890 1234567890 1234567890

(2) log내 수신 데이터

0 1234567890 123
456789
0 12345
67890
1234567
890 12
345678
90

[서버용 node.js 코드]

var net = require('net'),
    sockets = [];
var url = require('url');

var fs = require('fs');
var mime = require('mime');
var path = require('path');
var requestSend = require("request");
// var mysql = require("mysql2/promise");
// var multer = require('multer');


var  result = false;
global.result = result;

var server = net.createServer(function (client) {
    client.setEncoding('utf8');
    client.setTimeout(100);
    
    client.on('data', function (data) {
        // console.log(data);        
        console.log(data);        
       
        //client.write('SENT');    
            
      //  if(res != 0) client.write('SUCCESS'); else client.write('FAIL');
    });
    client.on('timeout', function () {});
    client.write('SOCKET OPENED'); // 아두이노 시리얼에서 나타남
    client.on('error', function () {
        //console.log(`error`);
    });
    client.on('close', function () {
        sockets.pop();
        console.log(' close ');
    });
    //if(res != 0) client.write('SUCCESS'); else client.write('FAIL');
});	

server.on('error', function (error) {
 
});
server.listen(5001,'192.168.11.10', function () {
 
    var serverInfo = server.address();
    console.log('listen server 1: ' + serverInfo);
    var serverInfoJson = JSON.stringify(serverInfo);
    console.log('listen server 2: ' + serverInfoJson);
    server.on('close', function () {
        console.log('server closed.');
    });
    server.on('connection', function () {
        console.log(`WELCOME`);
    });
});

감사합니다

serial 에서 Ethernet으로 데이터가 나갈때 시리얼 데이터 패킹을 하지 않는다면,
임의로 잘라서 ethernet으로 보내게 됩니다.

그렇기 때문에 시리얼데이터를 모아서 전송할 수 있도록 시리얼 데이터 패킹옵션을 제공하고있습니다.

위의 링크에서 Serial data packing 부분만 발췌한 것입니다.

원하시는 조건에 맞춰서 사용하시면됩니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.