diff options
| author | cheapie <no-email-for-you@example.com> | 2026-05-24 18:55:07 -0500 |
|---|---|---|
| committer | cheapie <no-email-for-you@example.com> | 2026-05-24 18:55:07 -0500 |
| commit | 729f10e16d8113552426bc43878d1d7c0d337cea (patch) | |
| tree | 131b3860976ba1f7486b01f245ee2647c63d8f23 /c/elevator/elevator.c | |
| parent | 9504225c8178935d561873c665214dcea2cf07fc (diff) | |
| download | rvcontroller-729f10e16d8113552426bc43878d1d7c0d337cea.tar rvcontroller-729f10e16d8113552426bc43878d1d7c0d337cea.tar.gz rvcontroller-729f10e16d8113552426bc43878d1d7c0d337cea.tar.bz2 rvcontroller-729f10e16d8113552426bc43878d1d7c0d337cea.tar.xz rvcontroller-729f10e16d8113552426bc43878d1d7c0d337cea.zip | |
Assorted elevator example changes
Diffstat (limited to 'c/elevator/elevator.c')
| -rw-r--r-- | c/elevator/elevator.c | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/c/elevator/elevator.c b/c/elevator/elevator.c index 15737fc..c73f170 100644 --- a/c/elevator/elevator.c +++ b/c/elevator/elevator.c @@ -19,7 +19,12 @@ int direction = DIRECTION_UP; int timer; char channelbuf[16]; -char msgbuf[64]; +char msgbuf[8]; + +char uplanternon[] = "55ff55"; +char uplanternoff[] = "003300"; +char downlanternon[] = "ff5555"; +char downlanternoff[] = "330000"; bool streq(char *a, char *b) { for (int i=0;a[i] != 0 || b[i] != 0;i++) { @@ -46,13 +51,13 @@ void sendSensorGetMessages(void) { void processDigilinesMessages(void) { while (digiline_bufferlevel() > 0) { - digiline_receive(channelbuf,16,msgbuf,64); + digiline_receive(channelbuf,16,msgbuf,8); if (streq(channelbuf,"sensor1")) { - sensor1state = (streq(msgbuf,"mesecons_movestones:movestone_vertical")); + sensor1state = (streq(msgbuf,"mesecon")); } else if (streq(channelbuf,"sensor2")) { - sensor2state = (streq(msgbuf,"mesecons_movestones:movestone_vertical")); + sensor2state = (streq(msgbuf,"mesecon")); } else if (streq(channelbuf,"sensor3")) { - sensor3state = (streq(msgbuf,"mesecons_movestones:movestone_vertical")); + sensor3state = (streq(msgbuf,"mesecon")); } else if (streq(channelbuf,"button1") && (state != STATE_TIMING_1) && (state != STATE_IDLE_1)) { call1state = true; digiline_send("button1","light_on"); @@ -82,6 +87,10 @@ void main(void) { digiline_send("button1","light_off"); digiline_send("button2","light_off"); digiline_send("button3","light_off"); + digiline_send("lantern1up",uplanternoff); + digiline_send("lantern2up",uplanternoff); + digiline_send("lantern2down",downlanternoff); + digiline_send("lantern3down",downlanternoff); printstr("\nBottom Floor Demand"); state = STATE_BOTTOM_FLOOR_DEMAND; break; @@ -92,6 +101,8 @@ void main(void) { digiline_send("door1","retract_sticky"); state = STATE_TIMING_1; timer = 5; + digiline_send("lantern1up",uplanternon); + digiline_send("chime1","celevator_chime_up"); } break; case STATE_TIMING_1: @@ -123,6 +134,7 @@ void main(void) { digiline_send("door1","extend"); digiline_send("sel","retract_sticky"); digiline_send("up","extend"); + digiline_send("lantern1up",uplanternoff); } else if (call3state) { direction = DIRECTION_UP; printstr("\nMoving to 3"); @@ -130,6 +142,7 @@ void main(void) { digiline_send("door1","extend"); digiline_send("sel","extend"); digiline_send("up","extend"); + digiline_send("lantern1up",uplanternoff); } break; case STATE_IDLE_2: @@ -141,6 +154,8 @@ void main(void) { digiline_send("door2","extend"); digiline_send("sel","extend"); digiline_send("up","extend"); + digiline_send("lantern2up",uplanternoff); + digiline_send("lantern2down",downlanternoff); } else if (call1state) { direction = DIRECTION_DOWN; printstr("\nMoving to 1"); @@ -148,6 +163,8 @@ void main(void) { digiline_send("door2","extend"); digiline_send("sel","extend"); digiline_send("down","extend"); + digiline_send("lantern2up",uplanternoff); + digiline_send("lantern2down",downlanternoff); } } else { if (call1state) { @@ -157,6 +174,8 @@ void main(void) { digiline_send("door2","extend"); digiline_send("sel","extend"); digiline_send("down","extend"); + digiline_send("lantern2up",uplanternoff); + digiline_send("lantern2down",downlanternoff); } else if (call3state) { direction = DIRECTION_UP; printstr("\nMoving to 3"); @@ -164,6 +183,8 @@ void main(void) { digiline_send("door2","extend"); digiline_send("sel","extend"); digiline_send("up","extend"); + digiline_send("lantern2up",uplanternoff); + digiline_send("lantern2down",downlanternoff); } } break; @@ -175,6 +196,7 @@ void main(void) { digiline_send("door3","extend"); digiline_send("sel","retract_sticky"); digiline_send("down","extend"); + digiline_send("lantern3down",downlanternoff); } else if (call1state) { direction = DIRECTION_DOWN; printstr("\nMoving to 1"); @@ -182,6 +204,7 @@ void main(void) { digiline_send("door3","extend"); digiline_send("sel","extend"); digiline_send("down","extend"); + digiline_send("lantern3down",downlanternoff); } break; case STATE_MOVING_1: @@ -191,6 +214,8 @@ void main(void) { direction = DIRECTION_UP; digiline_send("down","retract_sticky"); digiline_send("door1","retract_sticky"); + digiline_send("lantern1up",uplanternon); + digiline_send("chime1","celevator_chime_up"); timer = 5; state = STATE_TIMING_1; call1state = false; @@ -203,6 +228,13 @@ void main(void) { digiline_send("up","retract_sticky"); digiline_send("down","retract_sticky"); digiline_send("door2","retract_sticky"); + if (direction == DIRECTION_UP) { + digiline_send("lantern2up",uplanternon); + digiline_send("chime2","celevator_chime_up"); + } else { + digiline_send("lantern2down",downlanternon); + digiline_send("chime2","celevator_chime_down"); + } timer = 5; state = STATE_TIMING_2; call2state = false; @@ -215,6 +247,8 @@ void main(void) { direction = DIRECTION_DOWN; digiline_send("up","retract_sticky"); digiline_send("door3","retract_sticky"); + digiline_send("lantern3down",downlanternon); + digiline_send("chime3","celevator_chime_down"); timer = 5; state = STATE_TIMING_3; call3state = false; |
