@@ -2835,59 +2835,6 @@ - (void)writeAttributeWithEndpointID:(NSNumber *)endpointID
2835
2835
[_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"write %@ 0x%llx 0x%llx", endpointID, clusterID.unsignedLongLongValue, attributeID.unsignedLongLongValue];
2836
2836
}
2837
2837
2838
- - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
2839
- clusterID:(NSNumber *)clusterID
2840
- commandID:(NSNumber *)commandID
2841
- commandFields:(NSDictionary<NSString *, id> * _Nullable)commandFields
2842
- expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2843
- expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2844
- queue:(dispatch_queue_t)queue
2845
- completion:(MTRDeviceResponseHandler)completion
2846
- {
2847
- if (commandFields == nil) {
2848
- commandFields = @{
2849
- MTRTypeKey : MTRStructureValueType,
2850
- MTRValueKey : @[],
2851
- };
2852
- }
2853
-
2854
- [self invokeCommandWithEndpointID:endpointID
2855
- clusterID:clusterID
2856
- commandID:commandID
2857
- commandFields:commandFields
2858
- expectedValues:expectedValues
2859
- expectedValueInterval:expectedValueInterval
2860
- timedInvokeTimeout:nil
2861
- queue:queue
2862
- completion:completion];
2863
- }
2864
-
2865
- - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
2866
- clusterID:(NSNumber *)clusterID
2867
- commandID:(NSNumber *)commandID
2868
- commandFields:(id)commandFields
2869
- expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2870
- expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2871
- timedInvokeTimeout:(NSNumber * _Nullable)timeout
2872
- queue:(dispatch_queue_t)queue
2873
- completion:(MTRDeviceResponseHandler)completion
2874
- {
2875
- // We don't have a way to communicate a non-default invoke timeout
2876
- // here for now.
2877
- // TODO: https://github.com/project-chip/connectedhomeip/issues/24563
2878
-
2879
- [self _invokeCommandWithEndpointID:endpointID
2880
- clusterID:clusterID
2881
- commandID:commandID
2882
- commandFields:commandFields
2883
- expectedValues:expectedValues
2884
- expectedValueInterval:expectedValueInterval
2885
- timedInvokeTimeout:timeout
2886
- serverSideProcessingTimeout:nil
2887
- queue:queue
2888
- completion:completion];
2889
- }
2890
-
2891
2838
- (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID
2892
2839
clusterID:(NSNumber *)clusterID
2893
2840
commandID:(NSNumber *)commandID
@@ -2985,58 +2932,6 @@ - (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID
2985
2932
[_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"invoke %@ 0x%llx 0x%llx", endpointID, clusterID.unsignedLongLongValue, commandID.unsignedLongLongValue];
2986
2933
}
2987
2934
2988
- - (void)_invokeKnownCommandWithEndpointID:(NSNumber *)endpointID
2989
- clusterID:(NSNumber *)clusterID
2990
- commandID:(NSNumber *)commandID
2991
- commandPayload:(id)commandPayload
2992
- expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2993
- expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2994
- timedInvokeTimeout:(NSNumber * _Nullable)timeout
2995
- serverSideProcessingTimeout:(NSNumber * _Nullable)serverSideProcessingTimeout
2996
- responseClass:(Class _Nullable)responseClass
2997
- queue:(dispatch_queue_t)queue
2998
- completion:(void (^)(id _Nullable response, NSError * _Nullable error))completion
2999
- {
3000
- if (![commandPayload respondsToSelector:@selector(_encodeAsDataValue:)]) {
3001
- dispatch_async(queue, ^{
3002
- completion(nil, [MTRError errorForCHIPErrorCode:CHIP_ERROR_INVALID_ARGUMENT]);
3003
- });
3004
- return;
3005
- }
3006
-
3007
- NSError * encodingError;
3008
- auto * commandFields = [commandPayload _encodeAsDataValue:&encodingError];
3009
- if (commandFields == nil) {
3010
- dispatch_async(queue, ^{
3011
- completion(nil, encodingError);
3012
- });
3013
- return;
3014
- }
3015
-
3016
- auto responseHandler = ^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
3017
- id _Nullable response = nil;
3018
- if (error == nil) {
3019
- if (values.count != 1) {
3020
- error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:nil];
3021
- } else if (responseClass != nil) {
3022
- response = [[responseClass alloc] initWithResponseValue:values[0] error:&error];
3023
- }
3024
- }
3025
- completion(response, error);
3026
- };
3027
-
3028
- [self _invokeCommandWithEndpointID:endpointID
3029
- clusterID:clusterID
3030
- commandID:commandID
3031
- commandFields:commandFields
3032
- expectedValues:expectedValues
3033
- expectedValueInterval:expectedValueInterval
3034
- timedInvokeTimeout:timeout
3035
- serverSideProcessingTimeout:serverSideProcessingTimeout
3036
- queue:queue
3037
- completion:responseHandler];
3038
- }
3039
-
3040
2935
- (void)openCommissioningWindowWithSetupPasscode:(NSNumber *)setupPasscode
3041
2936
discriminator:(NSNumber *)discriminator
3042
2937
duration:(NSNumber *)duration
@@ -4072,27 +3967,6 @@ + (MTRDevice *)deviceWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceCont
4072
3967
return [self deviceWithNodeID:@(nodeID) controller:deviceController];
4073
3968
}
4074
3969
4075
- - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
4076
- clusterID:(NSNumber *)clusterID
4077
- commandID:(NSNumber *)commandID
4078
- commandFields:(id)commandFields
4079
- expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
4080
- expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
4081
- timedInvokeTimeout:(NSNumber * _Nullable)timeout
4082
- clientQueue:(dispatch_queue_t)queue
4083
- completion:(MTRDeviceResponseHandler)completion
4084
- {
4085
- [self invokeCommandWithEndpointID:endpointID
4086
- clusterID:clusterID
4087
- commandID:commandID
4088
- commandFields:commandFields
4089
- expectedValues:expectedValues
4090
- expectedValueInterval:expectedValueInterval
4091
- timedInvokeTimeout:timeout
4092
- queue:queue
4093
- completion:completion];
4094
- }
4095
-
4096
3970
@end
4097
3971
4098
3972
#pragma mark - SubscriptionCallback
0 commit comments