Rev 1689 | Rev 1989 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1689 | Rev 1766 | ||
|---|---|---|---|
| Line 325... | Line 325... | ||
| 325 | 325 | ||
| 326 | void Protocol::EncodeInt(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
326 | void Protocol::EncodeInt(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
| 327 | { |
327 | { |
| 328 | unsigned long raw_bit_value = 0; |
328 | unsigned long raw_bit_value = 0; |
| 329 | int raw_value = boost::lexical_cast<int>(value); |
329 | int raw_value = boost::lexical_cast<int>(value); |
| - | 330 | //LOG.Info("Float as int: " + raw_value); |
|
| 330 | 331 | ||
| 331 | raw_bit_value = |
332 | raw_bit_value = raw_value; |
| 332 | 333 | ||
| 333 | if (raw_value < 0) |
334 | if (raw_value < 0) |
| 334 | { |
335 | { |
| 335 | long mask = 0; |
336 | long mask = 0; |
| 336 | 337 | ||
| 337 | for (unsigned int n = 0; n < bit_length; n++) |
338 | for (unsigned int n = 0; n < bit_length; n++) |
| 338 | { |
339 | { |
| 339 | mask += (1 << n); |
340 | mask += (1 << n); |
| 340 | } |
341 | } |
| 341 | 342 | ||
| Line 355... | Line 356... | ||
| 355 | } |
356 | } |
| 356 | 357 | ||
| 357 | void Protocol::EncodeUint(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
358 | void Protocol::EncodeUint(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
| 358 | { |
359 | { |
| 359 | unsigned long raw_bit_value = boost::lexical_cast<unsigned int>(value); |
360 | unsigned long raw_bit_value = boost::lexical_cast<unsigned int>(value); |
| 360 | 361 | ||
| 361 | bitset.Write(start_bit, bit_length, raw_bit_value); |
362 | bitset.Write(start_bit, bit_length, raw_bit_value); |
| 362 | } |
363 | } |
| 363 | 364 | ||
| 364 | std::string Protocol::DecodeFloat(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length) |
365 | std::string Protocol::DecodeFloat(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length) |
| 365 | { |
366 | { |
| 366 | float float_value = boost::lexical_cast<float>(this->DecodeInt(bitset, start_bit, bit_length)); |
367 | float float_value = boost::lexical_cast<float>(this->DecodeInt(bitset, start_bit, bit_length)); |
| 367 | LOG. |
368 | //LOG.Debug("DecodeFloat::float_value1=" + boost::lexical_cast<std::string>(float_value)); |
| 368 | 369 | ||
| 369 | 370 | ||
| 370 | float_value = float_value / 64.0f; |
371 | float_value = float_value / 64.0f; |
| 371 | 372 | ||
| 372 | LOG. |
373 | //LOG.Debug("DecodeFloat::float_value2=" + boost::lexical_cast<std::string>(float_value)); |
| 373 | 374 | ||
| 374 | return boost::lexical_cast<std::string>(float_value); |
375 | return boost::lexical_cast<std::string>(float_value); |
| 375 | } |
376 | } |
| 376 | 377 | ||
| 377 | void Protocol::EncodeFloat(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
378 | void Protocol::EncodeFloat(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length, std::string value) |
| 378 | { |
379 | { |
| 379 | int int_value = boost::lexical_cast<float>(value) * 64.0f; |
380 | int int_value = boost::lexical_cast<float>(value) * 64.0f; |
| - | 381 | //LOG.Info("Float: " + int_value); |
|
| 380 | 382 | ||
| 381 | this->EncodeInt(bitset, start_bit, bit_length, boost::lexical_cast<std::string>(int_value)); |
383 | this->EncodeInt(bitset, start_bit, bit_length, boost::lexical_cast<std::string>(int_value)); |
| 382 | } |
384 | } |
| 383 | 385 | ||
| 384 | std::string Protocol::DecodeAscii(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length) |
386 | std::string Protocol::DecodeAscii(common::Bitset& bitset, unsigned int start_bit, unsigned int bit_length) |
| 385 | { |
387 | { |