二期c++接口

Dependencies:   EthernetInterface mbed-rtos mbed uniqueCPUID

Fork of bcsdk by Heng Well

Committer:
MrAI
Date:
Wed May 23 02:40:40 2018 +0000
Revision:
14:59412fcf8fa2
Parent:
13:e77c7ae3a285
Child:
15:7b56d49392be
??????

Who changed what in which revision?

UserRevisionLine numberNew 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 14:59412fcf8fa2 191
MrAI 12:1b24ea479a59 192 string strJson = "";
MrAI 14:59412fcf8fa2 193 cout<<"sd_wallet func"<<endl;
MrAI 12:1b24ea479a59 194 Account act;
MrAI 14:59412fcf8fa2 195 cout<<"act.getWallet()...begin"<<endl;
MrAI 12:1b24ea479a59 196 strJson = act.getWallet ();
MrAI 14:59412fcf8fa2 197 cout<<"act.getWallet()...end"<<endl;
MrAI 12:1b24ea479a59 198 cout << "Extract json content from http message:"<<strJson.c_str() << endl;
MrAI 12:1b24ea479a59 199 if (strJson.empty())
MrAI 12:1b24ea479a59 200 {
MrAI 12:1b24ea479a59 201 return -1;
MrAI 12:1b24ea479a59 202 }
MrAI 12:1b24ea479a59 203 // decode content json
MrAI 12:1b24ea479a59 204 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 205 // string err = parse(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 206 // bool bSuccess = objJson["success"].get<bool>();
MrAI 12:1b24ea479a59 207 // if (bSuccess)
MrAI 12:1b24ea479a59 208 // {
MrAI 12:1b24ea479a59 209 // string address = objJson["wallet"]["address"].get<string>();
MrAI 12:1b24ea479a59 210 // string secret = objJson["wallet"]["secret"].get<string>();
MrAI 12:1b24ea479a59 211 // cout << "wallet:" << address << "--" << secret << endl;
MrAI 12:1b24ea479a59 212 // }
MrAI 12:1b24ea479a59 213 string err = act.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 214 bool bSuccess = act.getRequestRet(objJson);
MrAI 12:1b24ea479a59 215 if (bSuccess)
MrAI 12:1b24ea479a59 216 {
MrAI 12:1b24ea479a59 217 string address1 = act.getKeyValue(objJson, "wallet", "address");
MrAI 12:1b24ea479a59 218 string secret1 = act.getKeyValue(objJson, "wallet", "secret");
MrAI 12:1b24ea479a59 219 cout << "address:" << address1 << endl << "secret:" << secret1 << endl;
MrAI 12:1b24ea479a59 220 }
MrAI 12:1b24ea479a59 221
MrAI 12:1b24ea479a59 222 return 0;
MrAI 12:1b24ea479a59 223 }
MrAI 12:1b24ea479a59 224
MrAI 12:1b24ea479a59 225 int sd_postpayment()//支付请求
MrAI 12:1b24ea479a59 226 {
MrAI 12:1b24ea479a59 227 string strJson = "";
MrAI 12:1b24ea479a59 228 Payment pay;
MrAI 12:1b24ea479a59 229 MbedJSONValue mbJson;
MrAI 12:1b24ea479a59 230 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 231 string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR";
MrAI 12:1b24ea479a59 232 string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 233 string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y";
MrAI 12:1b24ea479a59 234 string amount = "20";
MrAI 12:1b24ea479a59 235 string MemoType = "memos";
MrAI 12:1b24ea479a59 236 string MemoData = "memos";
MrAI 12:1b24ea479a59 237 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 238 string strUrl = "/v1/accounts/payments/";
MrAI 12:1b24ea479a59 239 pay.SetJsonBody(mbJson, secret, src_acc, dst_acc, amount, MemoType, MemoData);
MrAI 12:1b24ea479a59 240 strJson = pay.PostPayment(mbJson, strUrl, strWallet,"");
MrAI 12:1b24ea479a59 241 if (strJson.empty())
MrAI 12:1b24ea479a59 242 {
MrAI 12:1b24ea479a59 243 return -1;
MrAI 12:1b24ea479a59 244 }
MrAI 12:1b24ea479a59 245 string err = pay.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 246 bool bSuccess = pay.getRequestRet(objJson);
MrAI 12:1b24ea479a59 247 if (bSuccess)
MrAI 12:1b24ea479a59 248 {
MrAI 12:1b24ea479a59 249 string hash = pay.getKeyValue(objJson, "hash");
MrAI 12:1b24ea479a59 250 string status_url = pay.getKeyValue(objJson, "status_url");
MrAI 12:1b24ea479a59 251 cout << "hash:" << hash << endl;
MrAI 12:1b24ea479a59 252 cout << "status_url:" << status_url << endl;
MrAI 12:1b24ea479a59 253 }
MrAI 12:1b24ea479a59 254 return 0;
MrAI 12:1b24ea479a59 255 }
MrAI 12:1b24ea479a59 256
MrAI 12:1b24ea479a59 257 int sd_getpaymentinfo()
MrAI 12:1b24ea479a59 258 {
MrAI 12:1b24ea479a59 259 Payment pay;
MrAI 12:1b24ea479a59 260 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 261 string strJson = "";
MrAI 12:1b24ea479a59 262 string strWallet = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y";
MrAI 12:1b24ea479a59 263 string strUrl = "/v1/accounts/payments/";
MrAI 12:1b24ea479a59 264 string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11";
MrAI 12:1b24ea479a59 265 strJson = pay.GetPaymentInfo(strUrl, strWallet, strHash);
MrAI 12:1b24ea479a59 266 if (strJson.empty())
MrAI 12:1b24ea479a59 267 {
MrAI 12:1b24ea479a59 268 return -1;
MrAI 12:1b24ea479a59 269 }
MrAI 12:1b24ea479a59 270 string err = pay.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 271 bool bSuccess = pay.getRequestRet(objJson);
MrAI 12:1b24ea479a59 272 if (bSuccess)
MrAI 12:1b24ea479a59 273 {
MrAI 12:1b24ea479a59 274 string hash = pay.getKeyValue(objJson, "hash");
MrAI 12:1b24ea479a59 275 string ledger = pay.getKeyValue(objJson, "ledger");
MrAI 12:1b24ea479a59 276 string state = pay.getKeyValue(objJson, "state");
MrAI 12:1b24ea479a59 277 string source_account = pay.getKeyValue(objJson, "source_account");
MrAI 12:1b24ea479a59 278 string dst_account = pay.getKeyValue(objJson, "destination_account");
MrAI 12:1b24ea479a59 279 string amount_cur = pay.getKeyValue(objJson, "amount", "currency");
MrAI 12:1b24ea479a59 280 string value = pay.getKeyValue(objJson, "amount", "value");
MrAI 12:1b24ea479a59 281 string amount_issuer = pay.getKeyValue(objJson, "amount", "issuer");
MrAI 12:1b24ea479a59 282 string currency = pay.getKeyValue(objJson, "currency");
MrAI 12:1b24ea479a59 283 string issuer = pay.getKeyValue(objJson, "issuer");
MrAI 12:1b24ea479a59 284 string direction = pay.getKeyValue(objJson, "direction");
MrAI 12:1b24ea479a59 285 string timestamp = pay.getKeyValue(objJson, "timestamp");
MrAI 12:1b24ea479a59 286 string fee = pay.getKeyValue(objJson, "fee");
MrAI 13:e77c7ae3a285 287 cout << "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< " state:" << state
MrAI 13:e77c7ae3a285 288 <<endl<< " source_account:" << source_account <<endl<< " dst_account:" << dst_account
MrAI 13:e77c7ae3a285 289 <<endl<< " amount_cur:" << amount_cur <<endl<< " value:" << value <<endl<< " amount_issuer:" << amount_issuer
MrAI 13:e77c7ae3a285 290 <<endl<< " currency:" << currency <<endl<< " issuer" << issuer <<endl<< " direction" << direction
MrAI 13:e77c7ae3a285 291 <<endl<< " timestamp:" << timestamp <<endl<< " fee" << fee <<endl;
MrAI 12:1b24ea479a59 292 int iCurrenciesNum = pay.getBalanceSize(objJson, "memos");
MrAI 12:1b24ea479a59 293 for (int i = 0; i < iCurrenciesNum; i++)
MrAI 12:1b24ea479a59 294 {
MrAI 12:1b24ea479a59 295 string memo_type = pay.getBalanceArray(objJson, "memos", i, "memo_type");
MrAI 12:1b24ea479a59 296 string memo_data = pay.getBalanceArray(objJson, "memos", i, "memo_data");
MrAI 12:1b24ea479a59 297 cout << i << ":" << memo_type << "--" << memo_data << endl;
MrAI 12:1b24ea479a59 298 }
MrAI 12:1b24ea479a59 299
MrAI 12:1b24ea479a59 300 }
MrAI 12:1b24ea479a59 301 return 0;
MrAI 12:1b24ea479a59 302 }
MrAI 12:1b24ea479a59 303
MrAI 12:1b24ea479a59 304 int sd_gettransactions()
MrAI 12:1b24ea479a59 305 {
MrAI 12:1b24ea479a59 306 Payment pay;
MrAI 12:1b24ea479a59 307 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 308 string strJson = "";
MrAI 12:1b24ea479a59 309 string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11";
MrAI 12:1b24ea479a59 310 string strUrl = "/v1/transactions/";
MrAI 12:1b24ea479a59 311 strJson = pay.GetPaymentInfo(strUrl,"", strHash);
MrAI 12:1b24ea479a59 312 if (strJson.empty())
MrAI 12:1b24ea479a59 313 {
MrAI 12:1b24ea479a59 314 return -1;
MrAI 12:1b24ea479a59 315 }
MrAI 12:1b24ea479a59 316 string err = pay.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 317 bool bSuccess = pay.getRequestRet(objJson);
MrAI 12:1b24ea479a59 318 if (bSuccess)
MrAI 12:1b24ea479a59 319 {
MrAI 12:1b24ea479a59 320 string TransactionType = pay.getKeyValue(objJson, "transaction", "TransactionType");
MrAI 12:1b24ea479a59 321 int Flags = pay.getKeyValueInt(objJson, "transaction", "Flags");
MrAI 12:1b24ea479a59 322 int Sequence = pay.getKeyValueInt(objJson, "transaction", "Sequence");
MrAI 12:1b24ea479a59 323 int LastLedgerSequence = pay.getKeyValueInt(objJson, "transaction", "LastLedgerSequence");
MrAI 12:1b24ea479a59 324 string Amount = pay.getKeyValue(objJson, "transaction", "Amount");
MrAI 12:1b24ea479a59 325 string Fee = pay.getKeyValue(objJson, "transaction", "Fee");
MrAI 12:1b24ea479a59 326 string SigningPubKey = pay.getKeyValue(objJson, "transaction", "SigningPubKey");
MrAI 12:1b24ea479a59 327 string TxnSignature = pay.getKeyValue(objJson, "transaction", "TxnSignature");
MrAI 12:1b24ea479a59 328 string Account = pay.getKeyValue(objJson, "transaction", "Account");
MrAI 12:1b24ea479a59 329 string Destination = pay.getKeyValue(objJson, "transaction", "Destination");
MrAI 12:1b24ea479a59 330 int iCurrenciesNum = pay.getBalanceSize(objJson,"transaction","Memos");
MrAI 12:1b24ea479a59 331 // for (int i = 0; i < iCurrenciesNum; i++)
MrAI 12:1b24ea479a59 332 // {
MrAI 12:1b24ea479a59 333 // string MemoType = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoType");
MrAI 12:1b24ea479a59 334 // string MemoData = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoData");
MrAI 12:1b24ea479a59 335 // string parsed_memo_type = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "parsed_memo_type");
MrAI 12:1b24ea479a59 336 // cout << i << ":" << MemoType << "--" << MemoData << "--" << parsed_memo_type << endl;
MrAI 12:1b24ea479a59 337 // }
MrAI 12:1b24ea479a59 338 int date = pay.getKeyValueInt(objJson, "transaction", "date");
MrAI 12:1b24ea479a59 339 string hash = pay.getKeyValue(objJson, "transaction", "hash");
MrAI 12:1b24ea479a59 340 int inLedger = pay.getKeyValueInt(objJson, "transaction", "inLedger");
MrAI 12:1b24ea479a59 341 int ledger_index = pay.getKeyValueInt(objJson, "transaction", "ledger_index");
MrAI 12:1b24ea479a59 342 bool validated = pay.getKeyValueBool(objJson, "transaction", "validated");
MrAI 13:e77c7ae3a285 343 cout<<"TransactionType:"<<TransactionType<<endl<<"Amount:"<<Amount<<endl<<"Fee:"<<Fee<<endl
MrAI 13:e77c7ae3a285 344 <<"SigningPubKey:"<<SigningPubKey<<endl<<"TxnSignature:"<<TxnSignature<<endl
MrAI 13:e77c7ae3a285 345 <<"Account:"<<Account<<endl<<"Destination:"<<Destination<<endl;
MrAI 12:1b24ea479a59 346 }
MrAI 12:1b24ea479a59 347 return 0;
MrAI 12:1b24ea479a59 348 }
MrAI 12:1b24ea479a59 349
MrAI 12:1b24ea479a59 350 int sd_getpaymenthistory()
MrAI 12:1b24ea479a59 351 {
MrAI 12:1b24ea479a59 352 Payment pay;
MrAI 12:1b24ea479a59 353 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 354 MbedJSONValue mbJson;
MrAI 12:1b24ea479a59 355 string strJson = "";
MrAI 12:1b24ea479a59 356 string strUrl = "/v1/accounts/payments/";
MrAI 12:1b24ea479a59 357 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 358 string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 359 string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y";
MrAI 12:1b24ea479a59 360 string direction = "incoming";
MrAI 12:1b24ea479a59 361 int start_ledger = 1;
MrAI 12:1b24ea479a59 362 int end_ledger = 10000;
MrAI 12:1b24ea479a59 363 int per_page = 10;
MrAI 12:1b24ea479a59 364 int page = 1;
MrAI 12:1b24ea479a59 365 pay.SetJsonBody(mbJson, src_acc, dst_acc, direction, start_ledger, end_ledger, per_page, page);
MrAI 12:1b24ea479a59 366 strJson = pay.PostPayment(mbJson, strUrl, strWallet, "");
MrAI 12:1b24ea479a59 367 if (strJson.empty())
MrAI 12:1b24ea479a59 368 {
MrAI 12:1b24ea479a59 369 return -1;
MrAI 12:1b24ea479a59 370 }
MrAI 12:1b24ea479a59 371 string err = pay.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 372 bool bSuccess = pay.getRequestRet(objJson);
MrAI 12:1b24ea479a59 373 if (bSuccess)
MrAI 12:1b24ea479a59 374 {
MrAI 12:1b24ea479a59 375 int iCurrenciesNum = pay.getBalanceSize(objJson,"payments");
MrAI 12:1b24ea479a59 376 for (int i = 0; i < iCurrenciesNum; i++)
MrAI 12:1b24ea479a59 377 {
MrAI 12:1b24ea479a59 378 string hash = pay.getBalanceArray(objJson, "payments", i, "hash");
MrAI 12:1b24ea479a59 379 string ledger = pay.getBalanceArray(objJson, "payments", i, "ledger");
MrAI 12:1b24ea479a59 380 string source_account = pay.getBalanceArray(objJson, "payments", i, "source_account");
MrAI 12:1b24ea479a59 381 string destination_account = pay.getBalanceArray(objJson, "payments", i, "destination_account");
MrAI 12:1b24ea479a59 382 string currency = pay.getBalanceArray(objJson, "payments", "amount", i,currency);
MrAI 12:1b24ea479a59 383 string value = pay.getBalanceArray(objJson, "payments", "amount", i, value);
MrAI 12:1b24ea479a59 384 string issuer = pay.getBalanceArray(objJson, "payments", "amount", i, issuer);
MrAI 12:1b24ea479a59 385 string direction = pay.getBalanceArray(objJson, "payments", i, "direction");
MrAI 12:1b24ea479a59 386 string timestamp = pay.getBalanceArray(objJson, "payments", i, "timestamp");
MrAI 12:1b24ea479a59 387 string fee = pay.getBalanceArray(objJson, "payments", i, "fee");
MrAI 12:1b24ea479a59 388 int iCurrenciesNum = pay.getBalanceSize(objJson, "transaction", "Memos");
MrAI 12:1b24ea479a59 389 for (int j = 0; j < iCurrenciesNum; j++)
MrAI 12:1b24ea479a59 390 {
MrAI 12:1b24ea479a59 391 string memo_type = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_type");
MrAI 12:1b24ea479a59 392 string memo_data = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_data");
MrAI 12:1b24ea479a59 393 cout << i << ":" << memo_type << "--" << memo_data << endl;
MrAI 12:1b24ea479a59 394 }
MrAI 13:e77c7ae3a285 395 cout<<"hash:"<<hash<<endl<<"ledger:"<<ledger<<endl<<"source_account:"<<source_account<<endl
MrAI 13:e77c7ae3a285 396 <<"destination_account:"<<destination_account<<endl<<"currency:"<<currency<<endl<<"timestamp:"
MrAI 13:e77c7ae3a285 397 <<timestamp<<endl;
MrAI 12:1b24ea479a59 398 }
MrAI 12:1b24ea479a59 399 }
MrAI 12:1b24ea479a59 400 return 0;
MrAI 12:1b24ea479a59 401 }
MrAI 12:1b24ea479a59 402
MrAI 12:1b24ea479a59 403 int sd_getdefaultfee()
MrAI 12:1b24ea479a59 404 {
MrAI 12:1b24ea479a59 405 ServerInfo serInfo;
MrAI 12:1b24ea479a59 406 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 407 string strJson = "";
MrAI 12:1b24ea479a59 408 string strUrl = "/v1/transaction-fee";
MrAI 12:1b24ea479a59 409 strJson = serInfo.GetPaymentInfo(strUrl, "", "");
MrAI 12:1b24ea479a59 410 if (strJson.empty())
MrAI 12:1b24ea479a59 411 {
MrAI 12:1b24ea479a59 412 return -1;
MrAI 12:1b24ea479a59 413 }
MrAI 12:1b24ea479a59 414 string err = serInfo.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 415 bool bSuccess = serInfo.getRequestRet(objJson);
MrAI 12:1b24ea479a59 416 if (bSuccess)
MrAI 12:1b24ea479a59 417 {
MrAI 12:1b24ea479a59 418 string fee = serInfo.getKeyValue(objJson, "fee");
MrAI 12:1b24ea479a59 419 cout << "fee:" << fee << endl;
MrAI 12:1b24ea479a59 420 }
MrAI 12:1b24ea479a59 421 return 0;
MrAI 12:1b24ea479a59 422 }
MrAI 12:1b24ea479a59 423
MrAI 12:1b24ea479a59 424 int sd_getserverinfo()
MrAI 12:1b24ea479a59 425 {
MrAI 12:1b24ea479a59 426 ServerInfo serInfo;
MrAI 12:1b24ea479a59 427 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 428 string strJson = "";
MrAI 12:1b24ea479a59 429 string strUrl = "/v1/server";
MrAI 12:1b24ea479a59 430 strJson = serInfo.GetPaymentInfo(strUrl, "", "");
MrAI 12:1b24ea479a59 431 if (strJson.empty())
MrAI 12:1b24ea479a59 432 {
MrAI 12:1b24ea479a59 433 return -1;
MrAI 12:1b24ea479a59 434 }
MrAI 12:1b24ea479a59 435 string err = serInfo.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 436 bool bSuccess = serInfo.getRequestRet(objJson);
MrAI 12:1b24ea479a59 437 if (bSuccess)
MrAI 12:1b24ea479a59 438 {
MrAI 12:1b24ea479a59 439 string complete_ledgers = serInfo.getKeyValue(objJson, "sdchaind_server_status", "complete_ledgers");
MrAI 12:1b24ea479a59 440 string server_state = serInfo.getKeyValue(objJson, "sdchaind_server_status", "server_state");
MrAI 12:1b24ea479a59 441 int reserve_base_sda = serInfo.getKeyValueInt(objJson, "sdchaind_server_status", "reserve_base_sda");
MrAI 13:e77c7ae3a285 442 cout << "complete_ledgers:" << complete_ledgers <<endl<< "server_state:" << server_state<<endl << "reserve_base_sda:" << reserve_base_sda << endl;
MrAI 12:1b24ea479a59 443 }
MrAI 12:1b24ea479a59 444 return 0;
MrAI 12:1b24ea479a59 445 }
MrAI 12:1b24ea479a59 446
MrAI 12:1b24ea479a59 447 int sd_getserverconnected()
MrAI 12:1b24ea479a59 448 {
MrAI 12:1b24ea479a59 449 ServerInfo serInfo;
MrAI 12:1b24ea479a59 450 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 451 string strJson = "";
MrAI 12:1b24ea479a59 452 string strUrl = "/v1/server/connected";
MrAI 12:1b24ea479a59 453 strJson = serInfo.GetPaymentInfo(strUrl, "", "");
MrAI 12:1b24ea479a59 454 if (strJson.empty())
MrAI 12:1b24ea479a59 455 {
MrAI 12:1b24ea479a59 456 return -1;
MrAI 12:1b24ea479a59 457 }
MrAI 12:1b24ea479a59 458 string err = serInfo.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 459 bool bSuccess = serInfo.getRequestRet(objJson);
MrAI 12:1b24ea479a59 460 if (bSuccess)
MrAI 12:1b24ea479a59 461 {
MrAI 12:1b24ea479a59 462 bool connected = serInfo.getKeyValueBool(objJson, "connected");
MrAI 13:e77c7ae3a285 463 if(connected)
MrAI 13:e77c7ae3a285 464 {cout<<"server is running"<<endl;}
MrAI 13:e77c7ae3a285 465 else
MrAI 13:e77c7ae3a285 466 {cout<<"server stopped"<<endl;}
MrAI 12:1b24ea479a59 467 }
MrAI 12:1b24ea479a59 468 return 0;
MrAI 12:1b24ea479a59 469 }
MrAI 12:1b24ea479a59 470
MrAI 12:1b24ea479a59 471 int sd_queryorderlist()
MrAI 12:1b24ea479a59 472 {
MrAI 12:1b24ea479a59 473 Order orderInfo;
MrAI 12:1b24ea479a59 474 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 475 string strJson = "";
MrAI 12:1b24ea479a59 476 string strUrl = "/v1/accounts/orders/";
MrAI 12:1b24ea479a59 477 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 478 strJson = orderInfo.GetPaymentInfo(strUrl, strWallet, "");
MrAI 12:1b24ea479a59 479 if (strJson.empty())
MrAI 12:1b24ea479a59 480 {
MrAI 12:1b24ea479a59 481 return -1;
MrAI 12:1b24ea479a59 482 }
MrAI 12:1b24ea479a59 483 string err = orderInfo.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 484 bool bSuccess = orderInfo.getRequestRet(objJson);
MrAI 12:1b24ea479a59 485 if (bSuccess)
MrAI 12:1b24ea479a59 486 {
MrAI 12:1b24ea479a59 487 int ledger = objJson["ledger"].get<int>();
MrAI 12:1b24ea479a59 488 bool validated = orderInfo.getKeyValueBool(objJson, "validated");
MrAI 12:1b24ea479a59 489 int iCurrenciesNum = orderInfo.getBalanceSize(objJson, "orders");
MrAI 12:1b24ea479a59 490 for (int i = 0; i < iCurrenciesNum; i++)
MrAI 12:1b24ea479a59 491 {
MrAI 12:1b24ea479a59 492 string type = orderInfo.getBalanceArray(objJson, "orders", i, "type");
MrAI 12:1b24ea479a59 493 string currency_gets = orderInfo.getBalanceArray(objJson, "orders","taker_gets",i,"currency");
MrAI 12:1b24ea479a59 494 string value_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "value");
MrAI 12:1b24ea479a59 495 string counterparty_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "counterparty");
MrAI 12:1b24ea479a59 496 string currency_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "currency");
MrAI 12:1b24ea479a59 497 string value_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "value");
MrAI 12:1b24ea479a59 498 string counterparty_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "counterparty");
MrAI 13:e77c7ae3a285 499 cout << "type:" << type <<endl<< "currency_gets:" << currency_gets <<endl<< "value_gets:" << value_gets<<endl
MrAI 13:e77c7ae3a285 500 << "counterparty_gets:" << counterparty_gets <<endl<< "currency_pays:" << currency_pays<<endl
MrAI 13:e77c7ae3a285 501 << "value_pays:" << value_pays <<endl<< "counterparty_pays:" << counterparty_pays << endl;
MrAI 12:1b24ea479a59 502 }
MrAI 13:e77c7ae3a285 503 cout << "ledger:" << ledger <<endl<< "validated:" << validated << endl;
MrAI 12:1b24ea479a59 504 }
MrAI 12:1b24ea479a59 505 return 0;
MrAI 12:1b24ea479a59 506 }
MrAI 12:1b24ea479a59 507
MrAI 12:1b24ea479a59 508 int sd_commitorder()
MrAI 12:1b24ea479a59 509 {
MrAI 12:1b24ea479a59 510 Order orderCommit;
MrAI 12:1b24ea479a59 511 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 512 MbedJSONValue mbJson;
MrAI 12:1b24ea479a59 513 string strJson = "";
MrAI 12:1b24ea479a59 514 string strUrl = "/v1/accounts/orders/";
MrAI 12:1b24ea479a59 515 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 516 string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR";
MrAI 12:1b24ea479a59 517 orderCommit.SetJsonBody(mbJson, secret, "buy", "SDA", "", "4", "CNY", "6UPd52jHtu1d88nc3S3WeroACFQpKfybhU", "22");
MrAI 12:1b24ea479a59 518 strJson = orderCommit.PostPayment(mbJson, strUrl, strWallet, "");
MrAI 12:1b24ea479a59 519 if (strJson.empty())
MrAI 12:1b24ea479a59 520 {
MrAI 12:1b24ea479a59 521 return -1;
MrAI 12:1b24ea479a59 522 }
MrAI 12:1b24ea479a59 523 string err = orderCommit.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 524 bool bSuccess = orderCommit.getRequestRet(objJson);
MrAI 12:1b24ea479a59 525 if (bSuccess)
MrAI 12:1b24ea479a59 526 {
MrAI 12:1b24ea479a59 527 string account = orderCommit.getKeyValue(objJson, "order", "account");
MrAI 12:1b24ea479a59 528 string currency_g = orderCommit.getKeyValue(objJson, "taker_gets", "currency");
MrAI 12:1b24ea479a59 529 string value_g = orderCommit.getKeyValue(objJson, "taker_gets", "value");
MrAI 12:1b24ea479a59 530 string counterparty_g = orderCommit.getKeyValue(objJson, "taker_gets", "counterparty");
MrAI 12:1b24ea479a59 531 string currency_p = orderCommit.getKeyValue(objJson, "taker_pays", "currency");
MrAI 12:1b24ea479a59 532 string value_p = orderCommit.getKeyValue(objJson, "taker_pays", "value");
MrAI 12:1b24ea479a59 533 string counterparty_p = orderCommit.getKeyValue(objJson, "taker_pays", "counterparty");
MrAI 12:1b24ea479a59 534 string fee = orderCommit.getKeyValue(objJson, "order", "fee");
MrAI 12:1b24ea479a59 535 string type = orderCommit.getKeyValue(objJson, "order", "type");
MrAI 12:1b24ea479a59 536 int sequence = orderCommit.getKeyValueInt(objJson, "order","sequence");
MrAI 12:1b24ea479a59 537 string hash = orderCommit.getKeyValue(objJson, "hash");
MrAI 12:1b24ea479a59 538 int ledger = orderCommit.getLedger(objJson);
MrAI 12:1b24ea479a59 539 string state = orderCommit.getKeyValue(objJson, "state");
MrAI 13:e77c7ae3a285 540 cout<<"account:"<<account<<endl<<"fee:"<<fee<<endl<<"hash:"<<hash<<endl<<"state:"<<state<<endl;
MrAI 12:1b24ea479a59 541 }
MrAI 12:1b24ea479a59 542 return 0;
MrAI 12:1b24ea479a59 543 }
MrAI 12:1b24ea479a59 544
MrAI 12:1b24ea479a59 545 int sd_deleteorder()
MrAI 12:1b24ea479a59 546 {
MrAI 12:1b24ea479a59 547 Order orderCommit;
MrAI 12:1b24ea479a59 548 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 549 MbedJSONValue mbJson;
MrAI 12:1b24ea479a59 550 MbedJSONValue val;
MrAI 12:1b24ea479a59 551 string strJson = "";
MrAI 12:1b24ea479a59 552 string strUrl = "/v1/accounts/orders/";
MrAI 12:1b24ea479a59 553 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 554 string strNum = "1234";
MrAI 12:1b24ea479a59 555 val["secret"] = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR";
MrAI 12:1b24ea479a59 556 strJson = orderCommit.PostOrder(val, strUrl, strWallet, strNum);
MrAI 12:1b24ea479a59 557 if (strJson.empty())
MrAI 12:1b24ea479a59 558 {
MrAI 12:1b24ea479a59 559 return -1;
MrAI 12:1b24ea479a59 560 }
MrAI 12:1b24ea479a59 561 string err = orderCommit.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 562 bool bSuccess = orderCommit.getRequestRet(objJson);
MrAI 12:1b24ea479a59 563 if (bSuccess)
MrAI 12:1b24ea479a59 564 {
MrAI 12:1b24ea479a59 565 string account = orderCommit.getKeyValue(objJson, "order", "account");
MrAI 12:1b24ea479a59 566 string fee = orderCommit.getKeyValue(objJson, "order", "fee");
MrAI 12:1b24ea479a59 567 string offer_sequence = orderCommit.getKeyValue(objJson, "order", "offer_sequence");
MrAI 12:1b24ea479a59 568 string sequence = orderCommit.getKeyValue(objJson, "order", "sequence");
MrAI 12:1b24ea479a59 569 string hash = orderCommit.getKeyValue(objJson, "hash");
MrAI 12:1b24ea479a59 570 string ledger = orderCommit.getKeyValue(objJson, "ledger");
MrAI 12:1b24ea479a59 571 string state = orderCommit.getKeyValue(objJson, "state");
MrAI 13:e77c7ae3a285 572 cout << "account:" << account <<endl<< "fee:" << fee <<endl<< "offer_sequence:" << offer_sequence<<endl
MrAI 13:e77c7ae3a285 573 << "sequence:" << sequence <<endl<< "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< "state:" << state << endl;
MrAI 12:1b24ea479a59 574 }
MrAI 12:1b24ea479a59 575 return 0;
MrAI 12:1b24ea479a59 576 }
MrAI 12:1b24ea479a59 577
MrAI 12:1b24ea479a59 578 int sd_queryorderdetailed()
MrAI 12:1b24ea479a59 579 {
MrAI 12:1b24ea479a59 580 cout << "call sd_queryorderdetailed begin" << endl;
MrAI 12:1b24ea479a59 581 Order orderInfo;
MrAI 12:1b24ea479a59 582 MbedJSONValue objJson;
MrAI 12:1b24ea479a59 583 string strJson = "";
MrAI 12:1b24ea479a59 584 string strUrl = " /v1/accounts/orders/";
MrAI 12:1b24ea479a59 585 string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY";
MrAI 12:1b24ea479a59 586 string hash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11";
MrAI 12:1b24ea479a59 587 strJson = orderInfo.GetPaymentInfo(strUrl, strWallet,hash);
MrAI 12:1b24ea479a59 588 if (strJson.empty())
MrAI 12:1b24ea479a59 589 {
MrAI 12:1b24ea479a59 590 cout << "call sd_queryorderdetailed exception quit" << endl;
MrAI 12:1b24ea479a59 591 return -1;
MrAI 12:1b24ea479a59 592 }
MrAI 12:1b24ea479a59 593 string err = orderInfo.getParseMbedJson(objJson, strJson.c_str());
MrAI 12:1b24ea479a59 594 bool bSuccess = orderInfo.getRequestRet(objJson);
MrAI 12:1b24ea479a59 595 if (bSuccess)
MrAI 12:1b24ea479a59 596 {
MrAI 12:1b24ea479a59 597 string hash = orderInfo.getKeyValue(objJson, "hash");
MrAI 12:1b24ea479a59 598 int ledger = objJson["ledger"].get<int>();
MrAI 12:1b24ea479a59 599 int iBalanceNum = orderInfo.getBalanceSize(objJson, "balance_changes");
MrAI 12:1b24ea479a59 600 for (int i = 0; i < iBalanceNum; i++)
MrAI 12:1b24ea479a59 601 {
MrAI 12:1b24ea479a59 602 string counterparty = orderInfo.getBalanceArray(objJson, "balance_changes", i, "counterparty");
MrAI 13:e77c7ae3a285 603 cout<<"counterparty:"<<counterparty<<endl;
MrAI 12:1b24ea479a59 604 }
MrAI 12:1b24ea479a59 605 int iOrderChangesNum = orderInfo.getBalanceSize(objJson, "order_changes");
MrAI 12:1b24ea479a59 606 for (int j = 0; j < iOrderChangesNum; j++)
MrAI 12:1b24ea479a59 607 {
MrAI 12:1b24ea479a59 608 string currency_gets = orderInfo.getBalanceArray(objJson, "order_changes", "taker_gets", j, "currency");
MrAI 13:e77c7ae3a285 609 cout<<"currency_gets:"<<currency_gets<<endl;
MrAI 12:1b24ea479a59 610 }
MrAI 13:e77c7ae3a285 611 cout<<"hash:"<<hash<<endl;
MrAI 12:1b24ea479a59 612
MrAI 12:1b24ea479a59 613 }
MrAI 12:1b24ea479a59 614 cout << "call sd_queryorderdetailed end" << endl;
MrAI 12:1b24ea479a59 615 return 0;
MrAI 12:1b24ea479a59 616 }
webmaster 8:f2a567ee3a46 617 int main(void)
webmaster 8:f2a567ee3a46 618 {
webmaster 8:f2a567ee3a46 619 printf("main start\n");
webmaster 8:f2a567ee3a46 620
MrAI 12:1b24ea479a59 621 // test_uuid();
webmaster 10:aabd720e632c 622
webmaster 9:d7468574ef8f 623
webmaster 8:f2a567ee3a46 624 socket_init();
webmaster 8:f2a567ee3a46 625
MrAI 12:1b24ea479a59 626 //test_MockHsm();
MrAI 12:1b24ea479a59 627 // test_Asset();
MrAI 12:1b24ea479a59 628 // test_Account();
MrAI 13:e77c7ae3a285 629 cout<<"**************************GET NEW WALLET****************************"<<endl;
MrAI 12:1b24ea479a59 630 sd_wallet();
MrAI 13:e77c7ae3a285 631 wait(2);
MrAI 13:e77c7ae3a285 632 cout<<"**************************GET ACCOUNT BALANCE************************"<<endl;
MrAI 12:1b24ea479a59 633 sd_account();
MrAI 13:e77c7ae3a285 634 wait(2);
MrAI 13:e77c7ae3a285 635 cout<<"*************************POST PAYMENT REQUEST********************"<<endl;
MrAI 13:e77c7ae3a285 636 sd_postpayment();
MrAI 13:e77c7ae3a285 637 wait(2);
MrAI 13:e77c7ae3a285 638 cout<<"*************************GET PAYMENT INFO****************"<<endl;
MrAI 13:e77c7ae3a285 639 sd_getpaymentinfo();
MrAI 13:e77c7ae3a285 640 wait(2);
MrAI 13:e77c7ae3a285 641 cout<<"*************************GET TRANSACTIONS INFO***********"<<endl;
MrAI 13:e77c7ae3a285 642 sd_gettransactions();
MrAI 13:e77c7ae3a285 643 wait(2);
MrAI 13:e77c7ae3a285 644 cout<<"*************************GET PAYMENT HISTORY*****************"<<endl;
MrAI 13:e77c7ae3a285 645 sd_getpaymenthistory();
MrAI 13:e77c7ae3a285 646 wait(2);
MrAI 13:e77c7ae3a285 647 cout<<"*************************GET DEFAULT FEE**********************"<<endl;
MrAI 13:e77c7ae3a285 648 sd_getdefaultfee();
MrAI 13:e77c7ae3a285 649 wait(2);
MrAI 13:e77c7ae3a285 650 cout<<"*************************GET SERVER INFO******************"<<endl;
MrAI 13:e77c7ae3a285 651 sd_getserverinfo();
MrAI 13:e77c7ae3a285 652 wait(2);
MrAI 13:e77c7ae3a285 653 cout<<"*************************GET SERVER CONNECTED******************"<<endl;
MrAI 13:e77c7ae3a285 654 sd_getserverconnected();
MrAI 13:e77c7ae3a285 655 wait(2);
MrAI 13:e77c7ae3a285 656 cout<<"*************************GET ORDER LIST********************"<<endl;
MrAI 13:e77c7ae3a285 657 sd_queryorderlist();
MrAI 13:e77c7ae3a285 658 wait(2);
MrAI 13:e77c7ae3a285 659 cout<<"*************************POST ORDER INFO********************"<<endl;
MrAI 13:e77c7ae3a285 660 sd_commitorder();
MrAI 13:e77c7ae3a285 661 wait(2);
MrAI 13:e77c7ae3a285 662 cout<<"*************************DELETE ORDER INFO********************"<<endl;
MrAI 13:e77c7ae3a285 663 sd_deleteorder();
MrAI 13:e77c7ae3a285 664 wait(2);
MrAI 13:e77c7ae3a285 665 cout<<"*************************GET ORDER DETAILED*******************"<<endl;
MrAI 13:e77c7ae3a285 666 sd_queryorderdetailed();
MrAI 12:1b24ea479a59 667
MrAI 12:1b24ea479a59 668
webmaster 10:aabd720e632c 669
webmaster 10:aabd720e632c 670 //char isContinue = 'y';
webmaster 10:aabd720e632c 671 // do
webmaster 10:aabd720e632c 672 //{
MrAI 13:e77c7ae3a285 673 //tring type = "spend_account";
webmaster 10:aabd720e632c 674 //string type = "issue";
webmaster 10:aabd720e632c 675 //test_transaction(type);
MrAI 13:e77c7ae3a285 676 //est_transaction();
MrAI 13:e77c7ae3a285 677 //rintf("=============5========\n");
webmaster 10:aabd720e632c 678 // }while(1);
webmaster 10:aabd720e632c 679 //}while (isContinue = getch() != 'q');
webmaster 8:f2a567ee3a46 680
webmaster 10:aabd720e632c 681
webmaster 10:aabd720e632c 682 //test_socket_client();
webmaster 8:f2a567ee3a46 683
webmaster 8:f2a567ee3a46 684 socket_fini();
webmaster 8:f2a567ee3a46 685
webmaster 8:f2a567ee3a46 686 printf("main end\n");
webmaster 8:f2a567ee3a46 687 return 0;
webmaster 8:f2a567ee3a46 688 }
webmaster 8:f2a567ee3a46 689
webmaster 8:f2a567ee3a46 690 int socket_init()
webmaster 8:f2a567ee3a46 691 {
webmaster 8:f2a567ee3a46 692 int ret = 0;
webmaster 8:f2a567ee3a46 693 // EthernetInterface eth;
webmaster 8:f2a567ee3a46 694 printf("Initializing Ethernet\n");
webmaster 8:f2a567ee3a46 695 ret = eth.init(); //Use DHCP
webmaster 8:f2a567ee3a46 696 //eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use static ip
webmaster 8:f2a567ee3a46 697 printf("Connecting\n");
webmaster 8:f2a567ee3a46 698 ret = eth.connect();
webmaster 8:f2a567ee3a46 699 printf("IP Address is %s\n", eth.getIPAddress());
webmaster 8:f2a567ee3a46 700
webmaster 8:f2a567ee3a46 701 return ret;
webmaster 8:f2a567ee3a46 702 }
webmaster 8:f2a567ee3a46 703
webmaster 8:f2a567ee3a46 704 int socket_fini()
webmaster 8:f2a567ee3a46 705 {
webmaster 8:f2a567ee3a46 706 return eth.disconnect();
webmaster 8:f2a567ee3a46 707 }
webmaster 8:f2a567ee3a46 708
webmaster 8:f2a567ee3a46 709 int test_socket_client(void)
webmaster 8:f2a567ee3a46 710 {
webmaster 8:f2a567ee3a46 711 TCPSocketConnection socket;
webmaster 8:f2a567ee3a46 712 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
webmaster 8:f2a567ee3a46 713 printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
webmaster 8:f2a567ee3a46 714 wait(1);
webmaster 8:f2a567ee3a46 715 }
webmaster 8:f2a567ee3a46 716 printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS);
webmaster 8:f2a567ee3a46 717
webmaster 8:f2a567ee3a46 718 // Send message to server
webmaster 8:f2a567ee3a46 719 char hello[] = "Hello World";
webmaster 8:f2a567ee3a46 720 printf("Sending message to Server : '%s' \n",hello);
webmaster 8:f2a567ee3a46 721 socket.send_all(hello, sizeof(hello) - 1);
webmaster 8:f2a567ee3a46 722
webmaster 8:f2a567ee3a46 723 // Receive message from server
webmaster 8:f2a567ee3a46 724 char buf[256];
webmaster 8:f2a567ee3a46 725 int n = socket.receive(buf, 256);
webmaster 8:f2a567ee3a46 726 buf[n] = '\0';
webmaster 8:f2a567ee3a46 727 printf("Received message from server: '%s'\n", buf);
webmaster 8:f2a567ee3a46 728
webmaster 8:f2a567ee3a46 729 // Clean up
webmaster 8:f2a567ee3a46 730 socket.close();
webmaster 8:f2a567ee3a46 731
webmaster 8:f2a567ee3a46 732 return 0;
webmaster 8:f2a567ee3a46 733 }
webmaster 8:f2a567ee3a46 734
MrAI 11:6d9cefb14158 735 /*
gsteiert 0:28bc7ce77e20 736 void get_file(char* uri)
gsteiert 0:28bc7ce77e20 737 {
gsteiert 3:4f71a37a1ed2 738 uart.printf("get_file %s\n", uri);
gsteiert 0:28bc7ce77e20 739 char *lstchr = strrchr(uri, NULL) -1;
gsteiert 0:28bc7ce77e20 740 if ('/' == *lstchr) {
gsteiert 3:4f71a37a1ed2 741 uart.printf("Open directory /sd%s\n", uri);
gsteiert 0:28bc7ce77e20 742 *lstchr = 0;
gsteiert 3:4f71a37a1ed2 743 sprintf(fileName, "/sd%s", uri);
gsteiert 3:4f71a37a1ed2 744 DIR *d = opendir(fileName);
gsteiert 0:28bc7ce77e20 745 if (d != NULL) {
gsteiert 0:28bc7ce77e20 746 sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n");
gsteiert 0:28bc7ce77e20 747 client.send(httpHeader,strlen(httpHeader));
gsteiert 3:4f71a37a1ed2 748 sprintf(httpHeader,"<html><head><title>Directory Listing</title></head><body><h1>%s Directory Listing</h1><ul>", uri);
gsteiert 0:28bc7ce77e20 749 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 750 struct dirent *p;
gsteiert 0:28bc7ce77e20 751 while((p = readdir(d)) != NULL) {
gsteiert 3:4f71a37a1ed2 752 sprintf(dirName, "%s/%s", fileName, p->d_name);
gsteiert 3:4f71a37a1ed2 753 uart.printf("%s\n", dirName);
gsteiert 3:4f71a37a1ed2 754 DIR *subDir = opendir(dirName);
gsteiert 3:4f71a37a1ed2 755 if (subDir != NULL) {
gsteiert 3:4f71a37a1ed2 756 sprintf(httpHeader,"<li><a href=\"./%s/\">%s/</a></li>", p->d_name, p->d_name);
gsteiert 3:4f71a37a1ed2 757 } else {
gsteiert 3:4f71a37a1ed2 758 sprintf(httpHeader,"<li><a href=\"./%s\">%s</a></li>", p->d_name, p->d_name);
gsteiert 3:4f71a37a1ed2 759 }
gsteiert 0:28bc7ce77e20 760 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 761 }
gsteiert 0:28bc7ce77e20 762 }
gsteiert 0:28bc7ce77e20 763 closedir(d);
gsteiert 3:4f71a37a1ed2 764 uart.printf("Directory closed\n");
gsteiert 0:28bc7ce77e20 765 sprintf(httpHeader,"</ul></body></html>");
gsteiert 0:28bc7ce77e20 766 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 767 } else {
gsteiert 3:4f71a37a1ed2 768 sprintf(fileName, "/sd%s", uri);
gsteiert 3:4f71a37a1ed2 769 fp = fopen(fileName, "r");
gsteiert 0:28bc7ce77e20 770 if (fp == NULL) {
gsteiert 7:04744a9ce2b9 771 uart.printf("File not found\n");
gsteiert 0:28bc7ce77e20 772 sprintf(httpHeader,"HTTP/1.1 404 Not Found \r\nContent-Type: text\r\nConnection: Close\r\n\r\n");
gsteiert 0:28bc7ce77e20 773 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 774 client.send(uri,strlen(uri));
gsteiert 0:28bc7ce77e20 775 } else {
gsteiert 7:04744a9ce2b9 776 uart.printf("Sending: header");
gsteiert 0:28bc7ce77e20 777 sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n");
gsteiert 0:28bc7ce77e20 778 client.send(httpHeader,strlen(httpHeader));
gsteiert 7:04744a9ce2b9 779 uart.printf(" file");
gsteiert 0:28bc7ce77e20 780 while ((rdCnt = fread(buffer, sizeof( char ), 1024, fp)) == 1024) {
gsteiert 0:28bc7ce77e20 781 client.send(buffer, rdCnt);
gsteiert 7:04744a9ce2b9 782 uart.printf(".");
gsteiert 0:28bc7ce77e20 783 }
gsteiert 0:28bc7ce77e20 784 client.send(buffer, rdCnt);
gsteiert 0:28bc7ce77e20 785 fclose(fp);
gsteiert 7:04744a9ce2b9 786 uart.printf("done\n");
gsteiert 0:28bc7ce77e20 787 }
gsteiert 0:28bc7ce77e20 788 }
gsteiert 0:28bc7ce77e20 789 }
gsteiert 0:28bc7ce77e20 790
webmaster 8:f2a567ee3a46 791 int main_1 (void)
gsteiert 0:28bc7ce77e20 792 {
gsteiert 3:4f71a37a1ed2 793 // Serial Interface eth;
gsteiert 3:4f71a37a1ed2 794 uart.baud(115200);
gsteiert 5:27b09a0f3fb6 795 uart.printf("Initializing\n");
gsteiert 3:4f71a37a1ed2 796
gsteiert 3:4f71a37a1ed2 797 // Check File System
gsteiert 5:27b09a0f3fb6 798 uart.printf("Checking File System\n");
gsteiert 3:4f71a37a1ed2 799 DIR *d = opendir("/sd/");
gsteiert 3:4f71a37a1ed2 800 if (d != NULL) {
gsteiert 3:4f71a37a1ed2 801 uart.printf("SD Card Present\n");
gsteiert 3:4f71a37a1ed2 802 } else {
gsteiert 3:4f71a37a1ed2 803 uart.printf("SD Card Root Directory Not Found\n");
gsteiert 3:4f71a37a1ed2 804 }
gsteiert 3:4f71a37a1ed2 805
gsteiert 0:28bc7ce77e20 806 // EthernetInterface eth;
gsteiert 5:27b09a0f3fb6 807 uart.printf("Initializing Ethernet\n");
webmaster 8:f2a567ee3a46 808 //eth.init(); //Use DHCP
webmaster 8:f2a567ee3a46 809 eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use
gsteiert 5:27b09a0f3fb6 810 uart.printf("Connecting\n");
gsteiert 0:28bc7ce77e20 811 eth.connect();
gsteiert 3:4f71a37a1ed2 812 uart.printf("IP Address is %s\n", eth.getIPAddress());
webmaster 8:f2a567ee3a46 813
webmaster 8:f2a567ee3a46 814 //test socket client
webmaster 8:f2a567ee3a46 815 //my_client.connect("192.168.31.185",10003);
webmaster 8:f2a567ee3a46 816 //my_client.send_all("hello world",11);
webmaster 8:f2a567ee3a46 817
webmaster 8:f2a567ee3a46 818 TCPSocketConnection socket;
webmaster 8:f2a567ee3a46 819 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
webmaster 8:f2a567ee3a46 820 uart.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
webmaster 8:f2a567ee3a46 821 wait(1);
webmaster 8:f2a567ee3a46 822 }
webmaster 8:f2a567ee3a46 823 uart.printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS);
webmaster 8:f2a567ee3a46 824
webmaster 8:f2a567ee3a46 825 // Send message to server
webmaster 8:f2a567ee3a46 826 char hello[] = "Hello World";
webmaster 8:f2a567ee3a46 827 uart.printf("Sending message to Server : '%s' \n",hello);
webmaster 8:f2a567ee3a46 828 socket.send_all(hello, sizeof(hello) - 1);
webmaster 8:f2a567ee3a46 829
webmaster 8:f2a567ee3a46 830 // Receive message from server
webmaster 8:f2a567ee3a46 831 char buf[256];
webmaster 8:f2a567ee3a46 832 int n = socket.receive(buf, 256);
webmaster 8:f2a567ee3a46 833 buf[n] = '\0';
webmaster 8:f2a567ee3a46 834 uart.printf("Received message from server: '%s'\n", buf);
webmaster 8:f2a567ee3a46 835
webmaster 8:f2a567ee3a46 836 // Clean up
webmaster 8:f2a567ee3a46 837 socket.close();
webmaster 8:f2a567ee3a46 838 ////////////////////////////////////////////////////////////////////////////
gsteiert 0:28bc7ce77e20 839
gsteiert 0:28bc7ce77e20 840 // TCPSocketServer server;
gsteiert 0:28bc7ce77e20 841 server.bind(HTTPD_SERVER_PORT);
gsteiert 0:28bc7ce77e20 842 server.listen();
gsteiert 5:27b09a0f3fb6 843 uart.printf("Server Listening\n");
gsteiert 0:28bc7ce77e20 844
gsteiert 0:28bc7ce77e20 845 while (true) {
gsteiert 3:4f71a37a1ed2 846 uart.printf("\nWait for new connection...\r\n");
gsteiert 0:28bc7ce77e20 847 server.accept(client);
gsteiert 0:28bc7ce77e20 848 client.set_blocking(false, 1500); // Timeout after (1.5)s
webmaster 8:f2a567ee3a46 849
webmaster 8:f2a567ee3a46 850 my_client.send_all("hello world",11);
gsteiert 0:28bc7ce77e20 851
gsteiert 3:4f71a37a1ed2 852 uart.printf("Connection from: %s\r\n", client.get_address());
gsteiert 0:28bc7ce77e20 853 while (true) {
gsteiert 0:28bc7ce77e20 854 int n = client.receive(buffer, sizeof(buffer));
gsteiert 0:28bc7ce77e20 855 if (n <= 0) break;
gsteiert 3:4f71a37a1ed2 856 uart.printf("Recieved Data: %d\r\n\r\n%.*s\r\n",n,n,buffer);
gsteiert 0:28bc7ce77e20 857 if (n >= 1024) {
gsteiert 0:28bc7ce77e20 858 sprintf(httpHeader,"HTTP/1.1 413 Request Entity Too Large \r\nContent-Type: text\r\nConnection: Close\r\n\r\n");
gsteiert 0:28bc7ce77e20 859 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 860 client.send(buffer,n);
gsteiert 0:28bc7ce77e20 861 break;
gsteiert 0:28bc7ce77e20 862 } else {
gsteiert 0:28bc7ce77e20 863 buffer[n]=0;
gsteiert 0:28bc7ce77e20 864 }
gsteiert 0:28bc7ce77e20 865 if (!strncmp(buffer, "GET ", 4)) {
gsteiert 0:28bc7ce77e20 866 uristr = buffer + 4;
gsteiert 0:28bc7ce77e20 867 eou = strstr(uristr, " ");
gsteiert 0:28bc7ce77e20 868 if (eou == NULL) {
gsteiert 0:28bc7ce77e20 869 sprintf(httpHeader,"HTTP/1.1 400 Bad Request \r\nContent-Type: text\r\nConnection: Close\r\n\r\n");
gsteiert 0:28bc7ce77e20 870 client.send(httpHeader,strlen(httpHeader));
gsteiert 0:28bc7ce77e20 871 client.send(buffer,n);
gsteiert 0:28bc7ce77e20 872 } else {
gsteiert 0:28bc7ce77e20 873 *eou = 0;
gsteiert 3:4f71a37a1ed2 874 get_file(uristr);
gsteiert 0:28bc7ce77e20 875 }
gsteiert 0:28bc7ce77e20 876 }
gsteiert 0:28bc7ce77e20 877 }
gsteiert 0:28bc7ce77e20 878
gsteiert 0:28bc7ce77e20 879 client.close();
gsteiert 0:28bc7ce77e20 880 }
gsteiert 0:28bc7ce77e20 881 }
MrAI 11:6d9cefb14158 882 */
webmaster 8:f2a567ee3a46 883
webmaster 8:f2a567ee3a46 884 int main_2() {
webmaster 8:f2a567ee3a46 885 // Serial Interface eth;
webmaster 8:f2a567ee3a46 886 uart.baud(115200);
webmaster 8:f2a567ee3a46 887 uart.printf("Initializing\n");
webmaster 8:f2a567ee3a46 888
webmaster 8:f2a567ee3a46 889 EthernetInterface eth;
webmaster 8:f2a567ee3a46 890 eth.init(); //Use DHCP
webmaster 8:f2a567ee3a46 891 eth.connect();
webmaster 8:f2a567ee3a46 892 printf("\nClient IP Address is %s\n", eth.getIPAddress());
webmaster 8:f2a567ee3a46 893
webmaster 8:f2a567ee3a46 894 // Connect to Server
webmaster 8:f2a567ee3a46 895 TCPSocketConnection socket;
webmaster 8:f2a567ee3a46 896 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
webmaster 8:f2a567ee3a46 897 printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
webmaster 8:f2a567ee3a46 898 wait(1);
webmaster 8:f2a567ee3a46 899 }
webmaster 8:f2a567ee3a46 900 printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS);
webmaster 8:f2a567ee3a46 901
webmaster 8:f2a567ee3a46 902 // Send message to server
webmaster 8:f2a567ee3a46 903 char hello[] = "Hello World";
webmaster 8:f2a567ee3a46 904 printf("Sending message to Server : '%s' \n",hello);
webmaster 8:f2a567ee3a46 905 socket.send_all(hello, sizeof(hello) - 1);
webmaster 8:f2a567ee3a46 906
webmaster 8:f2a567ee3a46 907 // Receive message from server
webmaster 8:f2a567ee3a46 908 char buf[256];
webmaster 8:f2a567ee3a46 909 int n = socket.receive(buf, 256);
webmaster 8:f2a567ee3a46 910 buf[n] = '\0';
webmaster 8:f2a567ee3a46 911 printf("Received message from server: '%s'\n", buf);
webmaster 8:f2a567ee3a46 912
webmaster 8:f2a567ee3a46 913 // Clean up
webmaster 8:f2a567ee3a46 914 socket.close();
webmaster 8:f2a567ee3a46 915 eth.disconnect();
webmaster 8:f2a567ee3a46 916
webmaster 8:f2a567ee3a46 917 while(true) {}
webmaster 8:f2a567ee3a46 918 }