Skip to content

Commit 734497c

Browse files
committed
chore(ClientServices.ConsoleTestApp): Removed test command and added locking
1 parent c41f531 commit 734497c

File tree

2 files changed

+39
-15
lines changed

2 files changed

+39
-15
lines changed

test/Arcor2.ClientSdk.ClientServices.ConsoleTestApp/Models/Options.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
public class Options {
44
public bool EnableConsoleLogger { get; init; } = false;
5+
public bool EnableLocking { get; init; } = true;
56
}

test/Arcor2.ClientSdk.ClientServices.ConsoleTestApp/Program.cs

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ private static async Task Main() {
2828

2929
// Set up session with appropriate logging
3030
var logger = options.EnableConsoleLogger ? new ConsoleLogger() : null;
31-
Session = new Arcor2Session(logger: logger);
31+
Session = new Arcor2Session(logger: logger, settings: new Arcor2SessionSettings {
32+
LockingMode = options.EnableLocking ? LockingMode.AutoLock : LockingMode.NoLocks
33+
});
3234

3335
try {
3436
await EstablishSessionAsync();
@@ -59,7 +61,18 @@ private static async Task Main() {
5961
var enableLogger = response.ToLower().FirstOrDefault() is 'y';
6062
ConsoleEx.WriteLinePrefix($"Proceeding with logger {(enableLogger ? "enabled" : "disabled")}.");
6163

62-
return new Options { EnableConsoleLogger = enableLogger };
64+
ConsoleEx.WriteLinePrefix("Enable auto-lock? (Y/N)");
65+
66+
// Use a timeout for the initial setup question
67+
var responseAutoLock = await Task.Run(ConsoleEx.ReadLinePrefix);
68+
if(responseAutoLock == null) {
69+
return null;
70+
}
71+
72+
var enableAutoLock = responseAutoLock.ToLower().FirstOrDefault() is 'y';
73+
ConsoleEx.WriteLinePrefix($"Proceeding with auto-lock {(enableAutoLock ? "enabled" : "disabled")}.");
74+
75+
return new Options { EnableConsoleLogger = enableLogger, EnableLocking = enableAutoLock};
6376
}
6477

6578
/// <summary>
@@ -110,18 +123,6 @@ private static async Task RunCommandLoopAsync() {
110123
}
111124

112125
try {
113-
if(command == "!prepre") {
114-
try {
115-
await Session.Scenes.First().CloseAsync(true);
116-
}
117-
catch { }
118-
119-
await Session.CreateSceneAsync("Sc\x2E\x2F0jhj", "ewa");
120-
await Task.Delay(200);
121-
await Session.Scenes.First().SaveAsync();
122-
continue;
123-
}
124-
125126
await ProcessCommandAsync(command);
126127
}
127128
catch(Arcor2Exception ex) {
@@ -175,7 +176,15 @@ private static async Task ProcessCommandAsync(string text) {
175176
case "!help":
176177
DisplayHelp();
177178
break;
178-
179+
case "!force_close":
180+
Environment.FailFast("Forced crash.");
181+
break;
182+
case "!lock":
183+
await LockAsync(args);
184+
break;
185+
case "!unlock":
186+
await UnlockAsync(args);
187+
break;
179188
// Navigation and information commands
180189
case "!ns" or "!navigation_state":
181190
DisplayNavigationState();
@@ -724,6 +733,9 @@ private static void DisplayHelp() =>
724733
!object_types - List all object types and their actions.
725734
!scenes - Lists all in-memory scenes.
726735
!projects - Lists all in-memory projects.
736+
!force_close - Crashes this application.
737+
!lock <ID> - Locks an object.
738+
!unlock <ID> - Unlocks an object.
727739
728740
- Object Type -
729741
!add_object_type <TYPE> <PARENT_TYPE> <DESC> - Adds a new object type.
@@ -980,6 +992,17 @@ await Session.ObjectTypes[args[0]].UpdateObjectModel(
980992
)
981993
);
982994

995+
private static async Task LockAsync(string[] args) {
996+
var obj = Session.FindById(args[0]);
997+
await obj!.LockAsync();
998+
}
999+
1000+
private static async Task UnlockAsync(string[] args) {
1001+
var obj = Session.FindById(args[0]);
1002+
await obj!.UnlockAsync();
1003+
}
1004+
1005+
9831006
private static async Task ReloadScenesAsync() => await Session.ReloadScenesAsync();
9841007

9851008
private static async Task UpdateSceneDescriptionAsync(string[] args) =>

0 commit comments

Comments
 (0)