Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/cfg/SRecord.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    77#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
    88#
    9 #  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11 #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12 #  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14 #  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15 #      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16 #      スコード中に含まれていること.
    17 #  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18 #      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21 #      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23 #      の無保証規定を掲載すること.
    24 #  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25 #      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27 #      と.
    28 #    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31 #        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32 #    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35 #        報告すること.
    36 #  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37 #      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40 #      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41 #      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43 #      å
    44 è²¬ã™ã‚‹ã“と.
     9#  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10#  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11#  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12#  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13#      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14#      スコード中に含まれていること.
     15#  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16#      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17#      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18#      の無保証規定を掲載すること.
     19#  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20#      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21#      と.
     22#    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23#        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24#    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25#        報告すること.
     26#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27#      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28#      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29#      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30#      免責すること.
    4531#
    46 #  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48 #  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49 #  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50 #  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51 #  の責任を負わない.
     32#  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33#  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34#  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35#  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36#  の責任を負わない.
    5237#
    5338#  $Id$
     
    5540
    5641#
    57 #               Sレコードファイル処理クラス
     42#               Sレコードファイル処理クラス
    5843#
    5944
    6045#
    61 # Sレコードファイルを変数に読み込み,要求された番地のデータを返す.
     46# Sレコードファイルを変数に読み込み,要求された番地のデータを返す.
    6247#
    63 # @sRecDataは,å
    64 ˆé ­ç•ªåœ°ã‚’キーとし,そこからのデータ(ヘキサダンプ形式)
    65 # を値とブロックが格納されたハッシュである.連続するブロックは,1つのブ
    66 # ロックにまとめて格納するものとする(そうしないと,データの取出しやサー
    67 # チが面倒になる).
     48# @sRecDataは,先頭番地をキーとし,そこからのデータ(ヘキサダンプ形式)
     49# を値とブロックが格納されたハッシュである.連続するブロックは,1つのブ
     50# ロックにまとめて格納するものとする(そうしないと,データの取出しやサー
     51# チが面倒になる).
    6852#
    6953class SRecord
     
    7458      prevData = ""
    7559      file.each do |line|
    76         # データレコードにより分岐
     60        # データレコードにより分岐
    7761        case line.slice(0, 2)
    7862        when "S1"
    79           # データ長(アドレス分[2byte]+チェックサム分1byteを減算)
     63          # データ長(アドレス分[2byte]+チェックサム分1byteを減算)
    8064          length = line.slice(2, 2).hex - 2 - 1
    8165
    82           # アドレス(4文字=2byte)
     66          # アドレス(4文字=2byte)
    8367          address = line.slice(4, 4).hex
    8468
    85           # データ(この時点では文字列で取っておく)
     69          # データ(この時点では文字列で取っておく)
    8670          data = line.slice(8, length * 2)
    8771        when "S2"
    88           # データ長(アドレス分[3byte]+チェックサム分1byteを減算)
     72          # データ長(アドレス分[3byte]+チェックサム分1byteを減算)
    8973          length = line.slice(2, 2).hex - 3 - 1
    9074
    91           # アドレス(6文字=3byte)
     75          # アドレス(6文字=3byte)
    9276          address = line.slice(4, 6).hex
    9377
    94           # データ(この時点では文字列で取っておく)
     78          # データ(この時点では文字列で取っておく)
    9579          data = line.slice(10, length * 2)
    9680        when "S3"
    97           # データ長(アドレス分[4byte]+チェックサム分1byteを減算)
     81          # データ長(アドレス分[4byte]+チェックサム分1byteを減算)
    9882          length = line.slice(2, 2).hex - 4 - 1
    9983
    100           # アドレス(8文字=4byte)
     84          # アドレス(8文字=4byte)
    10185          address = line.slice(4, 8).hex
    10286
    103           # データ(この時点では文字列で取っておく)
     87          # データ(この時点では文字列で取っておく)
    10488          data = line.slice(12, length * 2)
    10589        else
     
    10892
    10993        if !address.nil?
    110           # データを格納する
     94          # データを格納する
    11195          if address == prevAddress + prevData.size / 2
    11296            prevData << data
     
    122106  end
    123107
    124   # データ取得
     108  # データ取得
    125109  def get_data(address, size)
    126110    endAddress = address + size
     
    134118  end
    135119
    136   # データ書込み
     120  # データ書込み
    137121  def set_data(address, data)
    138122    endAddress = address + data.size / 2
     
    141125
    142126      if nEndBlock < address || endAddress < block
    143         # 重なりがない
     127        # 重なりがない
    144128      elsif address < block
    145         # 新規データの方がå
    146 ˆé ­ç•ªåœ°ãŒå°ã•ã„
    147         # ここでは endAddress >= block が成立している
     129        # 新規データの方が先頭番地が小さい
     130        # ここでは endAddress >= block が成立している
    148131        offset = (endAddress - block) * 2
    149132        data << blockData[offset..-1]
    150133        @sRecData.delete(block)
    151134      else
    152         # 登録済みデータの方がå
    153 ˆé ­ç•ªåœ°ãŒå°ã•ã„か同じ
     135        # 登録済みデータの方が先頭番地が小さいか同じ
    154136        offset = (address - block) * 2
    155137        address = block
     
    162144  end
    163145
    164   # 値としてのデータ取得
     146  # 値としてのデータ取得
    165147  def get_value(address, size, signed)
    166148    targetData = get_data(address, size)
     
    169151    else
    170152      if $endianLittle
    171         # リトルエンディアンの場合,バイトオーダーを逆にする
     153        # リトルエンディアンの場合,バイトオーダーを逆にする
    172154        reverseData = ""
    173         # 後ろから2文字ずつ抜き出し,並び替える
     155        # 後ろから2文字ずつ抜き出し,並び替える
    174156        while targetData.size > 0
    175157          reverseData << targetData[-2, 2]
     
    181163      end
    182164
    183       # 負の数の処理
     165      # 負の数の処理
    184166      if signed && (returnData & (1 << (size * 8 - 1))) != 0
    185167        returnData -= (1 << (size * 8))
Note: See TracChangeset for help on using the changeset viewer.