ACM missing Access Point

I am developing a plugin for Access Control using the Framework present on the platform.

The system to interface does not expose any information on the Access Points, so do you think that the Framework can still work if I simulate the existence of two readers or a reader and a REX? Above all it is possible you to associate cameras to APs?

Many Thanks,

Frediano

It might be a bit curious that the Demo Access Control Plug-in sample does not have access points in the simulator. Curious because it does have access points in the setup and in Smart Maps etc.

If you look closer into the documentation I hope you find that Access Points are supported in a useful way..

https://developer.milestonesys.com/s/article/where-to-start-with-Access-Control-Module-ACM-integration

If still unclear please ask further questions.

Sorry Bo, there was a misunderstanding, it is not the Framework that does not have Access Points, it is the system that I have to interface that does not have them.

For this reason I would like to simulate them in the Framework.

Many Thanks,

Frediano

I did misunderstand the question at first. I will try to ask colleagues here at Milestone to help on the question.

Hello Frediano,

It is possible to simulate the Access Points, even if the system doesn’t give you access to them.

If you look how the Access Control Units in the Demo Access Control Plugin are created, we receive only doors from the Demo System, and for each door we create an Access Point (in) and an Access Point (out).

Specifically, you can look at “\Configuration\TypeConverter.cs” on line 60. I’m attaching a code snippet from there:

public static IEnumerable<ACUnit> ToACUnits(DoorDescriptor door)
{
    var unsupportedCommands = new List<string>();
 
    if (!door.LockCommandSupported)
        unsupportedCommands.Add(DoorCommandId.Lock);
 
    if (!door.UnlockCommandSupported)
        unsupportedCommands.Add(DoorCommandId.Unlock);
 
    // Door
    var parentId = door.DoorControllerId != Guid.Empty ? door.DoorControllerId.ToString() : null;
    var doorId = door.DoorId.ToString();
    yield return new ACUnit(doorId, door.DoorName, ACBuiltInIconKeys.Door, null, TypeId.Door, parentId, unsupportedCommands) { IsEnabled = door.Enabled };
 
    // The access points in the Demo Access Control are not returned explicitly, but are numbered 1 and 2 based on the door.
    // Outside access point
    var accessPoint1Id = CreateAccessPointId(door.DoorId, 1);
    yield return new ACUnit(accessPoint1Id, door.DoorName + " (in)", ACBuiltInIconKeys.AccessPoint, null, TypeId.AccessPoint, doorId);
 
    // Inside access point (REX button)
    var accessPoint2Id = CreateAccessPointId(door.DoorId, 2);
    if (door.HasRexButton)
        yield return new ACUnit(accessPoint2Id, door.DoorName + " (out)", ACBuiltInIconKeys.AccessPoint, null, TypeId.AccessPoint, doorId);
}

Cameras can then be associated to those APs from the Management Client.

Thanks Georgi,

it’s the first time I use the ACM Framework, my fear was that, in addition to the association with the cameras, the Access Points were used in some way by the Framework.

I had already created ‘fake’ Access Points and associated the cameras to the gate.