11package io .github .protocol .mtconnect .server .impl ;
22
3+ import com .huaweicloud .sdk .core .auth .AbstractCredentials ;
4+ import com .huaweicloud .sdk .core .auth .BasicCredentials ;
5+ import com .huaweicloud .sdk .core .auth .ICredential ;
6+ import com .huaweicloud .sdk .core .exception .ConnectionException ;
7+ import com .huaweicloud .sdk .core .exception .RequestTimeoutException ;
8+ import com .huaweicloud .sdk .core .exception .ServiceResponseException ;
9+ import com .huaweicloud .sdk .core .region .Region ;
10+ import com .huaweicloud .sdk .iotda .v5 .IoTDAClient ;
11+ import com .huaweicloud .sdk .iotda .v5 .model .ListDevicesRequest ;
12+ import com .huaweicloud .sdk .iotda .v5 .model .ListDevicesResponse ;
313import io .github .protocol .mtconnect .api .AssetRequest ;
414import io .github .protocol .mtconnect .api .DeviceRequest ;
515import io .github .protocol .mtconnect .api .MTConnectAssets ;
616import io .github .protocol .mtconnect .api .MTConnectDevices ;
717import io .github .protocol .mtconnect .server .MTProcessor ;
18+ import lombok .NoArgsConstructor ;
19+ import lombok .extern .slf4j .Slf4j ;
820
21+ @ Slf4j
22+ @ NoArgsConstructor
923public class IoTDAMtProcessor implements MTProcessor {
10- private final String ak ;
11-
12- private final String sk ;
13-
14- public IoTDAMtProcessor (String ak , String sk ) {
15- this .ak = ak ;
16- this .sk = sk ;
17- }
24+ private String ak ;
25+ private String sk ;
26+ private String projectId ;
27+ private String endpoint ;
28+ private IoTDAClient client ;
1829
1930 @ Override
2031 public MTConnectAssets asset (AssetRequest assetRequest ) {
@@ -23,6 +34,59 @@ public MTConnectAssets asset(AssetRequest assetRequest) {
2334
2435 @ Override
2536 public MTConnectDevices device (DeviceRequest deviceRequest ) {
37+ ListDevicesRequest request = new ListDevicesRequest ();
38+ try {
39+ ListDevicesResponse response = client .listDevices (request );
40+ log .info (response .toString ());
41+ } catch (ConnectionException | RequestTimeoutException e ) {
42+ log .error (e .getMessage ());
43+ } catch (ServiceResponseException e ) {
44+ log .error (e .getMessage ());
45+ log .error (String .valueOf (e .getHttpStatusCode ()));
46+ log .error (e .getRequestId ());
47+ log .error (e .getErrorCode ());
48+ log .error (e .getErrorMsg ());
49+ }
2650 return null ;
2751 }
52+
53+ public static class Builder {
54+ private final IoTDAMtProcessor ioTDAMtProcessor = new IoTDAMtProcessor ();
55+
56+ public Builder setAk (String ak ) {
57+ ioTDAMtProcessor .ak = ak ;
58+ return this ;
59+ }
60+ public Builder setSk (String sk ) {
61+ ioTDAMtProcessor .sk = sk ;
62+ return this ;
63+ }
64+
65+ public Builder setProjectId (String projectId ) {
66+ ioTDAMtProcessor .projectId = projectId ;
67+ return this ;
68+ }
69+
70+ public Builder setEndpoint (String endpoint ) {
71+ ioTDAMtProcessor .endpoint = endpoint ;
72+ return this ;
73+ }
74+
75+ public IoTDAMtProcessor build (){
76+
77+ ICredential auth = new BasicCredentials ()
78+ // 标准版/企业版需要使用衍生算法,基础版请删除配置"withDerivedPredicate";
79+ .withDerivedPredicate (AbstractCredentials .DEFAULT_DERIVED_PREDICATE ) // Used in derivative ak/sk authentication scenarios
80+ .withAk (ioTDAMtProcessor .ak )
81+ .withSk (ioTDAMtProcessor .sk );
82+
83+ ioTDAMtProcessor .client = IoTDAClient .newBuilder ()
84+ .withCredential (auth )
85+ // 标准版/企业版:需自行创建Region对象,基础版:请使用IoTDARegion的region对象,如"withRegion(IoTDARegion.CN_NORTH_4)"
86+ .withRegion (new Region ("cn-north-4" , ioTDAMtProcessor .endpoint ))
87+ .build ();
88+
89+ return ioTDAMtProcessor ;
90+ }
91+ }
2892}
0 commit comments