To use HSMS-SS, you can configure the communicator in either PASSIVE or ACTIVE mode using HsmsSsCommunicatorConfig.
HSMS-SS Passive Mode
Use this configuration for a passive connection (e.g., a server/receiver role).
HSMS-SS Active Mode
Use this configuration for an active connection (e.g., a client/initiator role).
Both modes require setting a socketAddress, sessionId, and isEquip status. You can also configure specific timeouts (T3, T5, T6, T7, T8) and GEM parameters like mdln, softrev, and clockType.
/* HSMS-SS-Passive open example */
HsmsSsCommunicatorConfig config = new HsmsSsCommunicatorConfig();
config.connectionMode(HsmsConnectionMode.PASSIVE);
config.socketAddress(new InetSocketAddress("127.0.0.1", 5000));
config.sessionId(10);
config.isEquip(true);
config.timeout().t3(45.0F);
config.timeout().t6( 5.0F);
config.timeout().t7(10.0F);
config.timeout().t8( 5.0F);
config.gem().mdln("MDLN-A");
config.gem().softrev("000001");
config.gem().clockType(ClockType.A16);
SecsCommunicator passive = HsmsSsCommunicator.newInstance(config);
passive.open();
/* HSMS-SS-Active open example */
HsmsSsCommunicatorConfig config = new HsmsSsCommunicatorConfig();
config.connectionMode(HsmsConnectionMode.ACTIVE);
config.socketAddress(new InetSocketAddress("127.0.0.1", 5000));
config.sessionId(10);
config.isEquip(false);
config.timeout().t3(45.0F);
config.timeout().t5(10.0F);
config.timeout().t6( 5.0F);
config.timeout().t8( 5.0F);
config.linktest(120.0F);
config.gem().clockType(ClockType.A16);
SecsCommunicator active = HsmsSsCommunicator.newInstance(config);
active.open();