blockchain , sdchain cpp sdk and demo
Dependencies: EthernetInterface mbed-rtos mbed uniqueCPUID
Fork of bcsdk by
main.cpp@13:e77c7ae3a285, 2018-05-17 (annotated)
- Committer:
- MrAI
- Date:
- Thu May 17 13:36:46 2018 +0000
- Revision:
- 13:e77c7ae3a285
- Parent:
- 12:1b24ea479a59
- Child:
- 14:59412fcf8fa2
????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsteiert | 0:28bc7ce77e20 | 1 | #include "mbed.h" |
gsteiert | 0:28bc7ce77e20 | 2 | #include "EthernetInterface.h" |
MrAI | 11:6d9cefb14158 | 3 | //#include "SDFileSystem.h" |
gsteiert | 0:28bc7ce77e20 | 4 | #include <stdio.h> |
webmaster | 9:d7468574ef8f | 5 | #include "uniqueCPUID.h" |
webmaster | 8:f2a567ee3a46 | 6 | |
webmaster | 8:f2a567ee3a46 | 7 | #include <iostream> |
webmaster | 8:f2a567ee3a46 | 8 | #include <string> |
webmaster | 8:f2a567ee3a46 | 9 | #include "UnitTest.h" |
webmaster | 8:f2a567ee3a46 | 10 | //#include "BlockChain.h" |
webmaster | 8:f2a567ee3a46 | 11 | #include "MockHsm.h" |
webmaster | 10:aabd720e632c | 12 | #include "Asset.h" |
webmaster | 10:aabd720e632c | 13 | #include "Transaction.h" |
webmaster | 10:aabd720e632c | 14 | #include "Account.h" |
webmaster | 10:aabd720e632c | 15 | #include "Key.h" |
MrAI | 12:1b24ea479a59 | 16 | #include "Payment.h" |
MrAI | 12:1b24ea479a59 | 17 | #include "ServerInfo.h" |
MrAI | 12:1b24ea479a59 | 18 | #include "Order.h" |
webmaster | 8:f2a567ee3a46 | 19 | |
webmaster | 8:f2a567ee3a46 | 20 | using namespace std; |
gsteiert | 0:28bc7ce77e20 | 21 | |
gsteiert | 0:28bc7ce77e20 | 22 | #define HTTPD_SERVER_PORT 80 |
gsteiert | 0:28bc7ce77e20 | 23 | #define HTTPD_MAX_REQ_LENGTH 1023 |
gsteiert | 0:28bc7ce77e20 | 24 | #define HTTPD_MAX_HDR_LENGTH 255 |
gsteiert | 0:28bc7ce77e20 | 25 | #define HTTPD_MAX_FNAME_LENGTH 127 |
gsteiert | 3:4f71a37a1ed2 | 26 | #define HTTPD_MAX_DNAME_LENGTH 127 |
gsteiert | 3:4f71a37a1ed2 | 27 | |
webmaster | 10:aabd720e632c | 28 | #define DEBUG_LOG 1 |
webmaster | 10:aabd720e632c | 29 | |
webmaster | 8:f2a567ee3a46 | 30 | const char* ECHO_SERVER_ADDRESS = "192.168.31.185"; |
webmaster | 8:f2a567ee3a46 | 31 | const int ECHO_SERVER_PORT = 10003; |
webmaster | 8:f2a567ee3a46 | 32 | |
gsteiert | 3:4f71a37a1ed2 | 33 | Serial uart(USBTX, USBRX); |
gsteiert | 0:28bc7ce77e20 | 34 | |
gsteiert | 6:ca17ce165ebc | 35 | //SDFileSystem sd(p5, p6, p7, p8, "sd"); // LPC1768 MBD2PMD |
gsteiert | 5:27b09a0f3fb6 | 36 | //SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // Seeeduino Arch Pro SPI2SD |
MrAI | 11:6d9cefb14158 | 37 | //SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F |
gsteiert | 3:4f71a37a1ed2 | 38 | |
gsteiert | 0:28bc7ce77e20 | 39 | EthernetInterface eth; |
gsteiert | 0:28bc7ce77e20 | 40 | TCPSocketServer server; |
gsteiert | 0:28bc7ce77e20 | 41 | TCPSocketConnection client; |
webmaster | 8:f2a567ee3a46 | 42 | TCPSocketConnection my_client; |
gsteiert | 0:28bc7ce77e20 | 43 | |
gsteiert | 0:28bc7ce77e20 | 44 | char buffer[HTTPD_MAX_REQ_LENGTH+1]; |
gsteiert | 0:28bc7ce77e20 | 45 | char httpHeader[HTTPD_MAX_HDR_LENGTH+1]; |
gsteiert | 3:4f71a37a1ed2 | 46 | char fileName[HTTPD_MAX_FNAME_LENGTH+1]; |
gsteiert | 3:4f71a37a1ed2 | 47 | char dirName[HTTPD_MAX_DNAME_LENGTH+1]; |
gsteiert | 0:28bc7ce77e20 | 48 | char *uristr; |
gsteiert | 0:28bc7ce77e20 | 49 | char *eou; |
gsteiert | 0:28bc7ce77e20 | 50 | char *qrystr; |
gsteiert | 0:28bc7ce77e20 | 51 | |
gsteiert | 0:28bc7ce77e20 | 52 | FILE *fp; |
gsteiert | 0:28bc7ce77e20 | 53 | int rdCnt; |
gsteiert | 0:28bc7ce77e20 | 54 | |
webmaster | 8:f2a567ee3a46 | 55 | // function declation |
webmaster | 8:f2a567ee3a46 | 56 | int test_socket_client(void); |
webmaster | 8:f2a567ee3a46 | 57 | int socket_init(); |
webmaster | 8:f2a567ee3a46 | 58 | int socket_fini(); |
webmaster | 8:f2a567ee3a46 | 59 | |
webmaster | 10:aabd720e632c | 60 | |
webmaster | 9:d7468574ef8f | 61 | void test_uuid() |
webmaster | 9:d7468574ef8f | 62 | { |
webmaster | 9:d7468574ef8f | 63 | char pUUID[128] = {0}; |
webmaster | 9:d7468574ef8f | 64 | getUniqueIDAsStr(pUUID); |
webmaster | 9:d7468574ef8f | 65 | printf("CPUID = %s \n",pUUID); |
webmaster | 9:d7468574ef8f | 66 | //printUniqueId(uart); |
webmaster | 9:d7468574ef8f | 67 | } |
webmaster | 8:f2a567ee3a46 | 68 | |
webmaster | 10:aabd720e632c | 69 | int test_MockHsm() |
webmaster | 10:aabd720e632c | 70 | { |
webmaster | 10:aabd720e632c | 71 | MockHsm mh; |
webmaster | 10:aabd720e632c | 72 | mh.setAlias("t_key_6"); |
webmaster | 10:aabd720e632c | 73 | cout<<mh.getAlias()<<endl; |
webmaster | 10:aabd720e632c | 74 | cout<<mh.createKey()<<endl; |
webmaster | 10:aabd720e632c | 75 | cout<< mh.listKeys() <<endl; |
webmaster | 10:aabd720e632c | 76 | return 0; |
webmaster | 10:aabd720e632c | 77 | } |
webmaster | 10:aabd720e632c | 78 | |
webmaster | 10:aabd720e632c | 79 | int test_Asset() |
webmaster | 10:aabd720e632c | 80 | { |
webmaster | 10:aabd720e632c | 81 | Asset asset; |
webmaster | 10:aabd720e632c | 82 | asset.setAlias("t_asset_6"); |
webmaster | 10:aabd720e632c | 83 | |
webmaster | 10:aabd720e632c | 84 | cout<< asset.createAsset() << endl; |
webmaster | 10:aabd720e632c | 85 | cout<< asset.listAssets() << endl; |
webmaster | 10:aabd720e632c | 86 | |
webmaster | 10:aabd720e632c | 87 | |
webmaster | 10:aabd720e632c | 88 | return 0; |
webmaster | 10:aabd720e632c | 89 | } |
webmaster | 10:aabd720e632c | 90 | |
webmaster | 10:aabd720e632c | 91 | int test_Account() |
webmaster | 10:aabd720e632c | 92 | { |
webmaster | 10:aabd720e632c | 93 | Key key; |
webmaster | 10:aabd720e632c | 94 | key.setAlias("t_key"); |
webmaster | 10:aabd720e632c | 95 | key.listKeys(); |
webmaster | 10:aabd720e632c | 96 | |
webmaster | 10:aabd720e632c | 97 | Account act(key); |
webmaster | 10:aabd720e632c | 98 | act.setAlias("t_acc_8"); |
webmaster | 10:aabd720e632c | 99 | act.createAccount(); |
webmaster | 10:aabd720e632c | 100 | act.listAccounts(); |
webmaster | 10:aabd720e632c | 101 | |
webmaster | 10:aabd720e632c | 102 | return 0; |
webmaster | 10:aabd720e632c | 103 | } |
webmaster | 10:aabd720e632c | 104 | |
webmaster | 10:aabd720e632c | 105 | int test_transaction(string type) |
webmaster | 10:aabd720e632c | 106 | { |
webmaster | 10:aabd720e632c | 107 | Transaction ts; |
webmaster | 10:aabd720e632c | 108 | //cout << ts.buildTransaction() << endl; |
webmaster | 10:aabd720e632c | 109 | ts.buildTransaction(type); |
webmaster | 10:aabd720e632c | 110 | ts.signTransaction(); |
webmaster | 10:aabd720e632c | 111 | ts.submitTransaction(); |
webmaster | 10:aabd720e632c | 112 | ts.listTransactions(); |
webmaster | 10:aabd720e632c | 113 | return 0; |
webmaster | 10:aabd720e632c | 114 | } |
webmaster | 10:aabd720e632c | 115 | |
webmaster | 10:aabd720e632c | 116 | int test_transaction() |
webmaster | 10:aabd720e632c | 117 | { |
webmaster | 10:aabd720e632c | 118 | vector<Actions> vActions; |
webmaster | 10:aabd720e632c | 119 | Actions act; |
webmaster | 10:aabd720e632c | 120 | MbedJSONValue reference_data; |
webmaster | 10:aabd720e632c | 121 | |
webmaster | 10:aabd720e632c | 122 | act.accounts_alias = "t_acc_1"; |
webmaster | 10:aabd720e632c | 123 | act.amount = 51; |
webmaster | 10:aabd720e632c | 124 | act.asset_alias = "t_asset"; |
webmaster | 10:aabd720e632c | 125 | act.reference_data = reference_data; |
webmaster | 10:aabd720e632c | 126 | act.type = "spend_account"; |
webmaster | 10:aabd720e632c | 127 | vActions.push_back(act); |
webmaster | 10:aabd720e632c | 128 | |
webmaster | 10:aabd720e632c | 129 | Actions act1 = {"t_acc_2", "t_asset", 49, reference_data, "spend_account" }; |
webmaster | 10:aabd720e632c | 130 | Actions act2 = {"tom", "t_asset", 80, reference_data, "control_account"}; |
webmaster | 10:aabd720e632c | 131 | Actions act3 = {"Jerry", "t_asset", 20, reference_data, "control_account"}; |
webmaster | 10:aabd720e632c | 132 | |
webmaster | 10:aabd720e632c | 133 | vActions.push_back(act1); |
webmaster | 10:aabd720e632c | 134 | vActions.push_back(act2); |
webmaster | 10:aabd720e632c | 135 | vActions.push_back(act3); |
webmaster | 10:aabd720e632c | 136 | printf("=============2========\r\n"); |
webmaster | 10:aabd720e632c | 137 | Transaction ts; |
webmaster | 10:aabd720e632c | 138 | ts.buildTransaction(vActions); |
webmaster | 10:aabd720e632c | 139 | ts.signTransaction(); |
webmaster | 10:aabd720e632c | 140 | ts.submitTransaction(); |
webmaster | 10:aabd720e632c | 141 | ts.listTransactions(); |
webmaster | 10:aabd720e632c | 142 | |
webmaster | 10:aabd720e632c | 143 | return 0; |
webmaster | 10:aabd720e632c | 144 | } |
webmaster | 10:aabd720e632c | 145 | |
webmaster | 10:aabd720e632c | 146 | |
MrAI | 12:1b24ea479a59 | 147 | |
MrAI | 12:1b24ea479a59 | 148 | int sd_account() |
MrAI | 12:1b24ea479a59 | 149 | { |
MrAI | 12:1b24ea479a59 | 150 | string balance = ""; |
MrAI | 12:1b24ea479a59 | 151 | Account act; |
MrAI | 12:1b24ea479a59 | 152 | balance = act.getBalance(); |
MrAI | 12:1b24ea479a59 | 153 | cout << "Extract json content from http message:"<<balance.c_str() << endl; |
MrAI | 12:1b24ea479a59 | 154 | if (balance.empty()) |
MrAI | 12:1b24ea479a59 | 155 | { |
MrAI | 12:1b24ea479a59 | 156 | return -1; |
MrAI | 12:1b24ea479a59 | 157 | } |
MrAI | 12:1b24ea479a59 | 158 | // decode content json |
MrAI | 12:1b24ea479a59 | 159 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 160 | //string err = parse(objJson, balance.c_str()); |
MrAI | 12:1b24ea479a59 | 161 | //int iLedger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 162 | //bool bSuccess = objJson["success"].get<bool>(); |
MrAI | 12:1b24ea479a59 | 163 | //int iCurrenciesNum = objJson["balances"].size(); |
MrAI | 12:1b24ea479a59 | 164 | /*for (int i = 0;i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 165 | { |
MrAI | 12:1b24ea479a59 | 166 | string value = objJson["balances"][i]["value"].get<string>(); |
MrAI | 12:1b24ea479a59 | 167 | string currency = objJson["balances"][i]["currency"].get<string>(); |
MrAI | 12:1b24ea479a59 | 168 | string counterparty = objJson["balances"][i]["counterparty"].get<string>(); |
MrAI | 12:1b24ea479a59 | 169 | cout << i << ":" << currency << "--" << value << "--" << counterparty << endl; |
MrAI | 12:1b24ea479a59 | 170 | }*/ |
MrAI | 12:1b24ea479a59 | 171 | string err = act.getParseMbedJson(objJson, balance.c_str()); |
MrAI | 12:1b24ea479a59 | 172 | int iLedger = act.getLedger(objJson); |
MrAI | 12:1b24ea479a59 | 173 | bool bSuccess = act.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 174 | int iCurrenciesNum = act.getBalanceSize(objJson,"balances"); |
MrAI | 13:e77c7ae3a285 | 175 | char pLedger[16] = {0}; |
MrAI | 13:e77c7ae3a285 | 176 | sprintf(pLedger, "%d", iLedger); |
MrAI | 13:e77c7ae3a285 | 177 | cout<<"Ledger is :"<<pLedger<<endl; |
MrAI | 12:1b24ea479a59 | 178 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 179 | { |
MrAI | 12:1b24ea479a59 | 180 | string value = act.getBalanceArray(objJson, "balances", i, "value"); |
MrAI | 12:1b24ea479a59 | 181 | string currency = act.getBalanceArray(objJson, "balances", i, "currency"); |
MrAI | 12:1b24ea479a59 | 182 | string counterparty = act.getBalanceArray(objJson, "balances", i, "counterparty"); |
MrAI | 12:1b24ea479a59 | 183 | cout << "The " << i <<" record:" << endl << "value:" << value << endl << "currency:"<<currency<<endl |
MrAI | 12:1b24ea479a59 | 184 | << "counterparty:" << counterparty << endl; |
MrAI | 12:1b24ea479a59 | 185 | } |
MrAI | 12:1b24ea479a59 | 186 | return 0; |
MrAI | 12:1b24ea479a59 | 187 | } |
MrAI | 12:1b24ea479a59 | 188 | |
MrAI | 12:1b24ea479a59 | 189 | int sd_wallet() |
MrAI | 12:1b24ea479a59 | 190 | { |
MrAI | 12:1b24ea479a59 | 191 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 192 | Account act; |
MrAI | 12:1b24ea479a59 | 193 | strJson = act.getWallet (); |
MrAI | 12:1b24ea479a59 | 194 | cout << "Extract json content from http message:"<<strJson.c_str() << endl; |
MrAI | 12:1b24ea479a59 | 195 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 196 | { |
MrAI | 12:1b24ea479a59 | 197 | return -1; |
MrAI | 12:1b24ea479a59 | 198 | } |
MrAI | 12:1b24ea479a59 | 199 | // decode content json |
MrAI | 12:1b24ea479a59 | 200 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 201 | // string err = parse(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 202 | // bool bSuccess = objJson["success"].get<bool>(); |
MrAI | 12:1b24ea479a59 | 203 | // if (bSuccess) |
MrAI | 12:1b24ea479a59 | 204 | // { |
MrAI | 12:1b24ea479a59 | 205 | // string address = objJson["wallet"]["address"].get<string>(); |
MrAI | 12:1b24ea479a59 | 206 | // string secret = objJson["wallet"]["secret"].get<string>(); |
MrAI | 12:1b24ea479a59 | 207 | // cout << "wallet:" << address << "--" << secret << endl; |
MrAI | 12:1b24ea479a59 | 208 | // } |
MrAI | 12:1b24ea479a59 | 209 | string err = act.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 210 | bool bSuccess = act.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 211 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 212 | { |
MrAI | 12:1b24ea479a59 | 213 | string address1 = act.getKeyValue(objJson, "wallet", "address"); |
MrAI | 12:1b24ea479a59 | 214 | string secret1 = act.getKeyValue(objJson, "wallet", "secret"); |
MrAI | 12:1b24ea479a59 | 215 | cout << "address:" << address1 << endl << "secret:" << secret1 << endl; |
MrAI | 12:1b24ea479a59 | 216 | } |
MrAI | 12:1b24ea479a59 | 217 | |
MrAI | 12:1b24ea479a59 | 218 | return 0; |
MrAI | 12:1b24ea479a59 | 219 | } |
MrAI | 12:1b24ea479a59 | 220 | |
MrAI | 12:1b24ea479a59 | 221 | int sd_postpayment()//支付请求 |
MrAI | 12:1b24ea479a59 | 222 | { |
MrAI | 12:1b24ea479a59 | 223 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 224 | Payment pay; |
MrAI | 12:1b24ea479a59 | 225 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 226 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 227 | string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 228 | string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 229 | string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 230 | string amount = "20"; |
MrAI | 12:1b24ea479a59 | 231 | string MemoType = "memos"; |
MrAI | 12:1b24ea479a59 | 232 | string MemoData = "memos"; |
MrAI | 12:1b24ea479a59 | 233 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 234 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 235 | pay.SetJsonBody(mbJson, secret, src_acc, dst_acc, amount, MemoType, MemoData); |
MrAI | 12:1b24ea479a59 | 236 | strJson = pay.PostPayment(mbJson, strUrl, strWallet,""); |
MrAI | 12:1b24ea479a59 | 237 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 238 | { |
MrAI | 12:1b24ea479a59 | 239 | return -1; |
MrAI | 12:1b24ea479a59 | 240 | } |
MrAI | 12:1b24ea479a59 | 241 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 242 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 243 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 244 | { |
MrAI | 12:1b24ea479a59 | 245 | string hash = pay.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 246 | string status_url = pay.getKeyValue(objJson, "status_url"); |
MrAI | 12:1b24ea479a59 | 247 | cout << "hash:" << hash << endl; |
MrAI | 12:1b24ea479a59 | 248 | cout << "status_url:" << status_url << endl; |
MrAI | 12:1b24ea479a59 | 249 | } |
MrAI | 12:1b24ea479a59 | 250 | return 0; |
MrAI | 12:1b24ea479a59 | 251 | } |
MrAI | 12:1b24ea479a59 | 252 | |
MrAI | 12:1b24ea479a59 | 253 | int sd_getpaymentinfo() |
MrAI | 12:1b24ea479a59 | 254 | { |
MrAI | 12:1b24ea479a59 | 255 | Payment pay; |
MrAI | 12:1b24ea479a59 | 256 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 257 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 258 | string strWallet = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 259 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 260 | string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 261 | strJson = pay.GetPaymentInfo(strUrl, strWallet, strHash); |
MrAI | 12:1b24ea479a59 | 262 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 263 | { |
MrAI | 12:1b24ea479a59 | 264 | return -1; |
MrAI | 12:1b24ea479a59 | 265 | } |
MrAI | 12:1b24ea479a59 | 266 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 267 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 268 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 269 | { |
MrAI | 12:1b24ea479a59 | 270 | string hash = pay.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 271 | string ledger = pay.getKeyValue(objJson, "ledger"); |
MrAI | 12:1b24ea479a59 | 272 | string state = pay.getKeyValue(objJson, "state"); |
MrAI | 12:1b24ea479a59 | 273 | string source_account = pay.getKeyValue(objJson, "source_account"); |
MrAI | 12:1b24ea479a59 | 274 | string dst_account = pay.getKeyValue(objJson, "destination_account"); |
MrAI | 12:1b24ea479a59 | 275 | string amount_cur = pay.getKeyValue(objJson, "amount", "currency"); |
MrAI | 12:1b24ea479a59 | 276 | string value = pay.getKeyValue(objJson, "amount", "value"); |
MrAI | 12:1b24ea479a59 | 277 | string amount_issuer = pay.getKeyValue(objJson, "amount", "issuer"); |
MrAI | 12:1b24ea479a59 | 278 | string currency = pay.getKeyValue(objJson, "currency"); |
MrAI | 12:1b24ea479a59 | 279 | string issuer = pay.getKeyValue(objJson, "issuer"); |
MrAI | 12:1b24ea479a59 | 280 | string direction = pay.getKeyValue(objJson, "direction"); |
MrAI | 12:1b24ea479a59 | 281 | string timestamp = pay.getKeyValue(objJson, "timestamp"); |
MrAI | 12:1b24ea479a59 | 282 | string fee = pay.getKeyValue(objJson, "fee"); |
MrAI | 13:e77c7ae3a285 | 283 | cout << "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< " state:" << state |
MrAI | 13:e77c7ae3a285 | 284 | <<endl<< " source_account:" << source_account <<endl<< " dst_account:" << dst_account |
MrAI | 13:e77c7ae3a285 | 285 | <<endl<< " amount_cur:" << amount_cur <<endl<< " value:" << value <<endl<< " amount_issuer:" << amount_issuer |
MrAI | 13:e77c7ae3a285 | 286 | <<endl<< " currency:" << currency <<endl<< " issuer" << issuer <<endl<< " direction" << direction |
MrAI | 13:e77c7ae3a285 | 287 | <<endl<< " timestamp:" << timestamp <<endl<< " fee" << fee <<endl; |
MrAI | 12:1b24ea479a59 | 288 | int iCurrenciesNum = pay.getBalanceSize(objJson, "memos"); |
MrAI | 12:1b24ea479a59 | 289 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 290 | { |
MrAI | 12:1b24ea479a59 | 291 | string memo_type = pay.getBalanceArray(objJson, "memos", i, "memo_type"); |
MrAI | 12:1b24ea479a59 | 292 | string memo_data = pay.getBalanceArray(objJson, "memos", i, "memo_data"); |
MrAI | 12:1b24ea479a59 | 293 | cout << i << ":" << memo_type << "--" << memo_data << endl; |
MrAI | 12:1b24ea479a59 | 294 | } |
MrAI | 12:1b24ea479a59 | 295 | |
MrAI | 12:1b24ea479a59 | 296 | } |
MrAI | 12:1b24ea479a59 | 297 | return 0; |
MrAI | 12:1b24ea479a59 | 298 | } |
MrAI | 12:1b24ea479a59 | 299 | |
MrAI | 12:1b24ea479a59 | 300 | int sd_gettransactions() |
MrAI | 12:1b24ea479a59 | 301 | { |
MrAI | 12:1b24ea479a59 | 302 | Payment pay; |
MrAI | 12:1b24ea479a59 | 303 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 304 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 305 | string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 306 | string strUrl = "/v1/transactions/"; |
MrAI | 12:1b24ea479a59 | 307 | strJson = pay.GetPaymentInfo(strUrl,"", strHash); |
MrAI | 12:1b24ea479a59 | 308 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 309 | { |
MrAI | 12:1b24ea479a59 | 310 | return -1; |
MrAI | 12:1b24ea479a59 | 311 | } |
MrAI | 12:1b24ea479a59 | 312 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 313 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 314 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 315 | { |
MrAI | 12:1b24ea479a59 | 316 | string TransactionType = pay.getKeyValue(objJson, "transaction", "TransactionType"); |
MrAI | 12:1b24ea479a59 | 317 | int Flags = pay.getKeyValueInt(objJson, "transaction", "Flags"); |
MrAI | 12:1b24ea479a59 | 318 | int Sequence = pay.getKeyValueInt(objJson, "transaction", "Sequence"); |
MrAI | 12:1b24ea479a59 | 319 | int LastLedgerSequence = pay.getKeyValueInt(objJson, "transaction", "LastLedgerSequence"); |
MrAI | 12:1b24ea479a59 | 320 | string Amount = pay.getKeyValue(objJson, "transaction", "Amount"); |
MrAI | 12:1b24ea479a59 | 321 | string Fee = pay.getKeyValue(objJson, "transaction", "Fee"); |
MrAI | 12:1b24ea479a59 | 322 | string SigningPubKey = pay.getKeyValue(objJson, "transaction", "SigningPubKey"); |
MrAI | 12:1b24ea479a59 | 323 | string TxnSignature = pay.getKeyValue(objJson, "transaction", "TxnSignature"); |
MrAI | 12:1b24ea479a59 | 324 | string Account = pay.getKeyValue(objJson, "transaction", "Account"); |
MrAI | 12:1b24ea479a59 | 325 | string Destination = pay.getKeyValue(objJson, "transaction", "Destination"); |
MrAI | 12:1b24ea479a59 | 326 | int iCurrenciesNum = pay.getBalanceSize(objJson,"transaction","Memos"); |
MrAI | 12:1b24ea479a59 | 327 | // for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 328 | // { |
MrAI | 12:1b24ea479a59 | 329 | // string MemoType = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoType"); |
MrAI | 12:1b24ea479a59 | 330 | // string MemoData = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoData"); |
MrAI | 12:1b24ea479a59 | 331 | // string parsed_memo_type = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "parsed_memo_type"); |
MrAI | 12:1b24ea479a59 | 332 | // cout << i << ":" << MemoType << "--" << MemoData << "--" << parsed_memo_type << endl; |
MrAI | 12:1b24ea479a59 | 333 | // } |
MrAI | 12:1b24ea479a59 | 334 | int date = pay.getKeyValueInt(objJson, "transaction", "date"); |
MrAI | 12:1b24ea479a59 | 335 | string hash = pay.getKeyValue(objJson, "transaction", "hash"); |
MrAI | 12:1b24ea479a59 | 336 | int inLedger = pay.getKeyValueInt(objJson, "transaction", "inLedger"); |
MrAI | 12:1b24ea479a59 | 337 | int ledger_index = pay.getKeyValueInt(objJson, "transaction", "ledger_index"); |
MrAI | 12:1b24ea479a59 | 338 | bool validated = pay.getKeyValueBool(objJson, "transaction", "validated"); |
MrAI | 13:e77c7ae3a285 | 339 | cout<<"TransactionType:"<<TransactionType<<endl<<"Amount:"<<Amount<<endl<<"Fee:"<<Fee<<endl |
MrAI | 13:e77c7ae3a285 | 340 | <<"SigningPubKey:"<<SigningPubKey<<endl<<"TxnSignature:"<<TxnSignature<<endl |
MrAI | 13:e77c7ae3a285 | 341 | <<"Account:"<<Account<<endl<<"Destination:"<<Destination<<endl; |
MrAI | 12:1b24ea479a59 | 342 | } |
MrAI | 12:1b24ea479a59 | 343 | return 0; |
MrAI | 12:1b24ea479a59 | 344 | } |
MrAI | 12:1b24ea479a59 | 345 | |
MrAI | 12:1b24ea479a59 | 346 | int sd_getpaymenthistory() |
MrAI | 12:1b24ea479a59 | 347 | { |
MrAI | 12:1b24ea479a59 | 348 | Payment pay; |
MrAI | 12:1b24ea479a59 | 349 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 350 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 351 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 352 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 353 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 354 | string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 355 | string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 356 | string direction = "incoming"; |
MrAI | 12:1b24ea479a59 | 357 | int start_ledger = 1; |
MrAI | 12:1b24ea479a59 | 358 | int end_ledger = 10000; |
MrAI | 12:1b24ea479a59 | 359 | int per_page = 10; |
MrAI | 12:1b24ea479a59 | 360 | int page = 1; |
MrAI | 12:1b24ea479a59 | 361 | pay.SetJsonBody(mbJson, src_acc, dst_acc, direction, start_ledger, end_ledger, per_page, page); |
MrAI | 12:1b24ea479a59 | 362 | strJson = pay.PostPayment(mbJson, strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 363 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 364 | { |
MrAI | 12:1b24ea479a59 | 365 | return -1; |
MrAI | 12:1b24ea479a59 | 366 | } |
MrAI | 12:1b24ea479a59 | 367 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 368 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 369 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 370 | { |
MrAI | 12:1b24ea479a59 | 371 | int iCurrenciesNum = pay.getBalanceSize(objJson,"payments"); |
MrAI | 12:1b24ea479a59 | 372 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 373 | { |
MrAI | 12:1b24ea479a59 | 374 | string hash = pay.getBalanceArray(objJson, "payments", i, "hash"); |
MrAI | 12:1b24ea479a59 | 375 | string ledger = pay.getBalanceArray(objJson, "payments", i, "ledger"); |
MrAI | 12:1b24ea479a59 | 376 | string source_account = pay.getBalanceArray(objJson, "payments", i, "source_account"); |
MrAI | 12:1b24ea479a59 | 377 | string destination_account = pay.getBalanceArray(objJson, "payments", i, "destination_account"); |
MrAI | 12:1b24ea479a59 | 378 | string currency = pay.getBalanceArray(objJson, "payments", "amount", i,currency); |
MrAI | 12:1b24ea479a59 | 379 | string value = pay.getBalanceArray(objJson, "payments", "amount", i, value); |
MrAI | 12:1b24ea479a59 | 380 | string issuer = pay.getBalanceArray(objJson, "payments", "amount", i, issuer); |
MrAI | 12:1b24ea479a59 | 381 | string direction = pay.getBalanceArray(objJson, "payments", i, "direction"); |
MrAI | 12:1b24ea479a59 | 382 | string timestamp = pay.getBalanceArray(objJson, "payments", i, "timestamp"); |
MrAI | 12:1b24ea479a59 | 383 | string fee = pay.getBalanceArray(objJson, "payments", i, "fee"); |
MrAI | 12:1b24ea479a59 | 384 | int iCurrenciesNum = pay.getBalanceSize(objJson, "transaction", "Memos"); |
MrAI | 12:1b24ea479a59 | 385 | for (int j = 0; j < iCurrenciesNum; j++) |
MrAI | 12:1b24ea479a59 | 386 | { |
MrAI | 12:1b24ea479a59 | 387 | string memo_type = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_type"); |
MrAI | 12:1b24ea479a59 | 388 | string memo_data = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_data"); |
MrAI | 12:1b24ea479a59 | 389 | cout << i << ":" << memo_type << "--" << memo_data << endl; |
MrAI | 12:1b24ea479a59 | 390 | } |
MrAI | 13:e77c7ae3a285 | 391 | cout<<"hash:"<<hash<<endl<<"ledger:"<<ledger<<endl<<"source_account:"<<source_account<<endl |
MrAI | 13:e77c7ae3a285 | 392 | <<"destination_account:"<<destination_account<<endl<<"currency:"<<currency<<endl<<"timestamp:" |
MrAI | 13:e77c7ae3a285 | 393 | <<timestamp<<endl; |
MrAI | 12:1b24ea479a59 | 394 | } |
MrAI | 12:1b24ea479a59 | 395 | } |
MrAI | 12:1b24ea479a59 | 396 | return 0; |
MrAI | 12:1b24ea479a59 | 397 | } |
MrAI | 12:1b24ea479a59 | 398 | |
MrAI | 12:1b24ea479a59 | 399 | int sd_getdefaultfee() |
MrAI | 12:1b24ea479a59 | 400 | { |
MrAI | 12:1b24ea479a59 | 401 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 402 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 403 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 404 | string strUrl = "/v1/transaction-fee"; |
MrAI | 12:1b24ea479a59 | 405 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 406 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 407 | { |
MrAI | 12:1b24ea479a59 | 408 | return -1; |
MrAI | 12:1b24ea479a59 | 409 | } |
MrAI | 12:1b24ea479a59 | 410 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 411 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 412 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 413 | { |
MrAI | 12:1b24ea479a59 | 414 | string fee = serInfo.getKeyValue(objJson, "fee"); |
MrAI | 12:1b24ea479a59 | 415 | cout << "fee:" << fee << endl; |
MrAI | 12:1b24ea479a59 | 416 | } |
MrAI | 12:1b24ea479a59 | 417 | return 0; |
MrAI | 12:1b24ea479a59 | 418 | } |
MrAI | 12:1b24ea479a59 | 419 | |
MrAI | 12:1b24ea479a59 | 420 | int sd_getserverinfo() |
MrAI | 12:1b24ea479a59 | 421 | { |
MrAI | 12:1b24ea479a59 | 422 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 423 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 424 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 425 | string strUrl = "/v1/server"; |
MrAI | 12:1b24ea479a59 | 426 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 427 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 428 | { |
MrAI | 12:1b24ea479a59 | 429 | return -1; |
MrAI | 12:1b24ea479a59 | 430 | } |
MrAI | 12:1b24ea479a59 | 431 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 432 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 433 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 434 | { |
MrAI | 12:1b24ea479a59 | 435 | string complete_ledgers = serInfo.getKeyValue(objJson, "sdchaind_server_status", "complete_ledgers"); |
MrAI | 12:1b24ea479a59 | 436 | string server_state = serInfo.getKeyValue(objJson, "sdchaind_server_status", "server_state"); |
MrAI | 12:1b24ea479a59 | 437 | int reserve_base_sda = serInfo.getKeyValueInt(objJson, "sdchaind_server_status", "reserve_base_sda"); |
MrAI | 13:e77c7ae3a285 | 438 | cout << "complete_ledgers:" << complete_ledgers <<endl<< "server_state:" << server_state<<endl << "reserve_base_sda:" << reserve_base_sda << endl; |
MrAI | 12:1b24ea479a59 | 439 | } |
MrAI | 12:1b24ea479a59 | 440 | return 0; |
MrAI | 12:1b24ea479a59 | 441 | } |
MrAI | 12:1b24ea479a59 | 442 | |
MrAI | 12:1b24ea479a59 | 443 | int sd_getserverconnected() |
MrAI | 12:1b24ea479a59 | 444 | { |
MrAI | 12:1b24ea479a59 | 445 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 446 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 447 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 448 | string strUrl = "/v1/server/connected"; |
MrAI | 12:1b24ea479a59 | 449 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 450 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 451 | { |
MrAI | 12:1b24ea479a59 | 452 | return -1; |
MrAI | 12:1b24ea479a59 | 453 | } |
MrAI | 12:1b24ea479a59 | 454 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 455 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 456 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 457 | { |
MrAI | 12:1b24ea479a59 | 458 | bool connected = serInfo.getKeyValueBool(objJson, "connected"); |
MrAI | 13:e77c7ae3a285 | 459 | if(connected) |
MrAI | 13:e77c7ae3a285 | 460 | {cout<<"server is running"<<endl;} |
MrAI | 13:e77c7ae3a285 | 461 | else |
MrAI | 13:e77c7ae3a285 | 462 | {cout<<"server stopped"<<endl;} |
MrAI | 12:1b24ea479a59 | 463 | } |
MrAI | 12:1b24ea479a59 | 464 | return 0; |
MrAI | 12:1b24ea479a59 | 465 | } |
MrAI | 12:1b24ea479a59 | 466 | |
MrAI | 12:1b24ea479a59 | 467 | int sd_queryorderlist() |
MrAI | 12:1b24ea479a59 | 468 | { |
MrAI | 12:1b24ea479a59 | 469 | Order orderInfo; |
MrAI | 12:1b24ea479a59 | 470 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 471 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 472 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 473 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 474 | strJson = orderInfo.GetPaymentInfo(strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 475 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 476 | { |
MrAI | 12:1b24ea479a59 | 477 | return -1; |
MrAI | 12:1b24ea479a59 | 478 | } |
MrAI | 12:1b24ea479a59 | 479 | string err = orderInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 480 | bool bSuccess = orderInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 481 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 482 | { |
MrAI | 12:1b24ea479a59 | 483 | int ledger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 484 | bool validated = orderInfo.getKeyValueBool(objJson, "validated"); |
MrAI | 12:1b24ea479a59 | 485 | int iCurrenciesNum = orderInfo.getBalanceSize(objJson, "orders"); |
MrAI | 12:1b24ea479a59 | 486 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 487 | { |
MrAI | 12:1b24ea479a59 | 488 | string type = orderInfo.getBalanceArray(objJson, "orders", i, "type"); |
MrAI | 12:1b24ea479a59 | 489 | string currency_gets = orderInfo.getBalanceArray(objJson, "orders","taker_gets",i,"currency"); |
MrAI | 12:1b24ea479a59 | 490 | string value_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "value"); |
MrAI | 12:1b24ea479a59 | 491 | string counterparty_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "counterparty"); |
MrAI | 12:1b24ea479a59 | 492 | string currency_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "currency"); |
MrAI | 12:1b24ea479a59 | 493 | string value_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "value"); |
MrAI | 12:1b24ea479a59 | 494 | string counterparty_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "counterparty"); |
MrAI | 13:e77c7ae3a285 | 495 | cout << "type:" << type <<endl<< "currency_gets:" << currency_gets <<endl<< "value_gets:" << value_gets<<endl |
MrAI | 13:e77c7ae3a285 | 496 | << "counterparty_gets:" << counterparty_gets <<endl<< "currency_pays:" << currency_pays<<endl |
MrAI | 13:e77c7ae3a285 | 497 | << "value_pays:" << value_pays <<endl<< "counterparty_pays:" << counterparty_pays << endl; |
MrAI | 12:1b24ea479a59 | 498 | } |
MrAI | 13:e77c7ae3a285 | 499 | cout << "ledger:" << ledger <<endl<< "validated:" << validated << endl; |
MrAI | 12:1b24ea479a59 | 500 | } |
MrAI | 12:1b24ea479a59 | 501 | return 0; |
MrAI | 12:1b24ea479a59 | 502 | } |
MrAI | 12:1b24ea479a59 | 503 | |
MrAI | 12:1b24ea479a59 | 504 | int sd_commitorder() |
MrAI | 12:1b24ea479a59 | 505 | { |
MrAI | 12:1b24ea479a59 | 506 | Order orderCommit; |
MrAI | 12:1b24ea479a59 | 507 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 508 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 509 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 510 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 511 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 512 | string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 513 | orderCommit.SetJsonBody(mbJson, secret, "buy", "SDA", "", "4", "CNY", "6UPd52jHtu1d88nc3S3WeroACFQpKfybhU", "22"); |
MrAI | 12:1b24ea479a59 | 514 | strJson = orderCommit.PostPayment(mbJson, strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 515 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 516 | { |
MrAI | 12:1b24ea479a59 | 517 | return -1; |
MrAI | 12:1b24ea479a59 | 518 | } |
MrAI | 12:1b24ea479a59 | 519 | string err = orderCommit.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 520 | bool bSuccess = orderCommit.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 521 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 522 | { |
MrAI | 12:1b24ea479a59 | 523 | string account = orderCommit.getKeyValue(objJson, "order", "account"); |
MrAI | 12:1b24ea479a59 | 524 | string currency_g = orderCommit.getKeyValue(objJson, "taker_gets", "currency"); |
MrAI | 12:1b24ea479a59 | 525 | string value_g = orderCommit.getKeyValue(objJson, "taker_gets", "value"); |
MrAI | 12:1b24ea479a59 | 526 | string counterparty_g = orderCommit.getKeyValue(objJson, "taker_gets", "counterparty"); |
MrAI | 12:1b24ea479a59 | 527 | string currency_p = orderCommit.getKeyValue(objJson, "taker_pays", "currency"); |
MrAI | 12:1b24ea479a59 | 528 | string value_p = orderCommit.getKeyValue(objJson, "taker_pays", "value"); |
MrAI | 12:1b24ea479a59 | 529 | string counterparty_p = orderCommit.getKeyValue(objJson, "taker_pays", "counterparty"); |
MrAI | 12:1b24ea479a59 | 530 | string fee = orderCommit.getKeyValue(objJson, "order", "fee"); |
MrAI | 12:1b24ea479a59 | 531 | string type = orderCommit.getKeyValue(objJson, "order", "type"); |
MrAI | 12:1b24ea479a59 | 532 | int sequence = orderCommit.getKeyValueInt(objJson, "order","sequence"); |
MrAI | 12:1b24ea479a59 | 533 | string hash = orderCommit.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 534 | int ledger = orderCommit.getLedger(objJson); |
MrAI | 12:1b24ea479a59 | 535 | string state = orderCommit.getKeyValue(objJson, "state"); |
MrAI | 13:e77c7ae3a285 | 536 | cout<<"account:"<<account<<endl<<"fee:"<<fee<<endl<<"hash:"<<hash<<endl<<"state:"<<state<<endl; |
MrAI | 12:1b24ea479a59 | 537 | } |
MrAI | 12:1b24ea479a59 | 538 | return 0; |
MrAI | 12:1b24ea479a59 | 539 | } |
MrAI | 12:1b24ea479a59 | 540 | |
MrAI | 12:1b24ea479a59 | 541 | int sd_deleteorder() |
MrAI | 12:1b24ea479a59 | 542 | { |
MrAI | 12:1b24ea479a59 | 543 | Order orderCommit; |
MrAI | 12:1b24ea479a59 | 544 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 545 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 546 | MbedJSONValue val; |
MrAI | 12:1b24ea479a59 | 547 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 548 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 549 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 550 | string strNum = "1234"; |
MrAI | 12:1b24ea479a59 | 551 | val["secret"] = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 552 | strJson = orderCommit.PostOrder(val, strUrl, strWallet, strNum); |
MrAI | 12:1b24ea479a59 | 553 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 554 | { |
MrAI | 12:1b24ea479a59 | 555 | return -1; |
MrAI | 12:1b24ea479a59 | 556 | } |
MrAI | 12:1b24ea479a59 | 557 | string err = orderCommit.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 558 | bool bSuccess = orderCommit.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 559 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 560 | { |
MrAI | 12:1b24ea479a59 | 561 | string account = orderCommit.getKeyValue(objJson, "order", "account"); |
MrAI | 12:1b24ea479a59 | 562 | string fee = orderCommit.getKeyValue(objJson, "order", "fee"); |
MrAI | 12:1b24ea479a59 | 563 | string offer_sequence = orderCommit.getKeyValue(objJson, "order", "offer_sequence"); |
MrAI | 12:1b24ea479a59 | 564 | string sequence = orderCommit.getKeyValue(objJson, "order", "sequence"); |
MrAI | 12:1b24ea479a59 | 565 | string hash = orderCommit.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 566 | string ledger = orderCommit.getKeyValue(objJson, "ledger"); |
MrAI | 12:1b24ea479a59 | 567 | string state = orderCommit.getKeyValue(objJson, "state"); |
MrAI | 13:e77c7ae3a285 | 568 | cout << "account:" << account <<endl<< "fee:" << fee <<endl<< "offer_sequence:" << offer_sequence<<endl |
MrAI | 13:e77c7ae3a285 | 569 | << "sequence:" << sequence <<endl<< "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< "state:" << state << endl; |
MrAI | 12:1b24ea479a59 | 570 | } |
MrAI | 12:1b24ea479a59 | 571 | return 0; |
MrAI | 12:1b24ea479a59 | 572 | } |
MrAI | 12:1b24ea479a59 | 573 | |
MrAI | 12:1b24ea479a59 | 574 | int sd_queryorderdetailed() |
MrAI | 12:1b24ea479a59 | 575 | { |
MrAI | 12:1b24ea479a59 | 576 | cout << "call sd_queryorderdetailed begin" << endl; |
MrAI | 12:1b24ea479a59 | 577 | Order orderInfo; |
MrAI | 12:1b24ea479a59 | 578 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 579 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 580 | string strUrl = " /v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 581 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 582 | string hash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 583 | strJson = orderInfo.GetPaymentInfo(strUrl, strWallet,hash); |
MrAI | 12:1b24ea479a59 | 584 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 585 | { |
MrAI | 12:1b24ea479a59 | 586 | cout << "call sd_queryorderdetailed exception quit" << endl; |
MrAI | 12:1b24ea479a59 | 587 | return -1; |
MrAI | 12:1b24ea479a59 | 588 | } |
MrAI | 12:1b24ea479a59 | 589 | string err = orderInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 590 | bool bSuccess = orderInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 591 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 592 | { |
MrAI | 12:1b24ea479a59 | 593 | string hash = orderInfo.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 594 | int ledger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 595 | int iBalanceNum = orderInfo.getBalanceSize(objJson, "balance_changes"); |
MrAI | 12:1b24ea479a59 | 596 | for (int i = 0; i < iBalanceNum; i++) |
MrAI | 12:1b24ea479a59 | 597 | { |
MrAI | 12:1b24ea479a59 | 598 | string counterparty = orderInfo.getBalanceArray(objJson, "balance_changes", i, "counterparty"); |
MrAI | 13:e77c7ae3a285 | 599 | cout<<"counterparty:"<<counterparty<<endl; |
MrAI | 12:1b24ea479a59 | 600 | } |
MrAI | 12:1b24ea479a59 | 601 | int iOrderChangesNum = orderInfo.getBalanceSize(objJson, "order_changes"); |
MrAI | 12:1b24ea479a59 | 602 | for (int j = 0; j < iOrderChangesNum; j++) |
MrAI | 12:1b24ea479a59 | 603 | { |
MrAI | 12:1b24ea479a59 | 604 | string currency_gets = orderInfo.getBalanceArray(objJson, "order_changes", "taker_gets", j, "currency"); |
MrAI | 13:e77c7ae3a285 | 605 | cout<<"currency_gets:"<<currency_gets<<endl; |
MrAI | 12:1b24ea479a59 | 606 | } |
MrAI | 13:e77c7ae3a285 | 607 | cout<<"hash:"<<hash<<endl; |
MrAI | 12:1b24ea479a59 | 608 | |
MrAI | 12:1b24ea479a59 | 609 | } |
MrAI | 12:1b24ea479a59 | 610 | cout << "call sd_queryorderdetailed end" << endl; |
MrAI | 12:1b24ea479a59 | 611 | return 0; |
MrAI | 12:1b24ea479a59 | 612 | } |
webmaster | 8:f2a567ee3a46 | 613 | int main(void) |
webmaster | 8:f2a567ee3a46 | 614 | { |
webmaster | 8:f2a567ee3a46 | 615 | printf("main start\n"); |
webmaster | 8:f2a567ee3a46 | 616 | |
MrAI | 12:1b24ea479a59 | 617 | // test_uuid(); |
webmaster | 10:aabd720e632c | 618 | |
webmaster | 9:d7468574ef8f | 619 | |
webmaster | 8:f2a567ee3a46 | 620 | socket_init(); |
webmaster | 8:f2a567ee3a46 | 621 | |
MrAI | 12:1b24ea479a59 | 622 | //test_MockHsm(); |
MrAI | 12:1b24ea479a59 | 623 | // test_Asset(); |
MrAI | 12:1b24ea479a59 | 624 | // test_Account(); |
MrAI | 13:e77c7ae3a285 | 625 | cout<<"**************************GET NEW WALLET****************************"<<endl; |
MrAI | 12:1b24ea479a59 | 626 | sd_wallet(); |
MrAI | 13:e77c7ae3a285 | 627 | wait(2); |
MrAI | 13:e77c7ae3a285 | 628 | cout<<"**************************GET ACCOUNT BALANCE************************"<<endl; |
MrAI | 12:1b24ea479a59 | 629 | sd_account(); |
MrAI | 13:e77c7ae3a285 | 630 | wait(2); |
MrAI | 13:e77c7ae3a285 | 631 | cout<<"*************************POST PAYMENT REQUEST********************"<<endl; |
MrAI | 13:e77c7ae3a285 | 632 | sd_postpayment(); |
MrAI | 13:e77c7ae3a285 | 633 | wait(2); |
MrAI | 13:e77c7ae3a285 | 634 | cout<<"*************************GET PAYMENT INFO****************"<<endl; |
MrAI | 13:e77c7ae3a285 | 635 | sd_getpaymentinfo(); |
MrAI | 13:e77c7ae3a285 | 636 | wait(2); |
MrAI | 13:e77c7ae3a285 | 637 | cout<<"*************************GET TRANSACTIONS INFO***********"<<endl; |
MrAI | 13:e77c7ae3a285 | 638 | sd_gettransactions(); |
MrAI | 13:e77c7ae3a285 | 639 | wait(2); |
MrAI | 13:e77c7ae3a285 | 640 | cout<<"*************************GET PAYMENT HISTORY*****************"<<endl; |
MrAI | 13:e77c7ae3a285 | 641 | sd_getpaymenthistory(); |
MrAI | 13:e77c7ae3a285 | 642 | wait(2); |
MrAI | 13:e77c7ae3a285 | 643 | cout<<"*************************GET DEFAULT FEE**********************"<<endl; |
MrAI | 13:e77c7ae3a285 | 644 | sd_getdefaultfee(); |
MrAI | 13:e77c7ae3a285 | 645 | wait(2); |
MrAI | 13:e77c7ae3a285 | 646 | cout<<"*************************GET SERVER INFO******************"<<endl; |
MrAI | 13:e77c7ae3a285 | 647 | sd_getserverinfo(); |
MrAI | 13:e77c7ae3a285 | 648 | wait(2); |
MrAI | 13:e77c7ae3a285 | 649 | cout<<"*************************GET SERVER CONNECTED******************"<<endl; |
MrAI | 13:e77c7ae3a285 | 650 | sd_getserverconnected(); |
MrAI | 13:e77c7ae3a285 | 651 | wait(2); |
MrAI | 13:e77c7ae3a285 | 652 | cout<<"*************************GET ORDER LIST********************"<<endl; |
MrAI | 13:e77c7ae3a285 | 653 | sd_queryorderlist(); |
MrAI | 13:e77c7ae3a285 | 654 | wait(2); |
MrAI | 13:e77c7ae3a285 | 655 | cout<<"*************************POST ORDER INFO********************"<<endl; |
MrAI | 13:e77c7ae3a285 | 656 | sd_commitorder(); |
MrAI | 13:e77c7ae3a285 | 657 | wait(2); |
MrAI | 13:e77c7ae3a285 | 658 | cout<<"*************************DELETE ORDER INFO********************"<<endl; |
MrAI | 13:e77c7ae3a285 | 659 | sd_deleteorder(); |
MrAI | 13:e77c7ae3a285 | 660 | wait(2); |
MrAI | 13:e77c7ae3a285 | 661 | cout<<"*************************GET ORDER DETAILED*******************"<<endl; |
MrAI | 13:e77c7ae3a285 | 662 | sd_queryorderdetailed(); |
MrAI | 12:1b24ea479a59 | 663 | |
MrAI | 12:1b24ea479a59 | 664 | |
webmaster | 10:aabd720e632c | 665 | |
webmaster | 10:aabd720e632c | 666 | //char isContinue = 'y'; |
webmaster | 10:aabd720e632c | 667 | // do |
webmaster | 10:aabd720e632c | 668 | //{ |
MrAI | 13:e77c7ae3a285 | 669 | //tring type = "spend_account"; |
webmaster | 10:aabd720e632c | 670 | //string type = "issue"; |
webmaster | 10:aabd720e632c | 671 | //test_transaction(type); |
MrAI | 13:e77c7ae3a285 | 672 | //est_transaction(); |
MrAI | 13:e77c7ae3a285 | 673 | //rintf("=============5========\n"); |
webmaster | 10:aabd720e632c | 674 | // }while(1); |
webmaster | 10:aabd720e632c | 675 | //}while (isContinue = getch() != 'q'); |
webmaster | 8:f2a567ee3a46 | 676 | |
webmaster | 10:aabd720e632c | 677 | |
webmaster | 10:aabd720e632c | 678 | //test_socket_client(); |
webmaster | 8:f2a567ee3a46 | 679 | |
webmaster | 8:f2a567ee3a46 | 680 | socket_fini(); |
webmaster | 8:f2a567ee3a46 | 681 | |
webmaster | 8:f2a567ee3a46 | 682 | printf("main end\n"); |
webmaster | 8:f2a567ee3a46 | 683 | return 0; |
webmaster | 8:f2a567ee3a46 | 684 | } |
webmaster | 8:f2a567ee3a46 | 685 | |
webmaster | 8:f2a567ee3a46 | 686 | int socket_init() |
webmaster | 8:f2a567ee3a46 | 687 | { |
webmaster | 8:f2a567ee3a46 | 688 | int ret = 0; |
webmaster | 8:f2a567ee3a46 | 689 | // EthernetInterface eth; |
webmaster | 8:f2a567ee3a46 | 690 | printf("Initializing Ethernet\n"); |
webmaster | 8:f2a567ee3a46 | 691 | ret = eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 692 | //eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use static ip |
webmaster | 8:f2a567ee3a46 | 693 | printf("Connecting\n"); |
webmaster | 8:f2a567ee3a46 | 694 | ret = eth.connect(); |
webmaster | 8:f2a567ee3a46 | 695 | printf("IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 696 | |
webmaster | 8:f2a567ee3a46 | 697 | return ret; |
webmaster | 8:f2a567ee3a46 | 698 | } |
webmaster | 8:f2a567ee3a46 | 699 | |
webmaster | 8:f2a567ee3a46 | 700 | int socket_fini() |
webmaster | 8:f2a567ee3a46 | 701 | { |
webmaster | 8:f2a567ee3a46 | 702 | return eth.disconnect(); |
webmaster | 8:f2a567ee3a46 | 703 | } |
webmaster | 8:f2a567ee3a46 | 704 | |
webmaster | 8:f2a567ee3a46 | 705 | int test_socket_client(void) |
webmaster | 8:f2a567ee3a46 | 706 | { |
webmaster | 8:f2a567ee3a46 | 707 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 708 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 709 | printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 710 | wait(1); |
webmaster | 8:f2a567ee3a46 | 711 | } |
webmaster | 8:f2a567ee3a46 | 712 | printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 713 | |
webmaster | 8:f2a567ee3a46 | 714 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 715 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 716 | printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 717 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 718 | |
webmaster | 8:f2a567ee3a46 | 719 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 720 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 721 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 722 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 723 | printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 724 | |
webmaster | 8:f2a567ee3a46 | 725 | // Clean up |
webmaster | 8:f2a567ee3a46 | 726 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 727 | |
webmaster | 8:f2a567ee3a46 | 728 | return 0; |
webmaster | 8:f2a567ee3a46 | 729 | } |
webmaster | 8:f2a567ee3a46 | 730 | |
MrAI | 11:6d9cefb14158 | 731 | /* |
gsteiert | 0:28bc7ce77e20 | 732 | void get_file(char* uri) |
gsteiert | 0:28bc7ce77e20 | 733 | { |
gsteiert | 3:4f71a37a1ed2 | 734 | uart.printf("get_file %s\n", uri); |
gsteiert | 0:28bc7ce77e20 | 735 | char *lstchr = strrchr(uri, NULL) -1; |
gsteiert | 0:28bc7ce77e20 | 736 | if ('/' == *lstchr) { |
gsteiert | 3:4f71a37a1ed2 | 737 | uart.printf("Open directory /sd%s\n", uri); |
gsteiert | 0:28bc7ce77e20 | 738 | *lstchr = 0; |
gsteiert | 3:4f71a37a1ed2 | 739 | sprintf(fileName, "/sd%s", uri); |
gsteiert | 3:4f71a37a1ed2 | 740 | DIR *d = opendir(fileName); |
gsteiert | 0:28bc7ce77e20 | 741 | if (d != NULL) { |
gsteiert | 0:28bc7ce77e20 | 742 | sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 743 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 3:4f71a37a1ed2 | 744 | sprintf(httpHeader,"<html><head><title>Directory Listing</title></head><body><h1>%s Directory Listing</h1><ul>", uri); |
gsteiert | 0:28bc7ce77e20 | 745 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 746 | struct dirent *p; |
gsteiert | 0:28bc7ce77e20 | 747 | while((p = readdir(d)) != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 748 | sprintf(dirName, "%s/%s", fileName, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 749 | uart.printf("%s\n", dirName); |
gsteiert | 3:4f71a37a1ed2 | 750 | DIR *subDir = opendir(dirName); |
gsteiert | 3:4f71a37a1ed2 | 751 | if (subDir != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 752 | sprintf(httpHeader,"<li><a href=\"./%s/\">%s/</a></li>", p->d_name, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 753 | } else { |
gsteiert | 3:4f71a37a1ed2 | 754 | sprintf(httpHeader,"<li><a href=\"./%s\">%s</a></li>", p->d_name, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 755 | } |
gsteiert | 0:28bc7ce77e20 | 756 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 757 | } |
gsteiert | 0:28bc7ce77e20 | 758 | } |
gsteiert | 0:28bc7ce77e20 | 759 | closedir(d); |
gsteiert | 3:4f71a37a1ed2 | 760 | uart.printf("Directory closed\n"); |
gsteiert | 0:28bc7ce77e20 | 761 | sprintf(httpHeader,"</ul></body></html>"); |
gsteiert | 0:28bc7ce77e20 | 762 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 763 | } else { |
gsteiert | 3:4f71a37a1ed2 | 764 | sprintf(fileName, "/sd%s", uri); |
gsteiert | 3:4f71a37a1ed2 | 765 | fp = fopen(fileName, "r"); |
gsteiert | 0:28bc7ce77e20 | 766 | if (fp == NULL) { |
gsteiert | 7:04744a9ce2b9 | 767 | uart.printf("File not found\n"); |
gsteiert | 0:28bc7ce77e20 | 768 | sprintf(httpHeader,"HTTP/1.1 404 Not Found \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 769 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 770 | client.send(uri,strlen(uri)); |
gsteiert | 0:28bc7ce77e20 | 771 | } else { |
gsteiert | 7:04744a9ce2b9 | 772 | uart.printf("Sending: header"); |
gsteiert | 0:28bc7ce77e20 | 773 | sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 774 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 7:04744a9ce2b9 | 775 | uart.printf(" file"); |
gsteiert | 0:28bc7ce77e20 | 776 | while ((rdCnt = fread(buffer, sizeof( char ), 1024, fp)) == 1024) { |
gsteiert | 0:28bc7ce77e20 | 777 | client.send(buffer, rdCnt); |
gsteiert | 7:04744a9ce2b9 | 778 | uart.printf("."); |
gsteiert | 0:28bc7ce77e20 | 779 | } |
gsteiert | 0:28bc7ce77e20 | 780 | client.send(buffer, rdCnt); |
gsteiert | 0:28bc7ce77e20 | 781 | fclose(fp); |
gsteiert | 7:04744a9ce2b9 | 782 | uart.printf("done\n"); |
gsteiert | 0:28bc7ce77e20 | 783 | } |
gsteiert | 0:28bc7ce77e20 | 784 | } |
gsteiert | 0:28bc7ce77e20 | 785 | } |
gsteiert | 0:28bc7ce77e20 | 786 | |
webmaster | 8:f2a567ee3a46 | 787 | int main_1 (void) |
gsteiert | 0:28bc7ce77e20 | 788 | { |
gsteiert | 3:4f71a37a1ed2 | 789 | // Serial Interface eth; |
gsteiert | 3:4f71a37a1ed2 | 790 | uart.baud(115200); |
gsteiert | 5:27b09a0f3fb6 | 791 | uart.printf("Initializing\n"); |
gsteiert | 3:4f71a37a1ed2 | 792 | |
gsteiert | 3:4f71a37a1ed2 | 793 | // Check File System |
gsteiert | 5:27b09a0f3fb6 | 794 | uart.printf("Checking File System\n"); |
gsteiert | 3:4f71a37a1ed2 | 795 | DIR *d = opendir("/sd/"); |
gsteiert | 3:4f71a37a1ed2 | 796 | if (d != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 797 | uart.printf("SD Card Present\n"); |
gsteiert | 3:4f71a37a1ed2 | 798 | } else { |
gsteiert | 3:4f71a37a1ed2 | 799 | uart.printf("SD Card Root Directory Not Found\n"); |
gsteiert | 3:4f71a37a1ed2 | 800 | } |
gsteiert | 3:4f71a37a1ed2 | 801 | |
gsteiert | 0:28bc7ce77e20 | 802 | // EthernetInterface eth; |
gsteiert | 5:27b09a0f3fb6 | 803 | uart.printf("Initializing Ethernet\n"); |
webmaster | 8:f2a567ee3a46 | 804 | //eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 805 | eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use |
gsteiert | 5:27b09a0f3fb6 | 806 | uart.printf("Connecting\n"); |
gsteiert | 0:28bc7ce77e20 | 807 | eth.connect(); |
gsteiert | 3:4f71a37a1ed2 | 808 | uart.printf("IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 809 | |
webmaster | 8:f2a567ee3a46 | 810 | //test socket client |
webmaster | 8:f2a567ee3a46 | 811 | //my_client.connect("192.168.31.185",10003); |
webmaster | 8:f2a567ee3a46 | 812 | //my_client.send_all("hello world",11); |
webmaster | 8:f2a567ee3a46 | 813 | |
webmaster | 8:f2a567ee3a46 | 814 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 815 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 816 | uart.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 817 | wait(1); |
webmaster | 8:f2a567ee3a46 | 818 | } |
webmaster | 8:f2a567ee3a46 | 819 | uart.printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 820 | |
webmaster | 8:f2a567ee3a46 | 821 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 822 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 823 | uart.printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 824 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 825 | |
webmaster | 8:f2a567ee3a46 | 826 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 827 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 828 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 829 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 830 | uart.printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 831 | |
webmaster | 8:f2a567ee3a46 | 832 | // Clean up |
webmaster | 8:f2a567ee3a46 | 833 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 834 | //////////////////////////////////////////////////////////////////////////// |
gsteiert | 0:28bc7ce77e20 | 835 | |
gsteiert | 0:28bc7ce77e20 | 836 | // TCPSocketServer server; |
gsteiert | 0:28bc7ce77e20 | 837 | server.bind(HTTPD_SERVER_PORT); |
gsteiert | 0:28bc7ce77e20 | 838 | server.listen(); |
gsteiert | 5:27b09a0f3fb6 | 839 | uart.printf("Server Listening\n"); |
gsteiert | 0:28bc7ce77e20 | 840 | |
gsteiert | 0:28bc7ce77e20 | 841 | while (true) { |
gsteiert | 3:4f71a37a1ed2 | 842 | uart.printf("\nWait for new connection...\r\n"); |
gsteiert | 0:28bc7ce77e20 | 843 | server.accept(client); |
gsteiert | 0:28bc7ce77e20 | 844 | client.set_blocking(false, 1500); // Timeout after (1.5)s |
webmaster | 8:f2a567ee3a46 | 845 | |
webmaster | 8:f2a567ee3a46 | 846 | my_client.send_all("hello world",11); |
gsteiert | 0:28bc7ce77e20 | 847 | |
gsteiert | 3:4f71a37a1ed2 | 848 | uart.printf("Connection from: %s\r\n", client.get_address()); |
gsteiert | 0:28bc7ce77e20 | 849 | while (true) { |
gsteiert | 0:28bc7ce77e20 | 850 | int n = client.receive(buffer, sizeof(buffer)); |
gsteiert | 0:28bc7ce77e20 | 851 | if (n <= 0) break; |
gsteiert | 3:4f71a37a1ed2 | 852 | uart.printf("Recieved Data: %d\r\n\r\n%.*s\r\n",n,n,buffer); |
gsteiert | 0:28bc7ce77e20 | 853 | if (n >= 1024) { |
gsteiert | 0:28bc7ce77e20 | 854 | sprintf(httpHeader,"HTTP/1.1 413 Request Entity Too Large \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 855 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 856 | client.send(buffer,n); |
gsteiert | 0:28bc7ce77e20 | 857 | break; |
gsteiert | 0:28bc7ce77e20 | 858 | } else { |
gsteiert | 0:28bc7ce77e20 | 859 | buffer[n]=0; |
gsteiert | 0:28bc7ce77e20 | 860 | } |
gsteiert | 0:28bc7ce77e20 | 861 | if (!strncmp(buffer, "GET ", 4)) { |
gsteiert | 0:28bc7ce77e20 | 862 | uristr = buffer + 4; |
gsteiert | 0:28bc7ce77e20 | 863 | eou = strstr(uristr, " "); |
gsteiert | 0:28bc7ce77e20 | 864 | if (eou == NULL) { |
gsteiert | 0:28bc7ce77e20 | 865 | sprintf(httpHeader,"HTTP/1.1 400 Bad Request \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 866 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 867 | client.send(buffer,n); |
gsteiert | 0:28bc7ce77e20 | 868 | } else { |
gsteiert | 0:28bc7ce77e20 | 869 | *eou = 0; |
gsteiert | 3:4f71a37a1ed2 | 870 | get_file(uristr); |
gsteiert | 0:28bc7ce77e20 | 871 | } |
gsteiert | 0:28bc7ce77e20 | 872 | } |
gsteiert | 0:28bc7ce77e20 | 873 | } |
gsteiert | 0:28bc7ce77e20 | 874 | |
gsteiert | 0:28bc7ce77e20 | 875 | client.close(); |
gsteiert | 0:28bc7ce77e20 | 876 | } |
gsteiert | 0:28bc7ce77e20 | 877 | } |
MrAI | 11:6d9cefb14158 | 878 | */ |
webmaster | 8:f2a567ee3a46 | 879 | |
webmaster | 8:f2a567ee3a46 | 880 | int main_2() { |
webmaster | 8:f2a567ee3a46 | 881 | // Serial Interface eth; |
webmaster | 8:f2a567ee3a46 | 882 | uart.baud(115200); |
webmaster | 8:f2a567ee3a46 | 883 | uart.printf("Initializing\n"); |
webmaster | 8:f2a567ee3a46 | 884 | |
webmaster | 8:f2a567ee3a46 | 885 | EthernetInterface eth; |
webmaster | 8:f2a567ee3a46 | 886 | eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 887 | eth.connect(); |
webmaster | 8:f2a567ee3a46 | 888 | printf("\nClient IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 889 | |
webmaster | 8:f2a567ee3a46 | 890 | // Connect to Server |
webmaster | 8:f2a567ee3a46 | 891 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 892 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 893 | printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 894 | wait(1); |
webmaster | 8:f2a567ee3a46 | 895 | } |
webmaster | 8:f2a567ee3a46 | 896 | printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 897 | |
webmaster | 8:f2a567ee3a46 | 898 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 899 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 900 | printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 901 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 902 | |
webmaster | 8:f2a567ee3a46 | 903 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 904 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 905 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 906 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 907 | printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 908 | |
webmaster | 8:f2a567ee3a46 | 909 | // Clean up |
webmaster | 8:f2a567ee3a46 | 910 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 911 | eth.disconnect(); |
webmaster | 8:f2a567ee3a46 | 912 | |
webmaster | 8:f2a567ee3a46 | 913 | while(true) {} |
webmaster | 8:f2a567ee3a46 | 914 | } |