code: function(body,cb){
        if(this.closed) return setImmediate(function(){
          var e = new Error('this parser is closed.');
          e.code = "E_CLOSED";
          cb(e);
        });
  
        if(!Buffer.isBuffer(body)) body = new Buffer(body);
  
        var timeout = this._commandTimeout(body[0]);
  
        var messageLen = new Buffer([0,0]);
        messageLen.writeUInt16BE(body.length,0);    
  
        //MESSAGE_START,SEQUENCE_NUMBER,MESSAGE_SIZE,TOKEN,MESSAGE_BODY,CMD_READ/PROGRAM_FLASH/EEPROM,CHECKSUM
        var out = Buffer.concat([new Buffer([c.MESSAGE_START,this._seq(),messageLen[0],messageLen[1],c.TOKEN]),body]);
       
   
        var checksum = this.checksum(out);
  
  
        this._queue.push({buf:Buffer.concat([out,new Buffer([checksum])]),seq:this._inc,cb:cb,timeout:timeout});
  
        // if not waiting for another command to return. send this command
        this._send();
      }
docs: public interface,