Files
geutebruck/GeViSoft_SDK_Docs/chunk_010_pages_91-100.txt
Administrator a92b909539 feat: GeViScope SDK integration with C# Bridge and Flutter app
- Add GeViScope Bridge (C# .NET 8.0) on port 7720
  - Full SDK wrapper for camera control, PTZ, actions/events
  - 17 REST API endpoints for GeViScope server interaction
  - Support for MCS (Media Channel Simulator) with 16 test channels
  - Real-time action/event streaming via PLC callbacks

- Add GeViServer Bridge (C# .NET 8.0) on port 7710
  - Integration with GeViSoft orchestration layer
  - Input/output control and event management

- Update Python API with new routers
  - /api/geviscope/* - Proxy to GeViScope Bridge
  - /api/geviserver/* - Proxy to GeViServer Bridge
  - /api/excel/* - Excel import functionality

- Add Flutter app GeViScope integration
  - GeViScopeRemoteDataSource with 17 API methods
  - GeViScopeBloc for state management
  - GeViScopeScreen with PTZ controls
  - App drawer navigation to GeViScope

- Add SDK documentation (extracted from PDFs)
  - GeViScope SDK docs (7 parts + action reference)
  - GeViSoft SDK docs (12 chunks)

- Add .mcp.json for Claude Code MCP server config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 08:14:17 +01:00

227 lines
9.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

================================================================================
PAGE 91
================================================================================
2.)ChangetheplatformsettingstogenerateX86codeifitisnotalreadyset.
IntheConfiguration ManagerselectPlatform ->New->X86andusethisplatformforthe
DebugandReleaseconfigurations.
================================================================================
PAGE 92
================================================================================
3.)ChangetheOutputpathofyourproject.
Theapplication needsthefollowingfilesinitspath:GeviProcAPI.dll ,GscDBI.dll ,GscAc-
tions.dll ,GeViProcAPINET_ X_Y.dll,andGscActionsNET_ X_Y.dll.Allthesefilesarein
your%GEVISOFTSDKPATH% ,sotheoutputpathtoc:\gevisoft\ .
TochangetheOutputpath,eitherright-clickonyourprojectinSolution Explorerandpress
Properties orchooseProject->ProjectName Properties fromthemenu.ThenselecttheBuild
tabandsetyourOutputpath.
================================================================================
PAGE 93
================================================================================
================================================================================
PAGE 94
================================================================================
4.)Addtherequiredusingdirectives toyourprojectssourcefiles.
ForaprojectthatonlyusesGeViSoftactions,youneedatleast.
GEUTEBRUECK.GeViSoftSDKNET.ActionsWrapper
aswellas
GEUTEBRUECK.GeViSoftSDKNET.ActionsWrapper.ActionDispatcher
and,additionally foractionsfromeveryactionclassyouuse,
GEUTEBRUECK.GeViSoftSDKNET.ActionsWrapper.YourActionClass
IfyoualsowanttouseGeViScope actions,makesuretoinclude
GEUTEBRUECK.GeViScope.Wrapper.Actions.ActionDispatcher
and
GEUTEBRUECK.GeViScope.Wrapper.Actions.YourActionClass
Youcanfinddescriptions oftheactionsandtheirrespective actionclassesintheAPIdoc-
umentation orbyinspecting theassemblies withtheObjectBrowser.
VisualStudio2010,C#
Configure yourprojectasdescribed inparagraph VisualStudio2008,C#
Common TaskswithC#
Thischapterdescribes severalcommontasksyoumightneedtocarryoutduringyourdevel-
opment.Thetasksaredescribed inpseudocodeandC#.
================================================================================
PAGE 95
================================================================================
Connecting toaGeViServer
Thisparagraph showsyouwhattasksareneededforconnecting toaGeViServer.
Connecting
PseudoCode
1.Implement theconnectcallbackmethod
2.Createaninstanceofadatabaseconnection object
3.Callthecreate()methodofyourdatabaseconnection object
4.Addyourcallbackdelegatemethodtotheinvocation list
5.Registeryourcallbackmethod
6.Calltheconnectmethodofyourdatabaseconnection object
C#
//Thisistheconnect progress callback method.
//ItiscalledfromwithinGeViSoft duringtheconnection progress
voidmyConnectProgress (objectsender, GeViSoftConnectProgressEventArgs e)
{
Console.WriteLine ("Connecting... {0}of{1}",e.Progress, e.Effort);
}
//myDBisthedatabase objectthatencapsulates
//allGeViSoft interaction.
GeViDatabase myDB=newGeViDatabase ();
//Settheservername,usernameandpassword ofyour
//GeViSoft connection
myDb.Create ("localhost", "sysadmin", "masterkey" );
================================================================================
PAGE 96
================================================================================
//Addyourcallback delegate totheinvocation list
myDb.ConnectProgress +=newGeViSoftConnectProgressEventHandler (
myConnectProgress);
//Register thecallback insideGeViSoft
myDb.RegisterCallback ();
//Nowyoucanconnect totheGeViSoft Server...
myDB.Connect ();
Astraightforward implementation forestablishing aconnection canbefoundinexampleCS_
ConsoleClient .
Message Handling
Afterhavingestablished theconnection, youarereadytoexchange messages andactions
withtheserver.
Creating andSending ofGeViSoft Messages
Therearetwoapproaches thatcanbetakentocreateandsendGeViSoftmessages. Youcan
eithercreateamessageinstancebycallingitsconstructor andthensendthisinstance,or
youcandirectlysendastringrepresentation ofamessagewithoutinstantiating itfirst.
Example 1Creating aninstance ofamessage andsending itafter-
wards
//CreateaCrossSwitch Actionandswitch
//input7tooutput1
GeViAct_ CrossSwitch myAction =newGeViAct_ CrossSwitch (
7,1,GeViTSwitchMode.sm_ Normal);
//Sendtheaction
================================================================================
PAGE 97
================================================================================
myDB.SendMessage (myAction);
 NOTICE
Makesureyouhaveincludedyouractionscorresponding actionclassnamespace inyour
usingdirectives. SeeConfiguring yourIDEforGeViSoft.Net Projects->VS2008,C#
Example 2Directly sending amessage fromastring
myDB.SendMessage ("CrossSwitch (7,1,0)");
Receiving ofGeViSoft Actions
GeViSoftactiondispatching iseventbased.Internally, foreveryactionthatisreceived,an
eventisfired.IfyouwanttoprocesscertainGeViSoftactionmessages insideyourappli-
cation,youcanregisteraneventhandlerforthisparticularaction.Theeventhandleriscalled
whenever anewactionofthattypeisreceived.
IfyouwanttoprocessCrossSwitch actionsinyourapplication, youcanproceedasshownin
thisexample.
Pseudocode:
1.Implement amethodthatiscalledwhenever theeventisfired(actionreceived)
2.Registeryourmethodasaneventhandlerfortheparticularaction
3.RegisteryoureventhandlerinsidetheGeViSoftconnection object.
C#:
//Methodtobecalledonreceiving aCrossSwitch Action
voidmyDB_ReceivedCrossSwitch (objectsender, GeViAct_ CrossSwitchEventArgs
e)
{
================================================================================
PAGE 98
================================================================================
StringreceivedMessage ="CrossSwitch ("+
e.aVideoInput +","+
e.aVideoOutput +","+
e.aSwitchMode +")";
}
//Eventhandler forCrossSwitch Actions
myDB.ReceivedCrossSwitch +=new
GeViAct_ CrossSwitchEventHandler (myDB_ReceivedCrossSwitch);
//Dontforgettoregister thehandler insidetheGeViSoft connection
object
myDB.RegisterCallback ();
Receiving ofGeViSoft Notifications
Besidesactions,GeViSoftalsosendsmessages regardingtheserverstatus,thedatabase
notifications. Youcanreceivethesenotifications byregistering aGeV-
iSoftDatabaseNotificationEventHandler. Theprocedure issimilartotheactionsubscription
asdescribed above.
Hereisanexample:
voidmyDB_DatabaseNotification (objectsender,
GeViSoftDatabaseNotificationEventArgs e)
{
switch(e.ServerNotificationType)
{
caseGeViServerNotification .NFServer_ Disconnected:
//("Disconnected fromServer");
break;
caseGeViServerNotification .NFServer_ GoingShutdown:
//("Server isshutting down");
break;
================================================================================
PAGE 99
================================================================================
caseGeViServerNotification .NFServer_ SetupModified:
//("Server setuphasbeenmodified");
break;
caseGeViServerNotification .NFServer_ NewMessage:
//An“ordinary” actionhasbeenreceived.
//Handlethisactioninaseparate Event-
Handler
//(likemyDB_ReceivedCrossSwitchAction)
break;
}
}
//Youregister thehandler asdescribed before
myDB.DatabaseNotification +=new
GeViSoftDatabaseNotificationEventHandler (myDB_DatabaseNotification);
myDB.RegisterCallback ();
 NOTICE
Pleasenotethatthee.ServerNotificationType equalsGeViServerNotification .NFServer_ New-
Message witheveryGeViSoft actionthatisreceived, regardless ifyoualready subscribed forit
withanother eventhandler.
Handling ofGeViScope Actions
YoucanalsosendGeViScope actionsfromyourGeViSoftapplication. SendingGeViScope
actionsisverysimilartosendingGeViSoftactions.Theonlydifference isthatyouneedto
addtheGeViScope serveraliastotheSendMessage ()methodsparameters.
Sending GeViScope Actions
ExamplesendingaGeViScope message:
================================================================================
PAGE 100
================================================================================
Prerequisite:
1.Connection toGeViScope hasbeenconfigured withGeViSet
2.Theappropriate namespaces areincluded
//Example forGeViScope namespace neededtohandle
//aGeViScope CustomAction
usingGEUTEBRUECK.GeViScope.Wrapper.Actions;
usingGEUTEBRUECK.GeViScope.Wrapper.Actions.SystemActions;
//CreatetheGeViScope action
GscAct_CustomAction myGscAction =new
GscAct_CustomAction (23,"HelloGeViScope!" );
//SendtheActiontothe“GeViScope_ Alias”server
myDB.SendMessage ("GEVISCOPE_ ALIAS",myGscAction);
Receiving GeViScope Actions
Receiving GeViScope actionsisalittledifferentfromhandlingGeViSoftactions.Duetoarchi-
tecturalconstraints, whenever aGeViSoftActionarrives,itisencapsulated intoaspecial
GeViSoftaction.ThisactioniscalledGscAction.
TheGscAction itselfisretrievedlikeanyotherGeViSoftactionbyimplementing amethod
thatprocesses theGscAction andthatisaddedasaneventhandlerforreceivingtheGscAc-
tion.
ThismethodreceivestheoriginalGeViScope Actionembedded intoitsEventArgs whenever
itiscalled.
NormallyyouthenwouldhavetoidentifyandparsetheGeViScope actionandhandleitas
neededbyhand.Foryourconvenience, theGeutebrueck SDKsprovideyouwithadispatcher
thatcansimplifythattask:
ThereisaDispatcher methodforGeViScope actionsthatworksverysimilartothedis-
patchingmechanism usedbyGeViSoft. YoucansimplyaddeventhandlersfortheGeV-
iScopeactionsyouareinterested inandprocesstheminthere.