in plc4go/tools/plc4xpcapanalyzer/internal/cbusanalyzer/analyzer.go [342:382]
func CreateRequestContextWithInfoCallback(cBusMessage readWriteModel.CBusMessage, infoCallBack func(string)) readWriteModel.RequestContext {
if infoCallBack == nil {
infoCallBack = func(_ string) {}
}
switch cBusMessage := cBusMessage.(type) {
case readWriteModel.CBusMessageToServer:
switch request := cBusMessage.GetRequest().(type) {
case readWriteModel.RequestDirectCommandAccess:
sendIdentifyRequestBefore := false
infoCallBack("CAL request detected")
switch request.GetCalData().(type) {
case readWriteModel.CALDataIdentify:
sendIdentifyRequestBefore = true
}
return readWriteModel.NewRequestContext(sendIdentifyRequestBefore)
case readWriteModel.RequestCommand:
switch command := request.GetCbusCommand().(type) {
case readWriteModel.CBusCommandPointToPoint:
sendIdentifyRequestBefore := false
infoCallBack("CAL request detected")
switch command.GetCommand().GetCalData().(type) {
case readWriteModel.CALDataIdentify:
sendIdentifyRequestBefore = true
}
return readWriteModel.NewRequestContext(sendIdentifyRequestBefore)
}
case readWriteModel.RequestObsolete:
sendIdentifyRequestBefore := false
infoCallBack("CAL request detected")
switch request.GetCalData().(type) {
case readWriteModel.CALDataIdentify:
sendIdentifyRequestBefore = true
}
return readWriteModel.NewRequestContext(sendIdentifyRequestBefore)
}
case readWriteModel.CBusMessageToClient:
// We received a request, so we need to reset our flags
return readWriteModel.NewRequestContext(false)
}
return readWriteModel.NewRequestContext(false)
}