Information processing apparatus, method, and program

The information processing apparatus addresses the challenge of verifying program defects for theater and attraction systems by comparing program commands with stored execution rules, facilitating efficient defect detection and ensuring program integrity.

JP7685838B2Active Publication Date: 2025-05-30KONICA MINOLTA PLANETARIUM
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021003304
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-01-13
Publication Date
2025-05-30
Estimated Expiration
2041-01-13

AI Technical Summary

Technical Problem

Existing technologies face challenges in verifying whether a program for controlling devices in theaters or attractions contains defects, making it difficult to ensure program integrity and device operation.

Method used

An information processing apparatus is developed, which includes a communication unit to receive programs, a storage unit to store execution rules, a verification unit to compare program commands with rules, and an output unit to display verification results, facilitating the detection of program defects.

Benefits of technology

This solution enables efficient verification of program defects without actual device operation, significantly reducing the time required for defect detection and correction, and ensuring program integrity for theater and attraction systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007685838000001
    Figure 0007685838000001
  • Figure 0007685838000002
    Figure 0007685838000002
  • Figure 0007685838000003
    Figure 0007685838000003
Patent Text Reader

Abstract

To facilitate verification on whether a program for controlling devices contains a bug.SOLUTION: An information processing device 100 comprises a communication unit 401 which receives a program containing one or more commands for controlling one or more devices, a storage unit 404 which stores rules for a command execution procedure, a verification unit 403 which verifies the program, and an output unit 405 which outputs verification results of the program. The verification unit 403 acquires the program via the communication unit 401, reads the rules from the storage unit 404, and detects a bug in the program by comparing the command execution procedure included in the program with the rules. The output unit 405 outputs execution results of a program bug detection processing.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the control of devices used in theaters or attractions, and more particularly, to the verification process of a program for controlling devices.

Background Art

[0002] Theaters and attractions, etc., provide services to visitors by interlocking various devices. For example, in a planetarium, a projector projects constellations and the movement of stars onto a dome-shaped curved screen. Also, a motion-sensing theater system introduced in a movie theater, etc., produces a sense of presence by interlocking effects such as seat motion, water spray, wind, scent, and flash with the scenes of a movie. For the control of each device used in these theaters and attractions, etc., a program including commands for the device may be used.

[0003] Regarding a program for controlling a device, for example, Japanese Unexamined Patent Application Publication No. 2008-96525 (Patent Document 1) discloses a digital planetarium projection device having "an operation unit that receives an operation by an operator regarding projection, an operation display panel that displays information regarding projection to the operator, a manual process recording unit that records the operation procedure made at the operation unit, a control unit that executes projection according to the operation procedure recorded in the manual process recording unit or executes projection according to a program code in which the operation procedure is recorded in a predetermined programming language, and a program recording unit that records the operation procedure in a program code in a programming language based on the operation procedure made at the operation unit, and the program recording unit records, in the program code, a comment indicating the display content of the operation display panel together with the operation procedure" (see [Summary]).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] According to the technology disclosed in Patent Document 1, it is difficult to verify whether a program for controlling a device contains defects. Therefore, a technology for facilitating the verification of whether a program for controlling a device contains defects is required.

[0006] The present disclosure has been made in view of the above background, and an object in one aspect is to provide a technology for facilitating the verification of whether a program for controlling a device contains defects.

Means for Solving the Problems

[0007] According to an embodiment, an information processing apparatus is provided. The information processing apparatus includes a communication unit that receives a program including one or more commands for controlling one or more devices, a storage unit that stores rules for the execution procedures of the commands, a verification unit that verifies the program, and an output unit that outputs the verification result of the program. The verification unit obtains the program via the communication unit, reads the rules from the storage unit, and compares the execution procedures of the commands included in the program with the rules to detect defects in the program. The output unit outputs the execution result of the defect detection process of the program.

[0008] In one aspect, the device includes a projector. The program includes a command for projecting a constellation. Detecting a defect in the program includes determining whether the constellation can be displayed based on the fact that the program includes a command for causing the projector to display the constellation.

[0009] In one aspect, determining whether the constellation can be displayed includes determining whether the constellation can be displayed based on information on the latitude, longitude, or time of the constellation displayed by the projector.

[0010] In a certain situation, determining whether a constellation can be displayed includes determining whether a constellation can be displayed based on the display mode of the projector.

[0011] In a certain situation, detecting a program defect includes determining whether the execution procedure of the commands included in the program is a non-recommended procedure.

[0012] In a certain situation, determining whether the execution procedure of the commands included in the program is a non-recommended procedure includes determining whether a file reading process has been executed before a file playback process.

[0013] In a certain situation, determining whether the execution procedure of the commands included in the program is a non-recommended procedure includes determining whether a file playback process has been executed after a file reading process.

[0014] In a certain situation, determining whether the execution procedure of the commands included in the program is a non-recommended procedure includes determining whether the program includes a procedure for simultaneously executing a first command and a second command that do not allow concurrent execution.

[0015] In a certain situation, determining whether the execution procedure of the commands included in the program is a non-recommended procedure includes determining whether the shutter of the device for playing the file is open during the execution of the file playback process.

[0016] In a certain situation, detecting a program defect by comparing the execution procedure of the commands included in the program with a rule includes determining whether the execution procedure of the commands included in the program includes a process that the device cannot execute.

[0017] In a certain situation, determining whether the execution procedure of a command included in a program contains a process that the device cannot execute includes determining whether the program contains an operation that exceeds the performance of the device.

[0018] In a certain situation, determining whether the execution procedure of a command included in a program contains a process that the device cannot execute includes determining whether the device is repeatedly used within a predetermined interval.

[0019] In a certain situation, determining whether the execution procedure of a command included in a program contains a process that the device cannot execute includes determining whether the execution interval of a plurality of commands is equal to or greater than the time interval that the device can process.

[0020] In a certain situation, determining whether the execution procedure of a command included in a program contains a process that the device cannot execute includes determining whether communication processing exceeding the communication performance of the device is executed.

[0021] According to another embodiment, a method for controlling a device is provided. The method includes obtaining a program including commands for controlling one or more devices, obtaining rules for the execution procedure of the commands, comparing the execution procedure of the commands included in the program with the rules to detect defects in the program, and outputting the execution result of the defect detection process of the program.

[0022] In a certain situation, the device includes a projector. The program includes commands for projecting constellations. The step of detecting a defect in the program includes determining whether the constellations can be displayed based on the fact that the program includes commands for causing the projector to display constellations.

[0023] In a certain situation, the step of determining whether the constellations can be displayed includes determining whether the constellations can be displayed based on the latitude, longitude, or time information of the constellations displayed by the projector.

[0024] In a certain situation, the step of determining whether a constellation can be displayed includes the step of determining whether a constellation can be displayed based on the display mode of the projector.

[0025] In a certain situation, the step of detecting a program defect includes the step of determining whether the execution procedure of a command included in the program is a non-recommended procedure.

[0026] According to still other embodiments, a program for causing one or more processors to execute the above method is provided.

Advantages of the Invention

[0027] According to an embodiment, it is possible to facilitate verification of whether a program for controlling a device contains a defect.

[0028] The above and other objects, features, aspects and advantages of the present disclosure will become apparent from the following detailed description of the present disclosure understood in connection with the accompanying drawings.

Brief Description of the Drawings

[0029]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Embodiments for Carrying Out the Invention

[0030] Hereinafter, embodiments of the technical idea according to the present disclosure will be described with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

[0031] FIG. 1 is a diagram showing an example of the configuration of a theater system 10 according to the present embodiment. Hereinafter, taking a planetarium as an example, a verification procedure for a program that controls devices according to the present embodiment will be described. However, the application target of the verification procedure for the program that controls devices according to the present embodiment is not limited to a planetarium. In a certain aspect, the verification procedure for a program that controls devices according to the present embodiment is also applicable to a program that controls devices used in immersive theaters such as movie theaters and musicals, or a program that controls devices used in attractions. The "program" here does not refer to a program installed in an individual device, but indicates the control procedure of the entire system. The control procedure of the entire system includes one or more commands transmitted from the control device of the system to each device. In other words, the program according to the present embodiment can also be said to be a script, scenario, or script of the content provided to the audience by interlocking the devices included in a certain system.

[0032] The theater system 10 includes a control device 100, a terminal 101, an optical planetarium device 110, a digital planetarium device 120, and an external device 130. The optical planetarium device 110 includes an optical planetarium projector 114, a control PC (Personal Computer) 112 for the optical planetarium projector 114, and a console 113. In some aspects, some or all of the optical planetarium projector 114, the control PC 112, and the console 113 may be integrated or may be individual devices. The digital planetarium device 120 includes a digital planetarium projector 124 and a control PC 122 for the digital planetarium projector 124. The operation screen 123 may be displayed on the display of the control PC 122. In some aspects, the digital planetarium projector 124 and the control PC 122 may be integrated or may be individual devices. The optical planetarium projector 114 and the digital planetarium projector 124 may be collectively referred to as "projectors". Note that the theater system 10 may selectively include the optical planetarium device 110 and the digital planetarium device 120, or may include both.

[0033] The terminal 101 acquires the voice information of the narrator via a microphone and an amplifier (not shown). Further, the terminal 101 performs conversion of the acquired voice information into text and search for commands, and transmits the commands to the control device 100. The commands here are commands for the projector. The control device 100 can cause the projector to execute operations associated with the commands. Alternatively, the terminal 101 may receive an input operation of the narrator and transmit a command along a predetermined program to the control device 100. In some aspects, the terminal 101 may be a tablet, a smartphone, a laptop computer, a desktop computer, or any other device.

[0034] The control device 100 causes each device (the projector and the external device 130) or its control PC to execute an operation associated with a command by transmitting the command acquired from the terminal 101 to each device. The control device 100 can communicate with a plurality of terminals 101 and cause each device to execute the commands obtained from each terminal 101. Further, the control device 100 can receive a program including a plurality of commands from the terminal 101 or another device and control each device according to the program. In one aspect, the control device 100 may be a laptop computer, a desktop computer, or any other device.

[0035] The control PC 112 controls the optical planetarium projector 114. The control PC 112 receives a command for the optical planetarium projector 114 from the control device 100. Then, the control PC 112 transmits a control signal to the optical planetarium projector 114 to cause the optical planetarium projector 114 to execute an operation associated with the command.

[0036] In addition, the control PC 112 receives operation inputs from the console 113 in addition to the control device 100. Then, the control PC 112 transmits a control signal to the optical planetarium projector 114 to cause the optical planetarium projector 114 to execute an operation based on the operation input from the console 113.

[0037] In one aspect, the control device 100 may have the functions of the control PC 112. In another aspect, the optical planetarium projector 114 may have the functions of the control PC 112. The optical planetarium projector 114 includes a number of motors and LEDs (Light Emitting Diodes). The optical planetarium projector 114 displays constellations and the like on a dome-shaped curved screen by lighting the LEDs. In one aspect, the optical planetarium projector 114 may use any light source such as a light source using a filament instead of the LEDs.

[0038] The control PC 122 controls the digital planetarium projector 124. The control PC 122 receives commands for the digital planetarium projector 124 from the control device 100. Then, the control PC 122 transmits a control signal to the digital planetarium projector 124 to cause the digital planetarium projector 124 to execute an operation associated with the command.

[0039] In addition, the control PC 122 receives operation inputs from the operation screen 123 in addition to the control device 100. Then, the control PC 122 transmits a control signal to the digital planetarium projector 124 to cause the digital planetarium projector 124 to execute an operation based on the operation input from the operation screen 123.

[0040] In a certain aspect, the control device 100 may include the functions of the control PC 122. In another aspect, the digital planetarium projector 124 may include the functions of the control PC 122. The digital planetarium projector 124 uses a projector instead of an LED to display constellations and the like on a dome-shaped curved screen.

[0041] The external device 130 is connected to and used by any one of the control device 100, the control PC 112, or the control PC 122. In a certain aspect, the external device 130 may be an audio system, a lighting system, an auxiliary projector, a planetarium clock, a lifter, a guiding light, an aroma generator, or an audio player, etc. The auxiliary projector can be used, for example, to announce prohibited items (such as eating, drinking, or talking during projection) inside the dome.

[0042] FIG. 2 is a diagram showing an example of the hardware configuration of each projector. With reference to FIG. 2, the hardware configuration of the projector according to the present embodiment will be described. The optical planetarium device 110 includes a device control unit 207, a motor control unit 208, a motor 209, an LED control unit 210, and an LED 211. In some aspects, all of these components may be implemented as an integrated device or as individual devices. For example, when each component is implemented as an individual device, the device control unit 207 corresponds to the control PC 112, and the motor control unit 208, the motor 309, the LED control unit 210, and the LED 211 correspond to the optical planetarium projector 114.

[0043] The optical planetarium device 110 projects stars, planets, moons, constellation pictures, etc. onto a dome-shaped curved screen using LEDs. The device control unit 207 controls various devices such as the external device 130 connected to the optical planetarium projector 114. Also, the device control unit 207 controls the motor control unit 208 and the LED control unit 210 provided in the optical planetarium projector 114. The device control unit 207 receives a command from the control device 100 and, based on the command, causes the various devices, the motor control unit 208, and the LED control unit 210 connected to the optical planetarium projector 114 to execute the operation associated with the command. The motor control unit 208 drives the motor 209 for operating the optical planetarium projector 114. The LED control unit 210 turns on the LED 211 for projecting the video.

[0044] The digital planetarium device 120 includes a control PC 122 and a digital planetarium projector 124. The control PC 122 includes a digital control unit 214. The digital planetarium projector 124 includes a projection control unit 216 and a projection unit 217.

[0045] Unlike the optical planetarium projector 114, the digital planetarium projector 124 uses a projector instead of LEDs and lenses. The digital control unit 214 transmits a control signal to the digital planetarium projector 124 based on the command received from the control device 100 to operate the digital planetarium projector 124. The projection control unit 216 controls the projection unit 217 based on the control signal. The projection unit 217 projects stars, planets, the moon, constellation pictures, etc. onto the screen.

[0046] FIG. 3 is a diagram showing an example of the program 300 according to the present embodiment. The program 300 shown in FIG. 3 includes one or more commands for causing each device to perform operations such as opening and closing the shutter of the projector and playing a movie (including display and movement of celestial bodies). The control device 100 sequentially transmits each command included in the program 300 to the control PC 112 and the control PC 122 to control each device. When the external device 130 is connected to the control device 100, the control device 100 can transmit a command or a control signal associated with the command to each external device 130 to cause each external device 130 to perform the operation associated with the command.

[0047] Such a program can be used not only when actually controlling the devices of the theater or attraction, but also to check whether the devices of the theater or attraction operate without problems during a prior preparation period (sometimes called a loading period).

[0048] However, when the control device 100 actually controls each device based on the program, it takes an enormous amount of time to verify defects and correct the program. Therefore, it is desirable to verify program defects without the control device 100 actually controlling each device. Thus, the control device 100 according to the present embodiment has a function of verifying program defects by simulation without actually controlling each device. The function will be described in detail below.

[0049] FIG. 4 is a diagram showing an example of the functional blocks of the control device 100. In a certain aspect, each configuration shown in FIG. 4 can be executed by the software that the hardware shown in FIG. 5 realizes each function. Further, each configuration shown in FIG. 4 is a configuration related to the verification process of the program, and the control device 100 may further include configurations other than those shown in FIG. 4. The control device 100 includes a program acquisition unit 401, a program storage unit 402, a simulation execution unit 403, a rule storage unit 404, and a simulation result display unit 405.

[0050] The program acquisition unit 401 acquires a program including one or more commands from the terminal 101 or another device, and stores the program in the program storage unit 402. In a certain aspect, the program acquisition unit 401 may output a simulation execution request to the simulation execution unit 403 based on acquiring a new program.

[0051] The simulation execution unit 403 acquires the program to be simulated from the program acquisition unit 401. Further, the simulation execution unit 403 acquires the rules defined in the program from the rule storage unit 404. The rules include, for example, rules regarding the execution order of commands, combinations of prohibited commands, descriptions that should not exist in the program, or descriptions that are not recommended. The simulation execution unit 403 simulates the program based on the rules to verify whether the program operates normally. The simulation execution unit 403 outputs the execution result of the simulation to the simulation result display unit 405.

[0052] The simulation result display unit 405 displays the execution result of the simulation. In a certain aspect, the simulation result display unit 405 may display the execution result of the simulation on a display connected to the control device 100. In another aspect, the simulation result display unit 405 may transmit the execution result of the simulation to another device. The execution result of the simulation may include information on defective parts of the program and warning information.

[0053] FIG. 5 is a diagram showing an example of the hardware configuration of a device 500 that can be used as the terminal 101 and the control device 100. In a certain aspect, the device 500 may be a PC, a smartphone, a tablet, or any other arbitrary information processing device. For example, the control device 100 may be realized by a device 500 that is a PC, and the terminal 101 may be realized by a device 500 that is a tablet.

[0054] The device 500 includes a CPU (Central Processing Unit) 501, a primary storage device 502, a secondary storage device 503, an external device interface 504, an input interface 505, an output interface 506, and a communication interface 507.

[0055] The CPU 501 processes programs and data stored in the primary storage device 502. The primary storage device 502 stores programs to be executed by the CPU 501 and data to be referenced. In a certain aspect, a DRAM (Dynamic Random Access Memory) may be used as the primary storage device 502.

[0056] The secondary storage device 503 stores programs, data, etc. for a long period of time. Generally, since the secondary storage device 503 is slower than the primary storage device 502, the data directly used by the CPU 501 is arranged in the primary storage device 502, and the other data is arranged in the secondary storage device 503. In some cases, a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive) may be used as the secondary storage device 503.

[0057] The external device interface 504 is used when connecting an auxiliary device to the control device 100, etc. Generally, a USB (Universal Serial Bus) interface is often used as the external device interface 504.

[0058] The input interface 505 is used to connect a keyboard, a mouse, etc. A USB interface may also be used as the input interface 505. In some cases, the input interface 505 may be connected to a touch panel 508, a microphone 509, a keyboard 510, a mouse 511, or any other arbitrary input device.

[0059] The output interface 506 is used to connect an output device such as a display. In some cases, HDMI (registered trademark) (High-Definition Multimedia Interface) or DVI (Digital Visual Interface) may be used as the output interface 506. In some cases, the output interface 506 may be connected to a speaker 512, a display 513, or any other arbitrary output device.

[0060] The communication interface 507 is used to communicate with an external communication device. In some cases, a LAN (Local Area Network) port, a Wi-Fi (registered trademark) (Wireless Fidelity) transceiver device, etc. may be used as the output interface 506.

[0061] Next, with reference to FIGS. 6 to 9, the procedure of the defect detection process of the program in the control device 100 will be described. In a certain aspect, the CPU 501 may read a program for performing the processes of FIGS. 6 to 9 from the secondary storage device 503 into the primary storage device 502 and execute the program. In another aspect, part or all of the process may also be realized as a combination of circuit elements configured to execute the process.

[0062] FIG. 6 is a diagram showing an example of the procedure of the defect detection process of the program in the control device 100. The CPU 501 may repeatedly execute the process shown in FIG. 6 for each command included in the program. In the processes shown in FIGS. 6 to 9, the CPU 501 does not need to actually operate the devices provided in the theater system 10, and can simulate the execution of the program to detect defects in the program. In a certain aspect, the CPU 501 may have a mode of actually operating the devices to detect defects. In another aspect, when performing each determination process in the processes shown in FIGS. 6 to 9, the CPU 501 can appropriately read and use necessary information from the rule storage unit 404.

[0063] In step S610, the CPU 501 detects whether the program includes a processing procedure that cannot be executed. Details of step S610 will be described with reference to FIGS. 7 and 8. As the process of step S610, the CPU 501 sequentially executes the process shown in FIG. 7 and the process shown in FIG. 8.

[0064] In step S620, the CPU 501 detects whether the program includes a processing procedure that is not recommended. Details of step S620 will be described with reference to FIGS. 9 to 11. As the process of step S620, the CPU 501 sequentially executes the process shown in FIG. 9, the process shown in FIG. 10, and the process shown in FIG. 11.

[0065] In step S630, the CPU 501 detects whether the program contains a processing procedure that exceeds the performance limit of the device. For the details of step S630, refer to FIGS. 12 to 14 for explanation. As the processing of step S630, the CPU 501 sequentially executes the processing shown in FIG. 12, the processing shown in FIG. 13, and the processing shown in FIG. 14.

[0066] In step S640, the CPU 501 outputs the execution result of the simulation. The execution result may include the defect information and warning information detected in steps S610 to S630. If there is no defect in the program, the execution result may include information indicating that the program is normal or information indicating that there is no defect.

[0067] FIG. 7 is a diagram showing an example of a first procedure for detecting whether a program contains an impossible-to-execute processing procedure. In step S710, the CPU 501 determines whether the picture, line, and name of the constellation are displayed. More specifically, the CPU 501 determines whether a command for displaying the picture, line, and name of the constellation on the projector is included in the program.

[0068] If the CPU 501 determines that the picture, line, and name of the constellation are displayed (YES in step S710), the control proceeds to step S720. Otherwise (NO in step S710), the CPU 501 ends the processing.

[0069] In step S720, the CPU 501 determines whether the displayed constellation is observable. More specifically, the CPU 501 can determine whether the displayed constellation is observable based on the information such as the empty latitude, longitude, or date (season) information currently displayed on the screen. For example, assume that a command for displaying the Orion constellation is executed when the sky currently displayed on the screen is the summer sky. In the Northern Hemisphere, the Orion constellation is a winter constellation and cannot be observed in the summer sky. Therefore, the CPU 501 determines that the execution of the command is a defect.

[0070] When the CPU 501 determines that the displayed constellation is observable (YES in step S720), it ends the process. Otherwise (NO in step S720), the CPU 501 transfers control to step S730.

[0071] In a certain situation, the CPU 501 can obtain information related to astronomy used in step S720 (such as the position of the constellation, information on the season when the constellation is observed, etc.) from the control PC 112 of the optical planetarium projector 114. In other situations, the secondary storage device 503 may store in advance the information related to astronomy used in step S720. In that case, the CPU 501 reads out the information related to astronomy from the secondary storage device 503.

[0072] In step S730, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In other situations, the CPU 501 may output warnings sequentially every time a malfunction is detected. Also, in other situations, the CPU 501 may output the warning to the display of the control device 100 or transmit it to other devices.

[0073] FIG. 8 is a diagram showing an example of a second procedure for detecting whether a processing procedure that cannot be executed is included in a program. In step S810, the CPU 501 determines whether a panorama - azimuth is displayed. As an example, the CPU 501 can determine whether a panorama video or an azimuth video is displayed.

[0074] When the CPU 501 determines that a panorama - azimuth is displayed (YES in step S810), it transfers control to step S820. Otherwise (NO in step S810), the CPU 501 ends the process.

[0075] In step S820, the CPU 501 determines whether the display mode of the projector is the terrestrial mode. If the CPU 501 determines that the display mode of the projector is the terrestrial mode (YES in step S820), the process ends. Otherwise (NO in step S820), the CPU 501 transfers control to step S830. The terrestrial mode is a mode for displaying landscapes or celestial bodies, etc. from the surface of the earth or the moon. In addition to the terrestrial mode, the display mode also includes the cosmic mode. The cosmic mode is a mode for projecting the cosmic space from a perspective overlooking the earth or the sun, etc.

[0076] In step S830, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings every time a malfunction is detected. In yet another situation, the CPU 501 may output the warning to the display of the control device 100 or transmit it to another device.

[0077] FIG. 9 is a diagram showing an example of a first procedure for detecting whether a non-recommended processing procedure is included in a program. In step S910, the CPU 501 determines whether a file read command has been executed beforehand. If the CPU 501 determines that a file read command has been executed beforehand (YES in step S910), control is transferred to step S920. Otherwise (NO in step S910), the CPU 501 transfers control to step S930.

[0078] In step S920, the CPU 501 determines whether a file playback command (for example, a playback command for a video file) has been executed. If the CPU 501 determines that a file playback command has been executed (YES in step S920), the process ends. Otherwise (NO in step S920), the CPU 501 transfers control to step S940.

[0079] In step S930, the CPU 501 determines whether a file playback command has been executed. If the CPU 501 determines that the file playback command has been executed (YES in step S930), the control proceeds to step S940. Otherwise (NO in step S930), the CPU 501 ends the process.

[0080] In step S940, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings each time a malfunction is detected. In yet another situation, the CPU 501 may output the warning to the display of the control device 100 or transmit it to another device.

[0081] FIG. 10 is a diagram showing an example of a second procedure for detecting whether a non-recommended processing procedure is included in a program. In step S1010, the CPU 501 determines whether the command to be executed is a command that does not allow concurrent execution. This determination is made based on, for example, a list of commands prohibited from concurrent execution registered in the rule storage unit 404. If the CPU 501 determines that the command to be executed is a command that does not allow concurrent execution (YES in step S1010), the control proceeds to step S1020. Otherwise (NO in step S1010), the CPU 501 ends the process.

[0082] In step S1020, the CPU 501 determines whether the same command has been continuously executed. The CPU 501 can detect, for example, the continuous execution of a command that does not need to be executed multiple times, such as an initialization command. If the CPU 501 determines that the same command has been continuously executed (YES in step S1020), the control proceeds to step S1030. Otherwise (NO in step S1020), the CPU 501 ends the process.

[0083] In step S1030, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings every time a defect is detected. Also, in another situation, the CPU 501 may output the warning to the display of the control device 100 or transmit it to another device.

[0084] FIG. 11 is a diagram showing an example of a third procedure for detecting whether a program contains a non-recommended processing procedure. In step S1110, the CPU 501 determines whether the projector is playing video content (or any file such as an audio file). This determination is made based on, for example, whether the executed command is a playback command or whether the video content is being referenced. If the CPU 501 determines that the projector is playing video content (YES in step S1110), the control proceeds to step S1120. Otherwise (NO in step S1110), the CPU 501 ends the process.

[0085] In step S1120, the CPU 501 determines whether the shutter of the projector is open. This determination is made based on, for example, whether a command to open the shutter of the projector has been executed in advance. If the CPU 501 determines that the shutter of the projector is open (YES in step S1120), the process ends. Otherwise (NO in step S1120), the CPU 501 transfers the control to step S1130.

[0086] In step S1130, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings every time a malfunction is detected. Also, in another situation, the CPU 501 may output the warning to the display of the control device 100 or may transmit it to another device.

[0087] FIG. 12 is a diagram showing an example of a first procedure for detecting whether a program includes a processing procedure that exceeds the performance limit of a device. In step S1210, the CPU 501 determines whether the command to be executed is a movement command. A movement command is, for example, the movement of the position of a constellation drawn on the screen. Execution of a movement command may involve driving a motor of a projector. When the CPU 501 determines that the command to be executed is a movement command (YES in step S1210), the control proceeds to step S1220. Otherwise (NO in step S1210), the CPU 501 ends the process.

[0088] In step S1220, the CPU 501 determines whether the moving speed of the device that operates according to the movement command is within the allowable speed. When the CPU 501 determines that the moving speed of the device that operates according to the movement command is within the allowable speed (YES in step S1220), the process ends. Otherwise (NO in step S1220), the CPU 501 proceeds with the control to step S1230.

[0089] In step S1230, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all warnings after all the processes in steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings every time a malfunction is detected. Also, in another situation, the CPU 501 may output the warning to the display of the control device 100 or may transmit it to another device.

[0090] FIG. 13 is a diagram showing an example of a second procedure for detecting whether a processing procedure exceeding the performance limit of a device is included in a program. In step S1310, the CPU 501 determines whether the command to be executed is an aroma generation command. The aroma generation command is, for example, a command to operate an aroma generator which is one of the external devices 130. If the CPU 501 determines that the command to be executed is an aroma generation command (YES in step S1310), the control proceeds to step S1320. Otherwise (NO in step S1310), the CPU 501 ends the process.

[0091] In step S1320, the CPU 501 determines whether the execution timing of the aroma generation command is after N minutes (N may be any arbitrarily predetermined time) from the execution of the previous aroma generation command. If the CPU 501 determines that the execution timing of the aroma generation command is after N minutes from the execution of the previous aroma generation command (YES in step S1320), the process ends. Otherwise (NO in step S1320), the CPU 501 transfers the control to step S1330.

[0092] In step S1330, the CPU 501 outputs a warning. In a certain aspect, the CPU 501 may output all the warnings after all the processes of steps S610, S620, and S630 are completed. In another aspect, the CPU 501 may sequentially output warnings every time a malfunction is detected. In yet another aspect, the CPU 501 may output the warning to the display of the control device 100 or transmit it to another device.

[0093] FIG. 14 is a diagram showing an example of a third procedure for detecting whether a processing procedure exceeding the performance limit of a device is included in a program. In step S1410, the CPU 501 determines whether there is an execution time interval specification in the command to be executed. For example, depending on the command, there may be a constraint (interval specification) such that the execution interval must be 100 milliseconds or more. If the CPU 501 determines that there is an execution time interval specification in the command to be executed (YES in step S1410), the control proceeds to step S1420. Otherwise (NO in step S1410), the CPU 501 ends the process.

[0094] In a certain situation, the CPU 501 may further determine whether the content of the command to be executed includes processing that exceeds the communication performance of each device. If the content of the command to be executed includes processing that exceeds the communication performance of each device, the CPU 501 may determine that the program contains a defect.

[0095] In step S1420, the CPU 501 determines whether the execution interval between the command to be executed and the previously executed command is within an allowable value. If the CPU 501 determines that the execution interval between the command to be executed and the previously executed command is within the allowable value (YES in step S1420), the process ends. Otherwise (NO in step S1420), the CPU 501 transfers the control to step S1430.

[0096] In step S1430, the CPU 501 outputs a warning. In a certain situation, the CPU 501 may output all the warnings after all the processes of steps S610, S620, and S630 are completed. In another situation, the CPU 501 may sequentially output warnings every time a defect is detected. Also, in another situation, the CPU 501 may output the warning to the display of the control device 100 or transmit it to another device.

[0097] As described above, the control device 100 according to the present embodiment can detect program defects only by executing a simulation without actually operating the devices included in the theater or attraction system. Thereby, for example, the check period (loading period) of the program for the next performance of the planetarium can be significantly shortened.

[0098] In a certain aspect, the control device 100 does not need to be actually incorporated into the theater or attraction system and may be realized as a single simulation device. Thereby, for example, while the theater or attraction is executing the current performance, the control device 100 can execute a simulation of the program for the next performance.

[0099] The embodiments disclosed this time should be considered to be illustrative in all respects and not restrictive. The scope of the present disclosure is indicated by the scope of claims rather than the above description, and it is intended that all modifications within the meaning and scope equivalent to the scope of claims are included. Also, the disclosed content described in the embodiments and each modification example is intended to be implemented alone or in combination as much as possible.

Description of Reference Numerals

[0100] 10 theater system, 100 control device, 101 terminal, 110 optical planetarium device, 112, 122 control PC, 113 console, 114 optical planetarium projector, 120 digital planetarium device, 123 operation screen, 124 digital planetarium projector, 130 external device, 207 device control unit, 208 motor control unit, 209, 309 motor, 210 control unit, 214 digital control unit, 216 control unit, 217 projection unit, 300 program, 401 program acquisition unit, 402 program storage unit, 403 simulation execution unit, 404 rule storage unit, 405 simulation result display unit, 500 device, 501 CPU, 502 primary storage device, 503 secondary storage device, 504 external device interface, 505 input interface, 506 output interface, 507 communication interface, 508 touch panel, 509 microphone, 510 keyboard, 511 mouse, 512 speaker, 513 display.

Claims

1. A communication unit that receives a program including one or more commands for controlling one or more devices, A storage unit that stores rules for the execution procedures of the commands, A verification unit that verifies the program, An output unit that outputs the verification result of the program, and The verification unit Obtains the program via the communication unit, Reads the rules from the storage unit, Detects a defect in the program by comparing the execution procedure of the command included in the program with the rules, The output unit outputs the execution result of the detection process for the defect in the program, The device includes a projector, The program includes commands for projecting at least one or more of stars, planets, moons, and constellation pictures, Detecting a defect in the program includes determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed based on the fact that the program includes commands for causing the projector to display at least one or more of the stars, planets, moons, and constellation pictures. An information processing apparatus.

2. A communication unit that receives a program including one or more commands for controlling one or more devices, A storage unit that stores rules for the execution procedures of the commands, A verification unit that verifies the program, An output unit that outputs the verification result of the program, and The verification unit Obtains the program via the communication unit, Reads the rules from the storage unit, Detects a defect in the program by comparing the execution procedure of the command included in the program with the rules, The output unit outputs the execution result of the detection process for the defect in the program, Detecting a defect in the program includes determining whether the execution procedure of the command included in the program is a non-recommended procedure, Determining whether the execution procedure of the command included in the program is a non-recommended procedure includes determining whether the reading process of the file is executed before the reproduction process of the file. An information processing apparatus.

3. A communication unit that receives a program including one or more commands for controlling one or more devices, A storage unit that stores rules for the execution procedures of the commands, A verification unit that verifies the program, An output unit that outputs the verification result of the program, The verification unit acquires the program via the communication unit, reads the rule from the storage unit, detects a defect in the program by comparing the execution procedure of the command included in the program with the rule, The output unit outputs the execution result of the defect detection process of the program, Detecting a defect in the program includes determining whether the execution procedure of the command included in the program is a non-recommended procedure, Determining whether the execution procedure of the command included in the program is a non-recommended procedure includes determining whether the playback process of the file is executed after the file reading process. An information processing apparatus.

4. A communication unit that receives a program including one or more commands for controlling one or more devices, A storage unit that stores rules for the execution procedure of the command, A verification unit that verifies the program, An output unit that outputs the verification result of the program, The verification unit acquires the program via the communication unit, reads the rule from the storage unit, detects a defect in the program by comparing the execution procedure of the command included in the program with the rule, The output unit outputs the execution result of the defect detection process of the program, Detecting a defect in the program includes determining whether the execution procedure of the command included in the program is a non-recommended procedure, Determining whether the execution procedure of the command included in the program is a non-recommended procedure includes determining whether the program includes a procedure for simultaneously executing a first command and a second command for which simultaneous execution is not permitted. An information processing apparatus.

5. A communication unit that receives a program including one or more commands for controlling one or more devices, A storage unit that stores rules for the execution procedure of the command, A verification unit that verifies the program, An output unit that outputs the verification result of the program, The verification unit acquires the program via the communication unit, reads the rule from the storage unit, detects a defect in the program by comparing the execution procedure of the command included in the program with the rule, The output unit outputs the execution result of the defect detection process of the program, detecting a defect in the program includes determining whether the execution procedure of the command included in the program is a non-recommended procedure, determining whether the execution procedure of the command included in the program is a non-recommended procedure includes determining whether the shutter of the device for playing the file is open when executing the file playback process, an information processing apparatus.

6. Determining whether at least one or more of the stars, the planets, the moon, and the constellation pictures can be displayed includes determining whether at least one or more of the stars, the planets, the moon, and the constellation pictures that the projector displays can be displayed based on the latitude, longitude, or time information of at least one or more of them, the information processing apparatus according to claim 1.

7. Determining whether at least one or more of the stars, the planets, the moon, and the constellation pictures can be displayed includes determining whether at least one or more of the stars, the planets, the moon, and the constellation pictures can be displayed based on the display mode of the projector, the information processing apparatus according to claim 1 or 6.

8. Detecting a defect in the program by comparing the execution procedure of the command included in the program with the rule includes determining whether the execution procedure of the command included in the program includes a process that the device cannot execute, the information processing apparatus according to any one of claims 1 to 7.

9. Determining whether the execution procedure of the command included in the program includes a process that the device cannot execute includes determining whether the program includes an operation that exceeds the performance of the device, the information processing apparatus according to claim 8.

10. Determining whether the execution procedure of the command included in the program includes a process that the device cannot execute includes determining whether the device is repeatedly used within a predetermined interval, the information processing apparatus according to claim 8 or 9.

11. Determining whether the execution procedure of the command included in the program includes a process that the device cannot execute includes determining whether the execution intervals of a plurality of the commands are equal to or longer than a time interval that the device can process, the information processing apparatus according to any one of claims 8 to 10.

12. Determining whether the execution procedure of the command included in the program includes a process that the device cannot execute includes determining whether communication processing equal to or higher than the communication performance of the device is executed, the information processing apparatus according to any one of claims 8 to 11.

13. A method for controlling a device in an information processing apparatus, acquiring a program including commands for controlling one or more of the devices, acquiring rules for the execution procedure of the commands, detecting a defect in the program by comparing the execution procedure of the command included in the program with the rules, including outputting an execution result of the defect detection process of the program, the device includes a projector, the program includes commands for projecting at least one or more of stars, planets, moons, and constellation pictures, the step of detecting a defect in the program includes determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed based on the fact that the program includes commands for causing the projector to display at least one or more of the stars, planets, moons, and constellation pictures, a method.

14. The step of determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed includes determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed based on information on the latitude, longitude, or time of at least one or more of the stars, planets, moons, and constellation pictures displayed by the projector, the method according to claim 13.

15. The step of determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed includes determining whether at least one or more of the stars, planets, moons, and constellation pictures can be displayed based on the display mode of the projector, the method according to claim 13 or 14.

16. The step of detecting a defect in the program includes a step of determining whether an execution procedure of the command included in the program is a non-recommended procedure, the method according to any one of claims 13 to 15.

17. A program for causing one or more processors to execute the method according to any one of claims 13 to 16.

Citation Information

Patent Citations

  • Digital planetarium projection apparatus

    JP2008096525A

  • Information processing device, information processing method, computer program, and program manufacturing method

    WO2018180143A1