From: John Hodge Date: Sun, 11 Jul 2010 10:24:05 +0000 (+0800) Subject: Basic outline X-Git-Url: https://git.ucc.asn.au/?p=tpg%2Fopendispense2.git;a=commitdiff_plain;h=06198f841ce4e49e7894f4ad82148dda08d58ddc Basic outline --- 06198f841ce4e49e7894f4ad82148dda08d58ddc diff --git a/plan.txt b/plan.txt new file mode 100644 index 0000000..cc67aba --- /dev/null +++ b/plan.txt @@ -0,0 +1,15 @@ + +Central "dispense" server +- Accounting Section + > Linking to a static libary for the cokebank + + int AlterBalance(UID, int Delta) + + int GetBalance(UID) +- Device Control Section + > Snack - Controls Vending Machine and accepts logins + > Coke - Controls Coke Machine + > Misc Server + - int Dispense(int ID, int UID) +- Remote Control + > Accepts commands from dispense app. + - See `proto.txt` + diff --git a/proto.txt b/proto.txt new file mode 100644 index 0000000..278abc0 --- /dev/null +++ b/proto.txt @@ -0,0 +1,52 @@ +OpenDispense^2 +Client/Server Dispense Protocol + +The protocol is ASCII based, similar to the FTP protocol +All server responses are on one line and are prefixed by a three digit response code. + +== Response Codes == +100 Information +200 Command succeeded, no extra information +201 Command succeeded, array follows ( ...) +202 Command succeeded, per-command format +400 Unknown Command +401 Not Authenticated (or Authentication failure) +402 Balance insufficient +403 User not allowed to perform this action +404 Bad other username +406 Bad Item ID +500 Unknown Dispense Failure + + +=== User Auth === +c USER \n +s 100 SALT \n +c PASS \n (Hash of ) +s 200 Auth OK\n or 401 Auth Failure\n +User is now authenticated + +=== Commands === +--- Get Item list --- +c ENUM_ITEMS\n +s 201 Items ...\n +--- Get Item Information --- +c ITEM_INFO \n +s 202 Item ""\n +--- Dispense an item --- +c DISPENSE \n +s 200 Dispense OK\n or 402 Poor You\n or 500 Dispense Error\n or 406 Bad Item\n +--- Give to another user --- +c GIVE \n +s 200 Give OK\n or 402 Poor You\n or 404 Bad User\n +--- Update balance --- +c ADD ""\n +s 200 Add OK\n or 403 Not Coke\n or 404 Bad User\n +--- Set Balance --- +c SET ""\n +s 200 Set OK\n or 403 Not allowed\n or 404 Bad User\n +--- Get Users Balances --- +c ENUM_USERS[ ]\n +s 201 Users ...\n +--- Get a User's Balance --- +c USERINFO\n +s 202 User \n