You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
9.2 KiB
253 lines
9.2 KiB
// |
|
// DeviceHeaderView.m |
|
// tongxin |
|
// |
|
// Created by ecell on 2022/11/9. |
|
// Copyright © 2022 xTT. All rights reserved. |
|
// |
|
|
|
#import "DeviceHeaderView.h" |
|
#import "Bluetooth.h" |
|
#import <ReactiveObjC.h> |
|
#import "DeviceLoseSetViewController.h" |
|
|
|
@interface DeviceHeaderView () |
|
|
|
|
|
/// <#arguments#> |
|
@property (nonatomic ,weak) UILabel *nameLabel; |
|
|
|
/// <#arguments#> |
|
@property (nonatomic ,weak) UILabel *comLabel; |
|
@property (nonatomic ,weak) UIButton *stateBtn; |
|
|
|
@end |
|
|
|
@implementation DeviceHeaderView |
|
|
|
- (instancetype)initWithFrame:(CGRect)frame |
|
{ |
|
self = [super initWithFrame:frame]; |
|
if (self) |
|
{ |
|
self.backgroundColor = [UIColor clearColor]; |
|
[self subHeaderView]; |
|
// [[[NSNotificationCenter defaultCenter] rac_addObserverForName:BluetoothNotificationAtConnectSuccess object:nil] subscribeNext:^(NSNotification *notification) { |
|
// BLEModel *model = notification.object; |
|
// self.nameLabel.text = model.peripheral.name; |
|
// self.comLabel.text = model.MACString; |
|
// [self.stateBtn setTitle:@"连接成功" forState:0]; |
|
// [UICommon HidenLoading]; |
|
// }]; |
|
|
|
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:BluetoothNotificationAtConnectFail object:nil] subscribeNext:^(NSNotification *notification) { |
|
[self.stateBtn setTitle:@"连接失败" forState:0]; |
|
}]; |
|
|
|
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:BluetoothNotificationAtDisconnect object:nil] subscribeNext:^(NSNotification *notification) { |
|
[self.stateBtn setTitle:@"连接断开" forState:0]; |
|
}]; |
|
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:@"LIANJIEZ" object:nil] subscribeNext:^(NSNotification *notification) { |
|
NSString *tiele = notification.object; |
|
[self.stateBtn setTitle:tiele forState:0]; |
|
}]; |
|
|
|
} |
|
return self; |
|
} |
|
|
|
- (void)setBleModel:(BLEModel *)bleModel |
|
{ |
|
_bleModel = bleModel; |
|
self.nameLabel.text = bleModel.DeName; |
|
self.comLabel.text = bleModel.MACString; |
|
[self.stateBtn setTitle:Bluetooth.shareInstance.isConnected ? @"连接成功" : @"连接失败" forState:0]; |
|
} |
|
|
|
- (void)subHeaderView |
|
{ |
|
UIImageView *leftImg = [UIImageView new]; |
|
leftImg.backgroundColor = mainColor; |
|
[self addSubview:leftImg]; |
|
[leftImg mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(self); |
|
make.top.equalTo(self).offset(15); |
|
make.size.mas_equalTo(CGSizeMake(3, 20)); |
|
}]; |
|
|
|
UILabel *titleLabel = [UILabel new]; |
|
titleLabel.textColor = KKGrey143; |
|
titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:14]; |
|
titleLabel.text = @"当前防丢设备"; |
|
[self addSubview:titleLabel]; |
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(leftImg.mas_right).offset(5); |
|
make.centerY.equalTo(leftImg); |
|
}]; |
|
|
|
UIView *bgView = [UIView new]; |
|
bgView.backgroundColor = [UIColor whiteColor]; |
|
[self addSubview:bgView]; |
|
[bgView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(self); |
|
make.top.equalTo(leftImg.mas_bottom).offset(15); |
|
make.height.mas_equalTo(Adapted(85)); |
|
}]; |
|
|
|
|
|
UIImageView *deviceImg = [UIImageView new]; |
|
deviceImg.backgroundColor = [UIColor whiteColor]; |
|
deviceImg.image = [UIImage imageNamed:@"icon_imei_login_page"]; |
|
deviceImg.layer.borderWidth = 0.5; |
|
deviceImg.layer.borderColor = RGB(238, 238, 238).CGColor; |
|
deviceImg.layer.cornerRadius = 3; |
|
[bgView addSubview:deviceImg]; |
|
[deviceImg mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(bgView).offset(20); |
|
make.centerY.equalTo(bgView); |
|
make.size.mas_equalTo(CGSizeMake(Adapted(40), Adapted(40))); |
|
}]; |
|
|
|
|
|
UILabel *nameLabel = [UILabel new]; |
|
nameLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:Adapted(20)]; |
|
self.nameLabel = nameLabel; |
|
[bgView addSubview:nameLabel]; |
|
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(deviceImg.mas_right).offset(10); |
|
make.top.equalTo(bgView).offset(10); |
|
}]; |
|
|
|
UILabel *comLabel = [UILabel new]; |
|
comLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:Adapted(13)]; |
|
self.comLabel = comLabel; |
|
[bgView addSubview:comLabel]; |
|
[comLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(nameLabel); |
|
make.centerY.equalTo(deviceImg.mas_bottom); |
|
}]; |
|
|
|
UIButton *setBtn = [UIButton new]; |
|
[setBtn setTitle:@"设置" forState:0]; |
|
setBtn.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:Adapted(12)]; |
|
[setBtn setTitleColor:[UIColor whiteColor] forState:0]; |
|
setBtn.backgroundColor = mainColor; |
|
setBtn.layer.cornerRadius = Adapted(14); |
|
setBtn.layer.masksToBounds = YES; |
|
setBtn.tag = 3; |
|
[setBtn addTarget:self action:@selector(btnTouch:) forControlEvents:UIControlEventTouchUpInside]; |
|
[bgView addSubview:setBtn]; |
|
[setBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(bgView.mas_right).offset(-20); |
|
make.bottom.equalTo(bgView.mas_centerY).offset(-Adapted(5)); |
|
make.size.mas_equalTo(CGSizeMake(Adapted(85), Adapted(28))); |
|
}]; |
|
|
|
UIButton *stateBtn = [UIButton new]; |
|
[stateBtn setTitle:@"" forState:0]; |
|
stateBtn.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:Adapted(12)]; |
|
[stateBtn setTitleColor:[UIColor whiteColor] forState:0]; |
|
stateBtn.backgroundColor = mainColor; |
|
stateBtn.layer.cornerRadius = Adapted(14); |
|
stateBtn.layer.masksToBounds = YES; |
|
stateBtn.tag = 4; |
|
[stateBtn addTarget:self action:@selector(btnTouch:) forControlEvents:UIControlEventTouchUpInside]; |
|
self.stateBtn = stateBtn; |
|
[bgView addSubview:stateBtn]; |
|
[stateBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.equalTo(setBtn.mas_right); |
|
make.top.equalTo(bgView.mas_centerY).offset(Adapted(5)); |
|
make.size.mas_equalTo(CGSizeMake(Adapted(85), Adapted(28))); |
|
}]; |
|
|
|
NSArray *titleArr = @[@"移除设备",@"查找设备",@"取消查找"]; |
|
for (int i = 0; i < titleArr.count; i++) |
|
{ |
|
UIButton *btn = [UIButton new]; |
|
[btn setTitle:titleArr[i] forState:0]; |
|
btn.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:Adapted(12)]; |
|
[btn setTitleColor:[UIColor whiteColor] forState:0]; |
|
btn.backgroundColor = mainColor; |
|
btn.layer.cornerRadius = Adapted(14); |
|
btn.layer.masksToBounds = YES; |
|
btn.tag = i; |
|
[btn addTarget:self action:@selector(btnTouch:) forControlEvents:UIControlEventTouchUpInside]; |
|
[self addSubview:btn]; |
|
[btn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.equalTo(self).offset(20+Adapted(85)*i+10*i); |
|
make.top.equalTo(bgView.mas_bottom).offset(Adapted(5)); |
|
make.size.mas_equalTo(CGSizeMake(Adapted(85), Adapted(28))); |
|
}]; |
|
} |
|
|
|
|
|
} |
|
|
|
- (void)btnTouch:(UIButton *)btn |
|
{ |
|
switch (btn.tag) { |
|
case 0: |
|
{/// 移除设备 |
|
[Bluetooth.shareInstance disConnectedCurrenDevice]; |
|
} |
|
break; |
|
case 1: |
|
{/// 查找设备 |
|
if (!Bluetooth.shareInstance.isConnected) |
|
{ |
|
[UICommon MessageErrorText:@"设备未连接!"]; |
|
return; |
|
} |
|
[Bluetooth.shareInstance writeCheckBleWithBle:@"0x00"]; |
|
} |
|
break; |
|
case 2: |
|
{/// 取消查找 |
|
if (!Bluetooth.shareInstance.isConnected) |
|
{ |
|
[UICommon MessageErrorText:@"设备未连接!"]; |
|
return; |
|
} |
|
[Bluetooth.shareInstance writeCheckBleWithBle:@"0x01"]; |
|
} |
|
break; |
|
case 3: |
|
{/// 设置 |
|
DeviceLoseSetViewController *vc = [DeviceLoseSetViewController new]; |
|
[self.getViewController.navigationController pushViewController:vc animated:YES]; |
|
} |
|
break; |
|
case 4: |
|
{/// 连接状态 |
|
|
|
if ([btn.currentTitle isEqualToString:@"连接失败"] || |
|
[btn.currentTitle isEqualToString:@"连接断开"]) |
|
{ |
|
//[UICommon MessageUpload:@""WithStatus:@"连接中..."]; |
|
[self.stateBtn setTitle:@"连接中..." forState:0]; |
|
[Bluetooth.shareInstance connectPeripheralWithUUID]; |
|
} |
|
if ([btn.currentTitle isEqualToString:@"连接中.."] || |
|
[btn.currentTitle isEqualToString:@"连接中..."] || |
|
[btn.currentTitle isEqualToString:@"连接成功"]) |
|
{ |
|
[Bluetooth.shareInstance disconnectBLE]; |
|
[self.stateBtn setTitle:@"连接失败" forState:0]; |
|
} |
|
} |
|
break; |
|
|
|
default: |
|
break; |
|
} |
|
} |
|
|
|
/* |
|
// Only override drawRect: if you perform custom drawing. |
|
// An empty implementation adversely affects performance during animation. |
|
- (void)drawRect:(CGRect)rect { |
|
// Drawing code |
|
} |
|
*/ |
|
|
|
@end
|
|
|