2017-01-12 17 views
5

Tôi sử dụng Python và pygame cho một nhiệm vụ điều khiển và tự động hóa. Thông tin từ một cảm biến được hiển thị bằng cách sử dụng pygame sau đó được ghi lại ở nơi khác.
Để giới hạn tốc độ khung hình, tôi đang sử dụng dấu đồng hồ pygame.Đồng hồ Pygame - Bao lâu nó có thể chạy?

Vì đây là một ứng dụng được nhúng nên quy trình có thể chạy trong nhiều tháng tại một thời điểm. Đồng hồ pygame sẽ ngừng hoạt động tức là nếu nó lưu trữ các ms như một số nguyên (số nguyên dài bất kỳ) khi nào nó sẽ hết thời gian và nó có thể đối phó với việc quay trở lại vòng 0 (hoặc tệ hơn trừ đi một cái gì đó)?

Nếu nó chạy hết thời gian hoạt động? Tôi dường như nhớ phiên bản đầu tiên của Win95 bị rơi sau 4 ngày vì lý do này!

Tôi là người dùng Python2.7 trên Raspberry Pi ver 3 nếu điều này có liên quan.

Trả lời

2

Python 2.7.x có hai loại số nguyên: "số nguyên đơn giản" và "số nguyên dài". Trước đây về cơ bản là long int s trong C, ít nhất phải là 32 bit. Sau này là không giới hạn. Kể từ khi tính toán tự động chuyển đổi thành dài nếu cần thiết, bạn nên ổn.

Ví dụ:

Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32 
>>> x=1<<30 
>>> x 
1073741824 
>>> type(x) 
<type 'int'> 
>>> x+=1<<30 
>>> x 
2147483648L 
>>> type(x) 
<type 'long'> 
+0

OK, Vì vậy, miễn là không có gì nội bộ trong thư viện pygame nói rằng bộ đếm thời gian ms là một int nó sẽ làm việc mãi mãi là. Nếu đó là số nguyên 32 bit cố định sẽ cho tôi thời gian chạy 25 hoặc 50 ngày (tùy thuộc vào nếu nó được ký) nếu phương thức clock.tick không xử lý đồng hồ quay lại số không (hoặc -2^31) đúng cách). – user7409496

Các vấn đề liên quan