MoveHardware() & device recording storage

Hello,

When we use the move hardware wizard, we select a recording server then we select the new recording storage.

In the API, all we have is Hardware.MoveHardware() and Camera.ChangeDeviceRecordingStorage().

What happens with MoveHardware()? Does it automatically select the new recording server default storage?

So basically to mimick the wizard programmatically what we should do is Hardware.MoveHardware() quickly followed with Camera.ChangeDeviceRecordingStorage()?

p.s: With the MIP SDK 2020 R2, MoveHardware() tells me everything is ok (the task state returns success) but in the management client my hardware is not moved. Using the wizard from the management client works. Any idea what to debug?

Have you refresh Management Client after MoveHardware? Because Management Client does not refresh automatically, it needs to be refreshed manually.

Yes, I did. I’m using the 2020R2 SDK with an 2020R1 installation, can that be an issue?

We tried to reproduce the issue but failed so far. I am using 2020 R1 VMS and 2020 R3 SDK because we always recommend to use the newest version of SDK.

What we did was -

1, Move hardware on Management Client (Move Hardware from 1st Recording Server to 2nd Recording Server)

- Recorded video on 2nd storage on the 1st Recording Server,

- Move hardware on Management Client,

- Select 2nd storage on the 2nd Recording Server,

[Result] it works, we verified the video via Smart Client and it worked.

2, Move hardware on ConfigAPI Client (Move hardware from 2nd RS to 1st Recording Server)

- Recorded images on 2nd storage on the 2nd Recording Server.

- Move hardware on ConfigAPI,

- Select 2nd storage on the 1st Recording Server.

[Result] it works, we verified the video via Smart Client and it worked.

Can you please try the way that we did? If you still have the same issue, then please check if there are any information or errors in Recording server log.

@Rie Kiuchi (Milestone Systems) Sorry for the delay. I realised I was misusing MoveHardware() and that you have to call ExecuteDefault() on the returned task after having filled the storage property.

Thanks for your support!