From 729f10e16d8113552426bc43878d1d7c0d337cea Mon Sep 17 00:00:00 2001 From: cheapie Date: Sun, 24 May 2026 18:55:07 -0500 Subject: Assorted elevator example changes --- c/elevator/elevator.c | 44 +++++++- c/elevator/elevator.elf | Bin 8748 -> 9220 bytes c/elevator/elevator.hex | 285 ++++++++++++++++++++++++++---------------------- c/elevator/elevator.o | Bin 12580 -> 15688 bytes 4 files changed, 192 insertions(+), 137 deletions(-) (limited to 'c') 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 index 9b5cafc..3077ca7 100755 Binary files a/c/elevator/elevator.elf and b/c/elevator/elevator.elf differ 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 index 834800b..6150ab7 100644 Binary files a/c/elevator/elevator.o and b/c/elevator/elevator.o differ -- cgit v1.2.3