コード例 #1
0
    def 讀32位元的資料(self, 表):
        位置名對應表 = {}
        for 名, 位 in 表.items():
            位置名對應表[Symbol(位, current_value=True).offset] = 名

        這段開始 = None
        這段結束 = None
        上尾資料 = {}
        for 位置 in sorted(位置名對應表.keys()):
            這个開始 = 位置
            這个結束 = 位置 + 2
            if 這段開始 is None:
                這段開始 = 這个開始
                這段結束 = 這个結束
            elif 這个結束 - 這段開始 <= self.暫存器一擺數量限制:
                這段結束 = 這个結束
            else:
                self._讀32位元一段資料(位置名對應表, 上尾資料, 這段開始, 這段結束)
                這段開始 = 這个開始
                這段結束 = 這个結束
        if 這段開始 is not None:
            self._讀32位元一段資料(位置名對應表, 上尾資料, 這段開始, 這段結束)
        return 上尾資料
コード例 #2
0
 def test_Y0(self):
     s = Symbol('Y33')
     self.assertEqual(s.offset, 33)
     self.assertTrue(s.is_coil())
コード例 #3
0
 def test_X_not_found(self):
     with self.assertRaises(InvalidTargetError):
         Symbol('X9999')
コード例 #4
0
 def test_C255r(self):
     s = Symbol('C255', current_value=True)
     self.assertEqual(s.offset, 9810)
     self.assertFalse(s.is_coil())
コード例 #5
0
 def test_C255c(self):
     s = Symbol('C255', current_value=False)
     self.assertEqual(s.offset, 9755)
     self.assertTrue(s.is_coil())
コード例 #6
0
 def test_D593(self):
     s = Symbol('D593')
     self.assertEqual(s.offset, 6593)
     self.assertFalse(s.is_coil())
コード例 #7
0
 def test_R5234_is_5000(self):
     s = Symbol('R5234')
     self.assertEqual(s.offset, 5000)
     self.assertFalse(s.is_coil())
コード例 #8
0
 def test_R333(self):
     s = Symbol('R333')
     self.assertEqual(s.offset, 333)
     self.assertFalse(s.is_coil())
コード例 #9
0
 def test_S5(self):
     s = Symbol('S5')
     self.assertEqual(s.offset, 6005)
     self.assertTrue(s.is_coil())
コード例 #10
0
 def test_M0(self):
     s = Symbol('M0')
     self.assertEqual(s.offset, 2000)
     self.assertTrue(s.is_coil())
コード例 #11
0
 def test_X10(self):
     s = Symbol('X10')
     self.assertEqual(s.offset, 1010)
     self.assertTrue(s.is_coil())