skyeye-sdk-js 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,5 +69,9 @@ export declare class SkyEyeClient extends JSONTransmissionClient {
69
69
  close(): boolean;
70
70
  getHost(): string;
71
71
  getPort(): string;
72
- initSkyEyeAndRun(pathSkyEye: string, fileName: string, port: string, skyeyeDir: string): void;
72
+ private childProcess;
73
+ initSkyEyeAndRun(pathSkyEye: string, fileName: string, port: string, skyeyeDir: string): Promise<string>;
74
+ private startSkyEye;
75
+ private setWorkingDirectory;
76
+ private runScript;
73
77
  }
@@ -61,6 +61,33 @@ const boardMap = new Map();
61
61
  class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
62
62
  constructor(host, port) {
63
63
  super(host + ":" + port, grpc.credentials.createInsecure(), null);
64
+ // public initSkyEyeAndRun(pathSkyEye: string, fileName: string, port: string, skyeyeDir: string) {
65
+ // console.log('runExample');
66
+ // cp.exec(skyeyeDir + " -q " + port + "\n", (err: any, stdout: any, stderr: any) => {
67
+ // if(err){
68
+ // console.log("initSkyEyeAndRun error:",err)
69
+ // return
70
+ // }
71
+ // console.log('initSkyEyeAndRun stdout: ' ,stdout);
72
+ // console.log('initSkyEyeAndRun stderr: ' , stderr);
73
+ // });
74
+ // setTimeout(() => {
75
+ // client = new JSONTransmissionClient('127.0.0.1:' + port, grpc.credentials.createInsecure());
76
+ // // console.log('client:' + client);
77
+ // const Jr = new JSONRequest();
78
+ // Jr.setRequest("{\"request\": {\"name\": \"chdir\", \"args\": {\"path\":\"" + pathSkyEye + "\"}}}");
79
+ // client.callSkyEye(Jr, (error: ServiceError | null, response: JSONResponse) => {
80
+ // console.log("chdir res:" + response + error);
81
+ // Jr.setRequest("{\"request\": {\"name\": \"run_script\", \"args\": {\"filename\":\"" + fileName + "\"}}}");
82
+ // client.callSkyEye(Jr, (error: ServiceError | null, response: JSONResponse) => {
83
+ // console.log("run_script res:" + response + error);
84
+ // // this.runCommand()
85
+ // return "1";
86
+ // });
87
+ // });
88
+ // }, 2000);
89
+ // }
90
+ this.childProcess = null;
64
91
  this.host = host;
65
92
  this.port = port;
66
93
  }
@@ -875,26 +902,72 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
875
902
  return this.port;
876
903
  }
877
904
  initSkyEyeAndRun(pathSkyEye, fileName, port, skyeyeDir) {
878
- console.log('runExample');
879
- cp.exec(skyeyeDir + " -q " + port + "\n", (err, stdout, stderr) => {
880
- // console.log('stdout: ' + stdout);
881
- // console.log('stderr: ' + stderr);
882
- });
883
- setTimeout(() => {
884
- client = new skyeye_rpc_grpc_pb_1.JSONTransmissionClient('127.0.0.1:' + port, grpc.credentials.createInsecure());
885
- // console.log('client:' + client);
886
- const Jr = new skyeye_rpc_pb_1.JSONRequest();
887
- Jr.setRequest("{\"request\": {\"name\": \"chdir\", \"args\": {\"path\":\"" + pathSkyEye + "\"}}}");
905
+ return __awaiter(this, void 0, void 0, function* () {
906
+ try {
907
+ console.log('runExample');
908
+ this.childProcess = yield this.startSkyEye(port, skyeyeDir);
909
+ yield this.setWorkingDirectory(pathSkyEye, port);
910
+ yield this.runScript(fileName, port);
911
+ return "1";
912
+ }
913
+ catch (error) {
914
+ console.error("initSkyEyeAndRun error:", error);
915
+ if (this.childProcess) {
916
+ console.log('Terminating SkyEye child process...');
917
+ this.childProcess.kill(); // 手动终止子进程
918
+ }
919
+ throw error;
920
+ }
921
+ });
922
+ }
923
+ startSkyEye(port, skyeyeDir) {
924
+ return new Promise((resolve, reject) => {
925
+ const childProcess = cp.exec(`${skyeyeDir} -q ${port}`, (err, stdout, stderr) => {
926
+ if (err) {
927
+ reject(err);
928
+ }
929
+ else {
930
+ console.log('initSkyEyeAndRun stdout: ', stdout);
931
+ console.log('initSkyEyeAndRun stderr: ', stderr);
932
+ }
933
+ });
934
+ childProcess.on('exit', (code, signal) => {
935
+ console.log('SkyEye child process exited with code', code, 'and signal', signal);
936
+ });
937
+ resolve(childProcess);
938
+ });
939
+ }
940
+ setWorkingDirectory(pathSkyEye, port) {
941
+ const client = new skyeye_rpc_grpc_pb_1.JSONTransmissionClient(`127.0.0.1:${port}`, grpc.credentials.createInsecure());
942
+ const Jr = new skyeye_rpc_pb_1.JSONRequest();
943
+ Jr.setRequest(`{"request": {"name": "chdir", "args": {"path":"${pathSkyEye}"}}}`);
944
+ return new Promise((resolve, reject) => {
888
945
  client.callSkyEye(Jr, (error, response) => {
889
- console.log("chdir res:" + response + error);
890
- Jr.setRequest("{\"request\": {\"name\": \"run_script\", \"args\": {\"filename\":\"" + fileName + "\"}}}");
891
- client.callSkyEye(Jr, (error, response) => {
892
- console.log("run_script res:" + response + error);
893
- // this.runCommand()
894
- return "1";
895
- });
946
+ if (error) {
947
+ reject(error);
948
+ }
949
+ else {
950
+ console.log("chdir res:", response);
951
+ resolve();
952
+ }
953
+ });
954
+ });
955
+ }
956
+ runScript(fileName, port) {
957
+ const client = new skyeye_rpc_grpc_pb_1.JSONTransmissionClient(`127.0.0.1:${port}`, grpc.credentials.createInsecure());
958
+ const Jr = new skyeye_rpc_pb_1.JSONRequest();
959
+ Jr.setRequest(`{"request": {"name": "run_script", "args": {"filename":"${fileName}"}}}`);
960
+ return new Promise((resolve, reject) => {
961
+ client.callSkyEye(Jr, (error, response) => {
962
+ if (error) {
963
+ reject(error);
964
+ }
965
+ else {
966
+ console.log("run_script res:", response);
967
+ resolve();
968
+ }
896
969
  });
897
- }, 2000);
970
+ });
898
971
  }
899
972
  }
900
973
  exports.SkyEyeClient = SkyEyeClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skyeye-sdk-js",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "gRPC to SkyEye",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",