diff options
Diffstat (limited to 'c')
| -rw-r--r-- | c/elevator/elevator.c | 44 | ||||
| -rwxr-xr-x | c/elevator/elevator.elf | bin | 8748 -> 9220 bytes | |||
| -rw-r--r-- | c/elevator/elevator.hex | 285 | ||||
| -rw-r--r-- | c/elevator/elevator.o | bin | 12580 -> 15688 bytes |
4 files changed, 192 insertions, 137 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; diff --git a/c/elevator/elevator.elf b/c/elevator/elevator.elf Binary files differindex 9b5cafc..3077ca7 100755 --- a/c/elevator/elevator.elf +++ b/c/elevator/elevator.elf diff --git a/c/elevator/elevator.hex b/c/elevator/elevator.hex index 2da4185..1da9ac6 100644 --- a/c/elevator/elevator.hex +++ b/c/elevator/elevator.hex @@ -1,135 +1,156 @@ -:10000000370101008124A948730000008280148117
+:1000000037010100252CA94873000000828014816B
:10001000988133E6E60009C685050505E389E6FE15
-:1000200013351600828052B82A84C92B2A94F923EA
+:1000200013351600828052B82A84F52D2A94E52DC6
:10003000E36F85FE52BE46B822E422E00145130577
-:100040000068014413048068A285512B0145130503
-:10005000C068A2856923014513054069A285226411
-:10006000026446BAADAB4EB822F44AF052EC5AE8FC
-:1000700062E46AE0952B6300051C014B130BC07E04
-:10008000814B930B0068014C130CC069814C014DEE
-:10009000130DC068814D930D4069814A930A306CFD
-:1000A0000949014A130A406D81499309C06D9304BF
-:1000B0004B0113044B0201A813B516002306A07EC2
-:1000C0002523630A0516C14593060004268522866A
-:1000D0000D23FEAC1D4614813367D6003DC39881C5
-:1000E0007D1685050505E388E6FE1D45A6856A861D
-:1000F00094813367D5002DC718827D1505068505C7
-:10010000E388E6FE13054B019D456E86148133E7B7
-:10011000D50035CB1882FD1505060505E388E6FEFA
-:1001200013054B019D455686148133E7D50041C325
-:100130001882FD1505060505E388E6FE03258B00FC
-:10014000B5A813056002A28562869881B366E500B2
-:10015000A5D61C827D1505068505E308F7FEA9BF17
-:1001600013056002A28562869881B366E50099C690
-:100170001C827D1505068505E308F7FE13B51600FC
-:10018000A306A07E35BF13054B029305600262866D
-:100190001881B3E6E50099C61C82FD150506050524
-:1001A000E308F7FE13B516002307A07E11BF032551
-:1001B0008B006305250195456311B50693054B0139
-:1001C0001D46D2869881B367E60081CB9C827D165E
-:1001D00085068505E308F7FE39A099456305B50056
-:1001E0008D456311B50493054B011D46CE8698815C
-:1001F000B367E60081CB9C827D1685068505E30802
-:10020000F7FE7DBD9145E30DB5EA9D45E30AB5EAEC
-:100210000545A302AB004E8511A80545A307A07EA6
-:10022000568529A005452302AB00528581459305DB
-:10023000B06C752671B522740279626A426B226CC9
-:10024000026D4EBE4EB822F44AF052EC5AE862E417
-:100250006AE0014913090068814493048068814978
-:100260009309C068814C930C4069014C130CC07E0B
-:10027000A94A894D0544014D130D4065014B130BEF
-:10028000D071014A130AC07366AD912EE6AD812E7E
-:100290006685A685A926C13B03258C0063E5AA30A7
-:1002A0003345A5210841028501451305406E052609
-:1002B000014513057071DA851D260145130540724D
-:1002C000DA85312E01451305A072DA85092E014524
-:1002D00013050073DA852126014513054073DA857D
-:1002E000FD2C014513059073D285D52C01451305CE
-:1002F000306C01441304B074A285D5240145130564
-:10030000406DA285E92C01451305C06DA285054409
-:10031000F9240145130550755D2C23248C0061A43C
-:1003200003250C019305F5FF2328BC00634DA4268B
-:1003300001451305E078612C1D452324AC00A5A4DC
-:1003400001450345D07E6300052601451305E07C89
-:10035000BD2C01451305406D81459305B0744124C2
-:10036000014513059073D2859D2C014513054073FB
-:10037000D285B524014513054072D2858D24230210
-:100380000C000D4535A203250C019305F5FF23282C
-:10039000BC00634AA4200145130580770D2C154548
-:1003A0002324AC0009A403250C019305F5FF2328A1
-:1003B000BC00634AA41E014513053078092C194579
-:1003C0002324AC00CDA203454C000589630A051225
-:1003D00023268C00014513059079D52A2545232431
-:1003E000AC0001451305A072DA85D52A0145130535
-:1003F0000073D2855DA201450345C07E0589630473
-:10040000051A01451305A076D9220145130540734D
-:10041000D285F122014513057071D285C922D9A870
-:1004200003454C000589630E050E23260C0001458B
-:1004300013059079692A25452324AC00014513054D
-:100440007071DA85692A014513050073D28519AAEE
-:100450000325CC006306050E01450345F07E631CB1
-:10046000051003455C006300051423260C00E1A879
-:1004700001450345E07E0589630705120145130523
-:10048000C07DB12201451305C06D81459305B0744F
-:10049000B92223268C00014513059073D285812251
-:1004A00001451305A072D2851D2AA3020C00114537
-:1004B0002324AC0091A001450345C07E0589630457
-:1004C000050E01451305007C192201451305306C0A
-:1004D00081459305B074212223260C0001451305A4
-:1004E0004073D285ED28014513057071D285C5286A
-:1004F000A3010C002324BC0115452328AC0065A0F2
-:1005000001450345F07E45C123268C0001451305B6
-:10051000307B752821452324AC0001451305A072CA
-:10052000BDA003455C0041C123260C000145130515
-:10053000607A712823245C0101451305707129A894
-:1005400003455C000DC501451305607A492023244D
-:100550005C01014513054072DA8551200145130500
-:100560000073DA85AD280145130590731DA8014578
-:100570000345F07E0DC923268C0001451305307B11
-:10058000B92021452324AC00014513054072DA85CA
-:10059000B920014513050073DA8591200145130543
-:1005A0004073DA852D2803258C006D15E3EEADCC64
-:1005B00005458520A120930B15008920E36F75FF69
-:1005C00001458128D1B1854873000000828091489F
-:1005D000730000008280AD487300000082809308A1
-:1005E0001008730000008280930850087300000018
-:1005F000828093087008730000008280732510C009
-:100600008280732500C08280930860087300000018
-:1006100082800589F322008093920248B3E2A2000F
-:100620007390028082809548730000008280930856
-:100630000008730000008280A148730000008280DF
-:10064000930830087300000082809308400873000C
-:1006500000008280A8020000F6030000860300006C
-:10066000A603000020030000200400005004000046
-:10067000C6030000B6040000400300007004000040
-:1006800073656E736F7231004745540073656E7306
-:100690006F72320073656E736F7233006D657365D0
-:1006A000636F6E735F6D6F766573746F6E65733AAB
-:1006B0006D6F766573746F6E655F7665727469636E
-:1006C000616C00627574746F6E31006C6967687478
-:1006D0005F6F6E00627574746F6E32006275747451
-:1006E0006F6E33000A456C657661746F7220436FDC
-:1006F0006E74726F6C6C65720A666F72205256432C
-:100700006F6E74726F6C6C65720A496E69746961A0
-:100710006C697A696E6700646F6F72310065787416
-:10072000656E6400646F6F723200646F6F723300C5
-:1007300073656C00646F776E00757000726574721B
-:100740006163745F737469636B79006C6967687463
-:100750005F6F6666000A426F74746F6D20466C6F3F
-:100760006F722044656D616E64000A424644204306
-:100770006F6D706C657465000A49646C6520617406
-:100780002031000A49646C652061742032000A49F6
-:10079000646C652061742033000A4D6F76696E6762
-:1007A00020746F2032000A4D6F76696E6720746F77
-:1007B0002033000A4D6F76696E6720746F20310018
-:1007C0000A417272697665642061742031000A41C1
-:1007D0007272697665642061742032000A41727217
-:0A07E000697665642061742033001F
-:1007EC0000000000000000000000000000000000FD
-:1007FC0000000000000000000000000000000000ED
-:10080C0000000000000000000000000000000000DC
-:10081C0000000000000000000000000000000000CC
-:10082C0000000000000000000000000000000000BC
-:10083C0000000000000000000000000000000000AC
-:04084C0000000000A8
+:10004000C07A01441304407BA2857D2D0145130530
+:10005000807BA285552D01451305007CA285226475
+:10006000026446BA55A54EB822F44AF052EC5AE85A
+:1000700062E46AE0792D630C051A056B130B8B970C
+:10008000814B930BC07A014C130C807C856C014D25
+:10009000130D807B814D930D007C814A930A007D76
+:1000A0000949014A130A107E81499309907E9304FD
+:1000B000CB0113044B0101A813B51600238CAC9699
+:1000C000892D63060516C145A14626852286B925D8
+:1000D000FEAC1D4614813367D6003DC398817D1662
+:1000E00085050505E388E6FE1D45A6856A8694819B
+:1000F0003367D50025C718827D1505068505E38879
+:10010000E6FE1305CB019D456E86148133E7D500CD
+:1001100025CB1882FD1505060505E388E6FE1305C7
+:10012000CB019D455686148133E7D5002DCF18822B
+:10013000FD1505060505E388E6FE03258B009DA851
+:100140001D45A28562869881B366E500B5D61C82FE
+:100150007D1505068505E308F7FEB9BF1D45A28597
+:1001600062869881B366E50099C61C827D150506F6
+:100170008505E308F7FE13B51600A38CAC9689B786
+:1001800013054B019D4562861881B3E6E50099C6CB
+:100190001C82FD1505060505E308F7FE13B51600DC
+:1001A000238DAC9631BF03258B0063052501954552
+:1001B0006311B5069305CB011D46D2869881B367BE
+:1001C000E60081CB9C827D1685068505E308F7FE57
+:1001D00039A099456305B5008D456311B5049305B4
+:1001E000CB011D46CE869881B367E60081CB9C8209
+:1001F0007D1685068505E308F7FED9B59145E3012F
+:10020000B5EC9D45E30EB5EA0545A302AB004E856E
+:1002100011A80545A38DAC96568529A00545230256
+:10022000AB00528581459305807DF92951BD22742B
+:100230000279626A426B226C026D4EBE4EB8411169
+:1002400022FC4AF852F45AF062EC6AE881499309B8
+:10025000C07A014B130B407B814A930A807B814C0F
+:10026000930C007C856D938D8D97A9440944054AB4
+:10027000014913090078056D130DAD82056C130C4F
+:100280001C8405651305C595930575002EC6550597
+:100290002AC4FAAD9529FAAE85296685DA85AD219D
+:1002A000D93303A58D0063E5A442334525210841D8
+:1002B000028501451305107F8121056513054582DF
+:1002C000EA859921056513051583EA8535290565B4
+:1002D00013057583EA850D2905651305D583EA8520
+:1002E0002521056513058587EA85392905651305E7
+:1002F0002586E285112901451305007D0564130457
+:100300000485A285112101451305107EA285ED2EDD
+:1003100001451305907EA285054AFD260565130556
+:10032000A5853244A285CD26056513055586A2858F
+:10033000E12E0565130505872244A285F126056592
+:100340001305D587A2850944A9447D2E05651305AB
+:10035000A5885D2623A44D01A5AE03A50D01930537
+:10036000F5FF23A8BD006345AA3605651305D58DA5
+:1003700061261D4523A4AD00A1AE056503459597F3
+:100380006308053405651305D591BD2601451305A0
+:10039000107E856593850585852E05651305258663
+:1003A000E2859D26056513058587E285B12E0565E5
+:1003B00013051583E285892E03A5CD00630D05285D
+:1003C00085659385C595B9050565130505872D2EAA
+:1003D00085659385259351AC03A50D019305F5FF24
+:1003E00023A8BD006346AA2E05651305758C292632
+:1003F000154523A4AD00E9AC03A50D019305F5FF58
+:1004000023A8BD006346AA2C05651305258DED24A0
+:10041000194523A4AD006DAC03C54D0005896304E7
+:10042000051823A64D0105651305858EF124254584
+:1004300023A4AD00056513057583EA85F1240565E0
+:100440001305D583E28579A205650345859705895E
+:100450006300052805651305F589792C05651305E5
+:100460008587E2855524056513054582E285692C5B
+:1004700023A48D00154523A8AD0005651305A585AA
+:1004800085659385C595492405651305D58A8565D8
+:100490009385458B2DAC03C54D0005896306051476
+:1004A00023A60D0005651305858EB924254523A4D3
+:1004B000AD00056513054582EA85B9240565130578
+:1004C000D583E285B9A203A5CD00630F05140565A8
+:1004D0000345B597631C051A03C55D00630A051E35
+:1004E00023A60D00A9A205650345A597058963010B
+:1004F000051E056513057594012401451305907EBD
+:10050000856593850585092423A64D010565130599
+:100510002586E285D52A056513057583E285ED22DA
+:1005200085659385C595B90505651305D587E92AC0
+:10053000056513055595856593852593F122A3825D
+:100540000D00114515AA05650345859705896301C9
+:10055000051805651305F590452201451305007D35
+:100560008565938505854D2223A60D000565130538
+:100570008587E285512A056513054582E285692252
+:1005800005651305A58585659385C595B52A05651A
+:100590001305D58A85659385458BBD22A3810D0002
+:1005A00023A48D00E1A805650345B59763020512F4
+:1005B00023A64D010565130525903D2A214523A459
+:1005C000AD00056513057583EA853D2A05651305AC
+:1005D000D583EA85152A056513058587EA852D22C9
+:1005E00005651305D587DDA003C55D006302050E13
+:1005F00023A60D0005651305558FFD2823A49D0036
+:10060000056513054582EA85012205651305D58335
+:10061000EA85DD28056513052586EA85F52005654B
+:100620001305A585B24565A003C55D0021CD05650F
+:100630001305558FD12023A49D000565130515834F
+:10064000EA85D92005651305D583EA8575280565F2
+:100650001305258695A00565130555868565938543
+:10066000C5955D2085659385458B05651305B59218
+:10067000612823820D000D4523A4AD00154523A854
+:10068000AD00B9A005650345B59739C123A64D0155
+:100690000565130525908D20214523A4AD00056532
+:1006A00013051583EA858D2005651305D583EA8535
+:1006B000A128056513058587EA85B9200565130519
+:1006C0005586B2459120056513050587A2452D285D
+:1006D00003A58D006D15E36EA4BA05458520A12004
+:1006E000930B15008920E36F75FF0145812855B6EE
+:1006F000854873000000828091487300000082806A
+:10070000AD48730000008280930810087300000059
+:10071000828093085008730000008280930870085C
+:10072000730000008280732510C08280732500C092
+:100730008280930860087300000082800589F3229C
+:10074000008093920248B3E2A200739002808280FC
+:100750009548730000008280930800087300000031
+:100760008280A148730000008280930830087300E3
+:10077000000082809308400873000000828000001F
+:10078000B202000048040000D8030000F803000093
+:100790005A03000096040000C6040000180400007C
+:1007A000460500007A030000E604000073656E73DE
+:1007B0006F7231004745540073656E736F7232007B
+:1007C00073656E736F7233006D657365636F6E0072
+:1007D000627574746F6E31006C696768745F6F6EF8
+:1007E00000627574746F6E3200627574746F6E336C
+:1007F000000A456C657661746F7220436F6E747287
+:100800006F6C6C65720A666F72205256436F6E741D
+:10081000726F6C6C65720A496E697469616C697A91
+:10082000696E6700646F6F723100657874656E641D
+:1008300000646F6F723200646F6F72330073656CA7
+:1008400000726574726163745F737469636B7900BD
+:100850006C696768745F6F6666006C616E74657260
+:100860006E317570006C616E7465726E32757000F9
+:100870006C616E7465726E32646F776E006C616E5F
+:100880007465726E33646F776E000A426F74746FB2
+:100890006D20466C6F6F722044656D616E64000A56
+:1008A00042464420436F6D706C65746500636869EF
+:1008B0006D65310063656C657661746F725F636846
+:1008C000696D655F7570000A49646C65206174200C
+:1008D00031000A49646C652061742032000A496461
+:1008E0006C652061742033000A4D6F76696E672055
+:1008F000746F2032000A4D6F76696E6720746F2026
+:1009000033000A4D6F76696E6720746F2031000ADC
+:10091000417272697665642061742031000A417207
+:1009200072697665642061742032006368696D6560
+:10093000320063656C657661746F725F6368696DC0
+:10094000655F646F776E000A417272697665642034
+:0C09500061742033006368696D6533003A
+:10095C0035356666353500303033333030006666F9
+:10096C003535353500333330303030000000000081
+:10097C00000000000000000000000000000000006B
+:10098C00000000000000000000000000000000005B
+:08099C00000000000000000053
:00000001FF
diff --git a/c/elevator/elevator.o b/c/elevator/elevator.o Binary files differindex 834800b..6150ab7 100644 --- a/c/elevator/elevator.o +++ b/c/elevator/elevator.o |
