本文整理汇总了C#中IArea.GetButton方法的典型用法代码示例。如果您正苦于以下问题:C# IArea.GetButton方法的具体用法?C# IArea.GetButton怎么用?C# IArea.GetButton使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IArea
的用法示例。
在下文中一共展示了IArea.GetButton方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetupFan
private void SetupFan(StateMachine fan, IArea room, HSREL8 hsrel8)
{
var fanRelay1 = hsrel8[HSREL8Pin.Relay0];
var fanRelay2 = hsrel8[HSREL8Pin.Relay1];
var fanRelay3 = hsrel8[HSREL8Pin.Relay2];
fan.AddOffState()
.WithLowOutput(fanRelay1)
.WithLowOutput(fanRelay2)
.WithLowOutput(fanRelay3);
fan.AddState(new ComponentState("1")).WithHighOutput(fanRelay1).WithLowOutput(fanRelay2).WithHighOutput(fanRelay3);
fan.AddState(new ComponentState("2")).WithHighOutput(fanRelay1).WithHighOutput(fanRelay2).WithLowOutput(fanRelay3);
fan.AddState(new ComponentState("3")).WithHighOutput(fanRelay1).WithHighOutput(fanRelay2).WithHighOutput(fanRelay3);
fan.TryTurnOff();
fan.ConnectMoveNextAndToggleOffWith(room.GetButton(Bedroom.ButtonWindowLower));
}
示例2: SetupStairsCeilingLamps
private void SetupStairsCeilingLamps(IArea room, HSPE8OutputOnly hspe8UpperFloor)
{
var output = new LogicalBinaryOutput()
.WithOutput(hspe8UpperFloor[HSPE8Pin.GPIO4])
.WithOutput(hspe8UpperFloor[HSPE8Pin.GPIO5])
.WithOutput(hspe8UpperFloor[HSPE8Pin.GPIO7])
.WithOutput(hspe8UpperFloor[HSPE8Pin.GPIO6])
.WithInvertedState();
_actuatorFactory.RegisterLamp(room, Floor.LampStairsCeiling, output);
_automationFactory.RegisterTurnOnAndOffAutomation(room, Floor.LampStairsCeilingAutomation)
.WithTrigger(room.GetMotionDetector(Floor.StairsLowerMotionDetector))
.WithTrigger(room.GetMotionDetector(Floor.StairsUpperMotionDetector))
//.WithTrigger(floor.GetButton(Floor.ButtonStairsUpper).GetPressedShortlyTrigger())
.WithTarget(room.GetStateMachine(Floor.LampStairsCeiling));
var lamp = room.GetLamp(Floor.LampStairsCeiling);
room.GetButton(Floor.ButtonStairsUpper).GetPressedShortlyTrigger().Triggered += (s, e) =>
{
if (lamp.GetState().Equals(BinaryStateId.On))
{
lamp.SetState(BinaryStateId.Off, new AnimateParameter().WithReversedOrder());
}
else
{
lamp.SetState(BinaryStateId.On, new AnimateParameter());
}
};
room.GetButton(Floor.ButtonStairsLowerUpper).GetPressedShortlyTrigger().Triggered += (s, e) =>
{
if (lamp.GetState().Equals(BinaryStateId.On))
{
lamp.SetState(BinaryStateId.Off, new AnimateParameter());
}
else
{
lamp.SetState(BinaryStateId.On, new AnimateParameter().WithReversedOrder());
}
};
}
示例3: SetupStairwayLamps
private void SetupStairwayLamps(IArea room)
{
_automationFactory.RegisterTurnOnAndOffAutomation(room, Floor.CombinedStairwayLampAutomation)
.WithTrigger(room.GetMotionDetector(Floor.StairwayMotionDetector))
.WithTrigger(room.GetButton(Floor.ButtonStairway).GetPressedShortlyTrigger())
.WithTarget(room.GetActuator(Floor.CombinedStairwayLamp))
.WithEnabledAtNight();
}
示例4: SetupLight
private void SetupLight(StateMachine light, HSREL8 hsrel8, HSPE8OutputOnly hspe8, IArea room)
{
// Front lights (left, middle, right)
var fl = hspe8[HSPE8Pin.GPIO0].WithInvertedState();
var fm = hspe8[HSPE8Pin.GPIO2].WithInvertedState();
var fr = hsrel8[HSREL8Pin.GPIO0].WithInvertedState();
// Middle lights (left, middle, right)
var ml = hspe8[HSPE8Pin.GPIO1].WithInvertedState();
var mm = hspe8[HSPE8Pin.GPIO3].WithInvertedState();
var mr = hsrel8[HSREL8Pin.GPIO1].WithInvertedState();
// Rear lights (left, right)
// Two mechanical relays.
var rl = hsrel8[HSREL8Pin.GPIO5];
var rr = hsrel8[HSREL8Pin.GPIO4];
light.AddOffState()
.WithLowOutput(fl)
.WithLowOutput(fm)
.WithLowOutput(fr)
.WithLowOutput(ml)
.WithLowOutput(mm)
.WithLowOutput(mr)
.WithLowOutput(rl)
.WithLowOutput(rr);
light.AddOnState()
.WithHighOutput(fl)
.WithHighOutput(fm)
.WithHighOutput(fr)
.WithHighOutput(ml)
.WithHighOutput(mm)
.WithHighOutput(mr)
.WithHighOutput(rl)
.WithHighOutput(rr);
var deskOnlyStateId = new ComponentState("DeskOnly");
light.AddState(deskOnlyStateId)
.WithHighOutput(fl)
.WithHighOutput(fm)
.WithLowOutput(fr)
.WithHighOutput(ml)
.WithLowOutput(mm)
.WithLowOutput(mr)
.WithLowOutput(rl)
.WithLowOutput(rr);
var couchOnlyStateId = new ComponentState("CouchOnly");
light.AddState(couchOnlyStateId)
.WithLowOutput(fl)
.WithLowOutput(fm)
.WithLowOutput(fr)
.WithLowOutput(ml)
.WithLowOutput(mm)
.WithLowOutput(mr)
.WithLowOutput(rl)
.WithHighOutput(rr);
light.WithTurnOffIfStateIsAppliedTwice();
room.GetButton(Office.ButtonLowerRight)
.GetPressedShortlyTrigger()
.Attach(light.GetSetStateAction(couchOnlyStateId));
room.GetButton(Office.ButtonLowerLeft)
.GetPressedShortlyTrigger()
.Attach(light.GetSetStateAction(deskOnlyStateId));
room.GetButton(Office.ButtonUpperLeft)
.GetPressedShortlyTrigger()
.Attach(light.GetSetStateAction(BinaryStateId.On));
_synonymService.AddSynonymsForArea(Room.Office, "Büro", "Arbeitszimmer");
_synonymService.AddSynonymsForComponent(Room.Office, Office.CombinedCeilingLights, "Licht");
_synonymService.AddSynonymsForComponent(Room.Office, Office.SocketRearLeftEdge, "Rotlicht", "Pufflicht", "Rot");
_synonymService.AddSynonymsForComponentState(deskOnlyStateId, "Schreibtisch");
_synonymService.AddSynonymsForComponentState(couchOnlyStateId, "Couch");
}