更新EsptouchForIOS
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ESPDataCode.m
|
||||
// EspTouchDemo
|
||||
//
|
||||
// Created by fby on 4/9/15.
|
||||
// Copyright (c) 2015 fby. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ESPDataCode.h"
|
||||
#import "ESP_ByteUtil.h"
|
||||
#import "ESP_CRC8.h"
|
||||
|
||||
#define INDEX_MAX 127
|
||||
|
||||
@implementation ESPDataCode
|
||||
|
||||
- (id) initWithU8: (UInt8) u8 andIndex: (int) index
|
||||
{
|
||||
if (index > INDEX_MAX)
|
||||
{
|
||||
perror("index > INDEX_MAX");
|
||||
}
|
||||
self = [super init];
|
||||
if (self)
|
||||
{
|
||||
NSData* u8Data = [ESP_ByteUtil splitUint8To2Bytes:u8];
|
||||
[u8Data getBytes:&_dataHigh range:NSMakeRange(0, 1)];
|
||||
[u8Data getBytes:&_dataLow range:NSMakeRange(1, 1)];
|
||||
ESP_CRC8 *crc = [[ESP_CRC8 alloc]init];
|
||||
[crc updateWithValue:u8];
|
||||
[crc updateWithValue:index];
|
||||
NSData* crcData = [ESP_ByteUtil splitUint8To2Bytes:[crc getValue]];
|
||||
[crcData getBytes:&_crcHigh range:NSMakeRange(0, 1)];
|
||||
[crcData getBytes:&_crcLow range:NSMakeRange(1, 1)];
|
||||
_seqHeader = index;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSData *) getBytes
|
||||
{
|
||||
Byte bytes[DATA_CODE_LEN];
|
||||
bytes[0] = 0x00;
|
||||
bytes[1] = [ESP_ByteUtil combine2bytesToOneWithHigh:_crcHigh andLow:_dataHigh];
|
||||
bytes[2] = 0x01;
|
||||
bytes[3] = _seqHeader;
|
||||
bytes[4] = 0x00;
|
||||
bytes[5] = [ESP_ByteUtil combine2bytesToOneWithHigh:_crcLow andLow:_dataLow];
|
||||
NSData* data = [[NSData alloc]initWithBytes:bytes length:DATA_CODE_LEN];
|
||||
return data;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
NSData* data = [self getBytes];
|
||||
return [ESP_ByteUtil getHexStringByData:data];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user