www.pudn.com > SerialGPS.zip > SendPacket.m


function WritePacket(gps, id, data) 
    dle = 16; 
    etx = 3; 
 
    % Three byte header: (DLE, id, size) 
    fwrite(gps, dle); 
    fwrite(gps, id); 
    fwrite(gps, length(data)); 
     
    % Send the data as a stream of bytes 
    fwrite(gps, data); 
     
    % Checksum: 2s complement of sum of data 
    s = dle + id + length(data) + sum(data); 
    cmp = bitcmp(s, 8); 
    cmp = cmp + 1; 
    cksum = bitand(cmp, 255); 
    fwrite(gps, cksum); 
     
    % Two byte packet terminator: (DLE, ETX) 
    fwrite(gps, dle); 
    fwrite(gps, etx); 
     
   % Wait for the acknowledgement packet 
   [id, data] = ReadPacket(gps);