WO2025198401A1 - Electronic device, method, and non-transitory computer-readable recording medium for sharing hardware resources - Google Patents
Electronic device, method, and non-transitory computer-readable recording medium for sharing hardware resourcesInfo
- Publication number
- WO2025198401A1 WO2025198401A1 PCT/KR2025/099144 KR2025099144W WO2025198401A1 WO 2025198401 A1 WO2025198401 A1 WO 2025198401A1 KR 2025099144 W KR2025099144 W KR 2025099144W WO 2025198401 A1 WO2025198401 A1 WO 2025198401A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- electronic device
- hardware component
- information
- communication circuit
- sharing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
Definitions
- the following descriptions relate to electronic devices, methods, and non-transitory computer-readable recording media for sharing hardware resources.
- small electronic devices can include smartphones, tablet PCs, portable multimedia players (PMPs), laptop personal computers (PCs), and wearable devices.
- PMPs portable multimedia players
- PCs laptop personal computers
- wearable devices As the use of small electronic devices increases, situations where multiple small electronic devices are used in the same space are also occurring, and the demand for a continuous and unified user experience across multiple small electronic devices within the same space is also increasing.
- the electronic device may include a communication circuit for BLE (Bluetooth low energy).
- the electronic device may include at least one processor including a processing circuit.
- the electronic device may include a memory storing instructions and including one or more storage media.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive, from another electronic device via the communication circuit, an advertisement packet for sharing a hardware component of the other electronic device.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to activate a driver for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device is enabled.
- the instructions, when individually or collectively executed by the at least one processor may cause the electronic device to keep the driver in a disabled state based on the advertisement packet being received while the sharing was disabled.
- the electronic device may include a communication circuit for Bluetooth Low Energy (BLE).
- the electronic device may include at least one processor including a processing circuit.
- the electronic device may include a memory storing instructions and including one or more storage media.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to broadcast an advertisement packet for sharing a hardware component of the electronic device to another electronic device via the communication circuit.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain, from the other electronic device via the communication circuit, an access request for the hardware component indicated by the advertisement packet.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to connect a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device, based on obtaining the access request.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to transmit, via the communication circuit, a signal to the other electronic device indicating that the server process is connected to the client process running on the other electronic device.
- a method is disclosed.
- the method can be performed in an electronic device including a communication circuit for BLE.
- the method can include receiving, through the communication circuit, an advertisement packet for sharing a hardware component of another electronic device from the other electronic device.
- the method can include activating a driver for accessing the hardware component indicated by the advertisement packet based on whether the advertisement packet is received while the sharing of the hardware component of the electronic device is activated.
- the method can include maintaining the driver in a deactivated state based on whether the advertisement packet is received while the sharing is deactivated.
- a method is disclosed.
- the method can be performed in an electronic device including a communication circuit for BLE.
- the method can include broadcasting an advertisement packet for sharing a hardware component of the electronic device to another electronic device through the communication circuit.
- the method can include obtaining, from the other electronic device through the communication circuit, an access request for the hardware component indicated by the advertisement packet.
- the method can include connecting a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device based on obtaining the access request.
- the method can include transmitting, to the other electronic device through the communication circuit, a signal indicating that the server process is connected to the client process running on the other electronic device.
- a non-transitory computer-readable storage medium may store a program including instructions.
- the instructions when individually or collectively executed by at least one processor of an electronic device including a communication circuit for BLE, may cause the electronic device to receive, through the communication circuit, an advertisement packet for sharing a hardware component of the other electronic device from another electronic device.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to activate a driver for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device is activated.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to maintain the driver in a deactivated state based on the advertisement packet being received while the sharing is deactivated.
- a non-transitory computer-readable recording medium can store a program including instructions.
- the instructions when individually or collectively executed by at least one processor of an electronic device including a communication circuit for BLE, can cause the electronic device to broadcast an advertisement packet for sharing a hardware component of the electronic device to another electronic device via the communication circuit.
- the instructions when individually or collectively executed by the at least one processor, can cause the electronic device to obtain, from the other electronic device via the communication circuit, an access request for the hardware component indicated by the advertisement packet.
- the instructions when individually or collectively executed by the at least one processor, can cause the electronic device to connect a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device, based on obtaining the access request.
- the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to transmit, via the communication circuit, a signal to the other electronic device indicating that the server process is connected to the client process running on the other electronic device.
- FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
- FIG. 2 is a block diagram illustrating a program according to various embodiments.
- FIG. 3 illustrates an example of a wireless environment including an electronic device, according to one embodiment.
- FIG. 4A is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
- FIG. 4b is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
- FIG. 5A is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
- FIG. 5b is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
- FIG. 6A is a diagram illustrating operations for advertising and scanning between electronic devices according to one embodiment.
- FIG. 6b is a diagram illustrating operations of broadcasting an advertising packet in electronic devices according to one embodiment.
- FIG. 6c is a diagram illustrating operations of scanning an advertising packet in an electronic device according to one embodiment.
- FIG. 7A is a diagram illustrating operations for sharing hardware resources between electronic devices according to one embodiment.
- FIG. 7b is a diagram illustrating operations for setting performance information of hardware components between electronic devices according to one embodiment.
- FIG. 8A is a diagram illustrating an example of a screen displayed during sharing of hardware resources in another electronic device, according to one embodiment.
- FIG. 8b is a diagram illustrating an example of a screen displayed during sharing of hardware resources in an electronic device according to one embodiment.
- FIG. 9 is a diagram illustrating an example of a program architecture of electronic devices according to one embodiment.
- FIG. 10A is a diagram illustrating operations by which another electronic device requests initialization of a resource context, according to one embodiment.
- FIG. 10b is a diagram illustrating operations by which another electronic device requests an update of a resource context, according to one embodiment.
- FIG. 10c is a diagram illustrating operations of an electronic device to update a resource context according to one embodiment.
- FIG. 10d is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
- FIG. 10e is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
- FIG. 11 is a diagram illustrating an example of a relationship between processes of electronic devices according to one embodiment.
- FIG. 12 is a flowchart illustrating the operation of an electronic device according to one embodiment.
- FIG. 13 is a diagram illustrating an example of different orientations and/or aspect ratios of electronic devices according to one embodiment.
- FIG. 14a is a flowchart illustrating the operation of an electronic device according to one embodiment.
- FIG. 14b is a flowchart illustrating the operation of an electronic device according to one embodiment.
- FIG. 15A is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
- FIG. 15b is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
- FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments.
- an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network).
- the electronic device (101) may communicate with the electronic device (104) via the server (108).
- the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197).
- the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added.
- some of these components e.g., the sensor module (176), the camera module (180), or the antenna module (197) may be integrated into one component (e.g., the display module (160)).
- the processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations.
- the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134).
- the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121).
- a main processor (121) e.g., a central processing unit or an application processor
- an auxiliary processor (123) e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor
- the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function.
- the auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
- the auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state.
- the auxiliary processor (123) e.g., an image signal processor or a communication processor
- the auxiliary processor (123) may include a hardware structure specialized for processing artificial intelligence models.
- the artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)).
- the learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above.
- the artificial intelligence model can include a plurality of artificial neural network layers.
- the artificial neural network can be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above.
- the artificial intelligence model can additionally or alternatively include a software structure.
- the memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101).
- the data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto.
- the memory (130) can include volatile memory (132) or non-volatile memory (134).
- the program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
- the input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101).
- the input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
- the audio output module (155) can output audio signals to the outside of the electronic device (101).
- the audio output module (155) can include, for example, a speaker or a receiver.
- the speaker can be used for general purposes, such as multimedia playback or recording playback.
- the receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
- the display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101).
- the display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device.
- the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
- the audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
- an external electronic device e.g., electronic device (102)
- speaker or headphone directly or wirelessly connected to the electronic device (101).
- the sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status.
- the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
- the interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)).
- the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital Card
- connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)).
- the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
- the haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations.
- the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module (180) can capture still images and videos.
- the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module (188) can manage power supplied to the electronic device (101).
- the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
- PMIC power management integrated circuit
- a battery (189) may power at least one component of the electronic device (101).
- the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
- the communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel.
- the communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
- the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module).
- a wireless communication module (192) e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
- GNSS global navigation satellite system
- wired communication module (194) e.g., a local area network (LAN) communication module, or a power line communication module.
- the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)).
- a first network (198) e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
- a second network (199) e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)
- a computer network e.g., a
- the wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
- subscriber information e.g., an international mobile subscriber identity (IMSI)
- the wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology).
- the NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)).
- eMBB enhanced mobile broadband
- mMTC massive machine type communications
- URLLC ultra-reliable and low-latency communications
- the wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate.
- a high-frequency band e.g., mmWave band
- the wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna.
- the wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)).
- the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for realizing eMBB, a loss coverage (e.g., 664 dB or less) for realizing mMTC, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 6 ms or less for round trip) for realizing URLLC.
- a peak data rate e.g., 20 Gbps or more
- a loss coverage e.g., 664 dB or less
- U-plane latency e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 6 ms or less for round trip
- the antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device).
- the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB).
- the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna.
- another component e.g., a radio frequency integrated circuit (RFIC)
- RFIC radio frequency integrated circuit
- the antenna module (197) may form a mmWave antenna module.
- the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
- a first side e.g., a bottom side
- a plurality of antennas e.g., an array antenna
- At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
- peripheral devices e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
- commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199).
- Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101).
- all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service.
- One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101).
- the electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request.
- cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example.
- the electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example.
- the external electronic device (104) may include an Internet of Things (IoT) device.
- the server (108) may be an intelligent server utilizing machine learning and/or a neural network.
- the external electronic device (104) or the server (108) may be included in the second network (199).
- the electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
- FIG. 2 is a block diagram (200) illustrating a program (140) according to various embodiments.
- the program (140) may include an operating system (142), middleware (144), or an application (146) executable in the operating system (142) for controlling one or more resources of the electronic device (101).
- the operating system (142) may include, for example, Android TM , iOS TM , Windows TM , Symbian TM , Tizen TM , or Bada TM .
- At least some of the programs (140) may be preloaded in the electronic device (101), for example, at the time of manufacturing, or may be downloaded or updated from an external electronic device (e.g., the electronic device (102 or 104), or a server (108)) when used by a user.
- the operating system (142) may control the management (e.g., allocation or retrieval) of one or more system resources (e.g., processes, memory, or power) of the electronic device (101).
- the operating system (142) may additionally or alternatively include one or more driver programs for driving other hardware devices of the electronic device (101), for example, an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197).
- driver programs for driving other hardware devices of the electronic device (101), for example, an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a
- Middleware (144) can provide various functions to the application (146) so that functions or information provided from one or more resources of the electronic device (101) can be used by the application (146).
- Middleware (144) can include, for example, an application manager (201), a window manager (203), a multimedia manager (205), a resource manager (207), a power manager (209), a database manager (211), a package manager (213), a connectivity manager (215), a notification manager (217), a location manager (219), a graphics manager (221), a security manager (223), a call manager (225), or a voice recognition manager (227).
- the application manager (201) can manage, for example, the life cycle of the application (146).
- the window manager (203) can manage, for example, one or more GUI resources used on the screen.
- the multimedia manager (205) can, for example, identify one or more formats required for playing media files, and perform encoding or decoding of a corresponding media file among the media files using a codec suitable for the corresponding format selected among the formats.
- the resource manager (207) can manage, for example, the source code of the application (146) or the memory space of the memory (130).
- the power manager (209) can manage, for example, the capacity, temperature, or power of the battery (189), and determine or provide related information necessary for the operation of the electronic device (101) using the corresponding information.
- the power manager (209) can be linked with the basic input/output system (BIOS) (not shown) of the electronic device (101).
- BIOS basic input/output system
- the database manager (211) can, for example, create, search, or modify a database to be used by the application (146).
- the package manager (213) can, for example, manage the installation or update of an application distributed in the form of a package file.
- the connectivity manager (215) can, for example, manage a wireless connection or direct connection between the electronic device (101) and an external electronic device.
- the notification manager (217) can, for example, provide a function for notifying a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm).
- the location manager (219) can, for example, manage location information of the electronic device (101).
- the graphics manager (221) can, for example, manage one or more graphic effects to be provided to the user or a user interface related thereto.
- the security manager (223) may provide, for example, system security or user authentication.
- the telephony manager (225) may manage, for example, a voice call function or a video call function provided by the electronic device (101).
- the voice recognition manager (227) may, for example, transmit the user's voice data to the server (108) and receive, from the server (108), a command corresponding to a function to be performed in the electronic device (101) based at least in part on the voice data, or text data converted based at least in part on the voice data.
- the middleware (144) may dynamically delete some of the existing components or add new components. In one embodiment, at least a portion of the middleware (144) may be included as a part of the operating system (142) or implemented as separate software different from the operating system (142).
- the application (146) may include, for example, a home (251), a dialer (253), an SMS/MMS (255), an instant message (IM) (257), a browser (259), a camera (261), an alarm (263), a contact (265), a voice recognition (267), an email (269), a calendar (271), a media player (273), an album (275), a watch (277), a health (279) (e.g., measuring biometric information such as the amount of exercise or blood sugar), or an environmental information (281) (e.g., measuring barometric pressure, humidity, or temperature information) application.
- the application (146) may further include an information exchange application (not shown) that can support information exchange between the electronic device (101) and an external electronic device.
- the information exchange application may include, for example, a notification relay application configured to transmit designated information (e.g., a call, a message, or an alarm) to an external electronic device, or a device management application configured to manage an external electronic device.
- the notification relay application may, for example, transmit notification information corresponding to a designated event (e.g., receipt of an email) that occurred in another application (e.g., an email application (269)) of the electronic device (101) to the external electronic device. Additionally or alternatively, the notification relay application may receive notification information from the external electronic device and provide the information to the user of the electronic device (101).
- a device management application may, for example, control the power (e.g., turning on or off) or the function (e.g., brightness, resolution, or focus) of an external electronic device or a component thereof (e.g., a display module or a camera module of the external electronic device) that communicates with the electronic device (101).
- the device management application may additionally or alternatively support the installation, deletion, or update of an application running on the external electronic device.
- FIG. 3 illustrates an example of a wireless environment including an electronic device, according to one embodiment.
- the electronic device (101) of FIG. 3 may correspond to the electronic device (101) of FIG. 1.
- the electronic device (101) may include a processor (120), a memory (130), a first communication circuit (391), and a second communication circuit (392).
- the processor (120) may be used to execute operations of the electronic device (101) exemplified in the descriptions of FIGS. 6A to 7B, 10A to 10E, 12, and 14A to 15B.
- the processor (120) may include at least a portion of the processor (120) of FIG. 1 or may correspond to at least a portion of the processor (120) of FIG. 1.
- the processor (120) may include one or more processors, including an application processor (AP) and/or a communication processor (CP).
- the processor (120) may be implemented as a single chip, such as a system on chip (SoC), or may be implemented as multiple chips.
- SoC system on chip
- the processor (120) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits.
- the processor (120) may be distributedly arranged within the electronic device (101).
- the memory (130) may (at least temporarily) store instructions for executing operations of the electronic device (101) exemplified in the descriptions of FIGS. 6A to 7B, 10A to 10E, 12, and 14A to 15B.
- the instructions may be executed by the processor (120).
- the instructions may be included in one or more programs (140) stored in the memory (130) (e.g., the program (140) of FIG. 2).
- the memory (130) may include at least a portion of the memory (130) of FIG. 1 (or at least a portion of the non-volatile memory (134)) or may correspond to at least a portion of the memory (130) of FIG. 1 (or at least a portion of the non-volatile memory (134)).
- the memory (130) may include a main memory (e.g., a random access memory (RAM)) within the electronic device (101), a register for the processor (120), a cache for the processor (120), a register for the communication circuits (391, 392), a buffer (or soft buffer) for the communication circuits (391, 392), and/or an auxiliary memory (e.g., a hard disk drive (HDD), a solid state drive (SSD)) of the electronic device (101).
- the memory (130) may be implemented as a single chip or may be implemented as multiple chips.
- the memory (130) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits.
- the memory (130) may be distributedly arranged within the electronic device (101).
- the first communication circuit (391) may be used to support Bluetooth communication (e.g., legacy Bluetooth communication (or classic Bluetooth communication and/or Bluetooth low energy (BLE)) between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)).
- Bluetooth communication e.g., legacy Bluetooth communication (or classic Bluetooth communication and/or Bluetooth low energy (BLE)
- BLE Bluetooth low energy
- the communication technique of the first communication circuit (391) is not limited to the Bluetooth communication technique.
- the first communication circuit (391) may be used to support communication between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)) based on various short-range wireless communication techniques (e.g., wireless fidelity (Wi-Fi), Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, Wi-Fi legacy communication technique, and/or ultra wide band (UWB)).
- Wi-Fi wireless fidelity
- Wi-Fi Direct Wireless Fidelity
- Wi-Fi aware Wireless Fidelity
- Wi-Fi mobile hotspot Wireless Fidelity
- Wi-Fi legacy communication technique e.g., Wi-Fi legacy communication technique
- UWB ultra wide band
- the first communication circuit (391) may include at least a portion of the communication module (190) (or the wireless communication module (192)) of FIG. 1, or may correspond to at least a portion of the communication module (190) (or the wireless communication module (192)) of FIG. 1.
- the first communication circuit (391) may include a communication circuit for Bluetooth.
- the first communication circuit (391) may be used to establish a communication link.
- the first communication circuit (391) may be used to transmit packets to external electronic devices (201, 202) via the communication link.
- the first communication circuit (391) may be used to receive packets from electronic devices (303, 305, 307) via the communication link.
- the first communication circuit (391) may be implemented as a single chip or may be implemented as multiple chips.
- the first communication circuit (391) may be implemented as a single integrated circuit or as multiple integrated circuits.
- the first communication circuit (391) may be distributedly arranged within the electronic device (101).
- the second communication circuit (392) may be used to further support a communication technique different from the communication technique of the first communication circuit (391).
- the second communication circuit (392) may be used to further support a communication technique different from the Bluetooth communication technique (e.g., Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, and/or Wi-Fi legacy communication technique).
- the communication technique of the second communication circuit (392) is not limited to Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, and Wi-Fi legacy communication techniques.
- the second communication circuit (39) may be used to support communication between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)) based on various short-range wireless communication techniques (e.g., classic Bluetooth communication, BLE, and/or UWB).
- various short-range wireless communication techniques e.g., classic Bluetooth communication, BLE, and/or UWB.
- the second communication circuit (392) may be implemented as a single chip or as multiple chips.
- the second communication circuit (392) may be implemented as a single integrated circuit or as multiple integrated circuits.
- the second communication circuit (392) may be distributedly arranged within the electronic device (101).
- the electronic device (101) may include additional hardware components in addition to the hardware components illustrated in FIG. 3.
- the electronic device (101) may include hardware components exemplified through the electronic device (101) of FIG. 1 (e.g., a camera module (180), a display module (160), and/or an audio output module (155)).
- the electronic device (303) may include a processor (311), a memory (315), a first communication circuit (393), and a second communication circuit (394).
- each of the processor (311), the memory (315), the first communication circuit (393), and the second communication circuit (394) of the electronic device (303) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101).
- the hardware configuration and/or the provideable functions of the processor (311) may correspond to the hardware configuration and/or the provideable functions of the processor (120).
- the hardware configuration and/or the provideable functions of the memory (315) may correspond to the hardware configuration and/or the provideable functions of the memory (130).
- the hardware configuration and/or the available functions of the first communication circuit (393) may correspond to the hardware configuration and/or the available functions of the first communication circuit (391).
- the hardware configuration and/or the available functions of the second communication circuit (394) may correspond to the hardware configuration and/or the available functions of the second communication circuit (392).
- the electronic device (303) may include a shareable hardware component (320).
- the shareable hardware component (320) may include a camera (321), a keyboard (322), and a speaker (323).
- the camera (321) may correspond to the camera module (180) of FIG. 1.
- the keyboard (322) may correspond to the input module (150) of FIG. 1.
- the speaker (323) may correspond to the audio output module (155) and/or the audio module (170) of FIG. 1.
- the electronic device (303) may include additional hardware components in addition to the hardware components illustrated in FIG. 3.
- the electronic device (303) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
- the electronic device (305) may include a processor (331), a memory (335), a first communication circuit (395), and a second communication circuit (396).
- each of the processor (331), the memory (335), the first communication circuit (395), and the second communication circuit (396) of the electronic device (305) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101).
- the electronic device (305) may include a shareable hardware component (340).
- the shareable hardware component (340) may include a speaker (343) and a display (344).
- the speaker (343) may correspond to the audio output module (155) and/or the audio module (170) of FIG. 1.
- the display (344) may correspond to the display module (160) of FIG. 1.
- the electronic device (305) may include additional hardware components in addition to the hardware components illustrated in FIG. 3.
- the electronic device (305) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
- the electronic device (307) may include a processor (351), a memory (355), a first communication circuit (397), and a second communication circuit (398).
- each of the processor (351), the memory (355), the first communication circuit (397), and the second communication circuit (398) of the electronic device (307) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101).
- the electronic device (307) may include a shareable hardware component (360).
- the shareable hardware component (360) may include a camera (361) and storage (365).
- the camera (361) may correspond to the camera module (180) of FIG. 1.
- the storage (365) may correspond to the non-volatile memory (134) of FIG. 1.
- the electronic device (307) may include additional hardware components in addition to the hardware components illustrated in FIG. 3.
- the electronic device (307) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
- the electronic device (101) and the electronic devices (303, 305, 307) may be a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
- sharing of hardware components of the electronic device (101) may be a function that allows resources related to hardware components of the electronic device (101) to be occupied by shared electronic devices (303, 305, 307).
- an electronic device sharing hardware components may be referred to as a sharer (or sharer device), and an electronic device sharing hardware components may be referred to as a receiver (or receiver device).
- the electronic device (101) can activate a shared function of a hardware component. In one embodiment, the electronic device (101) can activate a shared function of a hardware component that is in a disabled state based on an input.
- the electronic device (101) may activate the sharing function of a hardware component based on an input to a user interface (UI) for setting the sharing function (e.g., screens (400, 405) of FIG. 4A and/or FIG. 4B).
- UI user interface
- the present invention is not limited thereto.
- the electronic device (101) may maintain the sharing function in an activated state according to a default setting.
- the electronic device (101) may activate a sharing function to operate as a sharer of hardware components.
- the electronic device (101) may activate a sharing function to share at least one hardware component among the shareable hardware components of the electronic device (101).
- the electronic device (101) can set sharing conditions for hardware components.
- the electronic device (101) can set sharing conditions that limit the range of recipients who can share the hardware components.
- the electronic device (101) can limit the range of recipients to electronic devices logged in with the same account.
- the electronic device (101) can limit the range of recipients to electronic devices logged in with the account of a user with the same designated relationship (e.g., a colleague, friend, or family member).
- the present invention is not limited thereto.
- the electronic device (101) may broadcast an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled through the first communication circuit (391) based on activating a sharing function to share at least one hardware component. In one embodiment, the electronic device (101) may periodically broadcast an advertisement packet indicating that sharing is enabled through the first communication circuit (391). An operation of broadcasting an advertisement packet indicating that sharing is enabled may be described below with reference to FIG. 6B.
- ADV_IND advertisement packet e.g., ADV_IND
- an advertising packet may include LTV (length, type, value) structures arranged sequentially.
- LTV length, type, value
- Each of the LTV structures arranged sequentially within the advertising packet may include a length field and a data field.
- the length field may indicate the length of the data field of the LTV structure.
- the data field of each LTV structure may include a type field and a value field.
- the type field may have a length of 1 byte.
- the value field may have a length that is 1 byte less than the length indicated by the length field.
- an advertising packet may include an LTV structure for a flag (hereinafter, a first LTV structure) and an LTV structure for broadcasting manufacturer specific data (hereinafter, a second LTV structure).
- a field (e.g., a continuity LTV field) related to a shared function (or a multi-device continuity framework (MCF)) among the fields included in the second LTV structure may include user information (or account information) (or account ID (identification)) of the electronic device (101).
- the MCF may be a framework for providing a continuous user experience between multiple electronic devices registered with the same account. For example, the MCF may generate a command for controlling the search for a nearby electronic device registered with the same account, a command for instructing the exchange of status information of electronic devices registered with the same account, or a command for instructing a connection with an electronic device registered with the same account.
- the present invention is not limited thereto.
- the media settings change message included in the scan request may include a parameter indicating the media type of the camera (e.g., "mediaType”: "video") and a parameter indicating some of the attributes of the camera (e.g., "bitrate”: 3).
- the electronic device (101) may change some of the settings of the hardware component (e.g., change the bitrate from 15 to 3) in response to a scan request (e.g., SCAN_REQ) from the recipient device requesting a change in the settings of the hardware component.
- the electronic device (101) may broadcast a scan response (e.g., SCAN_RSP) indicating that the settings of the hardware component have been changed.
- the electronic device (101) may not receive a scan request (e.g., SCAN_REQ) requesting configuration of a hardware component from the recipient device. In this case, the electronic device (101) may maintain the configuration of the hardware component as the default setting.
- a scan request e.g., SCAN_REQ
- the electronic device (101) may receive a request to execute a server program related to a hardware component from a receiver device. In one embodiment, after the configuration of the hardware component is completed, the electronic device (101) may receive a request to execute a server program related to the hardware component from the receiver device. In one embodiment, the electronic device (101) may receive a request to execute a server program to connect to a client program related to the hardware component running on the receiver device. According to an embodiment, the request to execute the server program may include a binding request between the server program and the client program.
- the client program can communicate with the server program (e.g., inter-process communication (e.g., socket communication)).
- the client program can provide a request for execution (or control) (or access) of a hardware component to the server program with which it is connected to the communication.
- the client program can provide the execution result (or control result) (or access result) of the hardware component according to the request obtained from the server program with which it is connected to the communication to the application (146).
- the client program can be a set of one or more programs for providing one or more functions related to the hardware component to the application.
- the client program when the client program is executed, the client program can be referred to as a client process.
- the server program can communicate with the client program (e.g., inter-process communication (e.g., socket communication)).
- the server program can transmit a request for execution (or control) (or access) of a hardware component from the client program to a device driver associated with the hardware component.
- the server program can provide the execution result (or control result) (or access result) of the hardware component according to the request obtained from the device driver to the client program with which it is connected to the communication.
- the server program can be a set of one or more programs for providing one or more functions related to the hardware component to the client program.
- the server program when the server program is executed, the server program can be referred to as a server process.
- the electronic device (101) may execute a server program associated with a hardware component in response to an execution request. In one embodiment, the electronic device (101) may establish a communication connection between the running server program and a client program running on a recipient device in response to the execution request. The operation of establishing a communication connection between the server program and the client program may be described below with reference to FIG. 7A.
- the electronic device (101) may obtain a request from a client program running on the recipient device.
- the request may include execution (or control) (or access) of a hardware component.
- the request may include taking a picture using the camera.
- the request may include controlling the camera (e.g., switching cameras, applying basic functions provided by the camera).
- switching cameras may include switching a camera for taking a picture among multiple cameras included in the electronic device (101).
- basic functions provided by the camera may include blur, face touch, auto frame, and/or HDR (high dynamic range), but are not limited thereto.
- the request may include outputting media (e.g., an audio file) through the speaker (e.g., outputting through the speaker).
- the request may include controlling the speaker (e.g., changing the volume or applying a basic function provided by the speaker), but is not limited thereto.
- the request may include outputting media (e.g., still images and/or video) through the display (e.g., outputting through the display).
- the request may include controlling the display (e.g., changing brightness and/or changing frame rate), but is not limited thereto.
- the request may include, but is not limited to, reading and/or writing data through the storage.
- the electronic device (101) may perform execution (or control) (or access) of a hardware component based on a request from a client program running on the recipient device. In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component through a server program and/or a device driver.
- the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to a client program through a server program.
- communication between the server program and the client program may be performed via the first communication circuit (391) and/or the second communication circuit (392).
- first communication circuit (391) and/or the second communication circuit (392) For example, in the case of data having a relatively large size, data transfer between the server program and the client program may be performed via the second communication circuit (392).
- second communication circuit (392) For example, in the case of data having a relatively small size, data transfer between the server program and the client program may be performed via the first communication circuit (391) and/or the second communication circuit (392).
- a request from a client program can be transmitted to a server program via a first communication circuit (391) and/or a second communication circuit (392).
- a second communication circuit 392
- an image acquired by the camera can be transmitted from the server program to the client program via a second communication circuit (392).
- a request for controlling the speaker e.g., changing the volume or applying a basic function provided by the speaker
- media e.g., an audio file
- a request for controlling the display may be transmitted to the server program via the first communication circuit (391) and/or the second communication circuit (392).
- media e.g., still images and/or videos
- a data read request may be transmitted to the server program through the first communication circuit (391) and/or the second communication circuit (392).
- data read from the storage in response to the data read request may be transmitted from the server program to the client program through the second communication circuit (392).
- a data write request may be transmitted to the server program through the second communication circuit (392).
- a response in response to the data write request may be transmitted from the server program to the client program through the first communication circuit (391) and/or the second communication circuit (392).
- the electronic device (101) may perform execution (or control) (or access) of a hardware component based on a request from a client program running on the recipient device. In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component through a server program and/or a device driver.
- the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to a client program through a server program.
- the electronic device (101) may output a UI (e.g., screens (800, 803) of FIG. 8A) indicating that the hardware component is shared with the recipient device while performing execution (or control) (or access) of the hardware component based on a request from a client program running on the recipient device.
- a UI e.g., screens (800, 803) of FIG. 8A
- the electronic device (101) may identify a communication environment associated with a hardware component.
- the communication environment may be associated with transmission and/or reception of data associated with the hardware component.
- the electronic device (101) can identify a loss rate of data associated with a hardware component as an indicator representing a communication environment.
- the data may be data transmitted between a server program and a client program.
- the data may be data acquired by a hardware component transmitted from the server program to the client program.
- the data may be data to be output to a hardware component transmitted from the client program to the server program.
- the present invention is not limited thereto.
- the electronic device (101) can identify a data loss rate based on a reception report obtained from the receiver device.
- the reception report can include information about the number of data received by the receiver device (hereinafter, “the number of reception data”) and/or the number of data not received by the receiver device (hereinafter, “the number of reception failure data”) during a specified period of time.
- the receiver device can identify the number of reception data and/or the number of reception failure data based on a sequence number of the data. For example, the receiver device can transmit a reception report including information about the number of reception data and/or reception failure data during a specified period of time to the electronic device (101).
- the electronic device (101) can identify the ratio between the number of received data and/or the number of failed reception data as a loss rate.
- the electronic device (101) can change the throughput of the communication connection through which the electronic device (101) transmits data to the receiver device based on the communication environment. In one embodiment, the electronic device (101) can change the throughput of the communication connection through which the electronic device (101) transmits data to the receiver device based on a loss rate.
- the electronic device (101) may increase the throughput based on an improvement in the communication environment.
- the electronic device (101) may decrease the throughput based on a deterioration in the communication environment.
- the electronic device (101) may change the throughput by a first value when the loss rate is within a first range.
- the electronic device (101) may change the throughput by a second value when the loss rate is within a second range.
- the electronic device (101) may change the throughput by a third value when the loss rate is within a third range.
- the lower limit of the second range may have a value higher than the upper limit of the first range.
- the lower limit of the third range may have a value higher than the upper limit of the second range.
- the third value may be greater than the second value.
- the electronic device (101) can increase the throughput when there is no loss rate (or when the throughput is low).
- the electronic device (101) can decrease the throughput when there is a loss rate.
- the electronic device (101) can decrease the throughput more as the loss rate increases.
- the first range can include a loss rate of 0%.
- the second range can include a loss rate of 1 to 4%.
- the third range can include a loss rate of 5 to 10%.
- the electronic device (101) can increase the throughput by a first value.
- the electronic device (101) can decrease the throughput by a second value. For example, if a loss rate of between 5 and 10% is identified, the electronic device (101) may reduce the throughput by a third value.
- the electronic device (101) can change the settings of the shared hardware components to change the throughput. In one embodiment, the electronic device (101) can change the parameters specified for each of the hardware components. For example, if the hardware component is a camera, the electronic device (101) can change at least one of the resolution, bit rate, and/or frame rate (e.g., bit rate) to change the throughput.
- the present invention is not limited thereto.
- the electronic device (101) can activate a shared function of a hardware component. In one embodiment, the electronic device (101) can activate a shared function of a hardware component that is in a disabled state based on an input.
- the electronic device (101) may activate the sharing function of a hardware component based on an input to a UI (e.g., screens (500, 505) of FIG. 5A and/or FIG. 5B) for setting the sharing function.
- a UI e.g., screens (500, 505) of FIG. 5A and/or FIG. 5B
- the present invention is not limited thereto.
- the electronic device (101) may maintain the sharing function in an activated state according to a default setting.
- the electronic device (101) may activate a sharing function to act as a recipient of a hardware component.
- the electronic device (101) may activate a sharing function to share at least one hardware component among hardware components that can be shared by the electronic device (101).
- the electronic device (101) can set sharing conditions for hardware components.
- the electronic device (101) can set sharing conditions that limit the range of users sharing the hardware components.
- the electronic device (101) can limit the range of users to electronic devices logged in with the same account.
- the electronic device (101) can limit the range of users to electronic devices logged in with the account of a user with the same specified relationship (e.g., a colleague, friend, or family member).
- the present invention is not limited thereto.
- the electronic device (101) may scan for an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled, via the first communication circuit (391), based on activating a sharing function to share at least one hardware component. In one embodiment, the electronic device (101) may periodically scan for an advertisement packet indicating that sharing is enabled, via the first communication circuit (391). The operation of scanning for an advertisement packet indicating that sharing is enabled may be described below with reference to FIG. 6C.
- an advertisement packet e.g., ADV_IND
- the electronic device (101) may periodically scan for advertisement packets that include information indicating that the sharing function is activated in another field (e.g., another continuity LTV field (e.g., a ClientHandlerContext field)) related to the sharing function (or MCF) among the continuity LTV fields.
- another continuity LTV field e.g., a ClientHandlerContext field
- the electronic device (101) may periodically scan for advertisement packets in which a specified value (e.g., 6) is entered in a specified item (e.g., AppID) of another field related to the sharing function of the advertisement packet.
- the electronic device (101) can set the performance of the hardware components of the sharer device. For example, when multiple sharer devices are searched, the electronic device (101) can set the performance of the hardware components of the selected sharer device. For example, the electronic device (101) can select the most recently connected (or shared) (or shared) sharer device among the multiple sharer devices. For example, the electronic device (101) can select the sharer device based on a user's selection among the multiple sharer devices.
- the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) requesting configuration of a hardware component, including determined configuration information, to the sharer device.
- a scan request e.g., SCAN_REQ
- the scan request e.g., SCAN_REQ
- mediaConfig e.g., MediaConfig
- the electronic device (101) may receive a scan response (e.g., SCAN_RSP) from the sharer device indicating that a configuration of a hardware component has changed.
- a scan response e.g., SCAN_RSP
- the scan response indicating that a configuration of a hardware component has changed may be referred to as a media configuration message (e.g., MediaConfig).
- the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) requesting a change in the settings of a hardware component to the sharer device.
- a scan request e.g., SCAN_REQ
- the scan request e.g., SCAN_REQ
- a media settings change message e.g., ChangeMedia
- the media settings change message may include a parameter indicating the media type of the hardware component and a parameter for an attribute to be changed among the attributes of the hardware component.
- the electronic device (101) may not change the configuration information of the hardware components from the default settings.
- the electronic device (101) may not transmit a scan request (e.g., SCAN_REQ) requesting the shared device to configure the hardware components.
- a scan request e.g., SCAN_REQ
- the configuration of the hardware components of the shared device may be maintained at the default settings.
- sharing operations for accessing hardware components of a sharer device e.g., electronic device (303) of an electronic device (101) may be described.
- the electronic device (101) may execute a client program related to a hardware component of the sharer device. In one embodiment, the electronic device (101) may execute a client program related to a hardware component of the sharer device after the configuration of the hardware component is completed.
- the electronic device (101) may transmit a request to the sharer device to execute a server program related to a hardware component. In one embodiment, after execution of the client program (or configuration of the hardware component) is completed, the electronic device (101) may transmit a request to the sharer device to execute a server program related to the hardware component. In one embodiment, the electronic device (101) may transmit a request to execute a server program to connect the sharer device to a client program. According to an embodiment, the request to execute the server program may include a binding request between the server program and the client program.
- the electronic device (101) may receive a response to an execution request from the sharer device.
- the response to the execution request may include communication connection information between the client program and the server program. The operation of establishing a communication connection between the server program and the client program may be described below with reference to FIG. 7A.
- the electronic device (101) may activate (or load (e.g., INSMOD)) a (virtual) device driver associated with a hardware component.
- activating (or loading (e.g., INSMOD)) a (virtual) device driver associated with a hardware component may include creating a (kernel) object representing the hardware component in the kernel layer.
- the electronic device (101) may activate (or load (e.g., INSMOD)) a single (virtual) device driver associated with a hardware component when the electronic device (303) shares multiple hardware components of the same type (e.g., one or more front cameras, and/or one or more rear cameras).
- a single (virtual) device driver associated with a hardware component when the electronic device (303) shares multiple hardware components of the same type (e.g., one or more front cameras, and/or one or more rear cameras).
- the electronic device (101) may register a hardware component with the device manager based on the execution of a client program and the activation (or loading) of a (virtual) device driver.
- a device list of hardware components actually included in the electronic device (101) and hardware components shared from a sharer device may be provided to the application (146) through the device manager.
- the device manager may be a program for managing the hardware component.
- the hardware component is a camera
- the device manager may be a camera manager.
- the device manager may be a display manager.
- the present invention is not limited thereto.
- a list of devices including multiple hardware components may be provided to the application (146) as the hardware components are registered with the device manager.
- the electronic device (101) may obtain a request for a hardware component shared from an application (146). In one embodiment, the electronic device (101) may obtain the request from a client program running on a recipient device. In one embodiment, the request may include execution (or control) (or access) of the hardware component. For example, if the hardware component is a camera, the request may include taking a picture through the camera. For example, if the hardware component is a speaker and/or a display, the request may include outputting media through the speaker and/or the display (e.g., outputting through the speaker and/or outputting through the display). For example, if the hardware component is a storage, the request may include reading and/or writing data through the storage, but is not limited thereto.
- the electronic device (101) can transmit a request from an application (146) to a client program through a device manager. In one embodiment, the electronic device (101) can transmit the request transmitted to the client program to a server program running on a sharer device.
- the electronic device (101) can obtain a response from the server program indicating an execution result (or control result) (or access result) of a hardware component.
- the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to the application (146) through a client program and/or a device manager.
- the electronic device (101) may, while executing (or controlling) (or accessing) the hardware components of the sharer device through a client program, display data obtained from the hardware components of the sharer device and/or a UI for controlling the hardware components (e.g., screen (805) of FIG. 8b).
- the electronic device (101) and the electronic devices (303, 305, 307) can utilize hardware components provided by other electronic devices as their own hardware components.
- the electronic device (101) that has shared a hardware component can register the hardware component in the framework of the electronic device (101) so that the application (146) of the electronic device (101) can recognize the hardware component.
- the electronic device (101) and the electronic devices (303, 305, 307) can reduce the limitations of the hardware components of the electronic device (101) used by the user by enabling the sharing of hardware components without installing a dedicated application for communication.
- FIG. 4A is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
- Fig. 4a can be explained with reference to Figs. 1 and 3.
- the electronic device (303) can set up sharing of the camera to act as a camera sharer. For example, based on an input to a visual object (415) located in an area (411) for setting up sharing of the camera, the electronic device (303) can activate or deactivate sharing of the camera.
- the visual object (415) can be a toggle switch for selecting one of two options (e.g., activating sharing and deactivating sharing).
- the electronic device (303) may broadcast an advertising packet indicating that sharing is enabled via the first communication circuit (393) based on sharing being enabled.
- FIG. 4b is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
- Fig. 4b can be explained with reference to Figs. 1 and 3.
- the electronic device (303) may set sharing of at least one of a plurality of hardware components in order to operate as a sharer of the hardware components.
- the setting screen (405) may include a text object (421) indicating that it is a screen for setting sharing of a hardware component, an area (425) for guiding sharing settings, and areas (431, 441, 451, 461, and 471) for setting a plurality of sharable hardware components.
- the present invention is not limited thereto.
- the electronic device (303) may identify a plurality of shareable hardware components through hardware resource initialization. For example, the electronic device (303) may display the identified plurality of hardware components in areas (431, 441, 451, 461, and 471).
- the electronic device (303) can determine whether to share each of the plurality of hardware components based on user input for visual objects (435, 445, 455, 465, and 475) located in areas (431, 441, 451, 461, and 471). For example, based on input for visual object (435) located in area (431) for setting sharing of storage, the electronic device (303) can activate or deactivate sharing of storage. For example, based on input for visual object (445) located in area (441) for setting sharing of speaker, the electronic device (303) can activate or deactivate sharing of speaker. For example, based on an input to a visual object (455) located in an area (451) for setting up sharing of a camera, the electronic device (303) can activate or deactivate sharing of the camera.
- the electronic device (303) can activate or deactivate sharing of the keyboard. For example, based on an input to a visual object (475) located in an area (471) for setting up sharing of a display, the electronic device (303) can activate or deactivate sharing of the display.
- the electronic device (303) may broadcast an advertising packet indicating that sharing is enabled via the first communication circuit (393) based on sharing being enabled.
- FIG. 5A is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
- Fig. 5a can be explained with reference to Figs. 1 and 3.
- the electronic device (101) may scan, via the first communication circuit (391), for an advertising packet indicating that sharing is enabled based on the sharing being enabled. In one embodiment, the electronic device (101) may display one or more electronic devices sharing the camera in a list (541) while sharing is enabled.
- FIG. 5b is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
- Fig. 5b can be explained with reference to Figs. 1 and 3.
- the electronic device (101) may set sharing of at least one of a plurality of hardware components in order to operate as a recipient of the hardware components.
- the setting screen (505) may include a text object (551) indicating that it is a screen for setting sharing of a hardware component, an area (555) for guiding sharing settings, and areas (561, 571, 581) for setting a plurality of sharable hardware components.
- the present invention is not limited thereto.
- the electronic device (101) can identify a plurality of hardware components that can be shared through hardware resource initialization. For example, the electronic device (101) can display the identified plurality of hardware components in areas (561, 571, 581).
- the plurality of hardware components that can be shared may be hardware components in which a client program and/or a device driver for each of the plurality of hardware components exists.
- the electronic device (101) additionally acquires (or downloads) a client program and/or a device driver, the plurality of hardware components that can be shared may be further added.
- the electronic device (101) can determine whether to share each of a plurality of hardware components based on user input to visual objects (565, 575, and 585) located in areas (561, 571, and 581). For example, based on an input to a visual object (565) located in an area (561) for setting sharing of storage, the electronic device (101) can activate or deactivate sharing of storage. For example, based on an input to a visual object (575) located in an area (571) for setting sharing of a speaker, the electronic device (101) can activate or deactivate sharing of the speaker. For example, based on an input to a visual object (585) located in an area (581) for setting sharing of a camera, the electronic device (101) can activate or deactivate sharing of a camera.
- the electronic device (101) may scan, via the first communication circuit (391), an advertising packet indicating that sharing is enabled based on sharing being enabled.
- FIG. 6A is a diagram illustrating operations for advertising and scanning between electronic devices according to one embodiment.
- the electronic device (101) may activate a sharing function.
- the electronic device (101) may activate the sharing function to share at least one hardware component.
- the electronic device (101) may activate the sharing function to share at least one hardware component selected from among a plurality of hardware components that may be shared.
- the electronic device (303) may activate a sharing function.
- the electronic device (303) may activate the sharing function to share at least one hardware component.
- the electronic device (303) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
- the electronic device (305) may activate a sharing function.
- the electronic device (305) may activate the sharing function to share at least one hardware component.
- the electronic device (305) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
- the electronic device (307) may activate a sharing function.
- the electronic device (307) may activate the sharing function to share at least one hardware component.
- the electronic device (307) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
- the electronic device (101) may scan an advertising packet.
- the electronic device (101) may scan an advertising packet indicating that sharing is enabled through the first communication circuit (391) based on the sharing being enabled.
- the electronic device (101) may periodically scan, via the first communication circuit (391), an advertising packet including a field (e.g., a continuity LTV field) related to a shared function (or MCF). In one embodiment, the electronic device (101) may periodically scan an advertising packet including user information (or, designated account information) (or, designated account ID) specified in the continuity LTV field. In one embodiment, the electronic device (101) may periodically scan an advertising packet having user information that satisfies a sharing condition.
- a field e.g., a continuity LTV field
- the electronic device (101) may periodically scan an advertising packet including user information (or, designated account information) (or, designated account ID) specified in the continuity LTV field. In one embodiment, the electronic device (101) may periodically scan an advertising packet having user information that satisfies a sharing condition.
- the electronic device (101) may periodically scan for advertisement packets that include information indicating that the sharing function is activated in another field (e.g., another continuity LTV field (e.g., a ClientHandlerContext field)) related to the sharing function (or MCF) among the continuity LTV fields.
- another continuity LTV field e.g., a ClientHandlerContext field
- the electronic device (101) may periodically scan for advertisement packets in which a specified value (e.g., 6) is entered in a specified item (e.g., AppID) of another field related to the sharing function of the advertisement packet.
- the electronic device (303) may broadcast an advertising packet.
- the electronic device (303) may broadcast an advertising packet indicating that sharing is activated through the first communication circuit (393) based on the sharing being activated.
- the electronic device (305) may broadcast an advertising packet.
- the electronic device (305) may broadcast an advertising packet indicating that sharing is enabled through the first communication circuit (395) based on sharing being enabled.
- the electronic device (307) may broadcast an advertising packet.
- the electronic device (307) may broadcast an advertising packet indicating that sharing is enabled through the first communication circuit (397) based on sharing being enabled.
- Advertising packets broadcast via operations 623, 625, and/or 627 may include an LTV structure for flags and an LTV structure for broadcasting manufacturer-specific data. Advertising packets broadcast via operations 623, 625, and/or 627 may include user information (or account information) (or account ID). Advertising packets broadcast via operations 623, 625, and/or 627 may include information indicating that a sharing function is enabled.
- the electronic device (101) can identify a hardware component.
- the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) to the sharer devices (e.g., electronic devices (303, 305, 307)) through the first communication circuit (391) based on receiving a designated advertisement packet.
- the electronic device (101) may transmit a scan request requesting performance information of at least one hardware component.
- the electronic device (101) may receive a packet (e.g., SCAN_RSP) including performance information in response to the scan request from the sharer devices (e.g., electronic devices (303, 305, 307)).
- the electronic device (101) may identify a hardware component shared by each of the sharer devices (e.g., electronic devices (303, 305, 307)) based on the packet (e.g., SCAN_RSP).
- the electronic device (101) may display a hardware component.
- the electronic device (101) may display a visual object representing a searched sharer on a UI (e.g., screen (500) of FIG. 5A) for setting the sharing function, based on whether the hardware component shared by the sharer device corresponds to a hardware component for which the electronic device (101) has activated the sharing function.
- a UI e.g., screen (500) of FIG. 5A
- FIG. 6b is a diagram illustrating operations of broadcasting an advertising packet in electronic devices according to one embodiment.
- FIG. 6B may be described with reference to FIGS. 1 to 6A.
- the operations of FIG. 6B may be included in operations 613 and 623 of FIG. 6A.
- the operations of FIG. 6B may be included in operations 615 and 625 of FIG. 6A.
- the operations of FIG. 6B may be included in operations 617 and 627 of FIG. 6A.
- connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (303), but are not limited thereto.
- the connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (305).
- the connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (307).
- the operations of FIG. 6b may be performed based on the activation of the sharing function of a hardware component for operating as a sharer.
- the connection manager (601) may request a bind from the MCF (603).
- the connection manager (601) may request a bind from the MCF (603) to connect an application (or process) related to sharing of hardware components to a network.
- the MCF (603) may, in response to a bind request, establish a communication connection between an application (or process) related to sharing of hardware components and the MCF (603).
- the communication between the application (or process) and the MCF (603) may be inter-process communication (e.g., socket communication).
- the MCF (603) may return an instance to the connection manager (601).
- the instance may include, but is not limited to, identification information of the MCF (603) and/or class information.
- the MCF (603) may broadcast an advertisement packet.
- the MCF (603) may broadcast an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled via the first communication circuit (391).
- FIG. 6c can be described with reference to FIGS. 1 to 6b.
- the operations of FIG. 6c can be included in operations 611, 621, and 631 of FIG. 6a.
- FIG. 6c The operations of FIG. 6c can be performed based on the activation of the shared function of the hardware component for operating as a receiver.
- MCF may scan advertising packets.
- the electronic device (101) may execute a client process.
- the electronic device (101) may execute a client program related to a hardware component of a sharer device (e.g., electronic device (303)) after the configuration of the hardware component is completed.
- a sharer device e.g., electronic device (303)
- the electronic device (101) may request the shared device to execute a server process.
- the electronic device (101) may transmit a request to the shared device to execute a server program related to the hardware component.
- the request to execute the server program may include a binding request between the server program and the client program.
- the electronic device (303) may, in response to an execution request, establish a communication connection between a running server program and a client program running on a recipient device (e.g., the electronic device (101)).
- a recipient device e.g., the electronic device (101)
- the electronic device (303) may notify the electronic device (101) that the connection is complete.
- the electronic device (101) and the electronic device (303) can share hardware components.
- the electronic device (101) may obtain a request for a hardware component shared from an application (146). In one embodiment, the electronic device (101) may obtain a request from a client program running on a recipient device.
- the electronic device (101) may transmit a request from an application (146) to a client program through a device manager. In one embodiment, the electronic device (101) may transmit the request transmitted to the client program to a server program running on the electronic device (303).
- the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to the application (146) through a client program and/or a device manager.
- FIG. 7b is a diagram illustrating operations for setting performance information of hardware components between electronic devices according to one embodiment.
- FIG. 7B can be described with reference to FIGS. 1 to 6C.
- the operations of FIG. 7B can be performed after operations 631 or 641 of FIG. 6A.
- the operations of FIG. 7B can be performed after operation 667 of FIG. 6C.
- the operations of FIG. 7B can be performed before operation 711 of FIG. 7A. However, this is not limited thereto.
- the operations of FIG. 7B can be performed after operation 741 of FIG. 7A.
- the electronic device (303) may transmit performance information of a hardware component for which a sharing function is enabled to the electronic device (101).
- the electronic device (303) may broadcast a media configuration specification message (e.g., MediaConfigSpec) including performance information of the hardware component to the electronic device (101) via the first communication circuit (393).
- MediaConfigSpec a media configuration specification message
- the electronic device (101) may transmit performance setting information of a hardware component with a shared function enabled.
- the electronic device (101) may determine configuration information of a hardware component based on a media configuration specification message (e.g., MediaConfigSpec) including performance information. In one embodiment, the electronic device (101) may transmit a media configuration message (e.g., MediaConfig) including the determined configuration information to the electronic device (303) via the first communication circuit (391).
- a media configuration specification message e.g., MediaConfigSpec
- the electronic device (303) may set the performance of a hardware component with a shared function enabled. In one embodiment, the electronic device (303) may change the settings of the hardware component in response to a media configuration message (e.g., MediaConfig).
- a media configuration message e.g., MediaConfig
- the electronic device (303) may report to the electronic device (101) the completion of setting the performance for the hardware component for which the sharing function is enabled.
- the electronic device (303) may transmit a media configuration message (e.g., MediaConfig) to the electronic device (101) indicating that the configuration of the hardware component has been changed.
- a media configuration message e.g., MediaConfig
- FIG. 8A is a diagram illustrating an example of a screen displayed during sharing of hardware resources in another electronic device, according to one embodiment.
- Fig. 8a can be explained with reference to Fig. 1 and Fig. 7b.
- the electronic device (303) may display a screen (800) including a background area (810) and a UI (820) indicating that the camera is shared during camera sharing (e.g., sharing the camera with the electronic device (101).
- the screen (800) may be a screen for indicating the sharing status of the camera.
- the background area (810) may display information related to the camera.
- the electronic device (303) may display a preview image of an image acquired by the camera in a designated state (e.g., a blurred state) on the background area (810).
- a designated state e.g., a blurred state
- the UI (820) may include an object (e.g., pause) to stop sharing the camera.
- an object e.g., pause
- the electronic device (303) may stop sharing the camera based on a user input.
- the user input to stop sharing the camera may include an input to an object (e.g., pause or end) of the UI (820) indicating that the camera is being shared.
- the electronic device (303) may stop transmitting data acquired through the camera.
- the electronic device (303) may stop acquiring data through the camera.
- the electronic device (303) may stop transmitting data acquired through the camera and exit the screen (800).
- the electronic device (303) can stop acquiring data through the camera and exit the screen (800).
- the electronic device (303) exiting the screen (800) may indicate that the electronic device (303) displays a screen other than the screen (800) (e.g., a home screen, a lock screen, or a screen of another application).
- the electronic device (303) can deactivate a sharing function (program and/or device driver).
- the electronic device (303) can transmit a signal indicating that the sharing function (program and/or device driver) is deactivated to the electronic device (101).
- the electronic device (101) can deactivate the sharing function (program and/or device driver) based on the signal indicating that the sharing function (program and/or device driver) is deactivated.
- a user input to stop sharing the camera may include, but is not limited to, an input to leave the screen (800) (e.g., an input to switch to the home screen, or an input to switch applications).
- an input to leave the screen (800) e.g., an input to switch to the home screen, or an input to switch applications.
- the electronic device (303) may identify a notification while sharing the camera. For example, based on the identification of the notification, the electronic device (303) may display a UI (830) indicating the notification on the screen (803).
- the notification may include a notification indicating receipt of a call request, but is not limited thereto.
- the electronic device (303) may stop or pause sharing of the camera based on a user input to the UI (830), but is not limited thereto.
- FIG. 8b is a diagram illustrating an example of a screen displayed during sharing of hardware resources in an electronic device according to one embodiment.
- Fig. 8b can be explained with reference to Fig. 1 and Fig. 7b.
- the electronic device (101) may display a screen (805) including an area (840) for displaying a preview image obtained from the camera during camera sharing (e.g., while sharing a camera from the electronic device (303)), and an area (850) for controlling the camera.
- the screen (805) may be a screen for displaying a sharing status of the camera.
- the area (850) may include objects (851, 853, 855, 857, and 859) for selecting one or more functions related to the camera.
- one or more functions related to the camera may include image effects that the camera can provide from the performance information of the hardware component.
- the image effects that the camera can provide may include a background blur function (851) for applying a blur effect to an area other than the subject (or, a focal length equal to the subject).
- the image effects that the camera can provide may include a face focus function (853) for automatically detecting a designated subject (e.g., a human face) and automatically adjusting focus and exposure based on the detected subject.
- the image effects that the camera can provide may include an automatic framing function (855) for automatically adjusting the composition based on the subject (or, the person taking the picture) (or, the subject of the picture).
- the image effects that the camera can provide may include a high dynamic range (HDR) function (857) for improving contrast ratio (e.g., backlight compensation).
- HDR high dynamic range
- one or more functions related to the camera may include a function for switching (or changing) the camera.
- the electronic device (101) may switch the camera for displaying a preview image in an area (840) of the screen (805) among cameras registered in the electronic device (101) (e.g., an actual camera of the electronic device (101) and a camera shared by the electronic device (303).
- the electronic device (101) may stop sharing a hardware component based on a user input.
- the user input to stop sharing a hardware component may include, but is not limited to, an input to leave the screen (805) (e.g., an input to switch to the home screen or an input to switch applications).
- FIG. 9 is a diagram illustrating an example of a program architecture of electronic devices according to one embodiment.
- the program architecture (900) of FIG. 9 may represent the program architecture of a recipient device (or guest device) (e.g., electronic device (101)), and the program architecture (905) may represent the program architecture of a sharer device (or host device) (e.g., electronic devices (303, 305, 307)).
- a recipient device or guest device
- the program architecture (905) may represent the program architecture of a sharer device (or host device) (e.g., electronic devices (303, 305, 307)).
- the program architecture (905) may include an application layer (920), a framework layer (940), a HAL (960), and a kernel layer (980).
- the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003).
- the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9.
- the resource holder (1002) may be included in the MCF (947) of FIG. 9.
- the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
- the resource handler (1001) may obtain a message (e.g., intent, listener) indicating that device information (e.g., hardware component) has changed.
- a message e.g., intent, listener
- device information e.g., hardware component
- the resource handler (1001) may request a resource update from the resource holder (1002).
- the resource handler (1001) may request the resource holder (1002) to update the resources of a hardware component whose device information has changed.
- updating the resources may include adding, deleting, and/or changing the resources.
- the resource handler (1001) may request the communication manager (1003) to update the resource context.
- the resource context may include, but is not limited to, performance information of hardware components and/or cluster information.
- the communication manager (1003) may broadcast an advertisement packet for updating the resource context.
- FIG. 10c is a diagram illustrating operations of an electronic device to update a resource context according to one embodiment.
- the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006).
- the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9.
- the resource holder (1005) may be included in the MCF (937) of FIG. 9.
- the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
- the communication manager (1006) may receive an advertisement packet.
- the communication manager (1006) may receive an advertisement packet for updating a resource context.
- the communication manager (1006) may notify the resource handler (1004) of a change in context.
- the communication manager (1006) may notify the resource handler (1004) that it has received an advertisement packet for updating the resource context.
- the resource handler (1004) may request the resource holder (1005) to update the resource.
- the resource handler (1004) may request the resource holder (1005) to update the resource based on the advertisement packet.
- FIG. 10d is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
- the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006).
- the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9.
- the resource holder (1005) may be included in the MCF (937) of FIG. 9.
- the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
- the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003).
- the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9.
- the resource holder (1002) may be included in the MCF (947) of FIG. 9.
- the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
- the communication manager (1006) may receive an advertisement packet.
- the communication manager (1006) may receive an advertisement packet for updating a resource context.
- the communication manager (1006) may notify the resource handler (1004) of a change in context.
- the communication manager (1006) may notify the resource handler (1004) that it has received an advertisement packet for updating the resource context.
- the resource handler (1004) may request a resource from the resource handler (1001).
- the resource handler (1004) may request a resource from the resource handler (1001) if a resource for a hardware component of the electronic device (303) is not identified (in the advertisement packet).
- the resource handler (1001) may pass a resource to the resource handler (1004).
- the resource handler (1001) may pass a resource in a specified format (e.g., a JSON string format) to the resource handler (1004).
- the resource handler (1004) may request a resource update from the resource holder (1005).
- the resource handler (1004) may request a resource update from the resource holder (1005) based on the resource acquired from the resource handler (1001).
- FIG. 10e is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
- the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006).
- the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9.
- the resource holder (1005) may be included in the MCF (937) of FIG. 9.
- the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
- the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003).
- the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9.
- the resource holder (1002) may be included in the MCF (947) of FIG. 9.
- the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
- the resource handler (1004) may request a resource from the resource handler (1001). For example, if a sequence included in an advertisement packet of the electronic device (303) has changed, the resource handler (1004) may request a resource from the resource handler (1001).
- the sequence may be included as part of the identification information in a packet including performance information (or resources).
- the resource handler (1001) may request a profile from the resource holder (1002).
- the resource handler (1001) may request a profile related to a hardware component from the resource holder (1002).
- the resource holder (1002) can pass the profile to the resource handler (1001).
- the resource handler (1001) may pass a resource to the resource handler (1004).
- the resource handler (1001) may pass a resource identified based on a profile to the resource handler (1004).
- the resource handler (1004) may request a resource update from the resource holder (1005).
- the resource handler (1004) may request a resource update from the resource holder (1005) based on the resource acquired from the resource handler (1001).
- FIG. 11 is a diagram illustrating an example of a relationship between processes of electronic devices according to one embodiment.
- the hardware resource controller (1113) of the electronic device (101) may be included in the device sharing APP (913) of FIG. 9.
- at least one client among the clients (1115, 1117, 1119) of the electronic device (101) may be included in the device sharing APP (913) of FIG. 9.
- the hardware resource controller (1113) and the camera client (1115) may be included in the device sharing APP (913) of FIG. 9.
- the hardware resource controller (1113) and the storage client (1117) may be included in the device sharing APP (913) of FIG.
- the hardware resource controller (1113) and the audio client (1119) may be included in the device sharing APP (913) of FIG. 9.
- each of the clients (1115, 1117, 1119) may include multiple programs.
- the camera client (1115) may include programs for a virtual camera driver (1121), a shared memory (1123), and a data manager (1125).
- the virtual camera driver (1121) may include information about a camera driver (1131) and/or a media source (1135).
- the data manager (1125) may include information about a manager (1141), a decoder (1143), a utility (1145), and/or a command (CMD) (1147).
- the hardware resource controller (1153) of the electronic device (303) may be included in the device sharing APP (923) of FIG. 9.
- at least one of the servers (1155, 1157, 1159) of the electronic device (303) may be included in the device sharing APP (923) of FIG. 9.
- the hardware resource controller (1153) and the camera server (1155) may be included in the device sharing APP (923) of FIG. 9.
- the hardware resource controller (1153) and the storage server (1157) may be included in the device sharing APP (923) of FIG.
- the hardware resource controller (1153) and the audio server (1159) may be included in the device sharing APP (923) of FIG. 9.
- each of the servers (1155, 1157, 1159) can be connected to each of the clients (1115, 1117, 1119) of the electronic device (101) through a communication connection via the MCFs (937, 947).
- Each of the servers (1155, 1157, 1159) may include a plurality of programs to provide functions corresponding to each of the clients (1115, 1117, 1119) of the electronic device (101).
- the camera server (1155) may include programs for data management (1161), CONFIG (1163), frame queue (1165), and RAW FEED API (application programming interface) (1167).
- data management (1161) may include information about the manager (1171), the encoder (1173), the utility (1175), and/or the CMD (1177).
- CONFIG (1163) may include setting information.
- the frame queue (1165) may include images acquired through the camera.
- the RAW FEED API (1167) may include an API for providing camera raw frame data.
- FIG. 12 is a flowchart illustrating the operation of an electronic device according to one embodiment.
- the electronic device (101) may receive an advertising packet.
- the electronic device (101) may receive an advertising packet indicating that sharing is activated.
- the electronic device (101) may identify a hardware component based on an advertisement packet.
- an advertisement packet indicating that sharing is enabled may include information about a hardware component for which sharing is enabled in the electronic device (303) that transmitted the advertisement packet.
- the electronic device (101) may identify a hardware component based on receiving information about a hardware component for which sharing is enabled.
- the electronic device (101) may activate a driver corresponding to a hardware component.
- the electronic device (101) may execute a client program corresponding to a hardware component for which sharing is enabled.
- the electronic device (101) may request the electronic device (303) to execute a server program corresponding to the client program.
- the electronic device (101) may activate (or load) the driver corresponding to the hardware component based on receiving a response from the electronic device (303) indicating that execution of the server program has been completed.
- the electronic device (101) may keep a driver corresponding to a hardware component for which sharing is disabled in a disabled state based on receiving an advertising packet indicating that sharing is disabled. In one embodiment, the electronic device (101) may keep a driver corresponding to a hardware component in a disabled state based on receiving an advertising packet while sharing of the hardware component of the electronic device (303) is disabled.
- FIG. 13 is a diagram illustrating an example of different orientations and/or aspect ratios of electronic devices according to one embodiment.
- FIG. 13 may illustrate a situation in which at least one of the orientation or aspect ratio of the electronic device (101) and the electronic device (303) is different in a situation in which the camera of the electronic device (303) is shared with the electronic device (101).
- a situation (1301) of FIG. 13 may represent an image captured by a camera of the electronic device (303) while the orientation of the electronic device (303) is landscape.
- the image captured by the camera of the electronic device (303) may be displayed on a display area of a display of the electronic device (101) (e.g., a display module (160) of FIG. 1).
- the orientation and aspect ratio of the electronic device (303) or an image captured by the camera of the electronic device (303)
- the image captured by the camera of the electronic device (303) may be displayed on the electronic device (101) (or the display area of the electronic device (101)) without additional image processing.
- an area (1315) of the image corresponding to the orientation (i.e., portrait) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)).
- an area (1315) of an image corresponding to the orientation (i.e., portrait) and aspect ratio (e.g., 9:16) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)).
- a situation (1305) of FIG. 13 may represent an image captured by a camera of the electronic device (303) while the orientation of the electronic device (303) is a portrait.
- the image captured by the camera of the electronic device (303) may be displayed on a display area of a display of the electronic device (101) (e.g., a display module (160) of FIG. 1).
- the orientation and aspect ratio of the electronic device (303) or an image captured by the camera of the electronic device (303)
- the image captured by the camera of the electronic device (303) may be displayed on the electronic device (101) (or the display area of the electronic device (101)) without additional image processing.
- an area (1321) of an image corresponding to the orientation (i.e., landscape) of the electronic device (101) (or the display area of the electronic device (101)) can be displayed on the electronic device (101) (or the display area of the electronic device (101)).
- an area (1321) of an image corresponding to the orientation (i.e., landscape) of the electronic device (101) can be displayed on the electronic device (101) (or the display area of the electronic device (101)).
- an area (1315) of an image corresponding to the orientation (i.e., portrait) and aspect ratio (e.g., 16:9) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)).
- a rotated image may be displayed on the electronic device (101) (or the area displayed on the electronic device (101).
- a first direction e.g., clockwise
- a second direction e.g., counterclockwise
- a rotated image may be displayed on the electronic device (101) (or the area displayed on the electronic device (101)).
- a rotated image may be displayed on the electronic device (101) (or an area displayed on the electronic device (101)).
- this is not limited thereto.
- a method may be required to correspond the orientation and/or aspect ratio of the electronic device (101) (or the area displayed on the electronic device (101)) to the orientation and/or aspect ratio of the electronic device (303) (or the image captured by the camera).
- FIG. 14a is a flowchart illustrating the operation of an electronic device according to one embodiment.
- FIG. 14a may be performed in parallel with the operations of FIG. 14b, but are not limited thereto. After the operations of FIG. 14a are performed, the operations of FIG. 14b may be performed. After the operations of FIG. 14b are performed, the operations of FIG. 14a may be performed.
- the electronic device (101) may obtain orientation information of the electronic device (101) and orientation information of the electronic device (303).
- the electronic device (101) may obtain orientation information of the electronic device (303) from the electronic device (303).
- the electronic device (101) may request and obtain orientation information from the electronic device (303), periodically receive orientation information from the electronic device (303), or obtain orientation information of the electronic device (303) based on a change in the orientation of the electronic device (303).
- the electronic device (101) may obtain orientation information of the electronic device (101) based on a sensor (e.g., the sensor module (176) of FIG. 1) (e.g., an acceleration sensor) of the electronic device (101).
- a sensor e.g., the sensor module (176) of FIG. 1
- an acceleration sensor e.g., an acceleration sensor
- the electronic device (101) can determine whether the orientations are different. In one embodiment, the electronic device (101) can determine whether the orientations of the electronic device (101) and the orientations of the electronic device (303) are different from each other. In one embodiment, the electronic device (101) can determine whether the orientations of an area displayed on the electronic device (101) and the orientations of an image captured by a camera of the electronic device (303) are different from each other.
- the electronic device (101) may perform operation 1430. In operation 1420, based on the determination that the orientations are the same, the electronic device (101) may terminate the operation of FIG. 14A.
- the electronic device (101) may rotate the image.
- the electronic device (101) may rotate the image by a rotation amount (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other.
- the electronic device (101) may rotate the image by a rotation amount so that the orientation of the area displayed on the electronic device (101) and the orientation of the image captured by the camera of the electronic device (303) correspond to each other.
- FIG. 14b is a flowchart illustrating the operation of an electronic device according to one embodiment.
- FIG. 14b may be performed in parallel with the operations of FIG. 14a, but are not limited thereto. After the operations of FIG. 14b are performed, the operations of FIG. 14a may be performed. After the operations of FIG. 14a are performed, the operations of FIG. 14b may be performed.
- the electronic device (101) may obtain aspect ratio information of the electronic device (101) and aspect ratio information of the electronic device (303).
- the electronic device (101) may obtain aspect ratio information of the electronic device (303) from the electronic device (303).
- the electronic device (101) may request and obtain aspect ratio information from the electronic device (303), or may obtain the aspect ratio of the electronic device (303) based on a change in orientation of the electronic device (303).
- the electronic device (101) may obtain information about an aspect ratio of an area displayed on the electronic device (101) and an aspect ratio of an image captured through a camera of the electronic device (303).
- the electronic device (101) can determine whether the aspect ratios are different. In one embodiment, the electronic device (101) can determine whether the aspect ratio of an area displayed on the electronic device (101) and the aspect ratio of an image captured by a camera of the electronic device (303) are different from each other.
- the electronic device (101) may perform operation 1460.
- the electronic device (101) may terminate the operation of FIG. 14b.
- the electronic device (101) may crop the image.
- the electronic device (101) may crop the image captured by the camera of the electronic device (303) to an area displayed on the electronic device (101).
- FIG. 15A is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
- the electronic device (303) can identify camera-related information.
- the camera-related information may include orientation information of the electronic device (303).
- the orientation information may indicate how much the electronic device (303) (or the camera of the electronic device (303)) is rotated in a specified direction (e.g., clockwise or counterclockwise) from a normal state (e.g., portrait state).
- the electronic device (303) may identify the orientation of the electronic device (303) based on a sensor of the electronic device (303) (e.g., the sensor module (176) of FIG. 1) (e.g., an acceleration sensor).
- the camera-related information may include size information (or resolution information) (or aspect ratio information) of an image captured by the camera of the electronic device (303).
- the electronic device (303) may transmit camera-related information to the electronic device (101).
- the electronic device (303) may transmit camera-related information to the electronic device (101) based on a change in the camera-related information of the electronic device (303).
- the electronic device (303) may transmit orientation information to the electronic device (101) based on a change in the orientation of the electronic device (303).
- the electronic device (303) may transmit size information (or resolution information) (or aspect ratio information) to the electronic device (101) based on a change in the size information (or resolution information) (or aspect ratio information) of an image captured by a camera of the electronic device (303).
- the electronic device (101) can compare camera-related information.
- the electronic device (101) can compare the orientation of the electronic device (101) with the orientation of the electronic device (303). In one embodiment, the electronic device (101) can compare the orientation of an area displayed on a recipient device (e.g., electronic device (101)) with the orientation of an image captured through a camera of a sharer device (e.g., electronic device (303)).
- a recipient device e.g., electronic device (101)
- a sharer device e.g., electronic device (303)
- the electronic device (101) can compare the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) with the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303). In one embodiment, the electronic device (101) can compare the size information (or resolution information) (or aspect ratio information) of the area displayed on the recipient device with the size information (or resolution information) (or aspect ratio information) of an image captured through a camera of the sharer device.
- the electronic device (101) can determine whether image processing is required.
- the electronic device (101) can determine that image processing is required when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other.
- the electronic device (101) can determine that image processing is required when the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) and the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303) are different from each other.
- the electronic device (101) may perform operation 1550. In operation 1540, based on determining that image processing is not required, the electronic device (101) may perform operation 1560.
- the electronic device (101) may process an image.
- the image processing may include cropping the image and/or rotating the image.
- the electronic device (101) can crop the image acquired by the camera of the sharer device based on the aspect ratio of the camera requested by the receiver device. If the orientations of the electronic device (101) and the orientations of the electronic device (303) are different, the electronic device (101) can crop the image acquired by the camera of the electronic device (303) based on the inverse aspect ratio of the camera requested by the electronic device (101).
- the electronic device (101) may rotate the cropped image by an amount of rotation (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other.
- an amount of rotation e.g., 90 degrees, -90 degrees, or 180 degrees
- the electronic device (101) can display an image. For example, if the electronic device (101) is a receiver device, the electronic device (101) can display an image.
- FIG. 15b is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
- the electronic device (101) may be a sharer device that shares a camera with the electronic device (303), and the electronic device (303) may be a receiver device that uses the camera of the electronic device (101). Substantially simultaneously with the operations of FIG. 15b, the electronic device (101) may acquire an original image through the camera.
- the electronic device (303) may identify camera-related information.
- the camera-related information may include orientation information of the electronic device (303) and/or size information (or resolution information) (or aspect ratio information) of an image captured by the camera of the electronic device (303).
- the electronic device (303) may transmit camera-related information to the electronic device (101).
- the electronic device (303) may transmit camera-related information to the electronic device (101) based on a change in the camera-related information of the electronic device (303).
- the electronic device (101) may compare camera-related information. In one embodiment, the electronic device (101) may compare the orientation of the electronic device (101) with the orientation of the electronic device (303). In one embodiment, the electronic device (101) may compare the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) with the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303).
- the electronic device (101) can determine whether image processing is required. For example, the electronic device (101) can determine that image processing is required when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other. For example, the electronic device (101) can determine that image processing is required when the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) and the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303) are different from each other.
- the electronic device (101) may perform operation 1555. In operation 1545, based on determining that image processing is not required, the electronic device (101) may perform operation 1570.
- the electronic device (101) may process an image.
- the image processing may include cropping the image and/or rotating the image.
- the electronic device (101) can crop an image acquired by the camera of the electronic device (101), which is a sharer device, based on the aspect ratio of the camera requested by the electronic device (303), which is a receiver device. If the orientations of the electronic device (101) and the orientations of the electronic device (303) are different, the electronic device (101) can crop an image acquired by the camera of the electronic device (101) based on the inverse aspect ratio of the camera requested by the electronic device (303).
- the electronic device (101) may rotate the cropped image by an amount of rotation (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other.
- an amount of rotation e.g., 90 degrees, -90 degrees, or 180 degrees
- the electronic device (101) can transmit the processed image to the electronic device (303), which is a receiver device.
- the electronic device (303) can display an image.
- the electronic device (101) may include a communication circuit (391) for BLE (Bluetooth low energy).
- the electronic device (101) may include at least one processor (120) including a processing circuit.
- the electronic device (101) may include a memory (130) that stores instructions and includes one or more storage media. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive an advertising packet for sharing a hardware component of the other electronic device (303) from another electronic device (303) through the communication circuit (391).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to activate a driver (919) for access to the hardware component indicated by the advertising packet based on the advertising packet being received while the sharing of the hardware component of the electronic device (101) is enabled.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to keep the driver (919) in a disabled state based on the advertising packet being received while the sharing of the hardware component of the electronic device (101) is disabled.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify that sharing of the hardware component of the other electronic device (303) is disabled while the driver (919) is activated.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to change the driver (919) to a disabled state in response to identifying that sharing of the hardware component of the other electronic device (303) is disabled.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to execute the client process (1015, 1017, 1019) among the client processes (1015, 1017, 1019) associated with the hardware component and the server processes (1155, 1157, 1159) associated with the hardware component based on the advertisement packet being received while sharing of the hardware component is enabled.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain, through the communication circuit (391), from the other electronic device (303), a signal indicating that the server process (1155, 1157, 1159) executing on the other electronic device (303) is connected to the client process (1015, 1017, 1019).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to register the hardware component with a device manager (935) associated with the hardware component based on obtaining the signal.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to provide a list containing identification information of the hardware components to the application (911) based on identifying a request for a list of types of the hardware components from the application (911).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit a control request to the client process (1015, 1017, 1019) through the device manager (935) based on identifying a control request of the hardware component from an application (911).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit the control request to the client process (1015, 1017, 1019) through the communication circuit (391) to the server process (1155, 1157, 1159).
- the electronic device (101) may include another communication circuit (392) based on a wireless communication technique other than the BLE.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive data acquired by the hardware component from the other electronic device (303) through the other communication circuit (392) while the driver (919) is activated.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain performance information related to the performance of the hardware component from the other electronic device (303) via the communication circuit (391) after the advertisement packet is received while sharing of the hardware component is activated.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), to the other electronic device (303) configuration information for configuring the hardware component based on the performance information.
- the instructions, when individually or collectively executed by the at least one processor (120) may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on the configuration information.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), reception status information indicating a reception status of the data to the other electronic device (303).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on setting information changed based on the reception status information.
- the electronic device (101) may include a display.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display a portion of the image, cropped to correspond to a second aspect ratio, in the area on the display where the image is displayed on the electronic device (101), based on a difference between a first aspect ratio of the image represented by the data and a second aspect ratio of the area on the display where the image is displayed.
- the electronic device (101) may include a display.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display a portion of the image in an area, wherein the portion is rotated to correspond to a second orientation of the image represented by the data, based on a difference between a first orientation of the image and a second orientation of an area on the display in which the image is displayed in the electronic device (101).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify a plurality of hardware components of a specified type based on advertising packets of a plurality of electronic devices received via the communication circuit (391) while the sharing of the hardware components of the electronic device (101) is activated.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to activate the driver (919) for access to the hardware component based on an input for selecting the hardware component of the other electronic device (303) from among the plurality of hardware components of the specified type.
- the electronic device (101) may include other communication circuits (392) based on a wireless communication technique other than the BLE.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit data to be output to the hardware component through the other communication circuits (392) while the driver (919) is activated.
- the electronic device (303) may include a communication circuit (393) for BLE (Bluetooth low energy).
- the electronic device (303) may include at least one processor (311) including a processing circuit.
- the electronic device (303) may include a memory (315) that stores instructions and includes one or more storage media.
- the instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to broadcast an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) via the communication circuit (393).
- the instructions, when individually or collectively executed by the at least one processor (311) may cause the electronic device (303) to obtain, from the other electronic device (101) via the communication circuit (393), an access request for the hardware component indicated by the advertising packet.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to connect a server process (1155, 1157, 1159) associated with the hardware component to a client process (1015, 1017, 1019) associated with the hardware component running on the other electronic device (101), based on obtaining the access request.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), a signal to the other electronic device (101) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) executing on the other electronic device (101).
- the electronic device (303) may include another communication circuit (394) based on a wireless communication technique other than the BLE.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit data acquired by the hardware component to the other electronic device (101) through the other communication circuit (394) while the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019).
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), reception status information indicating a reception status of the data to the other electronic device (303).
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the other communication circuit (394), the data acquired by the hardware component based on setting information changed based on the reception status information.
- the electronic device (303) may include other communication circuits (394) based on a wireless communication technique other than the BLE.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to receive data to be output to the hardware component through the other communication circuits (394) while the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019).
- the method can be performed in an electronic device (101) including a communication circuit (391) for BLE (Bluetooth low energy).
- the method can include an operation of receiving, from another electronic device (303), an advertisement packet for sharing a hardware component of the other electronic device (303) via the communication circuit (391).
- the method can include an operation of activating a driver (919) for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device (101) is activated.
- the method can include an operation of maintaining the driver (919) in a deactivated state based on the advertisement packet being received while the sharing is deactivated.
- the method may include an operation of executing the client process (1015, 1017, 1019) among the client processes (1015, 1017, 1019) associated with the hardware component and the server processes (1155, 1157, 1159) associated with the hardware component based on the advertisement packet being received while sharing of the hardware component is activated.
- the method may include an operation of obtaining, through the communication circuit (391), from the other electronic device (303), a signal indicating that the server process (1155, 1157, 1159) running on the other electronic device (303) is connected to the client process (1015, 1017, 1019).
- the method may include an operation of registering the hardware component with a device manager (935) associated with the hardware component based on obtaining the signal.
- the method can be performed in an electronic device (303) including a communication circuit (393) for BLE (Bluetooth low energy).
- the method can include an operation of broadcasting an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) through the communication circuit (392).
- the method can include an operation of obtaining, from the other electronic device (101) through the communication circuit (392), an access request for the hardware component indicated by the advertisement packet.
- the method can include an operation of connecting a server process (1155, 1157, 1159) related to the hardware component to a client process (1015, 1017, 1019) related to the hardware component running on the other electronic device (101).
- the method may include an operation of transmitting a signal to the other electronic device (101) via the communication circuit (392) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) running on the other electronic device (101).
- a non-transitory computer readable storage medium as described above can store a program including instructions.
- the instructions when individually or collectively executed by at least one processor (120) of an electronic device (101) including a communication circuit (391) for BLE (Bluetooth low energy), can cause the electronic device (101) to receive, through the communication circuit (391), an advertisement packet for sharing a hardware component of the other electronic device (303) from another electronic device (303).
- the instructions when individually or collectively executed by the at least one processor (120), can cause the electronic device (101) to activate a driver (919) for access to the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device (101) is activated.
- the above instructions when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to keep the driver (919) in a disabled state based on the advertisement packet being received while the sharing is disabled.
- a non-transitory computer readable storage medium can store a program including instructions.
- the instructions when individually or collectively executed by at least one processor (311) of an electronic device (303) including a communication circuit (393) for BLE (Bluetooth low energy), can cause the electronic device (303) to broadcast an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) via the communication circuit (393).
- the instructions when individually or collectively executed by the at least one processor (311), can cause the electronic device (303) to obtain, from the other electronic device (101) via the communication circuit (393), an access request for the hardware component indicated by the advertisement packet.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to connect a server process (1155, 1157, 1159) associated with the hardware component to a client process (1015, 1017, 1019) associated with the hardware component running on the other electronic device (101), based on the access request being obtained.
- the instructions when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), a signal to the other electronic device (101) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) running on the other electronic device (101).
- the electronic device (101) may include a communication circuit (391) for wireless communication based on a wireless communication technique, at least one processor (120) including a processing circuit; and a memory (130) storing instructions and including one or more storage media.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, from another electronic device (303) via the communication circuit (391), an advertisement packet including information on a hardware component of the other electronic device (303).
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to change, from a deactivated state to an activated state, a program (919) indicating information that enables access to the hardware component indicated by the advertisement packet, based on at least a portion of the information included in the advertisement packet.
- the instructions when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to change the program (919) from the activated state to the deactivated state based on other information indicating deactivation of sharing of the hardware component of the other electronic device (303) while the program (919) is activated.
- the instructions when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to provide a list containing identification information of the hardware components to the application (911) based on identifying a request for a list of types of the hardware components from the application (911).
- Electronic devices may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
- first,” “second,” or “first” or “second” may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order).
- a component e.g., a first component
- another component e.g., a second component
- functionally e.g., a third component
- module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit.
- a module may be an integral component, or a minimum unit or part of such a component that performs one or more functions.
- a module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)).
- a processor e.g., a processor (120)
- the machine e.g., an electronic device (101)
- the one or more instructions may include code generated by a compiler or code executable by an interpreter.
- the machine-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
- the method according to various embodiments disclosed in the present document may be provided as included in a computer program product.
- the computer program product may be traded as a product between a seller and a buyer.
- the computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., by download or upload) through an application store (e.g., Play Store TM ) or directly between two user devices (e.g., smart phones).
- an application store e.g., Play Store TM
- at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
- each component e.g., a module or a program of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components.
- one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added.
- a plurality of components e.g., a module or a program
- the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration.
- the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Telephone Function (AREA)
Abstract
Description
아래의 설명들은, 하드웨어 자원의 공유를 위한 전자 장치, 방법, 및 비-일시적 컴퓨터 판독 가능 기록 매체에 관한 것이다.The following descriptions relate to electronic devices, methods, and non-transitory computer-readable recording media for sharing hardware resources.
IT 기술이 발전함에 따라, 소형 전자 장치의 사용이 증가하고 있다. 소형 전자 장치는 스마트 폰, 태블릿 PC(tablet PC), PMP(portable multimedia player), 랩톱 PC(laptop personal computer), 및 웨어러블 기기(wearable device)와 같은 장치들을 포함할 수 있다. 소형 전자 장치의 사용이 증가함에 따라, 복수의 소형 전자 장치들을 동일한 공간 내에서 사용하는 상황이 발생하고 있으며, 동일한 공간 내의 복수의 소형 전자 장치들을 통한 연속적이고 통일성 있는 사용자 경험(user experience)에 대한 요구도 늘어나고 있다.As IT technology advances, the use of small electronic devices is increasing. These devices can include smartphones, tablet PCs, portable multimedia players (PMPs), laptop personal computers (PCs), and wearable devices. As the use of small electronic devices increases, situations where multiple small electronic devices are used in the same space are also occurring, and the demand for a continuous and unified user experience across multiple small electronic devices within the same space is also increasing.
전자 장치가 개시된다. 상기 전자 장치는, BLE(Bluetooth low energy)를 위한 통신 회로를 포함할 수 있다. 상기 전자 장치는, 처리 회로를 포함하는 적어도 하나의 프로세서를 포함할 수 있다. 전자 장치는, 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 다른 전자 장치로부터 상기 다른 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 광고 패킷이 상기 전자 장치의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버를 활성화하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버를 비활성화된 상태로 유지하도록 야기할 수 있다. An electronic device is disclosed. The electronic device may include a communication circuit for BLE (Bluetooth low energy). The electronic device may include at least one processor including a processing circuit. The electronic device may include a memory storing instructions and including one or more storage media. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to receive, from another electronic device via the communication circuit, an advertisement packet for sharing a hardware component of the other electronic device. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to activate a driver for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device is enabled. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to keep the driver in a disabled state based on the advertisement packet being received while the sharing was disabled.
전자 장치가 개시된다. 상기 전자 장치는, BLE를 위한 통신 회로를 포함할 수 있다. 전자 장치는, 처리 회로를 포함하는 적어도 하나의 프로세서를 포함할 수 있다. 전자 장치는, 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 다른 전자 장치에게 상기 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 상기 다른 전자 장치로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스를 상기 다른 전자 장치에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스에 연결하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 상기 다른 전자 장치에게, 상기 서버 프로세스가 상기 다른 전자 장치에서 실행되는 상기 클라이언트 프로세스에 연결됨을 나타내는 신호를 송신하도록 야기할 수 있다. An electronic device is disclosed. The electronic device may include a communication circuit for Bluetooth Low Energy (BLE). The electronic device may include at least one processor including a processing circuit. The electronic device may include a memory storing instructions and including one or more storage media. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to broadcast an advertisement packet for sharing a hardware component of the electronic device to another electronic device via the communication circuit. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to obtain, from the other electronic device via the communication circuit, an access request for the hardware component indicated by the advertisement packet. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to connect a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device, based on obtaining the access request. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to transmit, via the communication circuit, a signal to the other electronic device indicating that the server process is connected to the client process running on the other electronic device.
방법이 개시된다. 상기 방법은, BLE를 위한 통신 회로를 포함하는, 전자 장치에서 수행될 수 있다. 상기 방법은, 상기 통신 회로를 통해, 다른 전자 장치로부터 상기 다른 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 패킷이 상기 전자 장치의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버를 활성화하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버를 비활성화된 상태로 유지하는 동작을 포함할 수 있다. A method is disclosed. The method can be performed in an electronic device including a communication circuit for BLE. The method can include receiving, through the communication circuit, an advertisement packet for sharing a hardware component of another electronic device from the other electronic device. The method can include activating a driver for accessing the hardware component indicated by the advertisement packet based on whether the advertisement packet is received while the sharing of the hardware component of the electronic device is activated. The method can include maintaining the driver in a deactivated state based on whether the advertisement packet is received while the sharing is deactivated.
방법이 개시된다. 상기 방법은, BLE를 위한 통신 회로를 포함하는, 전자 장치에서 수행될 수 있다. 상기 방법은, 상기 통신 회로를 통해, 다른 전자 장치에게 상기 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하는 동작을 포함할 수 있다. 상기 방법은, 상기 통신 회로를 통해, 상기 다른 전자 장치로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스를 상기 다른 전자 장치에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스에 연결하는 동작을 포함할 수 있다. 상기 방법은, 상기 통신 회로를 통해, 상기 다른 전자 장치에게, 상기 서버 프로세스가 상기 다른 전자 장치에서 실행되는 상기 클라이언트 프로세스에 연결됨을 나타내는 신호를 송신하는 동작을 포함할 수 있다. A method is disclosed. The method can be performed in an electronic device including a communication circuit for BLE. The method can include broadcasting an advertisement packet for sharing a hardware component of the electronic device to another electronic device through the communication circuit. The method can include obtaining, from the other electronic device through the communication circuit, an access request for the hardware component indicated by the advertisement packet. The method can include connecting a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device based on obtaining the access request. The method can include transmitting, to the other electronic device through the communication circuit, a signal indicating that the server process is connected to the client process running on the other electronic device.
비-일시적 컴퓨터 판독 가능 기록 매체(non-transitory computer readable storage medium)가 개시된다. 상기 비-일시적 컴퓨터 판독 가능 기록 매체는, 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, BLE를 위한 통신 회로를 포함하는 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 다른 전자 장치로부터 상기 다른 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 광고 패킷이 상기 전자 장치의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버를 활성화하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버를 비활성화된 상태로 유지하도록 야기할 수 있다. A non-transitory computer-readable storage medium is disclosed. The non-transitory computer-readable storage medium may store a program including instructions. The instructions, when individually or collectively executed by at least one processor of an electronic device including a communication circuit for BLE, may cause the electronic device to receive, through the communication circuit, an advertisement packet for sharing a hardware component of the other electronic device from another electronic device. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to activate a driver for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device is activated. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to maintain the driver in a deactivated state based on the advertisement packet being received while the sharing is deactivated.
비-일시적 컴퓨터 판독 가능 기록 매체가 개시된다. 상기 비-일시적 컴퓨터 판독 가능 기록 매체는, 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, BLE를 위한 통신 회로를 포함하는 전자 장치의 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 다른 전자 장치에게 상기 전자 장치의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 상기 다른 전자 장치로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스를 상기 다른 전자 장치에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스에 연결하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 상기 다른 전자 장치에게, 상기 서버 프로세스가 상기 다른 전자 장치에서 실행되는 상기 클라이언트 프로세스에 연결됨을 나타내는 신호를 송신하도록 야기할 수 있다. A non-transitory computer-readable recording medium is disclosed. The non-transitory computer-readable recording medium can store a program including instructions. The instructions, when individually or collectively executed by at least one processor of an electronic device including a communication circuit for BLE, can cause the electronic device to broadcast an advertisement packet for sharing a hardware component of the electronic device to another electronic device via the communication circuit. The instructions, when individually or collectively executed by the at least one processor, can cause the electronic device to obtain, from the other electronic device via the communication circuit, an access request for the hardware component indicated by the advertisement packet. The instructions, when individually or collectively executed by the at least one processor, can cause the electronic device to connect a server process associated with the hardware component to a client process associated with the hardware component running on the other electronic device, based on obtaining the access request. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to transmit, via the communication circuit, a signal to the other electronic device indicating that the server process is connected to the client process running on the other electronic device.
도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
도 2는 다양한 실시예에 따른 프로그램을 예시하는 블록도이다.FIG. 2 is a block diagram illustrating a program according to various embodiments.
도 3은 일 실시 예에 따른, 전자 장치를 포함하는 무선 환경의 예를 도시한다.FIG. 3 illustrates an example of a wireless environment including an electronic device, according to one embodiment.
도 4a는 일 실시 예에 따른, 다른 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 4A is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
도 4b는 일 실시 예에 따른, 다른 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 4b is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
도 5a는 일 실시 예에 따른, 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 5A is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
도 5b는 일 실시 예에 따른, 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 5b is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
도 6a는 일 실시 예에 따른, 전자 장치들 간의 광고 및 스캔을 위한 동작들을 예시하는 도면이다. FIG. 6A is a diagram illustrating operations for advertising and scanning between electronic devices according to one embodiment.
도 6b는 일 실시 예에 따른, 전자 장치들에서 광고 패킷을 방송하는 동작들을 예시하는 도면이다. FIG. 6b is a diagram illustrating operations of broadcasting an advertising packet in electronic devices according to one embodiment.
도 6c는 일 실시 예에 따른, 전자 장치에서 광고 패킷을 스캔하는 동작들을 예시하는 도면이다. FIG. 6c is a diagram illustrating operations of scanning an advertising packet in an electronic device according to one embodiment.
도 7a는 일 실시 예에 따른, 전자 장치들 간의 하드웨어 리소스의 공유를 위한 동작들을 예시하는 도면이다. FIG. 7A is a diagram illustrating operations for sharing hardware resources between electronic devices according to one embodiment.
도 7b는 일 실시 예에 따른, 전자 장치들 간의 하드웨어 구성요소의 성능 정보를 설정하기 위한 동작들을 예시하는 도면이다. FIG. 7b is a diagram illustrating operations for setting performance information of hardware components between electronic devices according to one embodiment.
도 8a는 일 실시 예에 따른, 다른 전자 장치에서 하드웨어 리소스의 공유 동안 표시되는 화면의 일 예를 도시하는 도면이다.FIG. 8A is a diagram illustrating an example of a screen displayed during sharing of hardware resources in another electronic device, according to one embodiment.
도 8b는 일 실시 예에 따른, 전자 장치에서 하드웨어 리소스의 공유 동안 표시되는 화면의 일 예를 도시하는 도면이다.FIG. 8b is a diagram illustrating an example of a screen displayed during sharing of hardware resources in an electronic device according to one embodiment.
도 9는 일 실시 예에 따른, 전자 장치들의 프로그램 아키텍처의 일 예를 도시하는 도면이다.FIG. 9 is a diagram illustrating an example of a program architecture of electronic devices according to one embodiment.
도 10a는 일 실시 예에 따른, 다른 전자 장치가 리소스 컨텍스트의 초기화를 요청하는 동작들을 예시하는 도면이다.FIG. 10A is a diagram illustrating operations by which another electronic device requests initialization of a resource context, according to one embodiment.
도 10b는 일 실시 예에 따른, 다른 전자 장치가 리소스 컨텍스트의 갱신을 요청하는 동작들을 예시하는 도면이다.FIG. 10b is a diagram illustrating operations by which another electronic device requests an update of a resource context, according to one embodiment.
도 10c는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트를 갱신하는 동작들을 예시하는 도면이다.FIG. 10c is a diagram illustrating operations of an electronic device to update a resource context according to one embodiment.
도 10d는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트의 갱신을 위한 리소스를 요청하는 동작들을 예시하는 도면이다.FIG. 10d is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
도 10e는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트의 갱신을 위한 리소스를 요청하는 동작들을 예시하는 도면이다.FIG. 10e is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
도 11은 일 실시 예에 따른, 전자 장치들의 프로세스들 간의 관계의 일 예를 도시하는 도면이다.FIG. 11 is a diagram illustrating an example of a relationship between processes of electronic devices according to one embodiment.
도 12는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다. FIG. 12 is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 13은 일 실시 예에 따른, 전자 장치들의 서로 다른 오리엔테이션 및/또는 종횡비의 일 예를 도시하는 도면이다.FIG. 13 is a diagram illustrating an example of different orientations and/or aspect ratios of electronic devices according to one embodiment.
도 14a는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다.FIG. 14a is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 14b는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다.FIG. 14b is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 15a는 일 실시 예에 따른, 전자 장치가 이미지를 처리하는 동작들을 예시하는 도면이다.FIG. 15A is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
도 15b는 일 실시 예에 따른, 전자 장치가 이미지를 처리하는 동작들을 예시하는 도면이다.FIG. 15b is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))과 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include a plurality of artificial neural network layers. The artificial neural network can be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model can additionally or alternatively include a software structure.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO(full dimensional MIMO)), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 664dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 6ms 이하)를 지원할 수 있다.The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for realizing eMBB, a loss coverage (e.g., 664 dB or less) for realizing mMTC, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 6 ms or less for round trip) for realizing URLLC.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다. The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다. According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and/or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199). The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
도 2는 다양한 실시예에 따른 프로그램(140)을 예시하는 블록도(200)이다. 일실시예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(142), 미들웨어(144), 또는 상기 운영 체제(142)에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영 체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드되거나, 또는 사용자에 의해 사용 시 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드되거나 갱신될 수 있다.FIG. 2 is a block diagram (200) illustrating a program (140) according to various embodiments. According to one embodiment, the program (140) may include an operating system (142), middleware (144), or an application (146) executable in the operating system (142) for controlling one or more resources of the electronic device (101). The operating system (142) may include, for example, Android ™ , iOS ™ , Windows ™ , Symbian ™ , Tizen ™ , or Bada ™ . At least some of the programs (140) may be preloaded in the electronic device (101), for example, at the time of manufacturing, or may be downloaded or updated from an external electronic device (e.g., the electronic device (102 or 104), or a server (108)) when used by a user.
운영 체제(142)는 전자 장치(101)의 하나 이상의 시스템 리소스들(예: 프로세스, 메모리, 또는 전원)의 관리(예: 할당 또는 회수)를 제어할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.The operating system (142) may control the management (e.g., allocation or retrieval) of one or more system resources (e.g., processes, memory, or power) of the electronic device (101). The operating system (142) may additionally or alternatively include one or more driver programs for driving other hardware devices of the electronic device (101), for example, an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197).
미들웨어(144)는 전자 장치(101)의 하나 이상의 리소스들로부터 제공되는 기능 또는 정보가 어플리케이션(146)에 의해 사용될 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들웨어(144)는, 예를 들면, 어플리케이션 매니저(201), 윈도우 매니저(203), 멀티미디어 매니저(205), 리소스 매니저(207), 파워 매니저(209), 데이터베이스 매니저(211), 패키지 매니저(213), 커넥티비티 매니저(215), 노티피케이션 매니저(217), 로케이션 매니저(219), 그래픽 매니저(221), 시큐리티 매니저(223), 통화 매니저(225), 또는 음성 인식 매니저(227)를 포함할 수 있다. Middleware (144) can provide various functions to the application (146) so that functions or information provided from one or more resources of the electronic device (101) can be used by the application (146). Middleware (144) can include, for example, an application manager (201), a window manager (203), a multimedia manager (205), a resource manager (207), a power manager (209), a database manager (211), a package manager (213), a connectivity manager (215), a notification manager (217), a location manager (219), a graphics manager (221), a security manager (223), a call manager (225), or a voice recognition manager (227).
어플리케이션 매니저(201)는, 예를 들면, 어플리케이션(146)의 생명 주기를 관리할 수 있다. 윈도우 매니저(203)는, 예를 들면, 화면에서 사용되는 하나 이상의 GUI 자원들을 관리할 수 있다. 멀티미디어 매니저(205)는, 예를 들면, 미디어 파일들의 재생에 필요한 하나 이상의 포맷들을 파악하고, 그 중 선택된 해당하는 포맷에 맞는 코덱을 이용하여 상기 미디어 파일들 중 해당하는 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(207)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리(130)의 메모리의 공간을 관리할 수 있다. 파워 매니저(209)는, 예를 들면, 배터리(189)의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 관련 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(209)는 전자 장치(101)의 바이오스(BIOS: basic input/output system)(미도시)와 연동할 수 있다.The application manager (201) can manage, for example, the life cycle of the application (146). The window manager (203) can manage, for example, one or more GUI resources used on the screen. The multimedia manager (205) can, for example, identify one or more formats required for playing media files, and perform encoding or decoding of a corresponding media file among the media files using a codec suitable for the corresponding format selected among the formats. The resource manager (207) can manage, for example, the source code of the application (146) or the memory space of the memory (130). The power manager (209) can manage, for example, the capacity, temperature, or power of the battery (189), and determine or provide related information necessary for the operation of the electronic device (101) using the corresponding information. According to one embodiment, the power manager (209) can be linked with the basic input/output system (BIOS) (not shown) of the electronic device (101).
데이터베이스 매니저(211)는, 예를 들면, 어플리케이션(146)에 의해 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(213)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(215)는, 예를 들면, 전자 장치(101)와 외부 전자 장치 간의 무선 연결 또는 직접 연결을 관리할 수 있다. 노티피케이션 매니저(217)는, 예를 들면, 지정된 이벤트(예: 착신 통화, 메시지, 또는 알람)의 발생을 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(219)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(221)는, 예를 들면, 사용자에게 제공될 하나 이상의 그래픽 효과들 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. The database manager (211) can, for example, create, search, or modify a database to be used by the application (146). The package manager (213) can, for example, manage the installation or update of an application distributed in the form of a package file. The connectivity manager (215) can, for example, manage a wireless connection or direct connection between the electronic device (101) and an external electronic device. The notification manager (217) can, for example, provide a function for notifying a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm). The location manager (219) can, for example, manage location information of the electronic device (101). The graphics manager (221) can, for example, manage one or more graphic effects to be provided to the user or a user interface related thereto.
시큐리티 매니저(223)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(225)는, 예를 들면, 전자 장치(101)에 의해 제공되는 음성 통화 기능 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(227)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 그 음성 데이터에 적어도 일부 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command), 또는 그 음성 데이터에 적어도 일부 기반하여 변환된 문자 데이터를 서버(108)로부터 수신할 수 있다. 일 실시예에 따르면, 미들웨어(144)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시예에 따르면, 미들웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 다른 별도의 소프트웨어로 구현될 수 있다.The security manager (223) may provide, for example, system security or user authentication. The telephony manager (225) may manage, for example, a voice call function or a video call function provided by the electronic device (101). The voice recognition manager (227) may, for example, transmit the user's voice data to the server (108) and receive, from the server (108), a command corresponding to a function to be performed in the electronic device (101) based at least in part on the voice data, or text data converted based at least in part on the voice data. In one embodiment, the middleware (144) may dynamically delete some of the existing components or add new components. In one embodiment, at least a portion of the middleware (144) may be included as a part of the operating system (142) or implemented as separate software different from the operating system (142).
어플리케이션(146)은, 예를 들면, 홈(251), 다이얼러(253), SMS/MMS(255), IM(instant message)(257), 브라우저(259), 카메라(261), 알람(263), 컨택트(265), 음성 인식(267), 이메일(269), 달력(271), 미디어 플레이어(273), 앨범(275), 와치(277), 헬스(279)(예: 운동량 또는 혈당과 같은 생체 정보를 측정), 또는 환경 정보(281)(예: 기압, 습도, 또는 온도 정보 측정) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하도록 설정된 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하도록 설정된 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(269))에서 발생된 지정된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달할 수 있다. 추가적으로 또는 대체적으로, 노티피케이션 릴레이 어플리케이션은 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. The application (146) may include, for example, a home (251), a dialer (253), an SMS/MMS (255), an instant message (IM) (257), a browser (259), a camera (261), an alarm (263), a contact (265), a voice recognition (267), an email (269), a calendar (271), a media player (273), an album (275), a watch (277), a health (279) (e.g., measuring biometric information such as the amount of exercise or blood sugar), or an environmental information (281) (e.g., measuring barometric pressure, humidity, or temperature information) application. According to one embodiment, the application (146) may further include an information exchange application (not shown) that can support information exchange between the electronic device (101) and an external electronic device. The information exchange application may include, for example, a notification relay application configured to transmit designated information (e.g., a call, a message, or an alarm) to an external electronic device, or a device management application configured to manage an external electronic device. The notification relay application may, for example, transmit notification information corresponding to a designated event (e.g., receipt of an email) that occurred in another application (e.g., an email application (269)) of the electronic device (101) to the external electronic device. Additionally or alternatively, the notification relay application may receive notification information from the external electronic device and provide the information to the user of the electronic device (101).
장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 외부 전자장치의 디스플레이 모듈 또는 카메라 모듈)의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.A device management application may, for example, control the power (e.g., turning on or off) or the function (e.g., brightness, resolution, or focus) of an external electronic device or a component thereof (e.g., a display module or a camera module of the external electronic device) that communicates with the electronic device (101). The device management application may additionally or alternatively support the installation, deletion, or update of an application running on the external electronic device.
도 3은 일 실시 예에 따른, 전자 장치를 포함하는 무선 환경의 예를 도시한다.FIG. 3 illustrates an example of a wireless environment including an electronic device, according to one embodiment.
일 실시 예에서, 도 3의 전자 장치(101)는, 도 1의 전자 장치(101)에 대응할 수 있다. 도 3을 참조하면, 전자 장치(101)는, 프로세서(120), 메모리(130), 제1 통신 회로(391), 및 제2 통신 회로(392)를 포함할 수 있다.In one embodiment, the electronic device (101) of FIG. 3 may correspond to the electronic device (101) of FIG. 1. Referring to FIG. 3, the electronic device (101) may include a processor (120), a memory (130), a first communication circuit (391), and a second communication circuit (392).
일 실시 예에서, 프로세서(120)는, 도 6a 내지 도 7b, 10a 내지 도 10e, 도 12, 및 도 14a 내지 도 15b의 설명 내에서 예시되는 전자 장치(101)의 동작들을 실행하기 위해 이용될 수 있다. 예를 들면, 프로세서(120)는, 도 1의 프로세서(120)의 적어도 일부를 포함하거나 도 1의 프로세서(120)의 적어도 일부에 대응할 수 있다. 예를 들면, 프로세서(120)는, AP(application processor) 및/또는 CP(communication processor)를 포함하는 하나 이상의 프로세서들을 포함할 수 있다. 예를 들면, 프로세서(120)는, SoC(system on chip)와 같은 단일 칩으로 구현될 수도 있고, 다수의 칩들로 구현될 수도 있다. 예를 들면, 프로세서(120)는, 하나의 집적 회로(integrated circuit)로 구현될 수도 있고, 다수의 집적 회로들로 구현될 수도 있다. 예를 들면, 프로세서(120)는, 전자 장치(101) 내에서 분산적으로 배열될 수도 있다. In one embodiment, the processor (120) may be used to execute operations of the electronic device (101) exemplified in the descriptions of FIGS. 6A to 7B, 10A to 10E, 12, and 14A to 15B. For example, the processor (120) may include at least a portion of the processor (120) of FIG. 1 or may correspond to at least a portion of the processor (120) of FIG. 1. For example, the processor (120) may include one or more processors, including an application processor (AP) and/or a communication processor (CP). For example, the processor (120) may be implemented as a single chip, such as a system on chip (SoC), or may be implemented as multiple chips. For example, the processor (120) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits. For example, the processor (120) may be distributedly arranged within the electronic device (101).
일 실시 예에서, 메모리(130)는, 도 6a 내지 도 7b, 10a 내지 도 10e, 도 12, 및 도 14a 내지 도 15b의 설명 내에서 예시되는 전자 장치(101)의 동작들을 실행하기 위한 인스트럭션들을 (적어도 일시적으로) 저장할 수 있다. 상기 인스트럭션들은, 프로세서(120)에 의해 실행될 수 있다. 상기 인스트럭션들은, 메모리(130) 내에 저장된 하나 이상의 프로그램들(140)(예: 도 2의 프로그램(140)) 내에 포함될 수 있다. 예를 들면, 메모리(130)는, 도 1의 메모리(130)의 적어도 일부(또는 비휘발성 메모리(134)의 적어도 일부)를 포함하거나 도 1의 메모리(130)의 적어도 일부(또는 비휘발성 메모리(134)의 적어도 일부)에 대응할 수 있다. 예를 들면, 메모리(130)는, 전자 장치(101) 내의 메인 메모리(예: RAM(random access memory)), 프로세서(120)를 위한 레지스터, 프로세서(120)를 위한 캐시(cache), 통신 회로들(391, 392)을 위한 레지스터, 통신 회로들(391, 392)을 위한 버퍼(또는 소프트 버퍼), 및/또는 전자 장치(101)의 보조 메모리(예: HDD(hard disk drive), SSD(solid state drive))를 포함할 수 있다. 예를 들면, 메모리(130)는, 단일 칩으로 구현될 수도 있고, 다수의 칩들로 구현될 수도 있다. 예를 들면, 메모리(130)는, 하나의 집적 회로로 구현될 수도 있고, 다수의 집적 회로들로 구현될 수도 있다. 예를 들면, 메모리(130)는, 전자 장치(101) 내에서 분산적으로 배열될 수도 있다. In one embodiment, the memory (130) may (at least temporarily) store instructions for executing operations of the electronic device (101) exemplified in the descriptions of FIGS. 6A to 7B, 10A to 10E, 12, and 14A to 15B. The instructions may be executed by the processor (120). The instructions may be included in one or more programs (140) stored in the memory (130) (e.g., the program (140) of FIG. 2). For example, the memory (130) may include at least a portion of the memory (130) of FIG. 1 (or at least a portion of the non-volatile memory (134)) or may correspond to at least a portion of the memory (130) of FIG. 1 (or at least a portion of the non-volatile memory (134)). For example, the memory (130) may include a main memory (e.g., a random access memory (RAM)) within the electronic device (101), a register for the processor (120), a cache for the processor (120), a register for the communication circuits (391, 392), a buffer (or soft buffer) for the communication circuits (391, 392), and/or an auxiliary memory (e.g., a hard disk drive (HDD), a solid state drive (SSD)) of the electronic device (101). For example, the memory (130) may be implemented as a single chip or may be implemented as multiple chips. For example, the memory (130) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits. For example, the memory (130) may be distributedly arranged within the electronic device (101).
일 실시 예에서, 제1 통신 회로(391)는, 전자 장치(101)와 다른 전자 장치(예: 전자 장치들(303, 305, 307)) 사이의 블루투스 통신(예: 레거시 블루투스 통신(또는 클래식 블루투스 통신 및/또는 BLE(Bluetooth low energy))을 지원하기 위해 이용될 수 있다. 하지만 제1 통신 회로(391)의 통신 기법은, 블루투스 통신 기법에 제한되지 않는다. 제1 통신 회로(391)는 다양한 근거리 무선 통신 기법(예: Wi-Fi(wireless fidelity), Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, Wi-Fi legacy 통신 기법, 및/또는 UWB(ultra wide band))에 기반하여, 전자 장치(101)와 다른 전자 장치(예: 전자 장치들(303, 305, 307)) 사이의 통신을 지원하기 위해 이용될 수 있다.In one embodiment, the first communication circuit (391) may be used to support Bluetooth communication (e.g., legacy Bluetooth communication (or classic Bluetooth communication and/or Bluetooth low energy (BLE)) between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)). However, the communication technique of the first communication circuit (391) is not limited to the Bluetooth communication technique. The first communication circuit (391) may be used to support communication between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)) based on various short-range wireless communication techniques (e.g., wireless fidelity (Wi-Fi), Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, Wi-Fi legacy communication technique, and/or ultra wide band (UWB)).
예를 들면, 제1 통신 회로(391)는, 도 1의 통신 모듈(190)(또는 무선 통신 모듈(192))의 적어도 일부를 포함하거나, 도 1의 통신 모듈(190)(또는 무선 통신 모듈(192))의 적어도 일부에 대응할 수 있다. 예를 들면, 제1 통신 회로(391)를 블루투스를 위한 통신 회로를 포함할 수 있다. 예를 들면, 제1 통신 회로(391)는, 통신 링크를 수립하기 위해 이용될 수 있다. 예를 들면, 제1 통신 회로(391)는, 통신 링크를 통해 외부 전자 장치(201, 202)에게 패킷을 송신하기 위해 이용될 수 있다. 예를 들면, 제1 통신 회로(391)는, 통신 링크를 통해 전자 장치들(303, 305, 307)로부터 패킷을 수신하기 위해 이용될 수 있다. 예를 들면, 제1 통신 회로(391)는, 단일 칩으로 구현될 수도 있고, 다수의 칩들로 구현될 수도 있다. 예를 들면, 제1 통신 회로(391)는, 하나의 집적 회로로 구현될 수도 있고, 다수의 집적 회로들로 구현될 수도 있다. 예를 들면, 제1 통신 회로(391)는, 전자 장치(101) 내에서 분산적으로 배열될 수도 있다.For example, the first communication circuit (391) may include at least a portion of the communication module (190) (or the wireless communication module (192)) of FIG. 1, or may correspond to at least a portion of the communication module (190) (or the wireless communication module (192)) of FIG. 1. For example, the first communication circuit (391) may include a communication circuit for Bluetooth. For example, the first communication circuit (391) may be used to establish a communication link. For example, the first communication circuit (391) may be used to transmit packets to external electronic devices (201, 202) via the communication link. For example, the first communication circuit (391) may be used to receive packets from electronic devices (303, 305, 307) via the communication link. For example, the first communication circuit (391) may be implemented as a single chip or may be implemented as multiple chips. For example, the first communication circuit (391) may be implemented as a single integrated circuit or as multiple integrated circuits. For example, the first communication circuit (391) may be distributedly arranged within the electronic device (101).
일 실시 예에서, 제2 통신 회로(392)는, 제1 통신 회로(391)의 통신 기법과 다른 통신 기법을 더 지원하기 위해 이용될 수 있다. 예를 들면, 제2 통신 회로(392)는, 블루투스 통신 기법과 구별되는 다른 통신 기법(예: Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, 및/또는 Wi-Fi legacy 통신 기법)을 더 지원하기 위해 이용될 수 있다. 하지만 제2 통신 회로(392)의 통신 기법은, Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, Wi-Fi legacy 통신 기법에 제한되지 않는다. 제2 통신 회로(39)는 다양한 근거리 무선 통신 기법(예: 클래식 블루투스 통신, BLE, 및/또는 UWB)에 기반하여, 전자 장치(101)와 다른 전자 장치(예: 전자 장치들(303, 305, 307)) 사이의 통신을 지원하기 위해 이용될 수 있다.In one embodiment, the second communication circuit (392) may be used to further support a communication technique different from the communication technique of the first communication circuit (391). For example, the second communication circuit (392) may be used to further support a communication technique different from the Bluetooth communication technique (e.g., Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, and/or Wi-Fi legacy communication technique). However, the communication technique of the second communication circuit (392) is not limited to Wi-Fi, Wi-Fi Direct, Wi-Fi aware, Wi-Fi mobile hotspot, and Wi-Fi legacy communication techniques. The second communication circuit (39) may be used to support communication between the electronic device (101) and other electronic devices (e.g., electronic devices (303, 305, 307)) based on various short-range wireless communication techniques (e.g., classic Bluetooth communication, BLE, and/or UWB).
예를 들면, 제2 통신 회로(392)는, 단일 칩으로 구현될 수도 있고, 다수의 칩들로 구현될 수도 있다. 예를 들면, 제2 통신 회로(392)는, 하나의 집적 회로로 구현될 수도 있고, 다수의 집적 회로들로 구현될 수도 있다. 예를 들면, 제2 통신 회로(392)는, 전자 장치(101) 내에서 분산적으로 배열될 수도 있다.For example, the second communication circuit (392) may be implemented as a single chip or as multiple chips. For example, the second communication circuit (392) may be implemented as a single integrated circuit or as multiple integrated circuits. For example, the second communication circuit (392) may be distributedly arranged within the electronic device (101).
일 실시 예에서, 전자 장치(101)는, 도 3에서 도시된 하드웨어 구성요소들 외에 추가적인 하드웨어 구성요소를 더 포함할 수 있다. 예를 들면, 전자 장치(101)는, 도 1의 전자 장치(101)를 통해 예시된 하드웨어 구성요소들(예: 카메라 모듈(180), 디스플레이 모듈(160), 및/또는 음향 출력 모듈(155))을 포함할 수 있다. In one embodiment, the electronic device (101) may include additional hardware components in addition to the hardware components illustrated in FIG. 3. For example, the electronic device (101) may include hardware components exemplified through the electronic device (101) of FIG. 1 (e.g., a camera module (180), a display module (160), and/or an audio output module (155)).
일 실시 예에서, 전자 장치(303)는, 프로세서(311), 메모리(315), 제1 통신 회로(393), 및 제2 통신 회로(394)를 포함할 수 있다. 일 실시 예에서, 전자 장치(303)의 프로세서(311), 메모리(315), 제1 통신 회로(393), 및 제2 통신 회로(394) 각각은, 전자 장치(101)의 프로세서(120), 메모리(130), 제1 통신 회로(391), 및 제2 통신 회로(392) 각각에 대응할 수 있다. 예를 들면, 프로세서(311)의 하드웨어 구성 및/또는 제공 가능한 기능이 프로세서(120)의 하드웨어 구성 및/또는 제공 가능한 기능에 대응할 수 있다. 예를 들면, 메모리(315)의 하드웨어 구성 및/또는 제공 가능한 기능이 메모리(130)의 하드웨어 구성 및/또는 제공 가능한 기능에 대응할 수 있다. 예를 들면, 제1 통신 회로(393)의 하드웨어 구성 및/또는 제공 가능한 기능이 제1 통신 회로(391)의 하드웨어 구성 및/또는 제공 가능한 기능에 대응할 수 있다. 예를 들면, 제2 통신 회로(394)의 하드웨어 구성 및/또는 제공 가능한 기능이 제2 통신 회로(392)의 하드웨어 구성 및/또는 제공 가능한 기능에 대응할 수 있다.In one embodiment, the electronic device (303) may include a processor (311), a memory (315), a first communication circuit (393), and a second communication circuit (394). In one embodiment, each of the processor (311), the memory (315), the first communication circuit (393), and the second communication circuit (394) of the electronic device (303) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101). For example, the hardware configuration and/or the provideable functions of the processor (311) may correspond to the hardware configuration and/or the provideable functions of the processor (120). For example, the hardware configuration and/or the provideable functions of the memory (315) may correspond to the hardware configuration and/or the provideable functions of the memory (130). For example, the hardware configuration and/or the available functions of the first communication circuit (393) may correspond to the hardware configuration and/or the available functions of the first communication circuit (391). For example, the hardware configuration and/or the available functions of the second communication circuit (394) may correspond to the hardware configuration and/or the available functions of the second communication circuit (392).
일 실시 예에서, 전자 장치(303)는, 공유 가능한 하드웨어 구성요소(320)를 포함할 수 있다. 예를 들면, 공유 가능한 하드웨어 구성요소(320)는, 카메라(321), 키보드(322), 및 스피커(323)를 포함할 수 있다. 일 실시 예에서, 카메라(321)는 도 1의 카메라 모듈(180)에 대응할 수 있다. 일 실시 예에서, 키보드(322)는, 도 1의 입력 모듈(150)에 대응할 수 있다. 일 실시 예에서, 스피커(323)는, 도 1의 음향 출력 모듈(155), 및/또는 오디오 모듈(170)에 대응할 수 있다. In one embodiment, the electronic device (303) may include a shareable hardware component (320). For example, the shareable hardware component (320) may include a camera (321), a keyboard (322), and a speaker (323). In one embodiment, the camera (321) may correspond to the camera module (180) of FIG. 1. In one embodiment, the keyboard (322) may correspond to the input module (150) of FIG. 1. In one embodiment, the speaker (323) may correspond to the audio output module (155) and/or the audio module (170) of FIG. 1.
일 실시 예에서, 전자 장치(303)는, 도 3에서 도시된 하드웨어 구성요소들 외에 추가적인 하드웨어 구성요소를 더 포함할 수 있다. 예를 들면, 전자 장치(303)는, 도 1의 전자 장치(101)를 통해 예시된 하드웨어 구성요소들을 포함할 수 있다. In one embodiment, the electronic device (303) may include additional hardware components in addition to the hardware components illustrated in FIG. 3. For example, the electronic device (303) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
일 실시 예에서, 전자 장치(305)는, 프로세서(331), 메모리(335), 제1 통신 회로(395), 및 제2 통신 회로(396)를 포함할 수 있다. 일 실시 예에서, 전자 장치(305)의 프로세서(331), 메모리(335), 제1 통신 회로(395), 및 제2 통신 회로(396) 각각은, 전자 장치(101)의 프로세서(120), 메모리(130), 제1 통신 회로(391), 및 제2 통신 회로(392) 각각에 대응할 수 있다. In one embodiment, the electronic device (305) may include a processor (331), a memory (335), a first communication circuit (395), and a second communication circuit (396). In one embodiment, each of the processor (331), the memory (335), the first communication circuit (395), and the second communication circuit (396) of the electronic device (305) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101).
일 실시 예에서, 전자 장치(305)는, 공유 가능한 하드웨어 구성요소(340)를 포함할 수 있다. 예를 들면, 공유 가능한 하드웨어 구성요소(340)는, 스피커(343) 및 디스플레이(344)를 포함할 수 있다. 일 실시 예에서, 스피커(343)는, 도 1의 음향 출력 모듈(155), 및/또는 오디오 모듈(170)에 대응할 수 있다. 일 실시 예에서, 디스플레이(344)는, 도 1의 디스플레이 모듈(160)에 대응할 수 있다. In one embodiment, the electronic device (305) may include a shareable hardware component (340). For example, the shareable hardware component (340) may include a speaker (343) and a display (344). In one embodiment, the speaker (343) may correspond to the audio output module (155) and/or the audio module (170) of FIG. 1. In one embodiment, the display (344) may correspond to the display module (160) of FIG. 1.
일 실시 예에서, 전자 장치(305)는, 도 3에서 도시된 하드웨어 구성요소들 외에 추가적인 하드웨어 구성요소를 더 포함할 수 있다. 예를 들면, 전자 장치(305)는, 도 1의 전자 장치(101)를 통해 예시된 하드웨어 구성요소들을 포함할 수 있다. In one embodiment, the electronic device (305) may include additional hardware components in addition to the hardware components illustrated in FIG. 3. For example, the electronic device (305) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
일 실시 예에서, 전자 장치(307)는, 프로세서(351), 메모리(355), 제1 통신 회로(397), 및 제2 통신 회로(398)를 포함할 수 있다. 일 실시 예에서, 전자 장치(307)의 프로세서(351), 메모리(355), 제1 통신 회로(397), 및 제2 통신 회로(398) 각각은, 전자 장치(101)의 프로세서(120), 메모리(130), 제1 통신 회로(391), 및 제2 통신 회로(392) 각각에 대응할 수 있다.In one embodiment, the electronic device (307) may include a processor (351), a memory (355), a first communication circuit (397), and a second communication circuit (398). In one embodiment, each of the processor (351), the memory (355), the first communication circuit (397), and the second communication circuit (398) of the electronic device (307) may correspond to each of the processor (120), the memory (130), the first communication circuit (391), and the second communication circuit (392) of the electronic device (101).
일 실시 예에서, 전자 장치(307)는, 공유 가능한 하드웨어 구성요소(360)를 포함할 수 있다. 예를 들면, 공유 가능한 하드웨어 구성요소(360)는, 카메라(361), 및 스토리지(365)를 포함할 수 있다. 일 실시 예에서, 카메라(361)는 도 1의 카메라 모듈(180)에 대응할 수 있다. 일 실시 예에서, 스토리지(365)는, 도 1의 비휘발성 메모리(134)에 대응할 수 있다. In one embodiment, the electronic device (307) may include a shareable hardware component (360). For example, the shareable hardware component (360) may include a camera (361) and storage (365). In one embodiment, the camera (361) may correspond to the camera module (180) of FIG. 1. In one embodiment, the storage (365) may correspond to the non-volatile memory (134) of FIG. 1.
일 실시 예에서, 전자 장치(307)는, 도 3에서 도시된 하드웨어 구성요소들 외에 추가적인 하드웨어 구성요소를 더 포함할 수 있다. 예를 들면, 전자 장치(307)는, 도 1의 전자 장치(101)를 통해 예시된 하드웨어 구성요소들을 포함할 수 있다. In one embodiment, the electronic device (307) may include additional hardware components in addition to the hardware components illustrated in FIG. 3. For example, the electronic device (307) may include the hardware components illustrated through the electronic device (101) of FIG. 1.
일 실시 예에서, 전자 장치(101), 및 전자 장치들(303, 305, 307)은, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치일 수 있다. In one embodiment, the electronic device (101) and the electronic devices (303, 305, 307) may be a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
이하에서, 전자 장치(101)가 전자 장치들(303, 305, 307)에게 하드웨어 구성요소의 공유가 활성화됨을 광고하는 동작들이 설명될 수 있다. 여기에서, 전자 장치(101)의 하드웨어 구성요소의 공유는, 전자 장치(101)의 하드웨어 구성요소와 관련된 자원이 공유받는 전자 장치들(303, 305, 307)에 의해 점유될 수 있게 하는 기능일 수 있다. 이하에서, 하드웨어 구성요소를 공유하는 전자 장치는 공유자(또는, 공유자 장치)로 지칭되고, 하드웨어 구성요소를 공유받는 전자 장치는 수용자(또는, 수용자 장치)로 지칭될 수 있다. Hereinafter, operations of an electronic device (101) advertising that sharing of hardware components is activated to electronic devices (303, 305, 307) may be described. Herein, sharing of hardware components of the electronic device (101) may be a function that allows resources related to hardware components of the electronic device (101) to be occupied by shared electronic devices (303, 305, 307). Hereinafter, an electronic device sharing hardware components may be referred to as a sharer (or sharer device), and an electronic device sharing hardware components may be referred to as a receiver (or receiver device).
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. 일 실시 예에서, 전자 장치(101)는, 입력에 기반하여, 비활성화 상태의 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. In one embodiment, the electronic device (101) can activate a shared function of a hardware component. In one embodiment, the electronic device (101) can activate a shared function of a hardware component that is in a disabled state based on an input.
예를 들면, 전자 장치(101)는, 공유 기능을 설정하기 위한 UI(user interface)(예: 도 4a 및/또는 도 4b의 화면들(400, 405))에 대한 입력에 기반하여, 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 전자 장치(101)는, 기본 설정에 따라, 공유 기능을 활성화된 상태로 유지할 수 있다. For example, the electronic device (101) may activate the sharing function of a hardware component based on an input to a user interface (UI) for setting the sharing function (e.g., screens (400, 405) of FIG. 4A and/or FIG. 4B). However, the present invention is not limited thereto. For example, the electronic device (101) may maintain the sharing function in an activated state according to a default setting.
예를 들면, 전자 장치(101)는, 하드웨어 구성요소의 공유자(sharer)로서 동작하기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)에서 공유 가능한 하드웨어 구성요소들 중 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다. For example, the electronic device (101) may activate a sharing function to operate as a sharer of hardware components. For example, the electronic device (101) may activate a sharing function to share at least one hardware component among the shareable hardware components of the electronic device (101).
예를 들면, 전자 장치(101)는, 하드웨어 구성요소의 공유 조건을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 하드웨어 구성요소를 공유받을 수 있는 수용자의 범위를 제한하는 공유 조건을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 수용자의 범위를 동일한 계정으로 로그인된 전자 장치로 제한할 수 있다. 예를 들면, 전자 장치(101)는, 수용자의 범위를 동일한 지정된 관련성이 존재하는 사용자(예: 동료, 친구, 또는 가족)의 계정으로 로그인된 전자 장치로 제한할 수 있다. 하지만 이에 제한되지 않는다. For example, the electronic device (101) can set sharing conditions for hardware components. For example, the electronic device (101) can set sharing conditions that limit the range of recipients who can share the hardware components. For example, the electronic device (101) can limit the range of recipients to electronic devices logged in with the same account. For example, the electronic device (101) can limit the range of recipients to electronic devices logged in with the account of a user with the same designated relationship (e.g., a colleague, friend, or family member). However, the present invention is not limited thereto.
일 실시 예에서, 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소를 공유하기 위해 공유 기능을 활성화함에 기반하여, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷(예: ADV_IND)을 방송할 수 있다. 일 실시 예에서, 전자 장치(101)는, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 주기적으로 방송할 수 있다. 공유가 활성화됨을 나타내는 광고 패킷을 방송하는 동작은, 도 6b를 참조하여 아래에서 설명될 수 있다. In one embodiment, the electronic device (101) may broadcast an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled through the first communication circuit (391) based on activating a sharing function to share at least one hardware component. In one embodiment, the electronic device (101) may periodically broadcast an advertisement packet indicating that sharing is enabled through the first communication circuit (391). An operation of broadcasting an advertisement packet indicating that sharing is enabled may be described below with reference to FIG. 6B.
일 실시 예에서, 광고 패킷은 연속적으로 배열된 LTV(length, type, value) 구조들(structures)을 포함할 수 있다. 광고 패킷 안에서 연속적으로 배열된 LTV 구조들 각각은, 길이(length) 필드 및 데이터 필드를 포함할 수 있다. 길이 필드는, LTV 구조의 데이터 필드의 길이를 나타낼 수 있다. LTV 구조들 각각의 데이터 필드는 타입(type) 필드와 값(value) 필드를 포함할 수 있다. 타입 필드는, 1 바이트의 길이를 가질 수 있다. 값 필드는, 길이 필드가 나타내는 길이에서 1 바이트만큼 뺀 길이를 가질 수 있다. In one embodiment, an advertising packet may include LTV (length, type, value) structures arranged sequentially. Each of the LTV structures arranged sequentially within the advertising packet may include a length field and a data field. The length field may indicate the length of the data field of the LTV structure. The data field of each LTV structure may include a type field and a value field. The type field may have a length of 1 byte. The value field may have a length that is 1 byte less than the length indicated by the length field.
일 실시 예에서, 광고 패킷은, 플래그를 위한 LTV 구조(이하, 제1 LTV 구조) 및 제조사 특유 데이터(manufacturer specific data)의 방송을 위한 LTV 구조(이하, 제2 LTV 구조)를 포함할 수 있다. In one embodiment, an advertising packet may include an LTV structure for a flag (hereinafter, a first LTV structure) and an LTV structure for broadcasting manufacturer specific data (hereinafter, a second LTV structure).
일 실시 예에서, 제2 LTV 구조에 포함되는, 필드들 중 공유 기능(또는, MCF(multi-device continuity framework))와 관련된 필드(예: 연속성(continuity) LTV 필드)에는 전자 장치(101)의 사용자 정보(또는, 계정 정보)(또는, 계정 ID(identification))가 포함될 수 있다. 일 실시 예에서, MCF는 동일 계정으로 등록한 복수의 전자 장치들 간에 연속성 있는 사용자 경험(user experience)을 제공하기 위한 프레임워크일 수 있다. 예를 들어, MCF는 주변에 상기 동일 계정으로 등록한 전자 장치가 위치하는지 검색하도록 제어하는 커맨드, 상기 동일 계정으로 등록한 전자 장치들의 상태 정보를 교환할 것을 지시하는 커맨드, 또는 상기 동일 계정으로 등록한 전자 장치와의 연결을 지시하는 커맨드를 생성할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, a field (e.g., a continuity LTV field) related to a shared function (or a multi-device continuity framework (MCF)) among the fields included in the second LTV structure may include user information (or account information) (or account ID (identification)) of the electronic device (101). In one embodiment, the MCF may be a framework for providing a continuous user experience between multiple electronic devices registered with the same account. For example, the MCF may generate a command for controlling the search for a nearby electronic device registered with the same account, a command for instructing the exchange of status information of electronic devices registered with the same account, or a command for instructing a connection with an electronic device registered with the same account. However, the present invention is not limited thereto.
일 실시 예에서, 제2 LTV 구조에 포함되는, 필드들 중 공유 기능(또는, MCF)과 관련된 다른 필드(예: 다른 연속성 LTV 필드(예컨대, ClientHandlerContext 필드))에는 공유 기능이 활성화됨을 나타내는 정보가 포함될 수 있다. 예를 들면, 전자 장치(101)는, 광고 패킷의 공유 기능과 관련된 다른 필드의 지정된 항목(예: AppID)에 지정된 값(예: 6)을 입력함으로써, 공유 기능이 활성화됨을 나타낼 수 있다. In one embodiment, another field (e.g., another continuity LTV field (e.g., a ClientHandlerContext field)) related to the shared function (or MCF) among the fields included in the second LTV structure may include information indicating that the shared function is activated. For example, the electronic device (101) may indicate that the shared function is activated by entering a specified value (e.g., 6) into a specified item (e.g., AppID) of another field related to the shared function of the advertisement packet.
이하에서, 전자 장치(101)가 공유를 위한 하드웨어 구성요소의 성능 정보(또는, 리소스)를 수용자 장치(예: 전자 장치(303))에게 제공하는 동작들이 설명될 수 있다. Below, operations by which an electronic device (101) provides performance information (or resources) of hardware components for sharing to a recipient device (e.g., electronic device (303)) may be described.
일 실시 예에서, 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소를 공유하기 위해 공유 기능을 활성화함에 기반하여, 적어도 하나의 하드웨어 구성요소의 성능 정보(capability information)(또는, 리소스)를 포함하는 패킷을 방송할 수 있다. 예를 들면, 성능 정보(또는, 리소스)를 포함하는 패킷은, 식별 정보(예: AppID, 시퀀스, 또는 앱 데이터의 유무), 앱 데이터의 길이, 또는 앱 데이터를 포함할 수 있다. 여기에서, 앱 데이터의 유무는, 성능 정보(또는, 리소스)의 유무를 나타낼 수 있다. 앱 데이터는, 성능 정보(또는, 리소스)를 나타낼 수 있다. 시퀀스가 변경될 경우, 하드웨어 구성요소의 성능 정보(또는, 리소스)의 갱신이 트리거될 수 있다. In one embodiment, the electronic device (101) may broadcast a packet including capability information (or resource) of at least one hardware component based on activating a sharing function to share at least one hardware component. For example, the packet including the capability information (or resource) may include identification information (e.g., AppID, sequence, or presence or absence of app data), the length of the app data, or the app data. Here, the presence or absence of the app data may indicate the presence or absence of the performance information (or resource). The app data may indicate the performance information (or resource). When the sequence is changed, an update of the performance information (or resource) of the hardware component may be triggered.
예를 들면, 전자 장치(101)는, 제1 통신 회로(391)를 통해 수용자 장치(예: 전자 장치(303))로부터 스캔 요청(예: SCAN_REQ)을 수신할 수 있다. 예를 들면, 전자 장치(101)는, 공유가 활성화됨을 나타내는 광고 패킷에 대한 스캔 요청에 대한 응답으로 성능 정보를 포함하는 패킷(예: SCAN_RSP)을 방송할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 전자 장치(101)는, 공유가 활성화됨을 나타내는 광고 패킷에 성능 정보를 포함시킬 수 있다. 이 경우, 스캔 요청(예: SCAN_REQ) 및/또는 스캔 응답(예: SCAN_RSP)은 송신 및/또는 수신되지 않을 수 있다. 일 실시 예에서, 성능 정보를 포함하는 스캔 응답(예: SCAN_RSP)은, 미디어 설정 사양 메시지(예: MediaConfigSpec)로 지칭될 수 있다. 성능 정보를 전달 및/또는 설정하는 동작은, 도 7b, 및 도 10a 내지 도 10e를 참조하여 아래에서 설명될 수 있다.For example, the electronic device (101) may receive a scan request (e.g., SCAN_REQ) from a recipient device (e.g., electronic device (303)) via the first communication circuit (391). For example, the electronic device (101) may broadcast a packet (e.g., SCAN_RSP) including performance information in response to a scan request for an advertising packet indicating that sharing is enabled. However, the present invention is not limited thereto. For example, the electronic device (101) may include performance information in an advertising packet indicating that sharing is enabled. In this case, the scan request (e.g., SCAN_REQ) and/or the scan response (e.g., SCAN_RSP) may not be transmitted and/or received. In one embodiment, the scan response (e.g., SCAN_RSP) including performance information may be referred to as a media configuration specification message (e.g., MediaConfigSpec). The operation of transmitting and/or setting performance information can be described below with reference to FIG. 7b and FIGS. 10a to 10e.
일 실시 예에서, 성능 정보는, 전자 장치(101)의 정보(예: 명칭, UI(user interface) 프로그램(예: 원UI)의 버전), 공유 기능을 지원하기 위한 프로그램의 정보(예: 버전, 및/또는 버전 코드), 및/또는 하드웨어 구성요소의 정보(예: 유형, 지원 가능한 기능(또는, 속성))를 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 지원 가능한 기능(또는, 속성)은, 위치(예: 전면, 또는 후면), 해상도(예: 720P, 1080P, 1440P, 2K, 4K), 비트레이트(예: 5, 17), 프레임율(frames per seconds, FPS)(예: 15, 30), 기본 설정(예: 해상도, 비트레이트, 및/또는 프레임율에 대한 기본 설정), 및/또는 이미지 효과(예: 블러, 얼굴 터치, 오토 프레임, HDR(high dynamic range))를 포함할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 하드웨어 구성요소가 스피커인 경우, 지원 가능한 기능은, 샘플 레이트, 비트레이트, 비트뎁스, 및/또는 채널의 개수를 포함할 수 있다. In one embodiment, the performance information may include information of the electronic device (101) (e.g., name, version of a user interface (UI) program (e.g., OneUI)), information of a program for supporting a sharing function (e.g., version and/or version code), and/or information of a hardware component (e.g., type, supportable functions (or properties)). For example, if the hardware component is a camera, the supportable functions (or properties) may include location (e.g., front or rear), resolution (e.g., 720P, 1080P, 1440P, 2K, 4K), bitrate (e.g., 5, 17), frame rate (frames per seconds, FPS) (e.g., 15, 30), default settings (e.g., default settings for resolution, bitrate, and/or frame rate), and/or image effects (e.g., blur, face touch, auto frame, HDR (high dynamic range)). However, the present invention is not limited thereto. For example, if the hardware component is a speaker, the supported features may include sample rate, bit rate, bit depth, and/or number of channels.
이하에서, 전자 장치(101)가 공유를 위한 하드웨어 구성요소의 성능을 설정하는 동작들이 설명될 수 있다. Below, operations for setting the performance of hardware components for sharing by an electronic device (101) can be described.
일 실시 예에서, 전자 장치(101)는, 수용자 장치로부터 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)을 수신할 수 있다. 일 실시 예에서, 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)은, 미디어 설정 메시지(예: MediaConfig)로 지칭될 수 있다. 일 실시 예에서, 스캔 요청(예: SCAN_REQ)에 포함되는 미디어 설정 메시지는, 하드웨어 구성요소의 미디어 유형을 나타내는 파라미터, 및 하드웨어 구성요소의 속성을 나타내는 파라미터를 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 스캔 요청(예: SCAN_REQ)에 포함되는 미디어 설정 메시지는, 카메라의 미디어 유형을 나타내는 파라미터(예: "mediaType": "video"), 및 카메라의 속성을 나타내는 파라미터(예: "cameraLens": "rear", "resolution": "1080P", "bitrate": 15, "fps": 30)를 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 스피커인 경우, 스캔 요청(예: SCAN_REQ)에 포함되는 미디어 설정 메시지는, 스피커의 미디어 유형을 나타내는 파라미터(예: "mediaType": "audio"), 및 스피커의 속성을 나타내는 파라미터(예: "samplerate": 8, "bitrate": 16, "bitdepth": 16, "channel": "mono")를 포함할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) may receive a scan request (e.g., SCAN_REQ) requesting configuration of a hardware component from a receiver device. In one embodiment, the scan request (e.g., SCAN_REQ) requesting configuration of a hardware component may be referred to as a media configuration message (e.g., MediaConfig). In one embodiment, the media configuration message included in the scan request (e.g., SCAN_REQ) may include a parameter indicating a media type of the hardware component and a parameter indicating an attribute of the hardware component. For example, if the hardware component is a camera, the media configuration message included in the scan request (e.g., SCAN_REQ) may include a parameter indicating a media type of the camera (e.g., "mediaType": "video") and a parameter indicating an attribute of the camera (e.g., "cameraLens": "rear", "resolution": "1080P", "bitrate": 15, "fps": 30). For example, if the hardware component is a speaker, the media setup message included in the scan request (e.g., SCAN_REQ) may include, but is not limited to, parameters indicating the media type of the speaker (e.g., "mediaType": "audio") and parameters indicating the properties of the speaker (e.g., "samplerate": 8, "bitrate": 16, "bitdepth": 16, "channel": "mono").
일 실시 예에서, 전자 장치(101)는, 수용자 장치로부터의 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)에 응답하여, 하드웨어 구성요소의 설정을 변경할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)을 방송할 수 있다. In one embodiment, the electronic device (101) may change the configuration of a hardware component in response to a scan request (e.g., SCAN_REQ) from a recipient device requesting the configuration of a hardware component. In one embodiment, the electronic device (101) may broadcast a scan response (e.g., SCAN_RSP) indicating that the configuration of the hardware component has been changed.
일 실시 예에서, 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)은, 미디어 설정 메시지(예: MediaConfig)로 지칭될 수 있다. 일 실시 예에서, 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)은, 하드웨어 구성요소의 설정 변경의 결과(예: 에러 여부)를 나타낼 수 있다. In one embodiment, a scan response (e.g., SCAN_RSP) indicating a change in the configuration of a hardware component may be referred to as a media configuration message (e.g., MediaConfig). In one embodiment, a scan response (e.g., SCAN_RSP) indicating a change in the configuration of a hardware component may indicate the result of the change in the configuration of the hardware component (e.g., whether an error occurred).
실시 예에 따라, 전자 장치(101)는, 수용자 장치로부터의 하드웨어 구성요소의 설정 변경을 요청하는 스캔 요청(예: SCAN_REQ)을 수신할 수 있다. 일 실시 예에서, 설정 변경을 요청하는 스캔 요청(예: SCAN_REQ)은, 미디어 설정 변경 메시지(예: ChangeMedia)로 지칭될 수 있다. 일 실시 예에서, 미디어 설정 변경 메시지는, 하드웨어 구성요소의 미디어 유형을 나타내는 파라미터, 및 하드웨어 구성요소의 속성들 중 변경할 속성에 대한 파라미터를 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 스캔 요청(예: SCAN_REQ)에 포함되는 미디어 설정 변경 메시지는, 카메라의 미디어 유형을 나타내는 파라미터(예: "mediaType": "video"), 및 카메라의 속성들 중 일부를 나타내는 파라미터(예: "bitrate": 3)를 포함할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치로부터의 하드웨어 구성요소의 설정 변경을 요청하는 스캔 요청(예: SCAN_REQ)에 응답하여, 하드웨어 구성요소의 설정들 중 일부 설정을 변경(예: 비트레이트를 15에서 3으로 변경)할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)을 방송할 수 있다. According to an embodiment, the electronic device (101) may receive a scan request (e.g., SCAN_REQ) requesting a change in the settings of a hardware component from a receiver device. In one embodiment, the scan request (e.g., SCAN_REQ) requesting a change in settings may be referred to as a media settings change message (e.g., ChangeMedia). In one embodiment, the media settings change message may include a parameter indicating the media type of the hardware component and a parameter for an attribute to be changed among the attributes of the hardware component. For example, if the hardware component is a camera, the media settings change message included in the scan request (e.g., SCAN_REQ) may include a parameter indicating the media type of the camera (e.g., "mediaType": "video") and a parameter indicating some of the attributes of the camera (e.g., "bitrate": 3). In one embodiment, the electronic device (101) may change some of the settings of the hardware component (e.g., change the bitrate from 15 to 3) in response to a scan request (e.g., SCAN_REQ) from the recipient device requesting a change in the settings of the hardware component. In one embodiment, the electronic device (101) may broadcast a scan response (e.g., SCAN_RSP) indicating that the settings of the hardware component have been changed.
실시 예에 따라, 전자 장치(101)는, 수용자 장치로부터의 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)이 수신되지 않을 수 있다. 이 경우, 전자 장치(101)는, 하드웨어 구성요소의 설정을 기본 설정으로 유지할 수 있다. In some embodiments, the electronic device (101) may not receive a scan request (e.g., SCAN_REQ) requesting configuration of a hardware component from the recipient device. In this case, the electronic device (101) may maintain the configuration of the hardware component as the default setting.
이하에서, 전자 장치(101)의 하드웨어 구성요소의 수용자 장치(예: 전자 장치(303))에 의한 접근을 위한 공유 동작들이 설명될 수 있다. Below, shared operations for access by a recipient device (e.g., electronic device (303)) of a hardware component of an electronic device (101) may be described.
일 실시 예에서, 전자 장치(101)는, 수용자 장치로부터 하드웨어 구성요소와 관련된 서버 프로그램의 실행 요청을 수신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 설정이 완료된 후, 수용자 장치로부터 하드웨어 구성요소와 관련된 서버 프로그램의 실행 요청을 수신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 하드웨어 구성요소와 관련된 클라이언트 프로그램에 연결시키기 위한, 서버 프로그램의 실행 요청을 수신할 수 있다. 실시 예에 따라, 서버 프로그램의 실행 요청은, 서버 프로그램과 클라이언트 프로그램 간의 바인딩 요청을 포함할 수 있다. In one embodiment, the electronic device (101) may receive a request to execute a server program related to a hardware component from a receiver device. In one embodiment, after the configuration of the hardware component is completed, the electronic device (101) may receive a request to execute a server program related to the hardware component from the receiver device. In one embodiment, the electronic device (101) may receive a request to execute a server program to connect to a client program related to the hardware component running on the receiver device. According to an embodiment, the request to execute the server program may include a binding request between the server program and the client program.
일 실시 예에서, 클라이언트 프로그램은, 서버 프로그램과 통신(예: 프로세스 간 통신(예: 소켓 통신))할 수 있다. 예를 들면, 클라이언트 프로그램은, 하드웨어 구성요소의 실행(또는, 제어)(또는, 접근)을 위한 요청을 통신 연결된 서버 프로그램에게 제공할 수 있다. 예를 들면, 클라이언트 프로그램은, 통신 연결된 서버 프로그램으로부터 획득되는 요청에 따른 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 어플리케이션(146)에게 제공할 수 있다. 예를 들면, 클라이언트 프로그램은, 하드웨어 구성요소와 관련된 하나 이상의 기능들을 어플리케이션에게 제공하기 위한 하나 이상의 프로그램들의 집합일 수 있다. 일 실시 예에서, 클라이언트 프로그램이 실행될 때, 클라이언트 프로그램은 클라이언트 프로세스로 지칭될 수 있다. In one embodiment, the client program can communicate with the server program (e.g., inter-process communication (e.g., socket communication)). For example, the client program can provide a request for execution (or control) (or access) of a hardware component to the server program with which it is connected to the communication. For example, the client program can provide the execution result (or control result) (or access result) of the hardware component according to the request obtained from the server program with which it is connected to the communication to the application (146). For example, the client program can be a set of one or more programs for providing one or more functions related to the hardware component to the application. In one embodiment, when the client program is executed, the client program can be referred to as a client process.
일 실시 예에서, 서버 프로그램은, 클라이언트 프로그램과 통신(예: 프로세스 간 통신(예: 소켓 통신))할 수 있다. 예를 들면, 서버 프로그램은, 클라이언트 프로그램으로부터의 하드웨어 구성요소의 실행(또는, 제어)(또는, 접근)을 위한 요청을 하드웨어 구성요소와 관련된 디바이스 드라이버에게 전달할 수 있다. 예를 들면, 서버 프로그램은, 디바이스 드라이버로부터 획득되는 요청에 따른 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 통신 연결된 클라이언트 프로그램에게 제공할 수 있다. 예를 들면, 서버 프로그램은, 하드웨어 구성요소와 관련된 하나 이상의 기능들을 클라이언트 프로그램에게 제공하기 위한 하나 이상의 프로그램들의 집합일 수 있다. 일 실시 예에서, 서버 프로그램이 실행될 때, 서버 프로그램은 서버 프로세스로 지칭될 수 있다.In one embodiment, the server program can communicate with the client program (e.g., inter-process communication (e.g., socket communication)). For example, the server program can transmit a request for execution (or control) (or access) of a hardware component from the client program to a device driver associated with the hardware component. For example, the server program can provide the execution result (or control result) (or access result) of the hardware component according to the request obtained from the device driver to the client program with which it is connected to the communication. For example, the server program can be a set of one or more programs for providing one or more functions related to the hardware component to the client program. In one embodiment, when the server program is executed, the server program can be referred to as a server process.
일 실시 예에서, 전자 장치(101)는, 실행 요청에 응답하여, 하드웨어 구성요소와 관련된 서버 프로그램을 실행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 실행 요청에 응답하여, 실행 중인 서버 프로그램과 수용자 장치에서 실행되는 클라이언트 프로그램 간의 통신 연결을 수립할 수 있다. 서버 프로그램과 클라이언트 프로그램 간의 통신 연결을 수립하는 동작은, 도 7a를 참조하여 아래에서 설명될 수 있다.In one embodiment, the electronic device (101) may execute a server program associated with a hardware component in response to an execution request. In one embodiment, the electronic device (101) may establish a communication connection between the running server program and a client program running on a recipient device in response to the execution request. The operation of establishing a communication connection between the server program and the client program may be described below with reference to FIG. 7A.
일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터 요청을 획득할 수 있다. 일 실시 예에서, 요청은, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 포함할 수 있다. In one embodiment, the electronic device (101) may obtain a request from a client program running on the recipient device. In one embodiment, the request may include execution (or control) (or access) of a hardware component.
예를 들면, 하드웨어 구성요소가 카메라인 경우, 요청은, 카메라를 통한 촬영을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 요청은, 카메라의 제어(예: 카메라 전환, 카메라가 제공하는 기본 기능의 적용)를 포함할 수 있다. 예를 들면, 카메라 전환은, 전자 장치(101)에 포함된 복수의 카메라들 중에서 촬영을 위한 카메라의 전환을 포함할 수 있다. 예를 들면, 카메라가 제공하는 기본 기능은, 블러, 얼굴 터치, 오토 프레임, 및/또는 HDR(high dynamic range)를 포함할 수 있다. 하지만 이에 제한되지 않는다. For example, if the hardware component is a camera, the request may include taking a picture using the camera. For example, if the hardware component is a camera, the request may include controlling the camera (e.g., switching cameras, applying basic functions provided by the camera). For example, switching cameras may include switching a camera for taking a picture among multiple cameras included in the electronic device (101). For example, basic functions provided by the camera may include blur, face touch, auto frame, and/or HDR (high dynamic range), but are not limited thereto.
예를 들면, 하드웨어 구성요소가 스피커인 경우, 요청은, 스피커를 통한 미디어(예: 오디오 파일)의 출력(예: 스피커를 통한 출력)을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 스피커인 경우, 요청은, 스피커의 제어(예: 볼륨의 변경, 또는 스피커가 제공하는 기본 기능의 적용)를 포함할 수 있다. 하지만 이에 제한되지 않는다.For example, if the hardware component is a speaker, the request may include outputting media (e.g., an audio file) through the speaker (e.g., outputting through the speaker). For example, if the hardware component is a speaker, the request may include controlling the speaker (e.g., changing the volume or applying a basic function provided by the speaker), but is not limited thereto.
예를 들면, 하드웨어 구성요소가 디스플레이인 경우, 요청은, 디스플레이를 통한 미디어(예: 정지 영상, 및/또는 영상)의 출력(예: 디스플레이를 통한 출력)을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 디스플레이인 경우, 요청은, 디스플레이의 제어(예: 밝기의 변경, 및/또는 프레임율의 변경)를 포함할 수 있다. 하지만 이에 제한되지 않는다. For example, if the hardware component is a display, the request may include outputting media (e.g., still images and/or video) through the display (e.g., outputting through the display). For example, if the hardware component is a display, the request may include controlling the display (e.g., changing brightness and/or changing frame rate), but is not limited thereto.
예를 들면, 하드웨어 구성요소가 스토리지인 경우, 요청은, 스토리지를 통한 데이터의 읽기 및/또는 쓰기를 포함할 수 있다. 하지만 이에 제한되지 않는다. For example, if the hardware component is storage, the request may include, but is not limited to, reading and/or writing data through the storage.
일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터의 요청에 기반하여, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 서버 프로그램 및/또는 디바이스 드라이버를 통해, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행할 수 있다.In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component based on a request from a client program running on the recipient device. In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component through a server program and/or a device driver.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 서버 프로그램을 통해, 클라이언트 프로그램에게 송신할 수 있다. In one embodiment, the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to a client program through a server program.
일 실시 예에서, 서버 프로그램과 클라이언트 프로그램 간의 통신은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 수행될 수 있다. 예를 들면, 크기가 상대적으로 큰 데이터의 경우, 제2 통신 회로(392)를 통해, 서버 프로그램과 클라이언트 프로그램 간의 데이터 전달이 수행될 수 있다. 예를 들면, 크기가 상대적으로 작은 데이터의 경우, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해, 서버 프로그램과 클라이언트 프로그램 간의 데이터 전달이 수행될 수 있다. In one embodiment, communication between the server program and the client program may be performed via the first communication circuit (391) and/or the second communication circuit (392). For example, in the case of data having a relatively large size, data transfer between the server program and the client program may be performed via the second communication circuit (392). For example, in the case of data having a relatively small size, data transfer between the server program and the client program may be performed via the first communication circuit (391) and/or the second communication circuit (392).
예를 들면, 하드웨어 구성요소가 카메라인 경우, 클라이언트 프로그램의 요청은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 서버 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 카메라가 획득한 이미지는, 제2 통신 회로(392)를 통해 서버 프로그램에서 클라이언트 프로그램에게 전달될 수 있다.For example, if the hardware component is a camera, a request from a client program can be transmitted to a server program via a first communication circuit (391) and/or a second communication circuit (392). For example, if the hardware component is a camera, an image acquired by the camera can be transmitted from the server program to the client program via a second communication circuit (392).
예를 들면, 하드웨어 구성요소가 스피커인 경우, 스피커의 제어(예: 볼륨의 변경, 또는 스피커가 제공하는 기본 기능의 적용)를 위한 요청은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 서버 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 스피커인 경우, 미디어(예: 오디오 파일)는, 제2 통신 회로(392)를 통해 클라이언트 프로그램에서 서버 프로그램에게 전달될 수 있다.For example, if the hardware component is a speaker, a request for controlling the speaker (e.g., changing the volume or applying a basic function provided by the speaker) may be transmitted to the server program via the first communication circuit (391) and/or the second communication circuit (392). For example, if the hardware component is a speaker, media (e.g., an audio file) may be transmitted from the client program to the server program via the second communication circuit (392).
예를 들면, 하드웨어 구성요소가 디스플레이인 경우, 디스플레이의 제어(예: 밝기의 변경, 및/또는 프레임율의 변경)를 위한 요청은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 서버 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 디스플레이인 경우, 미디어(예: 정지 영상, 및/또는 영상)는, 제2 통신 회로(392)를 통해 클라이언트 프로그램에서 서버 프로그램에게 전달될 수 있다.For example, if the hardware component is a display, a request for controlling the display (e.g., changing the brightness and/or changing the frame rate) may be transmitted to the server program via the first communication circuit (391) and/or the second communication circuit (392). For example, if the hardware component is a display, media (e.g., still images and/or videos) may be transmitted from the client program to the server program via the second communication circuit (392).
예를 들면, 하드웨어 구성요소가 스토리지인 경우, 데이터의 읽기 요청은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 서버 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 스토리지인 경우, 데이터의 읽기 요청에 따라 스토리지에서 읽힌 데이터는, 제2 통신 회로(392)를 통해 서버 프로그램에서 클라이언트 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 스토리지인 경우, 데이터의 쓰기 요청은, 제2 통신 회로(392)를 통해 서버 프로그램에게 전달될 수 있다. 예를 들면, 하드웨어 구성요소가 스토리지인 경우, 데이터의 쓰기 요청에 따른 응답은, 제1 통신 회로(391) 및/또는 제2 통신 회로(392)를 통해 서버 프로그램에서 클라이언트 프로그램에게 전달될 수 있다.For example, if the hardware component is storage, a data read request may be transmitted to the server program through the first communication circuit (391) and/or the second communication circuit (392). For example, if the hardware component is storage, data read from the storage in response to the data read request may be transmitted from the server program to the client program through the second communication circuit (392). For example, if the hardware component is storage, a data write request may be transmitted to the server program through the second communication circuit (392). For example, if the hardware component is storage, a response in response to the data write request may be transmitted from the server program to the client program through the first communication circuit (391) and/or the second communication circuit (392).
일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터의 요청에 기반하여, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 서버 프로그램 및/또는 디바이스 드라이버를 통해, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행할 수 있다.In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component based on a request from a client program running on the recipient device. In one embodiment, the electronic device (101) may perform execution (or control) (or access) of a hardware component through a server program and/or a device driver.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 서버 프로그램을 통해, 클라이언트 프로그램에게 송신할 수 있다. In one embodiment, the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to a client program through a server program.
일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터 요청에 기반하여, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행하는 동안, 수용자 장치에게 하드웨어 구성요소가 공유됨을 나타내는 UI(예: 도 8a의 화면들(800, 803))를 출력할 수 있다. In one embodiment, the electronic device (101) may output a UI (e.g., screens (800, 803) of FIG. 8A) indicating that the hardware component is shared with the recipient device while performing execution (or control) (or access) of the hardware component based on a request from a client program running on the recipient device.
이하에서, 전자 장치(101)가 손실율에 기반하여, 공유를 위한 하드웨어 구성요소의 성능을 설정하는 동작들이 설명될 수 있다. Below, operations for setting the performance of hardware components for sharing based on the loss rate of the electronic device (101) can be described.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소와 관련된 통신 환경을 식별할 수 있다. 예를 들면, 통신 환경은, 하드웨어 구성요소와 관련된 데이터의 송신 및/또는 수신과 관련될 수 있다. In one embodiment, the electronic device (101) may identify a communication environment associated with a hardware component. For example, the communication environment may be associated with transmission and/or reception of data associated with the hardware component.
일 실시 예에서, 전자 장치(101)는, 통신 환경을 나타내는 하나의 인디케이터로서 하드웨어 구성요소와 관련된 데이터의 손실율을 식별할 수 있다. 일 실시 예에서, 데이터는, 서버 프로그램과 클라이언트 프로그램 간에 전달되는 데이터일 수 있다. 예를 들면, 데이터는 서버 프로그램에서 클라이언트 프로그램으로 전달되는 하드웨어 구성요소가 획득한 데이터일 수 있다. 예를 들면, 데이터는 클라이언트 프로그램에서 서버 프로그램으로 전달되는 하드웨어 구성요소에 출력할 데이터일 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) can identify a loss rate of data associated with a hardware component as an indicator representing a communication environment. In one embodiment, the data may be data transmitted between a server program and a client program. For example, the data may be data acquired by a hardware component transmitted from the server program to the client program. For example, the data may be data to be output to a hardware component transmitted from the client program to the server program. However, the present invention is not limited thereto.
일 실시 예에서, 전자 장치(101)는, 수용자 장치로부터 획득되는 수신 리포트에 기반하여, 데이터의 손실율을 식별할 수 있다. 일 실시 예에서, 수신 리포트는, 지정된 시간 동안, 수용자 장치가 수신한 데이터의 개수(이하, 수신 데이터의 개수) 및/또는 수신하지 못한 데이터의 개수(이하, 수신 실패 데이터의 개수)에 대한 정보를 포함할 수 있다. 일 실시 예에서, 수용자 장치는, 데이터의 시퀀스 번호에 기반하여, 수신 데이터의 개수 및/또는 수신 실패 데이터의 개수를 식별할 수 있다. 예를 들면, 수용자 장치는 지정된 시간 동안 수신 데이터의 개수 및/또는 수신 실패 데이터에 대한 정보를 포함하는 수신 리포트를 전자 장치(101)에게 송신할 수 있다. In one embodiment, the electronic device (101) can identify a data loss rate based on a reception report obtained from the receiver device. In one embodiment, the reception report can include information about the number of data received by the receiver device (hereinafter, “the number of reception data”) and/or the number of data not received by the receiver device (hereinafter, “the number of reception failure data”) during a specified period of time. In one embodiment, the receiver device can identify the number of reception data and/or the number of reception failure data based on a sequence number of the data. For example, the receiver device can transmit a reception report including information about the number of reception data and/or reception failure data during a specified period of time to the electronic device (101).
일 실시 예에서, 전자 장치(101)는, 수신 데이터의 개수 및/또는 수신 실패 데이터의 개수 간의 비율을 손실율로 식별할 수 있다. In one embodiment, the electronic device (101) can identify the ratio between the number of received data and/or the number of failed reception data as a loss rate.
일 실시 예에서, 전자 장치(101)는, 통신 환경에 기반하여, 전자 장치(101)가 수용자 장치에게 데이터를 전송하는 통신 연결의 쓰루풋을 변경할 수 있다. 일 실시 예에서, 전자 장치(101)는, 손실율에 기반하여, 전자 장치(101)가 수용자 장치에게 데이터를 전송하는 통신 연결의 쓰루풋을 변경할 수 있다. In one embodiment, the electronic device (101) can change the throughput of the communication connection through which the electronic device (101) transmits data to the receiver device based on the communication environment. In one embodiment, the electronic device (101) can change the throughput of the communication connection through which the electronic device (101) transmits data to the receiver device based on a loss rate.
예를 들면, 전자 장치(101)는, 통신 환경이 양호해짐에 기반하여, 쓰루풋을 증가시킬 수 있다. 예를 들면, 전자 장치(101)는, 통신 환경이 악화됨에 기반하여, 쓰루풋을 감소시킬 수 있다. 예를 들면, 전자 장치(101)는, 손실율이 제1 범위 이내인 경우, 쓰루풋을 제1 값만큼 변경할 수 있다. 예를 들면, 전자 장치(101)는, 손실율이 제2 범위 이내인 경우, 쓰루풋을 제2 값만큼 변경할 수 있다. 예를 들면, 전자 장치(101)는, 손실율이 제3 범위 이내인 경우, 쓰루풋을 제3 값만큼 변경할 수 있다. 여기에서, 제2 범위의 하한 값은 제1 범위의 상한 값보다 높은 값을 가질 수 있다. 제3 범위의 하한 값은 제2 범위의 상한 값보다 높은 값을 가질 수 있다. 제3 값은 제2 값보다 클 수 있다. 일 실시 예에서, 전자 장치(101)는, 손실율이 없는 경우(또는, 쓰루풋이 낮은 경우), 쓰루풋을 증가시킬 수 있다. 일 실시 예에서, 전자 장치(101)는, 손실율이 있는 경우, 쓰루풋을 감소시킬 수 있다. 일 실시 예에서, 전자 장치(101)는, 손실율이 높을수록, 보다 많이 쓰루풋을 감소킬 수 있다. 예를 들면, 제1 범위는, 0%의 손실율을 포함할 수 있다. 예를 들면, 제2 범위는, 1 내지 4%의 손실율을 포함할 수 있다. 예를 들면, 제3 범위는, 5 내지 10%의 손실율을 포함할 수 있다. 예를 들면, 0%의 손실율이 식별된 경우, 전자 장치(101)는, 쓰루풋을 제1 값만큼 증가시킬 수 있다. 예를 들면, 1 내지 4% 사이의 손실율이 식별된 경우, 전자 장치(101)는, 쓰루풋을 제2 값만큼 감소시킬 수 있다. 예를 들면, 5 내지 10% 사이의 손실율이 식별된 경우, 전자 장치(101)는, 쓰루풋을 제3 값만큼 감소시킬 수 있다.For example, the electronic device (101) may increase the throughput based on an improvement in the communication environment. For example, the electronic device (101) may decrease the throughput based on a deterioration in the communication environment. For example, the electronic device (101) may change the throughput by a first value when the loss rate is within a first range. For example, the electronic device (101) may change the throughput by a second value when the loss rate is within a second range. For example, the electronic device (101) may change the throughput by a third value when the loss rate is within a third range. Here, the lower limit of the second range may have a value higher than the upper limit of the first range. The lower limit of the third range may have a value higher than the upper limit of the second range. The third value may be greater than the second value. In one embodiment, the electronic device (101) can increase the throughput when there is no loss rate (or when the throughput is low). In one embodiment, the electronic device (101) can decrease the throughput when there is a loss rate. In one embodiment, the electronic device (101) can decrease the throughput more as the loss rate increases. For example, the first range can include a loss rate of 0%. For example, the second range can include a loss rate of 1 to 4%. For example, the third range can include a loss rate of 5 to 10%. For example, when a loss rate of 0% is identified, the electronic device (101) can increase the throughput by a first value. For example, when a loss rate between 1 and 4% is identified, the electronic device (101) can decrease the throughput by a second value. For example, if a loss rate of between 5 and 10% is identified, the electronic device (101) may reduce the throughput by a third value.
일 실시 예에서, 전자 장치(101)는, 쓰루풋을 변경하기 위해, 공유 중인 하드웨어 구성요소의 설정을 변경할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소들 각각에 대하여 지정된 파라미터를 변경할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 전자 장치(101)는, 쓰루풋을 변경하기 위해, 해상도, 비트레이트, 및/또는 프레임율 중 적어도 하나(예: 비트레이트)를 변경할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) can change the settings of the shared hardware components to change the throughput. In one embodiment, the electronic device (101) can change the parameters specified for each of the hardware components. For example, if the hardware component is a camera, the electronic device (101) can change at least one of the resolution, bit rate, and/or frame rate (e.g., bit rate) to change the throughput. However, the present invention is not limited thereto.
이하에서, 전자 장치(101)가 전자 장치들(303, 305, 307)의 광고 패킷을 스캔하는 동작들이 설명될 수 있다.Below, operations of the electronic device (101) scanning advertising packets of the electronic devices (303, 305, 307) can be described.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. 일 실시 예에서, 전자 장치(101)는, 입력에 기반하여, 비활성화 상태의 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. In one embodiment, the electronic device (101) can activate a shared function of a hardware component. In one embodiment, the electronic device (101) can activate a shared function of a hardware component that is in a disabled state based on an input.
예를 들면, 전자 장치(101)는, 공유 기능을 설정하기 위한 UI(예: 도 5a 및/또는 도 5b의 화면들(500, 505))에 대한 입력에 기반하여, 하드웨어 구성요소의 공유 기능을 활성화할 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 전자 장치(101)는, 기본 설정에 따라, 공유 기능을 활성화된 상태로 유지할 수 있다. For example, the electronic device (101) may activate the sharing function of a hardware component based on an input to a UI (e.g., screens (500, 505) of FIG. 5A and/or FIG. 5B) for setting the sharing function. However, the present invention is not limited thereto. For example, the electronic device (101) may maintain the sharing function in an activated state according to a default setting.
예를 들면, 전자 장치(101)는, 하드웨어 구성요소의 수용자(recipient)로서 동작하기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)에서 공유 받을 수 있는 하드웨어 구성요소들 중 적어도 하나의 하드웨어 구성요소를 공유받기 위해, 공유 기능을 활성화할 수 있다. For example, the electronic device (101) may activate a sharing function to act as a recipient of a hardware component. For example, the electronic device (101) may activate a sharing function to share at least one hardware component among hardware components that can be shared by the electronic device (101).
예를 들면, 전자 장치(101)는, 하드웨어 구성요소의 공유 조건을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 하드웨어 구성요소를 공유하는 공유자의 범위를 제한하는 공유 조건을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 공유자의 범위를 동일한 계정으로 로그인된 전자 장치로 제한할 수 있다. 예를 들면, 전자 장치(101)는, 공유자의 범위를 동일한 지정된 관련성이 존재하는 사용자(예: 동료, 친구, 또는 가족)의 계정으로 로그인된 전자 장치로 제한할 수 있다. 하지만 이에 제한되지 않는다. For example, the electronic device (101) can set sharing conditions for hardware components. For example, the electronic device (101) can set sharing conditions that limit the range of users sharing the hardware components. For example, the electronic device (101) can limit the range of users to electronic devices logged in with the same account. For example, the electronic device (101) can limit the range of users to electronic devices logged in with the account of a user with the same specified relationship (e.g., a colleague, friend, or family member). However, the present invention is not limited thereto.
일 실시 예에서, 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소를 공유받기 위해 공유 기능을 활성화함에 기반하여, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷(예: ADV_IND)을 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 주기적으로 스캔할 수 있다. 공유가 활성화됨을 나타내는 광고 패킷을 스캔하는 동작은, 도 6c를 참조하여 아래에서 설명될 수 있다.In one embodiment, the electronic device (101) may scan for an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled, via the first communication circuit (391), based on activating a sharing function to share at least one hardware component. In one embodiment, the electronic device (101) may periodically scan for an advertisement packet indicating that sharing is enabled, via the first communication circuit (391). The operation of scanning for an advertisement packet indicating that sharing is enabled may be described below with reference to FIG. 6C.
일 실시 예에서, 전자 장치(101)는, 제1 통신 회로(391)를 통해, 공유 기능(또는, MCF)과 관련된 필드(예: 연속성 LTV 필드)를 포함하는 광고 패킷을 주기적으로 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 연속성 LTV 필드에 지정된 사용자 정보(또는, 지정된 계정 정보)(또는, 지정된 계정 ID)가 포함된 광고 패킷을 주기적으로 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유 조건에 부합하는 사용자 정보를 가지는 광고 패킷을 주기적으로 스캔할 수 있다.In one embodiment, the electronic device (101) may periodically scan, via the first communication circuit (391), an advertising packet including a field (e.g., a continuity LTV field) related to a shared function (or MCF). In one embodiment, the electronic device (101) may periodically scan an advertising packet including user information (or, designated account information) (or, designated account ID) specified in the continuity LTV field. In one embodiment, the electronic device (101) may periodically scan an advertising packet having user information that satisfies a sharing condition.
일 실시 예에서, 전자 장치(101)는, 연속성 LTV 필드 중 공유 기능(또는, MCF)과 관련된 다른 필드(예: 다른 연속성 LTV 필드(예컨대, ClientHandlerContext 필드))에 공유 기능이 활성화됨을 나타내는 정보가 포함된 광고 패킷을 주기적으로 스캔할 수 있다. 예를 들면, 전자 장치(101)는, 광고 패킷의 공유 기능과 관련된 다른 필드의 지정된 항목(예: AppID)에 지정된 값(예: 6)이 입력된 광고 패킷을 주기적으로 스캔할 수 있다.In one embodiment, the electronic device (101) may periodically scan for advertisement packets that include information indicating that the sharing function is activated in another field (e.g., another continuity LTV field (e.g., a ClientHandlerContext field)) related to the sharing function (or MCF) among the continuity LTV fields. For example, the electronic device (101) may periodically scan for advertisement packets in which a specified value (e.g., 6) is entered in a specified item (e.g., AppID) of another field related to the sharing function of the advertisement packet.
이하에서, 전자 장치(101)가 공유자의 하드웨어 구성요소의 성능 정보(또는, 리소스)를 획득하는 동작들이 설명될 수 있다. Below, operations by which an electronic device (101) obtains performance information (or resources) of a hardware component of a sharer can be described.
일 실시 예에서, 전자 장치(101)는, 지정된 광고 패킷을 수신함에 기반하여, 제1 통신 회로(391)를 통해 공유자 장치(예: 전자 장치(303))에게 스캔 요청(예: SCAN_REQ)을 송신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소의 성능 정보를 요청하는 스캔 요청을 송신할 수 있다. In one embodiment, the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) to a sharer device (e.g., electronic device (303)) via the first communication circuit (391) based on receiving a designated advertising packet. In one embodiment, the electronic device (101) may transmit the scan request requesting performance information of at least one hardware component.
일 실시 예에서, 전자 장치(101)는, 공유자 장치로부터 스캔 요청에 대한 응답으로 성능 정보를 포함하는 패킷(예: SCAN_RSP)을 수신할 수 있다. 일 실시 예에서, 성능 정보를 포함하는 스캔 응답(예: SCAN_RSP)은, 미디어 설정 사양 메시지(예: MediaConfigSpec)로 지칭될 수 있다. 하지만 이에 제한되지 않는다. 예를 들면, 전자 장치(101)는, 공유가 활성화됨을 나타내는 광고 패킷에서 성능 정보를 획득할 수 있다. 이 경우, 스캔 요청(예: SCAN_REQ) 및/또는 스캔 응답(예: SCAN_RSP)은 송신 및/또는 수신되지 않을 수 있다. In one embodiment, the electronic device (101) may receive a packet (e.g., SCAN_RSP) containing performance information in response to a scan request from the sharer device. In one embodiment, the scan response (e.g., SCAN_RSP) containing performance information may be referred to as a media configuration specification message (e.g., MediaConfigSpec), but is not limited thereto. For example, the electronic device (101) may obtain the performance information from an advertising packet indicating that sharing is enabled. In this case, the scan request (e.g., SCAN_REQ) and/or the scan response (e.g., SCAN_RSP) may not be transmitted and/or received.
일 실시 예에서, 전자 장치(101)는, 패킷(예: SCAN_RSP)에 기반하여, 공유자 장치가 공유하는 하드웨어 구성요소를 식별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유자 장치가 공유하는 하드웨어 구성요소가 전자 장치(101)가 공유 기능을 활성화한 하드웨어 구성요소에 대응함에 기반하여, 공유 기능을 설정하기 위한 UI(예: 도 5a의 화면(500))에 검색된 공유자를 나타내는 시각적 객체를 표시할 수 있다. In one embodiment, the electronic device (101) can identify a hardware component shared by the sharer device based on a packet (e.g., SCAN_RSP). In one embodiment, the electronic device (101) can display a visual object representing the found sharer on a UI (e.g., screen (500) of FIG. 5A) for setting the sharing function based on whether the hardware component shared by the sharer device corresponds to a hardware component for which the electronic device (101) has enabled the sharing function.
이하에서, 전자 장치(101)가 공유를 위한 하드웨어 구성요소의 성능을 설정하는 동작들이 설명될 수 있다. Below, operations for setting the performance of hardware components for sharing by an electronic device (101) can be described.
일 실시 예에서, 전자 장치(101)는, 공유자 장치의 하드웨어 구성요소의 성능을 설정할 수 있다. 예를 들면, 복수의 공유자 장치들이 검색된 경우, 전자 장치(101)는, 선택된 하나의 공유자 장치의 하드웨어 구성요소의 성능을 설정할 수 있다. 예를 들면, 전자 장치(101)는, 복수의 공유자 장치들 중 가장 최근에 연결된(또는, 공유받은)(또는, 공유한) 공유자 장치를 선택할 수 있다. 예를 들면, 전자 장치(101)는, 복수의 공유자 장치들 중 사용자의 선택에 기반하여 공유자 장치를 선택할 수 있다.In one embodiment, the electronic device (101) can set the performance of the hardware components of the sharer device. For example, when multiple sharer devices are searched, the electronic device (101) can set the performance of the hardware components of the selected sharer device. For example, the electronic device (101) can select the most recently connected (or shared) (or shared) sharer device among the multiple sharer devices. For example, the electronic device (101) can select the sharer device based on a user's selection among the multiple sharer devices.
일 실시 예에서, 전자 장치(101)는, 성능 정보를 포함하는 패킷(예: SCAN_RSP)에 기반하여, 하드웨어 구성요소의 설정 정보를 결정할 수 있다. 일 실시 예에서, 전자 장치(101)는, 선택된 공유자 장치로부터 수신된 성능 정보를 포함하는 패킷(예: SCAN_RSP)에 기반하여, 하드웨어 구성요소의 설정 정보를 결정할 수 있다. In one embodiment, the electronic device (101) may determine configuration information of a hardware component based on a packet (e.g., SCAN_RSP) containing performance information. In one embodiment, the electronic device (101) may determine configuration information of a hardware component based on a packet (e.g., SCAN_RSP) containing performance information received from a selected sharer device.
일 실시 예에서, 전자 장치(101)는, 결정된 설정 정보를 포함하는, 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)을 공유자 장치에게 송신할 수 있다. 일 실시 예에서, 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)은, 미디어 설정 메시지(예: MediaConfig)로 지칭될 수 있다. 성능 정보를 전달 및/또는 설정하는 동작은, 도 7b, 및 도 10a 내지 도 10e를 참조하여 아래에서 설명될 수 있다.In one embodiment, the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) requesting configuration of a hardware component, including determined configuration information, to the sharer device. In one embodiment, the scan request (e.g., SCAN_REQ) requesting configuration of a hardware component may be referred to as a media configuration message (e.g., MediaConfig). The operation of transmitting and/or setting performance information may be described below with reference to FIG. 7B and FIGS. 10A to 10E.
일 실시 예에서, 전자 장치(101)는, 공유자 장치로부터 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)을 수신할 수 있다. 일 실시 예에서, 하드웨어 구성요소의 설정이 변경됨을 나타내는 스캔 응답(예: SCAN_RSP)은, 미디어 설정 메시지(예: MediaConfig)로 지칭될 수 있다. In one embodiment, the electronic device (101) may receive a scan response (e.g., SCAN_RSP) from the sharer device indicating that a configuration of a hardware component has changed. In one embodiment, the scan response (e.g., SCAN_RSP) indicating that a configuration of a hardware component has changed may be referred to as a media configuration message (e.g., MediaConfig).
실시 예에 따라, 전자 장치(101)는, 공유자 장치에게 하드웨어 구성요소의 설정 변경을 요청하는 스캔 요청(예: SCAN_REQ)을 송신할 수 있다. 일 실시 예에서, 설정 변경을 요청하는 스캔 요청(예: SCAN_REQ)은, 미디어 설정 변경 메시지(예: ChangeMedia)로 지칭될 수 있다. 일 실시 예에서, 미디어 설정 변경 메시지는, 하드웨어 구성요소의 미디어 유형을 나타내는 파라미터, 및 하드웨어 구성요소의 속성들 중 변경할 속성에 대한 파라미터를 포함할 수 있다. According to an embodiment, the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) requesting a change in the settings of a hardware component to the sharer device. In one embodiment, the scan request (e.g., SCAN_REQ) requesting a change in settings may be referred to as a media settings change message (e.g., ChangeMedia). In one embodiment, the media settings change message may include a parameter indicating the media type of the hardware component and a parameter for an attribute to be changed among the attributes of the hardware component.
실시 예에 따라, 전자 장치(101)는, 하드웨어 구성요소의 설정 정보를 기본 설정에서 변경하지 않을 수 있다. 이 경우, 전자 장치(101)는, 공유자 장치에게 하드웨어 구성요소의 설정을 요청하는 스캔 요청(예: SCAN_REQ)을 송신하지 않을 수 있다. 이 경우, 공유자 장치의 하드웨어 구성요소의 설정은 기본 설정으로 유지될 수 있다. According to an embodiment, the electronic device (101) may not change the configuration information of the hardware components from the default settings. In this case, the electronic device (101) may not transmit a scan request (e.g., SCAN_REQ) requesting the shared device to configure the hardware components. In this case, the configuration of the hardware components of the shared device may be maintained at the default settings.
이하에서, 전자 장치(101)의 공유자 장치(예: 전자 장치(303))의 하드웨어 구성요소에 접근을 위한 공유 동작들이 설명될 수 있다. Below, sharing operations for accessing hardware components of a sharer device (e.g., electronic device (303)) of an electronic device (101) may be described.
일 실시 예에서, 전자 장치(101)는, 공유자 장치의 하드웨어 구성요소와 관련된 클라이언트 프로그램을 실행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 설정이 완료된 후, 공유자 장치의 하드웨어 구성요소와 관련된 클라이언트 프로그램을 실행할 수 있다. In one embodiment, the electronic device (101) may execute a client program related to a hardware component of the sharer device. In one embodiment, the electronic device (101) may execute a client program related to a hardware component of the sharer device after the configuration of the hardware component is completed.
일 실시 예에서, 전자 장치(101)는, 공유자 장치에게 하드웨어 구성요소와 관련된 서버 프로그램의 실행 요청을 송신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램의 실행(또는, 하드웨어 구성요소의 설정)이 완료된 후, 공유자 장치에게 하드웨어 구성요소와 관련된 서버 프로그램의 실행 요청을 송신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유자 장치에게 클라이언트 프로그램에 연결시키기 위한, 서버 프로그램의 실행 요청을 송신할 수 있다. 실시 예에 따라, 서버 프로그램의 실행 요청은, 서버 프로그램과 클라이언트 프로그램 간의 바인딩 요청을 포함할 수 있다.In one embodiment, the electronic device (101) may transmit a request to the sharer device to execute a server program related to a hardware component. In one embodiment, after execution of the client program (or configuration of the hardware component) is completed, the electronic device (101) may transmit a request to the sharer device to execute a server program related to the hardware component. In one embodiment, the electronic device (101) may transmit a request to execute a server program to connect the sharer device to a client program. According to an embodiment, the request to execute the server program may include a binding request between the server program and the client program.
일 실시 예에서, 전자 장치(101)는, 실행 요청에 대한 응답을 공유자 장치로부터 수신할 수 있다. 예를 들면, 실행 요청에 대한 응답은, 클라이언트 프로그램과 서버 프로그램 간의 통신 연결 정보를 포함할 수 있다. 서버 프로그램과 클라이언트 프로그램 간의 통신 연결을 수립하는 동작은, 도 7a를 참조하여 아래에서 설명될 수 있다.In one embodiment, the electronic device (101) may receive a response to an execution request from the sharer device. For example, the response to the execution request may include communication connection information between the client program and the server program. The operation of establishing a communication connection between the server program and the client program may be described below with reference to FIG. 7A.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소와 관련된 (가상) 디바이스 드라이버를 활성화(또는, 적재(예: INSMOD))할 수 있다. 예를 들면, 하드웨어 구성요소와 관련된 (가상) 디바이스 드라이버를 활성화(또는, 적재(예: INSMOD))함은, 커널 레이어에 하드웨어 구성요소를 나타내는 (커널) 오브젝트를 생성함을 포함할 수 있다. In one embodiment, the electronic device (101) may activate (or load (e.g., INSMOD)) a (virtual) device driver associated with a hardware component. For example, activating (or loading (e.g., INSMOD)) a (virtual) device driver associated with a hardware component may include creating a (kernel) object representing the hardware component in the kernel layer.
일 실시 예에서, 전자 장치(101)는, 전자 장치(303)가 동일한 종류의 하드웨어 구성요소를 복수개 공유하는 경우(예: 하나 이상의 전면 카메라들, 및/또는 하나 이상의 후면 카메라들을 공유하는 경우), 하드웨어 구성요소와 관련된 하나의 (가상) 디바이스 드라이버를 활성화(또는, 적재(예: INSMOD))할 수 있다.In one embodiment, the electronic device (101) may activate (or load (e.g., INSMOD)) a single (virtual) device driver associated with a hardware component when the electronic device (303) shares multiple hardware components of the same type (e.g., one or more front cameras, and/or one or more rear cameras).
일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램이 실행되고, (가상) 디바이스 드라이버가 활성화됨(또는, 적재)에 기반하여, 디바이스 매니저에 하드웨어 구성요소를 등록할 수 있다. 예를 들면, 디바이스 매니저에 하드웨어 구성요소가 등록됨에 따라, 어플리케이션(146)에게 전자 장치(101)에 실재로 포함된 하드웨어 구성요소 및 공유자 장치에서 공유받은 하드웨어 구성요소에 대한 장치 목록이 디바이스 매니저를 통해 제공될 수 있다. 여기에서, 디바이스 매니저는, 하드웨어 구성요소를 관리하기 위한 프로그램일 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 디바이스 매니저는 카메라 매니저일 수 있다. 예를 들면, 하드웨어 구성요소가 디스플레이인 경우, 디바이스 매니저는 디스플레이 매니저일 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) may register a hardware component with the device manager based on the execution of a client program and the activation (or loading) of a (virtual) device driver. For example, as the hardware component is registered with the device manager, a device list of hardware components actually included in the electronic device (101) and hardware components shared from a sharer device may be provided to the application (146) through the device manager. Here, the device manager may be a program for managing the hardware component. For example, if the hardware component is a camera, the device manager may be a camera manager. For example, if the hardware component is a display, the device manager may be a display manager. However, the present invention is not limited thereto.
일 실시 예에서, 전자 장치(101)는, 전자 장치(303)가 동일한 종류의 하드웨어 구성요소를 복수개 공유하는 경우(예: 하나 이상의 전면 카메라들, 및/또는 하나 이상의 후면 카메라들을 공유하는 경우), 디바이스 매니저에 하드웨어 구성요소가 등록됨에 따라, 어플리케이션(146)에게 복수개의 하드웨어 구성요소들을 포함하는 장치 목록이 제공될 수 있다.In one embodiment, when the electronic device (101) shares multiple hardware components of the same type (e.g., shares one or more front cameras and/or one or more rear cameras), a list of devices including multiple hardware components may be provided to the application (146) as the hardware components are registered with the device manager.
일 실시 예에서, 전자 장치(101)는, 어플리케이션(146)으로부터 공유 받은 하드웨어 구성요소에 대한 요청을 획득할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터 요청을 획득할 수 있다. 일 실시 예에서, 요청은, 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 카메라인 경우, 요청은, 카메라를 통한 촬영을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 스피커, 및/또는 디스플레이인 경우, 요청은, 스피커, 및/또는 디스플레이를 통한 미디어의 출력(예: 스피커를 통한 출력, 및/또는 디스플레이를 통한 출력)을 포함할 수 있다. 예를 들면, 하드웨어 구성요소가 스토리지인 경우, 요청은, 스토리지를 통한 데이터의 읽기 및/또는 쓰기를 포함할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) may obtain a request for a hardware component shared from an application (146). In one embodiment, the electronic device (101) may obtain the request from a client program running on a recipient device. In one embodiment, the request may include execution (or control) (or access) of the hardware component. For example, if the hardware component is a camera, the request may include taking a picture through the camera. For example, if the hardware component is a speaker and/or a display, the request may include outputting media through the speaker and/or the display (e.g., outputting through the speaker and/or outputting through the display). For example, if the hardware component is a storage, the request may include reading and/or writing data through the storage, but is not limited thereto.
일 실시 예에서, 전자 장치(101)는, 어플리케이션(146)으로부터의 요청을 디바이스 매니저를 통해 클라이언트 프로그램에게 전달할 수 있다. 일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램에 전달된 요청을 공유자 장치에서 실행되는 서버 프로그램에게 송신할 수 있다. In one embodiment, the electronic device (101) can transmit a request from an application (146) to a client program through a device manager. In one embodiment, the electronic device (101) can transmit the request transmitted to the client program to a server program running on a sharer device.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 서버 프로그램으로부터 획득할 수 있다. In one embodiment, the electronic device (101) can obtain a response from the server program indicating an execution result (or control result) (or access result) of a hardware component.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 클라이언트 프로그램, 및/또는 디바이스 매니저를 통해 어플리케이션(146)에게 전달할 수 있다. In one embodiment, the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to the application (146) through a client program and/or a device manager.
일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램을 통해, 공유자 장치의 하드웨어 구성요소에 대한 실행(또는, 제어)(또는, 접근)을 수행하는 동안, 공유자 장치의 하드웨어 구성요소로부터 획득되는 데이터 및/또는 하드웨어 구성요소의 제어를 위한 UI(예: 도 8b의 화면(805))를 표시할 수 있다. In one embodiment, the electronic device (101) may, while executing (or controlling) (or accessing) the hardware components of the sharer device through a client program, display data obtained from the hardware components of the sharer device and/or a UI for controlling the hardware components (e.g., screen (805) of FIG. 8b).
상술한 바와 같은, 전자 장치(101)와 전자 장치들(303, 305, 307)은, 다른 전자 장치가 구비한 하드웨어 구성요소를 자신의 하드웨어 구성요소로서 이용할 수 있다. 예를 들면, 하드웨어 구성요소를 공유 받은 전자 장치(101)는, 전자 장치(101)의 프레임워크에 하드웨어 구성요소를 등록함으로써, 전자 장치(101)의 어플리케이션(146)이 하드웨어 구성요소를 인식하게 할 수 있다. 따라서, 전자 장치(101)와 전자 장치들(303, 305, 307)은, 통신을 위한 전용 어플리케이션의 설치 없이, 하드웨어 구성요소의 공유를 가능하게 함으로써, 사용자가 사용하는 전자 장치(101)의 하드웨어 구성요소의 제약을 감소시킬 수 있다. As described above, the electronic device (101) and the electronic devices (303, 305, 307) can utilize hardware components provided by other electronic devices as their own hardware components. For example, the electronic device (101) that has shared a hardware component can register the hardware component in the framework of the electronic device (101) so that the application (146) of the electronic device (101) can recognize the hardware component. Accordingly, the electronic device (101) and the electronic devices (303, 305, 307) can reduce the limitations of the hardware components of the electronic device (101) used by the user by enabling the sharing of hardware components without installing a dedicated application for communication.
도 4a는 일 실시 예에 따른, 다른 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 4A is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
도 4a는, 도 1 및 도 3을 참조하여 설명될 수 있다. Fig. 4a can be explained with reference to Figs. 1 and 3.
도 4a를 참조하면, 설정 화면(400)에서, 전자 장치(303)는, 카메라의 공유자로서 동작하기 위해, 카메라의 공유를 설정할 수 있다. 예를 들면, 카메라의 공유를 설정하기 위한 영역(411)에 위치하는, 시각적 객체(415)에 대한 입력에 기반하여, 전자 장치(303)는, 카메라의 공유를 활성화하거나, 또는 비활성화할 수 있다. 일 실시 예에서, 시각적 객체(415)는, 두 개의 옵션들(예: 공유의 활성화 및 공유의 비활성화) 중 하나의 옵션을 선택하기 위한 토글 스위치일 수 있다. Referring to FIG. 4A, in the settings screen (400), the electronic device (303) can set up sharing of the camera to act as a camera sharer. For example, based on an input to a visual object (415) located in an area (411) for setting up sharing of the camera, the electronic device (303) can activate or deactivate sharing of the camera. In one embodiment, the visual object (415) can be a toggle switch for selecting one of two options (e.g., activating sharing and deactivating sharing).
일 실시 예에서, 전자 장치(303)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(393)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 방송할 수 있다. In one embodiment, the electronic device (303) may broadcast an advertising packet indicating that sharing is enabled via the first communication circuit (393) based on sharing being enabled.
도 4b는 일 실시 예에 따른, 다른 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 4b is a diagram illustrating an example of a screen displayed on another electronic device according to one embodiment.
도 4b는, 도 1 및 도 3을 참조하여 설명될 수 있다. Fig. 4b can be explained with reference to Figs. 1 and 3.
도 4b를 참조하면, 설정 화면(405)에서, 전자 장치(303)는, 하드웨어 구성요소의 공유자로서 동작하기 위해, 복수의 하드웨어 구성요소들 중 적어도 하나의 하드웨어 구성요소들의 공유를 설정할 수 있다. 일 실시 예에서, 설정 화면(405)에는, 하드웨어 구성요소의 공유를 설정하기 위한 화면임을 나타내는 텍스트 객체(421), 공유 설정을 가이드하는 영역(425), 및 공유 가능한 복수의 하드웨어 구성요소들의 설정을 위한 영역들(431, 441, 451, 461, 및 471)이 포함될 수 있다. 하지만 이에 제한되지 않는다.Referring to FIG. 4B, in the setting screen (405), the electronic device (303) may set sharing of at least one of a plurality of hardware components in order to operate as a sharer of the hardware components. In one embodiment, the setting screen (405) may include a text object (421) indicating that it is a screen for setting sharing of a hardware component, an area (425) for guiding sharing settings, and areas (431, 441, 451, 461, and 471) for setting a plurality of sharable hardware components. However, the present invention is not limited thereto.
예를 들면, 전자 장치(303)는, 하드웨어 자원 초기화를 통해, 공유 가능한 복수의 하드웨어 구성요소들을 식별할 수 있다. 예를 들면, 전자 장치(303)는, 식별된 복수의 하드웨어 구성요소들을 영역들(431, 441, 451, 461, 및 471)에 표시할 수 있다. For example, the electronic device (303) may identify a plurality of shareable hardware components through hardware resource initialization. For example, the electronic device (303) may display the identified plurality of hardware components in areas (431, 441, 451, 461, and 471).
예를 들면, 전자 장치(303)는, 영역들(431, 441, 451, 461, 및 471)에 위치하는 시각적 객체들(435, 445, 455, 465, 및 475)에 대한 사용자 입력에 기반하여, 복수의 하드웨어 구성요소들 각각의 공유 여부를 결정할 수 있다. 예를 들면, 스토리지의 공유를 설정하기 위한 영역(431)에 위치하는, 시각적 객체(435)에 대한 입력에 기반하여, 전자 장치(303)는, 스토리지의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 스피커의 공유를 설정하기 위한 영역(441)에 위치하는, 시각적 객체(445)에 대한 입력에 기반하여, 전자 장치(303)는, 스피커의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 카메라의 공유를 설정하기 위한 영역(451)에 위치하는, 시각적 객체(455)에 대한 입력에 기반하여, 전자 장치(303)는, 카메라의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 키보드의 공유를 설정하기 위한 영역(461)에 위치하는, 시각적 객체(465)에 대한 입력에 기반하여, 전자 장치(303)는, 키보드의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 디스플레이의 공유를 설정하기 위한 영역(471)에 위치하는, 시각적 객체(475)에 대한 입력에 기반하여, 전자 장치(303)는, 디스플레이의 공유를 활성화 또는 비활성화할 수 있다. For example, the electronic device (303) can determine whether to share each of the plurality of hardware components based on user input for visual objects (435, 445, 455, 465, and 475) located in areas (431, 441, 451, 461, and 471). For example, based on input for visual object (435) located in area (431) for setting sharing of storage, the electronic device (303) can activate or deactivate sharing of storage. For example, based on input for visual object (445) located in area (441) for setting sharing of speaker, the electronic device (303) can activate or deactivate sharing of speaker. For example, based on an input to a visual object (455) located in an area (451) for setting up sharing of a camera, the electronic device (303) can activate or deactivate sharing of the camera. For example, based on an input to a visual object (465) located in an area (461) for setting up sharing of a keyboard, the electronic device (303) can activate or deactivate sharing of the keyboard. For example, based on an input to a visual object (475) located in an area (471) for setting up sharing of a display, the electronic device (303) can activate or deactivate sharing of the display.
일 실시 예에서, 전자 장치(303)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(393)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 방송할 수 있다. In one embodiment, the electronic device (303) may broadcast an advertising packet indicating that sharing is enabled via the first communication circuit (393) based on sharing being enabled.
도 5a는 일 실시 예에 따른, 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 5A is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
도 5a는, 도 1 및 도 3을 참조하여 설명될 수 있다. Fig. 5a can be explained with reference to Figs. 1 and 3.
도 5a를 참조하면, 설정 화면(500)에서, 전자 장치(101)는, 카메라의 수용자로서 동작하기 위해, 카메라의 공유를 설정할 수 있다. 예를 들면, 설정 화면(500)에서, 전자 장치(101)는, 기기 간 연결을 위한 항목(510)이 선택됨에 기반하여, 카메라의 공유를 설정하기 위한 화면을 표시할 수 있다. 카메라의 공유를 설정하기 위한 화면에는, 카메라 공유임을 나타내는 텍스트 객체(521), 카메라 공유의 활성화 또는 비활성화를 설정하기 위한 시각적 객체(525), 카메라 공유 동안, 공유자로부터 획득되는 이미지가 표시되는 영역(531), 카메라의 공유 설정을 가이드하는 영역(535), 스캔된 공유자의 목록(541), 및 공유자의 추가 스캔을 요청하기 위한 객체(545)가 포함될 수 있다. Referring to FIG. 5A, in the setting screen (500), the electronic device (101) can set up sharing of the camera in order to act as a camera receiver. For example, in the setting screen (500), the electronic device (101) can display a screen for setting up sharing of the camera based on the selection of an item (510) for device-to-device connection. The screen for setting up sharing of the camera may include a text object (521) indicating that it is camera sharing, a visual object (525) for setting up or disabling camera sharing, an area (531) for displaying an image acquired from a sharer during camera sharing, an area (535) for guiding the sharing settings of the camera, a list of scanned sharers (541), and an object (545) for requesting additional scans of the sharer.
예를 들면, 카메라의 공유를 설정하기 시각적 객체(525)에 대한 입력에 기반하여, 전자 장치(101)는, 카메라의 공유를 활성화하거나, 또는 비활성화할 수 있다. 일 실시 예에서, 시각적 객체(525)는, 두 개의 옵션들(예: 공유의 활성화 및 공유의 비활성화) 중 하나의 옵션을 선택하기 위한 토글 스위치일 수 있다. For example, based on an input to a visual object (525) to set up sharing of a camera, the electronic device (101) may enable or disable sharing of the camera. In one embodiment, the visual object (525) may be a toggle switch for selecting one of two options (e.g., enabling sharing and disabling sharing).
일 실시 예에서, 전자 장치(101)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유가 활성화된 동안, 카메라를 공유하는 하나 이상의 전자 장치들을 목록(541)에 표시할 수 있다. In one embodiment, the electronic device (101) may scan, via the first communication circuit (391), for an advertising packet indicating that sharing is enabled based on the sharing being enabled. In one embodiment, the electronic device (101) may display one or more electronic devices sharing the camera in a list (541) while sharing is enabled.
도 5b는 일 실시 예에 따른, 전자 장치에서 표시되는 화면의 일 예를 도시하는 도면이다. FIG. 5b is a diagram illustrating an example of a screen displayed on an electronic device according to one embodiment.
도 5b는, 도 1 및 도 3을 참조하여 설명될 수 있다. Fig. 5b can be explained with reference to Figs. 1 and 3.
도 5b를 참조하면, 설정 화면(505)에서, 전자 장치(101)는, 하드웨어 구성요소의 수용자로서 동작하기 위해, 복수의 하드웨어 구성요소들 중 적어도 하나의 하드웨어 구성요소들의 공유를 설정할 수 있다. 일 실시 예에서, 설정 화면(505)에는, 하드웨어 구성요소의 공유를 설정하기 위한 화면임을 나타내는 텍스트 객체(551), 공유 설정을 가이드하는 영역(555), 및 공유 가능한 복수의 하드웨어 구성요소들의 설정을 위한 영역들(561, 571, 581)이 포함될 수 있다. 하지만 이에 제한되지 않는다.Referring to FIG. 5B, in the setting screen (505), the electronic device (101) may set sharing of at least one of a plurality of hardware components in order to operate as a recipient of the hardware components. In one embodiment, the setting screen (505) may include a text object (551) indicating that it is a screen for setting sharing of a hardware component, an area (555) for guiding sharing settings, and areas (561, 571, 581) for setting a plurality of sharable hardware components. However, the present invention is not limited thereto.
예를 들면, 전자 장치(101)는, 하드웨어 자원 초기화를 통해, 공유받을 수 있는 복수의 하드웨어 구성요소들을 식별할 수 있다. 예를 들면, 전자 장치(101)는, 식별된 복수의 하드웨어 구성요소들을 영역들(561, 571, 581)에 표시할 수 있다. 여기에서, 공유받을 수 있는 복수의 하드웨어 구성요소들은, 복수의 하드웨어 구성요소들 각각의 클라이언트 프로그램 및/또는 디바이스 드라이버가 존재하는 하드웨어 구성요소일 수 있다. 일 실시 예에서, 전자 장치(101)가 클라이언트 프로그램 및/또는 디바이스 드라이버를 추가로 획득(또는, 다운로드)함에 따라, 공유받을 수 있는 복수의 하드웨어 구성요소들이 더 추가될 수 있다. For example, the electronic device (101) can identify a plurality of hardware components that can be shared through hardware resource initialization. For example, the electronic device (101) can display the identified plurality of hardware components in areas (561, 571, 581). Here, the plurality of hardware components that can be shared may be hardware components in which a client program and/or a device driver for each of the plurality of hardware components exists. In one embodiment, as the electronic device (101) additionally acquires (or downloads) a client program and/or a device driver, the plurality of hardware components that can be shared may be further added.
예를 들면, 전자 장치(101)는, 영역들(561, 571, 및 581)에 위치하는 시각적 객체들(565, 575, 및 585)에 대한 사용자 입력에 기반하여, 복수의 하드웨어 구성요소들 각각의 공유 여부를 결정할 수 있다. 예를 들면, 스토리지의 공유를 설정하기 위한 영역(561)에 위치하는, 시각적 객체(565)에 대한 입력에 기반하여, 전자 장치(101)는, 스토리지의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 스피커의 공유를 설정하기 위한 영역(571)에 위치하는, 시각적 객체(575)에 대한 입력에 기반하여, 전자 장치(101)는, 스피커의 공유를 활성화 또는 비활성화할 수 있다. 예를 들면, 카메라의 공유를 설정하기 위한 영역(581)에 위치하는, 시각적 객체(585)에 대한 입력에 기반하여, 전자 장치(101)는, 카메라의 공유를 활성화 또는 비활성화할 수 있다. For example, the electronic device (101) can determine whether to share each of a plurality of hardware components based on user input to visual objects (565, 575, and 585) located in areas (561, 571, and 581). For example, based on an input to a visual object (565) located in an area (561) for setting sharing of storage, the electronic device (101) can activate or deactivate sharing of storage. For example, based on an input to a visual object (575) located in an area (571) for setting sharing of a speaker, the electronic device (101) can activate or deactivate sharing of the speaker. For example, based on an input to a visual object (585) located in an area (581) for setting sharing of a camera, the electronic device (101) can activate or deactivate sharing of a camera.
일 실시 예에서, 전자 장치(101)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 스캔할 수 있다. In one embodiment, the electronic device (101) may scan, via the first communication circuit (391), an advertising packet indicating that sharing is enabled based on sharing being enabled.
도 6a는 일 실시 예에 따른, 전자 장치들 간의 광고 및 스캔을 위한 동작들을 예시하는 도면이다. FIG. 6A is a diagram illustrating operations for advertising and scanning between electronic devices according to one embodiment.
도 6a는 도 1 내지 도 5b를 참조하여 설명될 수 있다. Figure 6a can be explained with reference to Figures 1 to 5b.
도 6a를 참조하면, 동작 611에서, 전자 장치(101)는, 공유 기능을 활성화할 수 있다. 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소를 공유받기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(101)는, 공유받을 수 있는 복수의 하드웨어 구성요소들 중 선택된 적어도 하나의 하드웨어 구성요소를 공유받기 위해, 공유 기능을 활성화할 수 있다.Referring to FIG. 6A, in operation 611, the electronic device (101) may activate a sharing function. The electronic device (101) may activate the sharing function to share at least one hardware component. For example, the electronic device (101) may activate the sharing function to share at least one hardware component selected from among a plurality of hardware components that may be shared.
동작 613에서, 전자 장치(303)는, 공유 기능을 활성화할 수 있다. 전자 장치(303)는, 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(303)는, 공유할 수 있는 복수의 하드웨어 구성요소들 중 선택된 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다.In operation 613, the electronic device (303) may activate a sharing function. The electronic device (303) may activate the sharing function to share at least one hardware component. For example, the electronic device (303) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
동작 615에서, 전자 장치(305)는, 공유 기능을 활성화할 수 있다. 전자 장치(305)는, 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(305)는, 공유할 수 있는 복수의 하드웨어 구성요소들 중 선택된 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다.In operation 615, the electronic device (305) may activate a sharing function. The electronic device (305) may activate the sharing function to share at least one hardware component. For example, the electronic device (305) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
동작 617에서, 전자 장치(307)는, 공유 기능을 활성화할 수 있다. 전자 장치(307)는, 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다. 예를 들면, 전자 장치(307)는, 공유할 수 있는 복수의 하드웨어 구성요소들 중 선택된 적어도 하나의 하드웨어 구성요소를 공유하기 위해, 공유 기능을 활성화할 수 있다.In operation 617, the electronic device (307) may activate a sharing function. The electronic device (307) may activate the sharing function to share at least one hardware component. For example, the electronic device (307) may activate the sharing function to share at least one hardware component selected from among a plurality of shareable hardware components.
동작 621에서, 전자 장치(101)는, 광고 패킷을 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 스캔할 수 있다. In operation 621, the electronic device (101) may scan an advertising packet. In one embodiment, the electronic device (101) may scan an advertising packet indicating that sharing is enabled through the first communication circuit (391) based on the sharing being enabled.
일 실시 예에서, 전자 장치(101)는, 제1 통신 회로(391)를 통해, 공유 기능(또는, MCF)과 관련된 필드(예: 연속성 LTV 필드)를 포함하는 광고 패킷을 주기적으로 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 연속성 LTV 필드에 지정된 사용자 정보(또는, 지정된 계정 정보)(또는, 지정된 계정 ID)가 포함된 광고 패킷을 주기적으로 스캔할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유 조건에 부합하는 사용자 정보를 가지는 광고 패킷을 주기적으로 스캔할 수 있다.In one embodiment, the electronic device (101) may periodically scan, via the first communication circuit (391), an advertising packet including a field (e.g., a continuity LTV field) related to a shared function (or MCF). In one embodiment, the electronic device (101) may periodically scan an advertising packet including user information (or, designated account information) (or, designated account ID) specified in the continuity LTV field. In one embodiment, the electronic device (101) may periodically scan an advertising packet having user information that satisfies a sharing condition.
일 실시 예에서, 전자 장치(101)는, 연속성 LTV 필드 중 공유 기능(또는, MCF)과 관련된 다른 필드(예: 다른 연속성 LTV 필드(예컨대, ClientHandlerContext 필드))에 공유 기능이 활성화됨을 나타내는 정보가 포함된 광고 패킷을 주기적으로 스캔할 수 있다. 예를 들면, 전자 장치(101)는, 광고 패킷의 공유 기능과 관련된 다른 필드의 지정된 항목(예: AppID)에 지정된 값(예: 6)이 입력된 광고 패킷을 주기적으로 스캔할 수 있다.In one embodiment, the electronic device (101) may periodically scan for advertisement packets that include information indicating that the sharing function is activated in another field (e.g., another continuity LTV field (e.g., a ClientHandlerContext field)) related to the sharing function (or MCF) among the continuity LTV fields. For example, the electronic device (101) may periodically scan for advertisement packets in which a specified value (e.g., 6) is entered in a specified item (e.g., AppID) of another field related to the sharing function of the advertisement packet.
동작 623에서, 전자 장치(303)는, 광고 패킷을 방송할 수 있다. 일 실시 예에서, 전자 장치(303)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(393)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 방송할 수 있다. In operation 623, the electronic device (303) may broadcast an advertising packet. In one embodiment, the electronic device (303) may broadcast an advertising packet indicating that sharing is activated through the first communication circuit (393) based on the sharing being activated.
동작 625에서, 전자 장치(305)는, 광고 패킷을 방송할 수 있다. 일 실시 예에서, 전자 장치(305)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(395)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 방송할 수 있다.In operation 625, the electronic device (305) may broadcast an advertising packet. In one embodiment, the electronic device (305) may broadcast an advertising packet indicating that sharing is enabled through the first communication circuit (395) based on sharing being enabled.
동작 627에서, 전자 장치(307)는, 광고 패킷을 방송할 수 있다. 일 실시 예에서, 전자 장치(307)는, 공유가 활성화됨에 기반하여, 제1 통신 회로(397)를 통해, 공유가 활성화됨을 나타내는 광고 패킷을 방송할 수 있다.In operation 627, the electronic device (307) may broadcast an advertising packet. In one embodiment, the electronic device (307) may broadcast an advertising packet indicating that sharing is enabled through the first communication circuit (397) based on sharing being enabled.
동작들 623, 625, 및/또는 627을 통해 방송되는 광고 패킷은, 플래그를 위한 LTV 구조 및 제조사 특유 데이터의 방송을 위한 LTV 구조를 포함할 수 있다. 동작들 623, 625, 및/또는 627을 통해 방송되는 광고 패킷은, 사용자 정보(또는, 계정 정보)(또는, 계정 ID)가 포함될 수 있다. 동작들 623, 625, 및/또는 627을 통해 방송되는 광고 패킷은, 공유 기능이 활성화됨을 나타내는 정보가 포함될 수 있다. Advertising packets broadcast via operations 623, 625, and/or 627 may include an LTV structure for flags and an LTV structure for broadcasting manufacturer-specific data. Advertising packets broadcast via operations 623, 625, and/or 627 may include user information (or account information) (or account ID). Advertising packets broadcast via operations 623, 625, and/or 627 may include information indicating that a sharing function is enabled.
동작 631에서, 전자 장치(101)는, 하드웨어 구성요소를 식별할 수 있다. In operation 631, the electronic device (101) can identify a hardware component.
일 실시 예에서, 전자 장치(101)는, 지정된 광고 패킷을 수신함에 기반하여, 제1 통신 회로(391)를 통해 공유자 장치들(예: 전자 장치들(303, 305, 307))에게 스캔 요청(예: SCAN_REQ)을 송신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 적어도 하나의 하드웨어 구성요소의 성능 정보를 요청하는 스캔 요청을 송신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유자 장치들(예: 전자 장치들(303, 305, 307))로부터 스캔 요청에 대한 응답으로 성능 정보를 포함하는 패킷(예: SCAN_RSP)을 수신할 수 있다. 일 실시 예에서, 전자 장치(101)는, 패킷(예: SCAN_RSP)에 기반하여, 공유자 장치들(예: 전자 장치들(303, 305, 307)) 각각이 공유하는 하드웨어 구성요소를 식별할 수 있다. In one embodiment, the electronic device (101) may transmit a scan request (e.g., SCAN_REQ) to the sharer devices (e.g., electronic devices (303, 305, 307)) through the first communication circuit (391) based on receiving a designated advertisement packet. In one embodiment, the electronic device (101) may transmit a scan request requesting performance information of at least one hardware component. In one embodiment, the electronic device (101) may receive a packet (e.g., SCAN_RSP) including performance information in response to the scan request from the sharer devices (e.g., electronic devices (303, 305, 307)). In one embodiment, the electronic device (101) may identify a hardware component shared by each of the sharer devices (e.g., electronic devices (303, 305, 307)) based on the packet (e.g., SCAN_RSP).
동작 641에서, 전자 장치(101)는, 하드웨어 구성요소를 표시할 수 있다. 일 실시 예에서, 전자 장치(101)는, 공유자 장치가 공유하는 하드웨어 구성요소가 전자 장치(101)가 공유 기능을 활성화한 하드웨어 구성요소에 대응함에 기반하여, 공유 기능을 설정하기 위한 UI(예: 도 5a의 화면(500))에 검색된 공유자를 나타내는 시각적 객체를 표시할 수 있다. In operation 641, the electronic device (101) may display a hardware component. In one embodiment, the electronic device (101) may display a visual object representing a searched sharer on a UI (e.g., screen (500) of FIG. 5A) for setting the sharing function, based on whether the hardware component shared by the sharer device corresponds to a hardware component for which the electronic device (101) has activated the sharing function.
도 6b는 일 실시 예에 따른, 전자 장치들에서 광고 패킷을 방송하는 동작들을 예시하는 도면이다. FIG. 6b is a diagram illustrating operations of broadcasting an advertising packet in electronic devices according to one embodiment.
도 6b는 도 1 내지 도 6a를 참조하여 설명될 수 있다. 도 6b의 동작들은, 도 6a의 동작들 613 및 623에 포함될 수 있다. 도 6b의 동작들은, 도 6a의 동작들 615 및 625에 포함될 수 있다. 도 6b의 동작들은, 도 6a의 동작들 617 및 627에 포함될 수 있다.FIG. 6B may be described with reference to FIGS. 1 to 6A. The operations of FIG. 6B may be included in operations 613 and 623 of FIG. 6A. The operations of FIG. 6B may be included in operations 615 and 625 of FIG. 6A. The operations of FIG. 6B may be included in operations 617 and 627 of FIG. 6A.
도 6b의 연결 매니저(601) 및 MCF(603)는, 전자 장치(303)의 프로그램의 일부일 수 있다. 하지만 이에 제한되지 않는다. 도 6b의 연결 매니저(601) 및 MCF(603)는, 전자 장치(305)의 프로그램의 일부일 수 있다. 도 6b의 연결 매니저(601) 및 MCF(603)는, 전자 장치(307)의 프로그램의 일부일 수 있다. The connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (303), but are not limited thereto. The connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (305). The connection manager (601) and MCF (603) of FIG. 6B may be part of a program of the electronic device (307).
도 6b의 동작들은, 공유자로서 동작하기 위한 하드웨어 구성요소의 공유 기능이 활성화됨에 기반하여 수행될 수 있다. The operations of FIG. 6b may be performed based on the activation of the sharing function of a hardware component for operating as a sharer.
도 6b를 참조하면, 동작 651에서, 연결 매니저(601)는, MCF(603)에게 바인드를 요청할 수 있다. 일 실시 예에서, 연결 매니저(601)는, 하드웨어 구성요소의 공유와 관련된 어플리케이션(또는, 프로세스)를 네트워크에 연결하기 위해, MCF(603)에게 바인드를 요청할 수 있다. Referring to FIG. 6B, in operation 651, the connection manager (601) may request a bind from the MCF (603). In one embodiment, the connection manager (601) may request a bind from the MCF (603) to connect an application (or process) related to sharing of hardware components to a network.
일 실시 예에서, MCF(603)는, 바인드 요청에 응답하여, 하드웨어 구성요소의 공유와 관련된 어플리케이션(또는, 프로세스)과 MCF(603) 간의 통신 연결을 수립할 수 있다. 어플리케이션(또는, 프로세스)과 MCF(603) 간의 통신은, 프로세스 간 통신(예: 소켓 통신)일 수 있다. In one embodiment, the MCF (603) may, in response to a bind request, establish a communication connection between an application (or process) related to sharing of hardware components and the MCF (603). The communication between the application (or process) and the MCF (603) may be inter-process communication (e.g., socket communication).
동작 653에서, MCF(603)는, 연결 매니저(601)에게 인스턴스를 반환할 수 있다. 일 실시 예에서, 인스턴스는, MCF(603)의 식별 정보, 및/또는 클래스 정보를 포함할 수 있다. 하지만 이에 제한되지 않는다.In operation 653, the MCF (603) may return an instance to the connection manager (601). In one embodiment, the instance may include, but is not limited to, identification information of the MCF (603) and/or class information.
동작 655에서, 연결 매니저(601)는, MCP(603)에게 광고 시작을 요청할 수 있다. 연결 매니저(601)는, MCF(603)에게 하드웨어 구성요소의 공유에 대한 광고 시작을 요청할 수 있다. In operation 655, the connection manager (601) may request the MCP (603) to start advertising. The connection manager (601) may request the MCF (603) to start advertising for sharing of hardware components.
동작 623에서, MCF(603)는, 광고 패킷을 방송할 수 있다. 일 실시 예에서, MCF(603)는, 제1 통신 회로(391)를 통해, 공유가 활성화됨을 나타내는 광고 패킷(예: ADV_IND)을 방송할 수 있다. In operation 623, the MCF (603) may broadcast an advertisement packet. In one embodiment, the MCF (603) may broadcast an advertisement packet (e.g., ADV_IND) indicating that sharing is enabled via the first communication circuit (391).
도 6c는 일 실시 예에 따른, 전자 장치에서 광고 패킷을 스캔하는 동작들을 예시하는 도면이다. FIG. 6c is a diagram illustrating operations of scanning an advertising packet in an electronic device according to one embodiment.
도 6c는 도 1 내지 도 6b를 참조하여 설명될 수 있다. 도 6c의 동작들은, 도 6a의 동작들 611, 621 및 631에 포함될 수 있다. FIG. 6c can be described with reference to FIGS. 1 to 6b. The operations of FIG. 6c can be included in operations 611, 621, and 631 of FIG. 6a.
도 6c의 연결 매니저(605) 및 MCF(607)는, 전자 장치(101)의 프로그램(140)의 일부일 수 있다. The connection manager (605) and MCF (607) of FIG. 6c may be part of the program (140) of the electronic device (101).
도 6c의 동작들은, 수용자로서 동작하기 위한 하드웨어 구성요소의 공유 기능이 활성화됨에 기반하여 수행될 수 있다. The operations of FIG. 6c can be performed based on the activation of the shared function of the hardware component for operating as a receiver.
도 6c를 참조하면, 동작 661에서, 연결 매니저(605)는, MCF(607)에게 바인드를 요청할 수 있다. 일 실시 예에서, 연결 매니저(605)는, 하드웨어 구성요소의 공유와 관련된 어플리케이션(또는, 프로세스)를 네트워크에 연결하기 위해, MCF(607)에게 바인드를 요청할 수 있다. Referring to FIG. 6c, in operation 661, the connection manager (605) may request a bind from the MCF (607). In one embodiment, the connection manager (605) may request a bind from the MCF (607) to connect an application (or process) related to sharing of hardware components to a network.
일 실시 예에서, MCF(607)는, 바인드 요청에 응답하여, 하드웨어 구성요소의 공유와 관련된 어플리케이션(또는, 프로세스)과 MCF(607) 간의 통신 연결을 수립할 수 있다. 어플리케이션(또는, 프로세스)과 MCF(607) 간의 통신은, 프로세스 간 통신(예: 소켓 통신)일 수 있다. In one embodiment, the MCF (607) may, in response to a bind request, establish a communication connection between an application (or process) related to sharing of hardware components and the MCF (607). The communication between the application (or process) and the MCF (607) may be inter-process communication (e.g., socket communication).
동작 663에서, MCF(607)는, 연결 매니저(605)에게 인스턴스를 반환할 수 있다. 일 실시 예에서, 인스턴스는, MCF(607)의 식별 정보, 및/또는 클래스 정보를 포함할 수 있다. 하지만 이에 제한되지 않는다.In operation 663, the MCF (607) may return an instance to the connection manager (605). In one embodiment, the instance may include, but is not limited to, identification information of the MCF (607) and/or class information.
동작 665에서, 연결 매니저(605)는, MCF(607)에게 발견(discovery) 시작을 요청할 수 있다. 연결 매니저(605)는, MCF(607)에게 하드웨어 구성요소의 공유에 대한 발견 시작을 요청할 수 있다. At operation 665, the connection manager (605) may request the MCF (607) to initiate discovery. The connection manager (605) may request the MCF (607) to initiate discovery for sharing hardware components.
동작 621에서, MCF(607)는, 광고 패킷을 스캔할 수 있다. In operation 621, MCF (607) may scan advertising packets.
동작 667에서, MCF(607)는, 연결 매니저(605)에게 콜백할 수 있다. MCF(607)는, 하드웨어 구성요소의 공유가 활성화됨을 나타내는 광고 패킷이 수신됨을 연결 매니저(605)에게 콜백할 수 있다. 예를 들면, MCF(607)는, 수신한 광고 패킷이 하드웨어 구성요소의 공유가 활성화됨을 나타내지 않는 경우, 광고 패킷이 수신됨을 연결 매니저(605)에게 콜백하지 않을 수 있다.At operation 667, the MCF (607) may call back to the connection manager (605). The MCF (607) may call back to the connection manager (605) that an advertisement packet indicating that sharing of a hardware component is enabled has been received. For example, the MCF (607) may not call back to the connection manager (605) that an advertisement packet has been received if the received advertisement packet does not indicate that sharing of a hardware component is enabled.
도 7a는 일 실시 예에 따른, 전자 장치들 간의 하드웨어 리소스의 공유를 위한 동작들을 예시하는 도면이다. FIG. 7A is a diagram illustrating operations for sharing hardware resources between electronic devices according to one embodiment.
도 7a는 도 1 내지 도 6c를 참조하여 설명될 수 있다. 도 7a의 동작들은, 도 6a의 동작들 631 또는 641 이후에 수행될 수 있다. 도 7a의 동작들은, 도 6c의 동작 667 이후에 수행될 수 있다.FIG. 7A may be described with reference to FIGS. 1 to 6C. The operations of FIG. 7A may be performed after operations 631 or 641 of FIG. 6A. The operations of FIG. 7A may be performed after operation 667 of FIG. 6C.
도 7a를 참조하면, 동작 711에서, 전자 장치(101)는, 클라이언트 프로세스를 실행할 수 있다. 일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 설정이 완료된 후, 공유자 장치(예: 전자 장치(303))의 하드웨어 구성요소와 관련된 클라이언트 프로그램을 실행할 수 있다.Referring to FIG. 7A, in operation 711, the electronic device (101) may execute a client process. In one embodiment, the electronic device (101) may execute a client program related to a hardware component of a sharer device (e.g., electronic device (303)) after the configuration of the hardware component is completed.
동작 721에서, 전자 장치(101)는, 공유자 장치에게 서버 프로세스의 실행을 요청할 수 있다. 일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램의 실행(또는, 하드웨어 구성요소의 설정)이 완료된 후, 공유자 장치에게 하드웨어 구성요소와 관련된 서버 프로그램의 실행 요청을 송신할 수 있다. 실시 예에 따라, 서버 프로그램의 실행 요청은, 서버 프로그램과 클라이언트 프로그램 간의 바인딩 요청을 포함할 수 있다.In operation 721, the electronic device (101) may request the shared device to execute a server process. In one embodiment, after the execution of the client program (or the configuration of the hardware component) is completed, the electronic device (101) may transmit a request to the shared device to execute a server program related to the hardware component. According to an embodiment, the request to execute the server program may include a binding request between the server program and the client program.
동작 723에서, 전자 장치(303)는, 서버 프로세스를 실행할 수 있다. 일 실시 예에서, 전자 장치(303)는, 실행 요청에 응답하여, 하드웨어 구성요소와 관련된 서버 프로그램을 실행할 수 있다.In operation 723, the electronic device (303) may execute a server process. In one embodiment, the electronic device (303) may execute a server program associated with a hardware component in response to an execution request.
일 실시 예에서, 전자 장치(303)는, 실행 요청에 응답하여, 실행 중인 서버 프로그램과 수용자 장치(예: 전자 장치(101))에서 실행되는 클라이언트 프로그램 간의 통신 연결을 수립할 수 있다. In one embodiment, the electronic device (303) may, in response to an execution request, establish a communication connection between a running server program and a client program running on a recipient device (e.g., the electronic device (101)).
동작 733에서, 전자 장치(303)는, 전자 장치(101)로 연결이 완료됨을 알릴 수 있다. In operation 733, the electronic device (303) may notify the electronic device (101) that the connection is complete.
동작 741에서, 전자 장치(101)는, 하드웨어 구성요소를 등록할 수 있다. 전자 장치(101)는, 디바이스 매니저에 하드웨어 구성요소를 등록할 수 있다. 예를 들면, 디바이스 매니저에 하드웨어 구성요소가 등록됨에 따라, 어플리케이션(146)에게 전자 장치(101)에 실재로 포함된 하드웨어 구성요소 및 공유자 장치에서 공유받은 하드웨어 구성요소에 대한 장치 목록이 디바이스 매니저를 통해 제공될 수 있다.In operation 741, the electronic device (101) may register a hardware component. The electronic device (101) may register the hardware component with the device manager. For example, as the hardware component is registered with the device manager, a device list of hardware components actually included in the electronic device (101) and hardware components shared from a sharer device may be provided to the application (146) through the device manager.
동작 750에서, 전자 장치(101)와 전자 장치(303)는, 하드웨어 구성요소를 공유할 수 있다. In operation 750, the electronic device (101) and the electronic device (303) can share hardware components.
일 실시 예에서, 전자 장치(101)는, 어플리케이션(146)으로부터 공유 받은 하드웨어 구성요소에 대한 요청을 획득할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 실행되는 클라이언트 프로그램으로부터 요청을 획득할 수 있다. In one embodiment, the electronic device (101) may obtain a request for a hardware component shared from an application (146). In one embodiment, the electronic device (101) may obtain a request from a client program running on a recipient device.
일 실시 예에서, 전자 장치(101)는, 어플리케이션(146)으로부터의 요청을 디바이스 매니저를 통해 클라이언트 프로그램에게 전달할 수 있다. 일 실시 예에서, 전자 장치(101)는, 클라이언트 프로그램에 전달된 요청을 전자 장치(303)에서 실행되는 서버 프로그램에게 송신할 수 있다. In one embodiment, the electronic device (101) may transmit a request from an application (146) to a client program through a device manager. In one embodiment, the electronic device (101) may transmit the request transmitted to the client program to a server program running on the electronic device (303).
일 실시 예에서, 전자 장치(303)는, 요청에 기반하여, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 획득할 수 있다. 일 실시 예에서, 전자 장치(303)는, 응답을 서버 프로그램을 통해 전자 장치(101)에서 실행되는 클라이언트 프로그램에게 송신할 수 있다. In one embodiment, the electronic device (303) may obtain a response indicating an execution result (or control result) (or access result) of a hardware component based on a request. In one embodiment, the electronic device (303) may transmit the response to a client program running on the electronic device (101) via a server program.
일 실시 예에서, 전자 장치(101)는, 하드웨어 구성요소의 실행 결과(또는, 제어 결과)(또는, 접근 결과)를 나타내는 응답을 클라이언트 프로그램, 및/또는 디바이스 매니저를 통해 어플리케이션(146)에게 전달할 수 있다. In one embodiment, the electronic device (101) may transmit a response indicating an execution result (or control result) (or access result) of a hardware component to the application (146) through a client program and/or a device manager.
도 7b는 일 실시 예에 따른, 전자 장치들 간의 하드웨어 구성요소의 성능 정보를 설정하기 위한 동작들을 예시하는 도면이다. FIG. 7b is a diagram illustrating operations for setting performance information of hardware components between electronic devices according to one embodiment.
도 7b는 도 1 내지 도 6c를 참조하여 설명될 수 있다. 도 7b의 동작들은, 도 6a의 동작들 631 또는 641 이후에 수행될 수 있다. 도 7b의 동작들은, 도 6c의 동작 667 이후에 수행될 수 있다. 도 7b의 동작들은, 도 7a의 동작 711 이전에 수행될 수 있다. 하지만 이에 제한되지 않는다. 도 7b의 동작들은, 도 7a의 동작 741 이후에 수행될 수 있다.FIG. 7B can be described with reference to FIGS. 1 to 6C. The operations of FIG. 7B can be performed after operations 631 or 641 of FIG. 6A. The operations of FIG. 7B can be performed after operation 667 of FIG. 6C. The operations of FIG. 7B can be performed before operation 711 of FIG. 7A. However, this is not limited thereto. The operations of FIG. 7B can be performed after operation 741 of FIG. 7A.
도 7b를 참조하면, 동작 753에서, 전자 장치(303)는, 전자 장치(101)에게 공유 기능이 활성화된 하드웨어 구성요소의 성능 정보를 전달할 수 있다. 예를 들면, 전자 장치(303)는, 제1 통신 회로(393)를 통해 전자 장치(101)에게 하드웨어 구성요소의 성능 정보를 포함하는 미디어 설정 사양 메시지(예: MediaConfigSpec)를 방송할 수 있다.Referring to FIG. 7B, in operation 753, the electronic device (303) may transmit performance information of a hardware component for which a sharing function is enabled to the electronic device (101). For example, the electronic device (303) may broadcast a media configuration specification message (e.g., MediaConfigSpec) including performance information of the hardware component to the electronic device (101) via the first communication circuit (393).
동작 761에서, 전자 장치(101)는, 공유 기능이 활성화된 하드웨어 구성요소의 성능 설정 정보를 전달할 수 있다. In operation 761, the electronic device (101) may transmit performance setting information of a hardware component with a shared function enabled.
일 실시 예에서, 전자 장치(101)는, 성능 정보를 포함하는 미디어 설정 사양 메시지(예: MediaConfigSpec)에 기반하여, 하드웨어 구성요소의 설정 정보를 결정할 수 있다. 일 실시 예에서, 전자 장치(101)는, 결정된 설정 정보를 포함하는 미디어 설정 메시지(예: MediaConfig)를 제1 통신 회로(391)를 통해 전자 장치(303)에게 전달할 수 있다.In one embodiment, the electronic device (101) may determine configuration information of a hardware component based on a media configuration specification message (e.g., MediaConfigSpec) including performance information. In one embodiment, the electronic device (101) may transmit a media configuration message (e.g., MediaConfig) including the determined configuration information to the electronic device (303) via the first communication circuit (391).
동작 763에서, 전자 장치(303)는, 공유 기능이 활성화된 하드웨어 구성요소의 성능을 설정할 수 있다. 일 실시 예에서, 전자 장치(303)는, 미디어 설정 메시지(예: MediaConfig)에 응답하여, 하드웨어 구성요소의 설정을 변경할 수 있다. In operation 763, the electronic device (303) may set the performance of a hardware component with a shared function enabled. In one embodiment, the electronic device (303) may change the settings of the hardware component in response to a media configuration message (e.g., MediaConfig).
동작 773에서, 전자 장치(303)는, 전자 장치(101)에게 공유 기능이 활성화된 하드웨어 구성요소에 대한 성능의 설정 완료를 보고할 수 있다. 일 실시 예에서, 전자 장치(303)는, 하드웨어 구성요소의 설정이 변경됨을 나타내는 미디어 설정 메시지(예: MediaConfig)를, 전자 장치(101)에게 송신할 수 있다. In operation 773, the electronic device (303) may report to the electronic device (101) the completion of setting the performance for the hardware component for which the sharing function is enabled. In one embodiment, the electronic device (303) may transmit a media configuration message (e.g., MediaConfig) to the electronic device (101) indicating that the configuration of the hardware component has been changed.
도 8a는 일 실시 예에 따른, 다른 전자 장치에서 하드웨어 리소스의 공유 동안 표시되는 화면의 일 예를 도시하는 도면이다.FIG. 8A is a diagram illustrating an example of a screen displayed during sharing of hardware resources in another electronic device, according to one embodiment.
도 8a는, 도 1 및 도 7b를 참조하여 설명될 수 있다. Fig. 8a can be explained with reference to Fig. 1 and Fig. 7b.
도 8a를 참조하면, 전자 장치(303)는, 카메라의 공유 동안(예를 들어, 전자 장치(101)에게 카메라를 공유하는 동안), 배경 영역(810) 및 카메라가 공유됨을 나타내는 UI(820)를 포함하는 화면(800)을 표시할 수 있다. 일 실시 예에서, 화면(800)은, 카메라의 공유 상태를 나타내기 위한 화면일 수 있다. 예를 들면, 배경 영역(810)은, 카메라와 관련된 정보가 표시될 수 있다. 예를 들면, 전자 장치(303)는, 배경 영역(810)에 카메라가 획득하는 이미지의 프리뷰 이미지를 지정된 상태(예: 블러 처리된 상태)로 표시할 수 있다. 하지만 이에 제한되지 않는다. Referring to FIG. 8A, the electronic device (303) may display a screen (800) including a background area (810) and a UI (820) indicating that the camera is shared during camera sharing (e.g., sharing the camera with the electronic device (101). In one embodiment, the screen (800) may be a screen for indicating the sharing status of the camera. For example, the background area (810) may display information related to the camera. For example, the electronic device (303) may display a preview image of an image acquired by the camera in a designated state (e.g., a blurred state) on the background area (810). However, the present invention is not limited thereto.
일 실시 예에서, UI(820)는, 카메라의 공유를 중지하기 위한 객체(예: pause)를 포함할 수 있다. In one embodiment, the UI (820) may include an object (e.g., pause) to stop sharing the camera.
일 실시 예에서, 전자 장치(303)는, 사용자 입력에 기반하여, 카메라의 공유를 중지할 수 있다. 예를 들면, 카메라의 공유를 중지시키는 사용자 입력은, 카메라가 공유됨을 나타내는 UI(820)의 객체(예: pause, 또는 end)에 대한 입력을 포함할 수 있다. 예를 들면, pause를 위한 UI(820)의 객체에 대한 입력에 기반하여, 전자 장치(303)는, 카메라를 통해 획득되는 데이터의 전송을 중지할 수 있다. 예를 들면, pause를 위한 UI(820)의 객체에 대한 입력에 기반하여, 전자 장치(303)는, 카메라를 통한 데이터의 획득을 중지할 수 있다. 예를 들면, end를 위한 UI(820)의 객체에 대한 입력에 기반하여, 전자 장치(303)는, 카메라를 통해 획득되는 데이터의 전송을 중지하고, 화면(800)을 벗어낼 수 있다. 예를 들면, end를 위한 UI(820)의 객체에 대한 입력에 기반하여, 전자 장치(303)는, 카메라를 통한 데이터의 획득을 중지하고, 화면(800)을 벗어낼 수 있다. 여기에서, 전자 장치(303)가 화면(800)을 벗어남은, 전자 장치(303)가 화면(800) 이외의 다른 화면(예: 홈 화면, 잠금 화면, 또는 다른 어플리케이션의 화면)을 디스플레이에 표시함을 나타낼 수 있다. 예를 들면, end를 위한 UI(820)의 객체에 대한 입력에 기반하여, 전자 장치(303)는, 공유 기능(프로그램 및/또는 디바이스 드라이버)을 비활성화할 수 있다. 실시 예에 따라, 전자 장치(303)는, 공유 기능(프로그램 및/또는 디바이스 드라이버)을 비활성화함을 나타내는 신호를 전자 장치(101)에게 송신할 수 있다. 전자 장치(101)는, 공유 기능(프로그램 및/또는 디바이스 드라이버)을 비활성화함을 나타내는 신호에 기반하여, 공유 기능(프로그램 및/또는 디바이스 드라이버)을 비활성화할 수 있다. In one embodiment, the electronic device (303) may stop sharing the camera based on a user input. For example, the user input to stop sharing the camera may include an input to an object (e.g., pause or end) of the UI (820) indicating that the camera is being shared. For example, based on an input to an object of the UI (820) for pause, the electronic device (303) may stop transmitting data acquired through the camera. For example, based on an input to an object of the UI (820) for pause, the electronic device (303) may stop acquiring data through the camera. For example, based on an input to an object of the UI (820) for end, the electronic device (303) may stop transmitting data acquired through the camera and exit the screen (800). For example, based on an input for an object of the UI (820) for end, the electronic device (303) can stop acquiring data through the camera and exit the screen (800). Here, the electronic device (303) exiting the screen (800) may indicate that the electronic device (303) displays a screen other than the screen (800) (e.g., a home screen, a lock screen, or a screen of another application). For example, based on an input for an object of the UI (820) for end, the electronic device (303) can deactivate a sharing function (program and/or device driver). According to an embodiment, the electronic device (303) can transmit a signal indicating that the sharing function (program and/or device driver) is deactivated to the electronic device (101). The electronic device (101) can deactivate the sharing function (program and/or device driver) based on the signal indicating that the sharing function (program and/or device driver) is deactivated.
예를 들면, 카메라의 공유를 중지시키는 사용자 입력은, 화면(800)을 벗어나기 위한 입력(예: 홈 화면으로 전환을 위한 입력, 또는 어플리케이션의 전환을 위한 입력)을 포함할 수 있다. 하지만 이에 제한되지 않는다. For example, a user input to stop sharing the camera may include, but is not limited to, an input to leave the screen (800) (e.g., an input to switch to the home screen, or an input to switch applications).
도 8a를 참조하면, 전자 장치(303)는, 카메라의 공유 동안, 알림을 식별할 수 있다. 예를 들면, 전자 장치(303)는, 알림을 식별함에 기반하여, 화면(803)에 알림을 나타내는 UI(830)를 표시할 수 있다. 일 실시 예에서, 알림은, 통화 요청을 수신함을 나타내는 알림을 포함할 수 있다. 하지만 이에 제한되지 않는다. Referring to FIG. 8A, the electronic device (303) may identify a notification while sharing the camera. For example, based on the identification of the notification, the electronic device (303) may display a UI (830) indicating the notification on the screen (803). In one embodiment, the notification may include a notification indicating receipt of a call request, but is not limited thereto.
일 실시 예에서, 전자 장치(303)는, UI(830)에 대한 사용자 입력에 기반하여, 카메라의 공유를 중지하거나 일시 정지할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (303) may stop or pause sharing of the camera based on a user input to the UI (830), but is not limited thereto.
도 8b는 일 실시 예에 따른, 전자 장치에서 하드웨어 리소스의 공유 동안 표시되는 화면의 일 예를 도시하는 도면이다.FIG. 8b is a diagram illustrating an example of a screen displayed during sharing of hardware resources in an electronic device according to one embodiment.
도 8b는, 도 1 및 도 7b를 참조하여 설명될 수 있다. Fig. 8b can be explained with reference to Fig. 1 and Fig. 7b.
도 8b를 참조하면, 전자 장치(101)는, 카메라의 공유 동안(예를 들어, 전자 장치(303)으로부터 카메라를 공유받는 동안), 카메라로부터 획득된 프리뷰 이미지를 나타내는 영역(840), 및 카메라를 제어하기 위한 영역(850)을 포함하는 화면(805)을 표시할 수 있다. 일 실시 예에서, 화면(805)은, 카메라의 공유 상태를 나타내기 위한 화면일 수 있다. 예를 들면, 영역(850)은, 카메라와 관련된 하나 이상의 기능들을 선택할 수 있는 객체들(851, 853, 855, 857, 및 859)을 포함할 수 있다. Referring to FIG. 8B, the electronic device (101) may display a screen (805) including an area (840) for displaying a preview image obtained from the camera during camera sharing (e.g., while sharing a camera from the electronic device (303)), and an area (850) for controlling the camera. In one embodiment, the screen (805) may be a screen for displaying a sharing status of the camera. For example, the area (850) may include objects (851, 853, 855, 857, and 859) for selecting one or more functions related to the camera.
예를 들면, 카메라와 관련된 하나 이상의 기능들은, 하드웨어 구성요소의 성능 정보에서 카메라가 제공 가능한 이미지 효과들을 포함할 수 있다. 예를 들면, 카메라가 제공 가능한 이미지 효과들은, 피사체(또는, 피사체와 동일한 초점 거리) 의외의 영역에 블러 효과를 적용하기 위한 배경 흐리기 기능(851)을 포함할 수 있다. 예를 들면, 카메라가 제공 가능한 이미지 효과들은, 지정된 피사체(예: 사람 얼굴)를 자동으로 검출하고, 검출한 피사체에 기반하여 초점과 노출을 자동으로 조절하기 위한 얼굴 초점 기능(853)을 포함할 수 있다. 예를 들면, 카메라가 제공 가능한 이미지 효과들은, 피사체(또는, 촬영 인원)(또는, 촬영 대상)에 따라 자동으로 구도를 조절하기 위한 자동 프레이밍 기능(855)을 포함할 수 있다. 예를 들면, 카메라가 제공 가능한 이미지 효과들은, 명암비를 개선(예: 역광 보정)하기 위한, HDR(high dynamic range) 기능(857)을 포함할 수 있다. 하지만 이에 제한되지 않는다. For example, one or more functions related to the camera may include image effects that the camera can provide from the performance information of the hardware component. For example, the image effects that the camera can provide may include a background blur function (851) for applying a blur effect to an area other than the subject (or, a focal length equal to the subject). For example, the image effects that the camera can provide may include a face focus function (853) for automatically detecting a designated subject (e.g., a human face) and automatically adjusting focus and exposure based on the detected subject. For example, the image effects that the camera can provide may include an automatic framing function (855) for automatically adjusting the composition based on the subject (or, the person taking the picture) (or, the subject of the picture). For example, the image effects that the camera can provide may include a high dynamic range (HDR) function (857) for improving contrast ratio (e.g., backlight compensation). However, the present invention is not limited thereto.
예를 들면, 카메라와 관련된 하나 이상의 기능들은, 카메라의 전환(또는, 변경)을 위한 기능을 포함할 수 있다. 예를 들면, 카메라의 전환(또는, 변경)을 위한 객체(859)가 선택됨에 기반하여, 전자 장치(101)는, 전자 장치(101)에 등록된 카메라들(예: 전자 장치(101)의 실재 카메라 및 전자 장치(303)가 공유하는 카메라) 간에 화면(805)의 영역(840)에 프리뷰 이미지를 표시할 카메라를 전환할 수 있다. For example, one or more functions related to the camera may include a function for switching (or changing) the camera. For example, based on the selection of an object (859) for switching (or changing) the camera, the electronic device (101) may switch the camera for displaying a preview image in an area (840) of the screen (805) among cameras registered in the electronic device (101) (e.g., an actual camera of the electronic device (101) and a camera shared by the electronic device (303).
일 실시 예에서, 전자 장치(101)는, 사용자 입력에 기반하여, 하드웨어 구성요소의 공유를 중지할 수 있다. 예를 들면, 하드웨어 구성요소의 공유를 중지시키는 사용자 입력은, 화면(805)을 벗어나기 위한 입력(예: 홈 화면으로 전환을 위한 입력, 또는 어플리케이션의 전환을 위한 입력)을 포함할 수 있다. 하지만 이에 제한되지 않는다. In one embodiment, the electronic device (101) may stop sharing a hardware component based on a user input. For example, the user input to stop sharing a hardware component may include, but is not limited to, an input to leave the screen (805) (e.g., an input to switch to the home screen or an input to switch applications).
도 9는 일 실시 예에 따른, 전자 장치들의 프로그램 아키텍처의 일 예를 도시하는 도면이다.FIG. 9 is a diagram illustrating an example of a program architecture of electronic devices according to one embodiment.
도 9의 프로그램 아키텍쳐(900)는, 수용자 장치(또는, 게스트 장치)(예: 전자 장치(101))의 프로그램 아키텍쳐를 나타내고, 프로그램 아키텍쳐(905)는, 공유자 장치(또는, 호스트 장치)(예: 전자 장치들(303, 305, 307))의 프로그램 아키텍쳐를 나타낼 수 있다. The program architecture (900) of FIG. 9 may represent the program architecture of a recipient device (or guest device) (e.g., electronic device (101)), and the program architecture (905) may represent the program architecture of a sharer device (or host device) (e.g., electronic devices (303, 305, 307)).
프로그램 아키텍쳐(900)는, 어플리케이션 레이어(910), 프레임워크 레이어(930), 하드웨어 추상화 레이어(hardware abstraction layer, HAL)(950), 및 커널 레이어(970)를 포함할 수 있다. The program architecture (900) may include an application layer (910), a framework layer (930), a hardware abstraction layer (HAL) (950), and a kernel layer (970).
어플리케이션 레이어(910)는, 3rd 파티 어플리케이션(application, APP)(911), 디바이스 공유 APP(913)를 포함할 수 있다. 프레임워크 레이어(930)는, 프레임워크(931), 및 AIDL(android interface definition language)(939)을 포함할 수 있다. HAL(950)은, 하드웨어 구성요소들 각각에 대한 모듈들(951)을 포함할 수 있다. HAL(950)의 모듈들(951) 각각은 하드웨어 구성요소의 디바이스 드라이버들과의 인터페이싱을 위한 프로그램일 수 있다. 커널 레이어(970)는, 하나 이상의 하드웨어 구성요소들의 디바이스 드라이버들(예: 카메라 드라이버(971), 카메라 드라이버(973), 디스플레이 드라이버(975), 스토리지 드라이버(979))을 포함할 수 있다. The application layer (910) may include a third party application (APP) (911) and a device sharing APP (913). The framework layer (930) may include a framework (931) and an Android interface definition language (AIDL) (939). The HAL (950) may include modules (951) for each of the hardware components. Each of the modules (951) of the HAL (950) may be a program for interfacing with device drivers of the hardware components. The kernel layer (970) may include device drivers of one or more hardware components (e.g., a camera driver (971), a camera driver (973), a display driver (975), and a storage driver (979)).
프로그램 아키텍쳐(905)는, 어플리케이션 레이어(920), 프레임워크 레이어(940), HAL(960), 및 커널 레이어(980)를 포함할 수 있다. The program architecture (905) may include an application layer (920), a framework layer (940), a HAL (960), and a kernel layer (980).
어플리케이션 레이어(920)는, 디바이스 공유 APP(923)를 포함할 수 있다. 프레임워크 레이어(940)는, 프레임워크(941), 및 AIDL(949)을 포함할 수 있다. HAL(960)은, 하드웨어 구성요소들 각각에 대한 모듈들(961)을 포함할 수 있다. HAL(960)의 모듈들(961) 각각은 하드웨어 구성요소의 디바이스 드라이버들과의 인터페이싱을 위한 프로그램일 수 있다. 커널 레이어(980)는, 하나 이상의 하드웨어 구성요소들의 디바이스 드라이버들(예: 카메라 드라이버(981), 카메라 드라이버(983), 디스플레이 드라이버(985), 스토리지 드라이버(989))을 포함할 수 있다. The application layer (920) may include a device sharing APP (923). The framework layer (940) may include a framework (941) and AIDL (949). The HAL (960) may include modules (961) for each of the hardware components. Each of the modules (961) of the HAL (960) may be a program for interfacing with device drivers of the hardware components. The kernel layer (980) may include device drivers of one or more hardware components (e.g., a camera driver (981), a camera driver (983), a display driver (985), and a storage driver (989)).
도 9를 참조하면, 수용자 장치의 디바이스 매니저(935)는, 3rd 파티 APP(911)으로부터의 카메라에 대한 접근 요청을 식별할 수 있다. Referring to FIG. 9, the device manager (935) of the recipient device can identify an access request to the camera from a 3rd party APP (911).
일 실시 예에서, 3rd 파티 APP(911)이 접근하는 카메라가 수용자 장치의 카메라임에 기반하여, 디바이스 매니저(935)는, 수용자 장치의 카메라에 액세스하기 위해, AIDL(939), HAL(950)의 모듈들(951), 및 카메라 드라이버(971)를 통해 카메라에 접근 요청을 전달할 수 있다.In one embodiment, based on the fact that the camera accessed by the 3rd party APP (911) is a camera of the recipient device, the device manager (935) may transmit an access request to the camera through the AIDL (939), modules (951) of the HAL (950), and the camera driver (971) to access the camera of the recipient device.
일 실시 예에서, 3rd 파티 APP(911)이 접근하는 카메라가 공유 받은 카메라임에 기반하여, 디바이스 매니저(935)는, 공유자 장치의 카메라에 액세스하기 위해, 클라이언트 프로그램(또는, 디바이스 공유 APP(913)), 서버 프로그램(또는, 디바이스 공유 APP(923)), 디바이스 매니저(945), AIDL(949), HAL(960)의 모듈들(961), 및 카메라 드라이버(981)를 통해 공유자의 카메라에 접근 요청을 전달할 수 있다.In one embodiment, based on the fact that the camera accessed by the 3rd party APP (911) is a shared camera, the device manager (935) may transmit an access request to the sharer's camera through the client program (or device sharing APP (913)), the server program (or device sharing APP (923)), the device manager (945), the AIDL (949), the modules (961) of the HAL (960), and the camera driver (981) to access the camera of the sharer's device.
서버 프로그램(또는, 디바이스 공유 APP(923))은, 요청에 응답하여 카메라로부터 획득되는, 데이터(예: camera raw frame 데이터)를 인코더(927)를 통해, 인코딩(예: h.264에 기반한 인코딩)할 수 있다. 일 실시 예에서, 인코더(927)는, 서버 프로그램의 일 예일 수 있다. The server program (or device sharing APP (923)) may encode (e.g., encoding based on h.264) data (e.g., camera raw frame data) obtained from the camera in response to a request through an encoder (927). In one embodiment, the encoder (927) may be an example of a server program.
서버 프로그램(또는, 디바이스 공유 APP(923))은, 인코딩된 데이터를 통신 서버(925)(예: RTSP(real time streaming protocol) 서버)를 통해, 클라이언트 프로그램(또는, 디바이스 공유 APP(913))의 통신 클라이언트(915)에게 전달할 수 있다. 일 실시 예에서, 통신 서버(925)는, 서버 프로그램의 일 예일 수 있다. 일 실시 예에서, 통신 클라이언트(915)는, 클라이언트 프로그램의 일 예일 수 있다. 일 실시 예에서, 통신 서버(925)와 통신 클라이언트(915)는, MCF들(937, 947)에 의해 통신 연결될 수 있다. 예를 들면, 연결 매니저(933, 943)의 바인드 요청에 따라, MCF들(937, 947)이 통신 서버(925)와 통신 클라이언트(915)를 바인드할 수 있다. 하지만 이에 제한되지 않는다. The server program (or device sharing APP (923)) can transmit encoded data to the communication client (915) of the client program (or device sharing APP (913)) via the communication server (925) (e.g., a real time streaming protocol (RTSP) server). In one embodiment, the communication server (925) may be an example of a server program. In one embodiment, the communication client (915) may be an example of a client program. In one embodiment, the communication server (925) and the communication client (915) may be connected to each other through MCFs (937, 947). For example, the MCFs (937, 947) may bind the communication server (925) and the communication client (915) in response to a bind request from a connection manager (933, 943). However, the present invention is not limited thereto.
클라이언트 프로그램(또는, 디바이스 공유 APP(913))은, 인코딩된 데이터를 디코더(917)를 통해 디코딩할 수 있다. 일 실시 예에서, 디코더(917)는, 클라이언트 프로그램의 일 예일 수 있다.The client program (or device sharing APP (913)) can decode the encoded data through a decoder (917). In one embodiment, the decoder (917) may be an example of a client program.
클라이언트 프로그램(또는, 디바이스 공유 APP(913))은, 디코딩된 데이터를 가상 드라이버(919), 디바이스 매니저(935)를 통해, 3rd 파티 APP(911)에게 전달할 수 있다. The client program (or device sharing APP (913)) can transmit the decoded data to the 3rd party APP (911) through the virtual driver (919) and device manager (935).
실시 예에 따라, 클라이언트 프로그램(또는, 디바이스 공유 APP(913)) 및/또는 서버 프로그램(또는, 디바이스 공유 APP(923))에 포함되는 프로그램들은, 공유자 장치와 수용자 장치 간의 설정 성능의 설정에 따라 결정될 수 있다. 하지만 이에 제한되지 않는다. Depending on the embodiment, the programs included in the client program (or device sharing APP (913)) and/or the server program (or device sharing APP (923)) may be determined based on the settings of the performance settings between the sharer device and the recipient device, but are not limited thereto.
도 10a는 일 실시 예에 따른, 다른 전자 장치가 리소스 컨텍스트의 초기화를 요청하는 동작들을 예시하는 도면이다. 도 10a의 동작들은, 전자 장치(303)의 부팅 시 수행될 수 있다. 하지만 이에 제한되지 않는다. FIG. 10A is a diagram illustrating operations for another electronic device to request initialization of a resource context, according to one embodiment. The operations of FIG. 10A may be performed upon booting of the electronic device (303), but are not limited thereto.
도 10a를 참조하면, 전자 장치(303)는 리소스 핸들러(1001), 리소스 홀더(1002), 및 통신 매니저(1003)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1001)는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1002)는, 도 9의 MCF(947)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1003)는, 도 9의 연결 매니저(943)에 포함될 수 있다.Referring to FIG. 10A, the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003). In one embodiment, the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9. In one embodiment, the resource holder (1002) may be included in the MCF (947) of FIG. 9. In one embodiment, the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
도 10a를 참조하면, 동작 1011에서, 리소스 핸들러(1001)는, 리소스 홀더(1002)의 리소스를 초기화할 수 있다. 예를 들면, 리소스 홀더(1002)는, 공유하기 위한 하드웨어 구성요소의 리소스를 초기화할 수 있다. 리소스 홀더(1002)는, 공유하기 위한 하드웨어 구성요소의 성능 정보를 초기화할 수 있다. Referring to FIG. 10A, in operation 1011, the resource handler (1001) may initialize the resources of the resource holder (1002). For example, the resource holder (1002) may initialize the resources of the hardware component to be shared. The resource holder (1002) may initialize the performance information of the hardware component to be shared.
동작 1013에서, 리소스 핸들러(1001)는, 클러스터를 초기화할 수 있다. 일 실시 예에서, 클러스터는 공유하기 위한 하나 이상의 하드웨어 구성요소들을 포함할 수 있다. In operation 1013, the resource handler (1001) may initialize a cluster. In one embodiment, the cluster may include one or more hardware components for sharing.
동작 1015에서, 리소스 핸들러(1001)는, 리소스 홀더(1002)의 클러스터를 설정할 수 있다. 리소스 핸들러(1001)는, 공유하기 위한 하나 이상의 하드웨어 구성요소들을 설정할 수 있다. In operation 1015, the resource handler (1001) may set up a cluster of resource holders (1002). The resource handler (1001) may set up one or more hardware components for sharing.
동작 1017에서, 리소스 홀더(1002)는, 통신 매니저(1003)로 리소스 컨텍스트의 갱신을 요청할 수 있다. 일 실시 예에서, 리소스 컨텍스트는, 하드웨어 구성요소의 성능 정보 및/또는 클러스터 정보를 포함할 수 있다. 하지만 이에 제한되지 않는다. In operation 1017, the resource holder (1002) may request an update of the resource context to the communication manager (1003). In one embodiment, the resource context may include, but is not limited to, performance information of hardware components and/or cluster information.
동작 1019에서, 통신 매니저(1003)는, 리소스 컨텍스트의 갱신을 위한 광고 패킷을 방송할 수 있다. In operation 1019, the communication manager (1003) may broadcast an advertisement packet for updating the resource context.
도 10b는 일 실시 예에 따른, 다른 전자 장치가 리소스 컨텍스트의 갱신을 요청하는 동작들을 예시하는 도면이다. 도 10b의 동작들은, 전자 장치(303)의 부팅 이외의 상황(예: 사용 중)에서 수행될 수 있다. 예를 들면, 도 10b의 동작들은, 전자 장치(303)가 업데이트되는 경우에 수행될 수 있다. 예를 들면, 업데이트는, 하드웨어 구성요소의 서비스를 추가적으로 제공하기 위한 업데이트일 수 있다. 예를 들면, 하드웨어 구성요소의 서비스를 추가함은, 공유 가능한 하드웨어 구성요소가 추가됨을 포함할 수 있다. FIG. 10B is a diagram illustrating operations of another electronic device requesting an update of a resource context, according to an embodiment. The operations of FIG. 10B may be performed in situations other than booting the electronic device (303), such as during use. For example, the operations of FIG. 10B may be performed when the electronic device (303) is updated. For example, the update may be an update to additionally provide a service of a hardware component. For example, adding a service of a hardware component may include adding a shareable hardware component.
도 10b를 참조하면, 전자 장치(303)는 리소스 핸들러(1001), 리소스 홀더(1002), 및 통신 매니저(1003)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1001)는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1002)는, 도 9의 MCF(947)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1003)는, 도 9의 연결 매니저(943)에 포함될 수 있다.Referring to FIG. 10B, the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003). In one embodiment, the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9. In one embodiment, the resource holder (1002) may be included in the MCF (947) of FIG. 9. In one embodiment, the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
도 10b를 참조하면, 동작 1021에서, 리소스 핸들러(1001)는, 장치 정보(예: 하드웨어 구성요소)가 변경됨을 나타내는 메시지(예: intent, listener)를 획득할 수 있다. Referring to FIG. 10b, at operation 1021, the resource handler (1001) may obtain a message (e.g., intent, listener) indicating that device information (e.g., hardware component) has changed.
동작 1023에서, 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 속성 설정을 요청할 수 있다. 예를 들면, 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 하드웨어 구성요소와 관련된 속성의 설정을 요청할 수 있다. 일 실시 예에서, 속성을 설정함은, 리소스의 속성을 변경함을 포함할 수 있다. In operation 1023, the resource handler (1001) may request the resource holder (1002) to set a property. For example, the resource handler (1001) may request the resource holder (1002) to set a property related to a hardware component. In one embodiment, setting a property may include changing a property of a resource.
동작 1025에서, 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 리소스 갱신을 요청할 수 있다. 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 장치 정보가 변경된 하드웨어 구성요소의 리소스의 갱신을 요청할 수 있다. 일 실시 예에서, 리소스를 갱신함은, 리소스를 추가, 삭제, 및/또는 변경함을 포함할 수 있다.In operation 1025, the resource handler (1001) may request a resource update from the resource holder (1002). The resource handler (1001) may request the resource holder (1002) to update the resources of a hardware component whose device information has changed. In one embodiment, updating the resources may include adding, deleting, and/or changing the resources.
동작 1027에서, 리소스 핸들러(1001)는, 통신 매니저(1003)에게 리소스 컨텍스트의 갱신을 요청할 수 있다. 일 실시 예에서, 리소스 컨텍스트는, 하드웨어 구성요소의 성능 정보 및/또는 클러스터 정보를 포함할 수 있다. 하지만 이에 제한되지 않는다. In operation 1027, the resource handler (1001) may request the communication manager (1003) to update the resource context. In one embodiment, the resource context may include, but is not limited to, performance information of hardware components and/or cluster information.
동작 1029에서, 통신 매니저(1003)는, 리소스 컨텍스트의 갱신을 위한 광고 패킷을 방송할 수 있다. At operation 1029, the communication manager (1003) may broadcast an advertisement packet for updating the resource context.
도 10c는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트를 갱신하는 동작들을 예시하는 도면이다.FIG. 10c is a diagram illustrating operations of an electronic device to update a resource context according to one embodiment.
도 10c를 참조하면, 전자 장치(101)는 리소스 핸들러(1004), 리소스 홀더(1005), 및 통신 매니저(1006)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1004)는, 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1005)는, 도 9의 MCF(937)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1006)는, 도 9의 연결 매니저(933)에 포함될 수 있다.Referring to FIG. 10c, the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006). In one embodiment, the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9. In one embodiment, the resource holder (1005) may be included in the MCF (937) of FIG. 9. In one embodiment, the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
도 10c를 참조하면, 동작 1031에서, 통신 매니저(1006)는, 광고 패킷을 수신할 수 있다. 통신 매니저(1006)는, 리소스 컨텍스트의 갱신을 위한 광고 패킷을 수신할 수 있다.Referring to FIG. 10c, in operation 1031, the communication manager (1006) may receive an advertisement packet. The communication manager (1006) may receive an advertisement packet for updating a resource context.
동작 1033에서, 통신 매니저(1006)는, 리소스 핸들러(1004)에게 컨텍스트의 변경을 알릴 수 있다. 통신 매니저(1006)는, 리소스 핸들러(1004)에게 리소스 컨텍스트의 갱신을 위한 광고 패킷을 수신함을 알릴 수 있다. In operation 1033, the communication manager (1006) may notify the resource handler (1004) of a change in context. The communication manager (1006) may notify the resource handler (1004) that it has received an advertisement packet for updating the resource context.
동작 1035에서, 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 리소스의 갱신을 요청할 수 있다. 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 광고 패킷에 기반한 리소스의 갱신을 요청할 수 있다.In operation 1035, the resource handler (1004) may request the resource holder (1005) to update the resource. The resource handler (1004) may request the resource holder (1005) to update the resource based on the advertisement packet.
도 10d는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트의 갱신을 위한 리소스를 요청하는 동작들을 예시하는 도면이다.FIG. 10d is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
도 10d를 참조하면, 전자 장치(101)는 리소스 핸들러(1004), 리소스 홀더(1005), 및 통신 매니저(1006)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1004)는, 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1005)는, 도 9의 MCF(937)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1006)는, 도 9의 연결 매니저(933)에 포함될 수 있다.Referring to FIG. 10d, the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006). In one embodiment, the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9. In one embodiment, the resource holder (1005) may be included in the MCF (937) of FIG. 9. In one embodiment, the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
도 10d를 참조하면, 전자 장치(303)는 리소스 핸들러(1001), 리소스 홀더(1002), 및 통신 매니저(1003)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1001)는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1002)는, 도 9의 MCF(947)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1003)는, 도 9의 연결 매니저(943)에 포함될 수 있다.Referring to FIG. 10d, the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003). In one embodiment, the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9. In one embodiment, the resource holder (1002) may be included in the MCF (947) of FIG. 9. In one embodiment, the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
도 10d를 참조하면, 동작 1031에서, 통신 매니저(1006)는, 광고 패킷을 수신할 수 있다. 통신 매니저(1006)는, 리소스 컨텍스트의 갱신을 위한 광고 패킷을 수신할 수 있다.Referring to FIG. 10d, in operation 1031, the communication manager (1006) may receive an advertisement packet. The communication manager (1006) may receive an advertisement packet for updating a resource context.
동작 1033에서, 통신 매니저(1006)는, 리소스 핸들러(1004)에게 컨텍스트의 변경을 알릴 수 있다. 통신 매니저(1006)는, 리소스 핸들러(1004)에게 리소스 컨텍스트의 갱신을 위한 광고 패킷을 수신함을 알릴 수 있다.In operation 1033, the communication manager (1006) may notify the resource handler (1004) of a change in context. The communication manager (1006) may notify the resource handler (1004) that it has received an advertisement packet for updating the resource context.
동작 1041에서, 리소스 핸들러(1004)는, 리소스 핸들러(1001)에게 리소스를 요청할 수 있다. 예를 들면, 리소스 핸들러(1004)는, 전자 장치(303)의 하드웨어 구성요소에 대한 리소스가 (광고 패킷에서) 식별되지 않는 경우, 리소스 핸들러(1001)에게 리소스를 요청할 수 있다. In operation 1041, the resource handler (1004) may request a resource from the resource handler (1001). For example, the resource handler (1004) may request a resource from the resource handler (1001) if a resource for a hardware component of the electronic device (303) is not identified (in the advertisement packet).
동작 1043에서, 리소스 핸들러(1001)는, 리소스 핸들러(1004)에게 리소스를 전달할 수 있다. 예를 들면, 리소스 핸들러(1001)는, 리소스 핸들러(1004)에게 지정된 형식(예: JSON 스트링 형식)의 리소스를 전달할 수 있다.In operation 1043, the resource handler (1001) may pass a resource to the resource handler (1004). For example, the resource handler (1001) may pass a resource in a specified format (e.g., a JSON string format) to the resource handler (1004).
동작 1035에서, 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 리소스 갱신을 요청할 수 있다. 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 리소스 핸들러(1001)로부터 획득한 리소스에 기반한 리소스의 갱신을 요청할 수 있다.In operation 1035, the resource handler (1004) may request a resource update from the resource holder (1005). The resource handler (1004) may request a resource update from the resource holder (1005) based on the resource acquired from the resource handler (1001).
도 10e는 일 실시 예에 따른, 전자 장치가 리소스 컨텍스트의 갱신을 위한 리소스를 요청하는 동작들을 예시하는 도면이다.FIG. 10e is a diagram illustrating operations of an electronic device requesting resources for updating a resource context, according to one embodiment.
도 10e를 참조하면, 전자 장치(101)는 리소스 핸들러(1004), 리소스 홀더(1005), 및 통신 매니저(1006)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1004)는, 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1005)는, 도 9의 MCF(937)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1006)는, 도 9의 연결 매니저(933)에 포함될 수 있다.Referring to FIG. 10e, the electronic device (101) may include a resource handler (1004), a resource holder (1005), and a communication manager (1006). In one embodiment, the resource handler (1004) may be included in the device sharing APP (913) of FIG. 9. In one embodiment, the resource holder (1005) may be included in the MCF (937) of FIG. 9. In one embodiment, the communication manager (1006) may be included in the connection manager (933) of FIG. 9.
도 10e를 참조하면, 전자 장치(303)는 리소스 핸들러(1001), 리소스 홀더(1002), 및 통신 매니저(1003)를 포함할 수 있다. 일 실시 예에서, 리소스 핸들러(1001)는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 일 실시 예에서, 리소스 홀더(1002)는, 도 9의 MCF(947)에 포함될 수 있다. 일 실시 예에서, 통신 매니저(1003)는, 도 9의 연결 매니저(943)에 포함될 수 있다.Referring to FIG. 10e, the electronic device (303) may include a resource handler (1001), a resource holder (1002), and a communication manager (1003). In one embodiment, the resource handler (1001) may be included in the device sharing APP (923) of FIG. 9. In one embodiment, the resource holder (1002) may be included in the MCF (947) of FIG. 9. In one embodiment, the communication manager (1003) may be included in the connection manager (943) of FIG. 9.
도 10e를 참조하면, 동작 1051에서, 리소스 핸들러(1004)는, 리소스 핸들러(1001)에게 리소스를 요청할 수 있다. 예를 들면, 리소스 핸들러(1004)는, 전자 장치(303)의 광고 패킷에 포함된 시퀀스가 변경된 경우, 리소스 핸들러(1001)에게 리소스를 요청할 수 있다. 여기에서, 시퀀스는, 성능 정보(또는, 리소스)를 포함하는 패킷에 식별 정보의 일부로서 포함될 수 있다. Referring to FIG. 10e, in operation 1051, the resource handler (1004) may request a resource from the resource handler (1001). For example, if a sequence included in an advertisement packet of the electronic device (303) has changed, the resource handler (1004) may request a resource from the resource handler (1001). Here, the sequence may be included as part of the identification information in a packet including performance information (or resources).
동작 1053에서, 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 프로파일을 요청할 수 있다. 리소스 핸들러(1001)는, 리소스 홀더(1002)에게 하드웨어 구성요소와 관련된 프로파일을 요청할 수 있다. In operation 1053, the resource handler (1001) may request a profile from the resource holder (1002). The resource handler (1001) may request a profile related to a hardware component from the resource holder (1002).
동작 1055에서, 리소스 홀더(1002)는, 리소스 핸들러(1001)에게 프로파일을 전달할 수 있다. In operation 1055, the resource holder (1002) can pass the profile to the resource handler (1001).
동작 1057에서, 리소스 핸들러(1001)는, 리소스 핸들러(1004)에게 리소스를 전달할 수 있다. 리소스 핸들러(1001)는, 리소스 핸들러(1004)에게 프로파일에 기반하여 식별되는 리소스를 전달할 수 있다.In operation 1057, the resource handler (1001) may pass a resource to the resource handler (1004). The resource handler (1001) may pass a resource identified based on a profile to the resource handler (1004).
동작 1059에서, 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 리소스 갱신을 요청할 수 있다. 리소스 핸들러(1004)는, 리소스 홀더(1005)에게 리소스 핸들러(1001)로부터 획득한 리소스에 기반한 리소스의 갱신을 요청할 수 있다.In operation 1059, the resource handler (1004) may request a resource update from the resource holder (1005). The resource handler (1004) may request a resource update from the resource holder (1005) based on the resource acquired from the resource handler (1001).
도 11은 일 실시 예에 따른, 전자 장치들의 프로세스들 간의 관계의 일 예를 도시하는 도면이다.FIG. 11 is a diagram illustrating an example of a relationship between processes of electronic devices according to one embodiment.
일 실시 예에서, 전자 장치(101)의 하드웨어 리소스 컨트롤러(1113)는, 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 일 실시 예에서, 전자 장치(101)의 클라이언트들(1115, 1117, 1119) 중 적어도 하나의 클라이언트는, 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 예를 들면, 전자 장치(101)가 카메라의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1113) 및 카메라 클라이언트(1115)가 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 예를 들면, 전자 장치(101)가 스토리지의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1113) 및 스토리지 클라이언트(1117)가 도 9의 디바이스 공유 APP(913)에 포함될 수 있다. 예를 들면, 전자 장치(101)가 스피커의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1113) 및 오디오 클라이언트(1119)가 도 9의 디바이스 공유 APP(913)에 포함될 수 있다.In one embodiment, the hardware resource controller (1113) of the electronic device (101) may be included in the device sharing APP (913) of FIG. 9. In one embodiment, at least one client among the clients (1115, 1117, 1119) of the electronic device (101) may be included in the device sharing APP (913) of FIG. 9. For example, when the electronic device (101) receives sharing of a camera, the hardware resource controller (1113) and the camera client (1115) may be included in the device sharing APP (913) of FIG. 9. For example, when the electronic device (101) receives sharing of a storage, the hardware resource controller (1113) and the storage client (1117) may be included in the device sharing APP (913) of FIG. For example, if the electronic device (101) receives speaker sharing, the hardware resource controller (1113) and the audio client (1119) may be included in the device sharing APP (913) of FIG. 9.
도 11을 참조하면, 3rd 파티 APP(911)에게 전자 장치(303)의 하드웨어 구성요소의 공유 기능을 제공하기 위해, 클라이언트들(1115, 1117, 1119) 각각은 복수의 프로그램들을 포함할 수 있다. 예를 들면, 카메라 클라이언트(1115)의 경우, 가상 카메라 드라이버(1121), 공유 메모리(1123), 및 데이터 관리(1125)를 위한 프로그램들을 포함할 수 있다. 예를 들면, 가상 카메라 드라이버(1121)는, 카메라 드라이버(1131) 및/또는 미디어 소스(1135)에 대한 정보를 포함할 수 있다. 예를 들면, 데이터 관리(1125)는, 매니저(1141), 디코더(1143), 유틸리티(1145), 및/또는 커맨드(command, CMD)(1147)에 대한 정보를 포함할 수 있다.Referring to FIG. 11, in order to provide a shared function of hardware components of the electronic device (303) to a 3rd party APP (911), each of the clients (1115, 1117, 1119) may include multiple programs. For example, the camera client (1115) may include programs for a virtual camera driver (1121), a shared memory (1123), and a data manager (1125). For example, the virtual camera driver (1121) may include information about a camera driver (1131) and/or a media source (1135). For example, the data manager (1125) may include information about a manager (1141), a decoder (1143), a utility (1145), and/or a command (CMD) (1147).
일 실시 예에서, 전자 장치(303)의 하드웨어 리소스 컨트롤러(1153)는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 일 실시 예에서, 전자 장치(303)의 서버들(1155, 1157, 1159) 중 적어도 하나의 서버는, 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 예를 들면, 전자 장치(303)가 카메라의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1153) 및 카메라 서버(1155)가 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 예를 들면, 전자 장치(303)가 스토리지의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1153) 및 스토리지 서버(1157)가 도 9의 디바이스 공유 APP(923)에 포함될 수 있다. 예를 들면, 전자 장치(303)가 스피커의 공유를 받는 경우, 하드웨어 리소스 컨트롤러(1153) 및 오디오 서버(1159)가 도 9의 디바이스 공유 APP(923)에 포함될 수 있다.In one embodiment, the hardware resource controller (1153) of the electronic device (303) may be included in the device sharing APP (923) of FIG. 9. In one embodiment, at least one of the servers (1155, 1157, 1159) of the electronic device (303) may be included in the device sharing APP (923) of FIG. 9. For example, when the electronic device (303) receives sharing of a camera, the hardware resource controller (1153) and the camera server (1155) may be included in the device sharing APP (923) of FIG. 9. For example, when the electronic device (303) receives sharing of a storage, the hardware resource controller (1153) and the storage server (1157) may be included in the device sharing APP (923) of FIG. For example, if the electronic device (303) receives speaker sharing, the hardware resource controller (1153) and the audio server (1159) may be included in the device sharing APP (923) of FIG. 9.
도 11을 참조하면, 서버들(1155, 1157, 1159) 각각은 MCF들(937, 947)을 통한 통신 연결을 통해, 전자 장치(101)의 클라이언트들(1115, 1117, 1119) 각각과 연결될 수 있다. Referring to FIG. 11, each of the servers (1155, 1157, 1159) can be connected to each of the clients (1115, 1117, 1119) of the electronic device (101) through a communication connection via the MCFs (937, 947).
서버들(1155, 1157, 1159) 각각은 전자 장치(101)의 클라이언트들(1115, 1117, 1119) 각각에 대응하는 기능을 제공하기 위해, 복수의 프로그램들을 포함할 수 있다. 예를 들면, 카메라 서버(1155)의 경우, 데이터 관리(1161), CONFIG(1163), 프레임 큐(1165), RAW FEED API(application programming interface)(1167)를 위한 프로그램들을 포함할 수 있다. 예를 들면, 데이터 관리(1161)는, 매니저(1171), 인코더(1173), 유틸리티(1175), 및/또는 CMD(1177)에 대한 정보를 포함할 수 있다. 예를 들면, CONFIG(1163)는, 설정 정보를 포함할 수 있다. 프레임 큐(1165)는 카메라를 통해 획득된 이미지들을 포함할 수 있다. RAW FEED API(1167)는 camera raw frame 데이터를 제공하기 위한 API를 포함할 수 있다. Each of the servers (1155, 1157, 1159) may include a plurality of programs to provide functions corresponding to each of the clients (1115, 1117, 1119) of the electronic device (101). For example, the camera server (1155) may include programs for data management (1161), CONFIG (1163), frame queue (1165), and RAW FEED API (application programming interface) (1167). For example, data management (1161) may include information about the manager (1171), the encoder (1173), the utility (1175), and/or the CMD (1177). For example, CONFIG (1163) may include setting information. The frame queue (1165) may include images acquired through the camera. The RAW FEED API (1167) may include an API for providing camera raw frame data.
도 12는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다. FIG. 12 is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 12를 참조하면, 동작 1210에서, 전자 장치(101)는, 광고 패킷을 수신할 수 있다. 전자 장치(101)는, 공유가 활성화됨을 나타내는 광고 패킷을 수신할 수 있다. Referring to FIG. 12, in operation 1210, the electronic device (101) may receive an advertising packet. The electronic device (101) may receive an advertising packet indicating that sharing is activated.
동작 1220에서, 전자 장치(101)는, 광고 패킷에 기반하여 하드웨어 구성요소를 식별할 수 있다. 예를 들면, 공유가 활성화됨을 나타내는 광고 패킷은, 광고 패킷을 송신한 전자 장치(303)에서 공유가 활성화된 하드웨어 구성요소에 대한 정보를 포함할 수 있다. 예를 들면, 전자 장치(101)는, 공유가 활성화된 하드웨어 구성요소에 대한 정보를 수신함에 기반하여, 하드웨어 구성요소를 식별할 수 있다.In operation 1220, the electronic device (101) may identify a hardware component based on an advertisement packet. For example, an advertisement packet indicating that sharing is enabled may include information about a hardware component for which sharing is enabled in the electronic device (303) that transmitted the advertisement packet. For example, the electronic device (101) may identify a hardware component based on receiving information about a hardware component for which sharing is enabled.
동작 1230에서, 전자 장치(101)는, 하드웨어 구성요소에 대응하는 드라이버를 활성화할 수 있다. 예를 들면, 전자 장치(101)는, 공유가 활성화된 하드웨어 구성요소에 대응하는 클라이언트 프로그램을 실행할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(303)에게 클라이언트 프로그램에 대응하는 서버 프로그램의 실행을 요청할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(303)로부터 서버 프로그램의 실행이 완료됨을 나타내는 응답을 수신함에 기반하여, 하드웨어 구성요소에 대응하는 드라이버를 활성화(또는, 적재)할 수 있다.In operation 1230, the electronic device (101) may activate a driver corresponding to a hardware component. For example, the electronic device (101) may execute a client program corresponding to a hardware component for which sharing is enabled. For example, the electronic device (101) may request the electronic device (303) to execute a server program corresponding to the client program. For example, the electronic device (101) may activate (or load) the driver corresponding to the hardware component based on receiving a response from the electronic device (303) indicating that execution of the server program has been completed.
일 실시 예에서, 전자 장치(101)는, 공유가 비활성화됨을 나타내는 광고 패킷을 수신함에 기반하여, 공유가 비활성화된 하드웨어 구성요소에 대응하는 드라이버를 비활성화된 상태로 유지할 수 있다. 일 실시 예에서, 전자 장치(101)는, 광고 패킷이 전자 장치(303)의 하드웨어 구성요소의 공유가 비활성화된 동안 수신됨에 기반하여, 하드웨어 구성요소에 대응하는 드라이버를 비활성화된 상태로 유지할 수 있다.In one embodiment, the electronic device (101) may keep a driver corresponding to a hardware component for which sharing is disabled in a disabled state based on receiving an advertising packet indicating that sharing is disabled. In one embodiment, the electronic device (101) may keep a driver corresponding to a hardware component in a disabled state based on receiving an advertising packet while sharing of the hardware component of the electronic device (303) is disabled.
도 13은 일 실시 예에 따른, 전자 장치들의 서로 다른 오리엔테이션 및/또는 종횡비의 일 예를 도시하는 도면이다.FIG. 13 is a diagram illustrating an example of different orientations and/or aspect ratios of electronic devices according to one embodiment.
도 13은 전자 장치(101)에게 전자 장치(303)의 카메라가 공유되는 상황에서 전자 장치(101)와 전자 장치(303)의 오리엔테이션(orientation) 또는 종횡비 중 적어도 하나가 다른 상황을 예시할 수 있다. FIG. 13 may illustrate a situation in which at least one of the orientation or aspect ratio of the electronic device (101) and the electronic device (303) is different in a situation in which the camera of the electronic device (303) is shared with the electronic device (101).
도 13의 상황(1301)은 전자 장치(303)의 오리엔테이션이 랜드스케이프(landscape)인 동안, 전자 장치(303)의 카메라가 촬영하는 이미지를 나타낼 수 있다. 전자 장치(303)의 카메라가 촬영하는 이미지는, 전자 장치(101)의 디스플레이(예: 도 1의 디스플레이 모듈(160))의 표시 영역에 표시될 수 있다. 예를 들면, 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션 및 종횡비가 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션 및 종횡비와 동일한 경우, 전자 장치(303)의 카메라가 촬영하는 이미지는, 추가적인 이미지 처리 없이, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. A situation (1301) of FIG. 13 may represent an image captured by a camera of the electronic device (303) while the orientation of the electronic device (303) is landscape. The image captured by the camera of the electronic device (303) may be displayed on a display area of a display of the electronic device (101) (e.g., a display module (160) of FIG. 1). For example, when the orientation and aspect ratio of the electronic device (303) (or an image captured by the camera of the electronic device (303)) are the same as the orientation and aspect ratio of the electronic device (101) (or the display area of the electronic device (101), the image captured by the camera of the electronic device (303) may be displayed on the electronic device (101) (or the display area of the electronic device (101)) without additional image processing.
도 13의 상황(1301)에서, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션과 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션이 모두 랜드스케이프이지만, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 종횡비(예: 16:9)가 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 종횡비(예: 4:3)와 서로 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 종횡비(예: 16:9)에 상응하는 이미지의 영역(1311)이 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. 또는, 도 13의 상황(1301)에서, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 포트레잇)이 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션(즉, 랜드스케이프)와 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 포트레잇)에 상응하는 이미지의 영역(1315)이 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. 또는, 도 13의 상황(1301)에서, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 포트레잇), 및 종횡비(예: 9:16)가 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션(즉, 랜드스케이프), 및 종횡비(예: 4:3)와 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 포트레잇) 및 종횡비(예: 9:16)에 상응하는 이미지의 영역(1315)이 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다.In the situation (1301) of FIG. 13, when the orientation of the electronic device (101) (or the display area of the electronic device (101)) and the orientation of the electronic device (303) (or the image captured through the camera of the electronic device (303)) are both landscape, but the aspect ratio (e.g., 16:9) of the electronic device (101) (or the display area of the electronic device (101)) is different from the aspect ratio (e.g., 4:3) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1311) of an image corresponding to the aspect ratio (e.g., 16:9) of the electronic device (101) (or the display area of the electronic device (101)) can be displayed on the electronic device (101) (or the display area of the electronic device (101)). Alternatively, in the situation (1301) of FIG. 13, when the orientation (i.e., portrait) of the electronic device (101) (or the display area of the electronic device (101)) is different from the orientation (i.e., landscape) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1315) of the image corresponding to the orientation (i.e., portrait) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)). Alternatively, in the situation (1301) of FIG. 13, when the orientation (i.e., portrait) and aspect ratio (e.g., 9:16) of the electronic device (101) (or the display area of the electronic device (101)) are different from the orientation (i.e., landscape) and aspect ratio (e.g., 4:3) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1315) of an image corresponding to the orientation (i.e., portrait) and aspect ratio (e.g., 9:16) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)).
도 13의 상황(1305)은 전자 장치(303)의 오리엔테이션이 포트레잇(portrait)인 동안, 전자 장치(303)의 카메라가 촬영하는 이미지를 나타낼 수 있다. 전자 장치(303)의 카메라가 촬영하는 이미지는, 전자 장치(101)의 디스플레이(예: 도 1의 디스플레이 모듈(160))의 표시 영역에 표시될 수 있다. 예를 들면, 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션 및 종횡비가 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션 및 종횡비와 동일한 경우, 전자 장치(303)의 카메라가 촬영하는 이미지는, 추가적인 이미지 처리 없이, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. A situation (1305) of FIG. 13 may represent an image captured by a camera of the electronic device (303) while the orientation of the electronic device (303) is a portrait. The image captured by the camera of the electronic device (303) may be displayed on a display area of a display of the electronic device (101) (e.g., a display module (160) of FIG. 1). For example, when the orientation and aspect ratio of the electronic device (303) (or an image captured by the camera of the electronic device (303)) are the same as the orientation and aspect ratio of the electronic device (101) (or the display area of the electronic device (101), the image captured by the camera of the electronic device (303) may be displayed on the electronic device (101) (or the display area of the electronic device (101)) without additional image processing.
도 13의 상황(1305)에서, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 랜드스케이프)이 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션(즉, 포트레잇)과 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 랜드스케이프)에 상응하는 이미지의 영역(1321)이 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. 또는, 도 13의 상황(1305)에서, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 랜드스케이프), 및 종횡비(예: 16:9)가 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션(즉, 포트레잇), 및 종횡비(예: 3:4)와 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 오리엔테이션(즉, 포트레잇) 및 종횡비(예: 16:9)에 상응하는 이미지의 영역(1315)이 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)에 표시될 수 있다. 도 13의 상황(1305)에서, 전자 장치(101)의 오리엔테이션과 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 오리엔테이션이 모두 포트레잇이지만, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 종횡비(예: 9:16)가 전자 장치(303)(또는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지)의 종횡비(예: 3:4)와 서로 다른 경우, 전자 장치(101)(또는, 전자 장치(101)의 표시 영역)의 종횡비(예: 9:16)에 상응하는 이미지의 영역(1325)이 전자 장치(101)의 표시 영역에 표시될 수 있다.In the situation (1305) of FIG. 13, when the orientation (i.e., landscape) of the electronic device (101) (or the display area of the electronic device (101)) is different from the orientation (i.e., portrait) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1321) of an image corresponding to the orientation (i.e., landscape) of the electronic device (101) (or the display area of the electronic device (101)) can be displayed on the electronic device (101) (or the display area of the electronic device (101)). Alternatively, in the situation (1305) of FIG. 13, when the orientation (i.e., landscape) and aspect ratio (e.g., 16:9) of the electronic device (101) (or the display area of the electronic device (101)) are different from the orientation (i.e., portrait) and aspect ratio (e.g., 3:4) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1315) of an image corresponding to the orientation (i.e., portrait) and aspect ratio (e.g., 16:9) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed on the electronic device (101) (or the display area of the electronic device (101)). In a situation (1305) of FIG. 13, when both the orientation of the electronic device (101) and the orientation of the electronic device (303) (or the image captured through the camera of the electronic device (303)) are portraits, but the aspect ratio (e.g., 9:16) of the electronic device (101) (or the display area of the electronic device (101)) is different from the aspect ratio (e.g., 3:4) of the electronic device (303) (or the image captured through the camera of the electronic device (303)), an area (1325) of the image corresponding to the aspect ratio (e.g., 9:16) of the electronic device (101) (or the display area of the electronic device (101)) may be displayed in the display area of the electronic device (101).
상황에 따라, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)의 오리엔테이션과 전자 장치(303)(또는, 카메라를 통해 촬영되는 이미지)의 오리엔테이션이 서로 다른 경우, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)에는 회전된 이미지가 표시될 수 있다. 예를 들면, 전자 장치(101)가 포트레잇 상태에서 제1 방향(예: 시계 방향)으로 90도 회전되고, 전자 장치(303)가 포트레잇 상태에서 제1 방향과 반대되는 제2 방향(예: 반시계 방향)으로 90도 회전된 경우, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)에는 회전된 이미지가 표시될 수 있다. 예를 들면, 전자 장치(101)가 포트레잇 상태에서 제1 방향, 또는 제2 방향으로 180도 회전되고, 전자 장치(303)가 포트레잇 상태에서 회전되지 않은 경우, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)에는 회전된 이미지가 표시될 수 있다. 하지만 이에 제한되지 않는다. Depending on the situation, if the orientation of the electronic device (101) (or the area displayed on the electronic device (101)) and the orientation of the electronic device (303) (or the image captured by the camera) are different, a rotated image may be displayed on the electronic device (101) (or the area displayed on the electronic device (101). For example, if the electronic device (101) is rotated 90 degrees in a first direction (e.g., clockwise) in a portrait state and the electronic device (303) is rotated 90 degrees in a second direction (e.g., counterclockwise) opposite to the first direction in the portrait state, a rotated image may be displayed on the electronic device (101) (or the area displayed on the electronic device (101)). For example, when the electronic device (101) is rotated 180 degrees in the first direction or the second direction in the portrait state and the electronic device (303) is not rotated in the portrait state, a rotated image may be displayed on the electronic device (101) (or an area displayed on the electronic device (101)). However, this is not limited thereto.
도 13의 상황들(1301, 1305)을 참조하면, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)의 종횡비와 전자 장치(303)(또는, 카메라를 통해 촬영되는 이미지)의 종횡비가 서로 다른 경우, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)에는 이미지의 일부만 표시될 수 있다. Referring to situations (1301, 1305) of FIG. 13, when the aspect ratio of the electronic device (101) (or the area displayed on the electronic device (101)) and the aspect ratio of the electronic device (303) (or the image captured through the camera) are different from each other, only a part of the image may be displayed on the electronic device (101) (or the area displayed on the electronic device (101)).
이에 따라, 전자 장치(101)(또는, 전자 장치(101)에서 표시되는 영역)의 오리엔테이션 및/또는 종횡비와 전자 장치(303)(또는, 카메라를 통해 촬영되는 이미지)의 오리엔테이션 및/또는 종횡비를 서로 대응시키기 위한 방안이 요구될 수 있다. Accordingly, a method may be required to correspond the orientation and/or aspect ratio of the electronic device (101) (or the area displayed on the electronic device (101)) to the orientation and/or aspect ratio of the electronic device (303) (or the image captured by the camera).
도 14a는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다.FIG. 14a is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 14a의 동작들은, 도 14b의 동작들과 병렬적으로 수행될 수 있다. 하지만 이에 제한되지 않는다. 도 14a의 동작들이 수행된 후, 도 14b의 동작들이 수행될 수 있다. 도 14b의 동작들이 수행된 후, 도 14a의 동작들이 수행될 수 있다.The operations of FIG. 14a may be performed in parallel with the operations of FIG. 14b, but are not limited thereto. After the operations of FIG. 14a are performed, the operations of FIG. 14b may be performed. After the operations of FIG. 14b are performed, the operations of FIG. 14a may be performed.
도 14a를 참조하면, 동작 1410에서, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션 정보 및 전자 장치(303)의 오리엔테이션 정보를 획득할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(303)로부터 전자 장치(303)의 오리엔테이션 정보를 획득할 수 있다. 예를 들어, 전자 장치(101)는 전자 장치(303)로 오리엔테이션 정보를 요청하여 획득하거나, 주기적으로 전자 장치(303)로부터 오리엔테이션 정보를 수신하거나 또는 전자 장치(303)의 오리엔테이션이 변경됨에 기반하여 전자 장치(303)의 오리엔테이션 정보를 획득할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)의 센서(예: 도 1의 센서 모듈(176))(예: 가속도 센서)에 기반하여, 전자 장치(101)의 오리엔테이션 정보를 획득할 수 있다.Referring to FIG. 14A, in operation 1410, the electronic device (101) may obtain orientation information of the electronic device (101) and orientation information of the electronic device (303). In one embodiment, the electronic device (101) may obtain orientation information of the electronic device (303) from the electronic device (303). For example, the electronic device (101) may request and obtain orientation information from the electronic device (303), periodically receive orientation information from the electronic device (303), or obtain orientation information of the electronic device (303) based on a change in the orientation of the electronic device (303). For example, the electronic device (101) may obtain orientation information of the electronic device (101) based on a sensor (e.g., the sensor module (176) of FIG. 1) (e.g., an acceleration sensor) of the electronic device (101).
동작 1420에서, 전자 장치(101)는, 오리엔테이션이 상이한지를 판별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 상이한지를 판별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)에서 표시되는 영역의 오리엔테이션과 전자 장치(303)의 카메라를 통해 촬영되는 이미지의 오리엔테이션이 서로 상이한지를 판별할 수 있다.In operation 1420, the electronic device (101) can determine whether the orientations are different. In one embodiment, the electronic device (101) can determine whether the orientations of the electronic device (101) and the orientations of the electronic device (303) are different from each other. In one embodiment, the electronic device (101) can determine whether the orientations of an area displayed on the electronic device (101) and the orientations of an image captured by a camera of the electronic device (303) are different from each other.
동작 1420에서, 오리엔테이션이 상이한 것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1430을 수행할 수 있다. 동작 1420에서, 오리엔테이션이 동일한 것으로 판별됨에 기반하여, 전자 장치(101)는, 도 14a의 동작을 종료할 수 있다. In operation 1420, based on the determination that the orientations are different, the electronic device (101) may perform operation 1430. In operation 1420, based on the determination that the orientations are the same, the electronic device (101) may terminate the operation of FIG. 14A.
동작 1430에서, 전자 장치(101)는, 이미지를 회전할 수 있다. 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 대응되기 위한 회전량(예: 90도, -90도, 또는 180도)만큼, 이미지를 회전할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)에서 표시되는 영역의 오리엔테이션과 전자 장치(303)의 카메라를 통해 촬영되는 이미지의 오리엔테이션이 서로 대응되기 위한 회전량만큼, 이미지를 회전할 수 있다. In operation 1430, the electronic device (101) may rotate the image. The electronic device (101) may rotate the image by a rotation amount (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other. In one embodiment, the electronic device (101) may rotate the image by a rotation amount so that the orientation of the area displayed on the electronic device (101) and the orientation of the image captured by the camera of the electronic device (303) correspond to each other.
도 14b는 일 실시 예에 따른, 전자 장치의 동작을 나타내는 흐름도이다.FIG. 14b is a flowchart illustrating the operation of an electronic device according to one embodiment.
도 14b의 동작들은, 도 14a의 동작들과 병렬적으로 수행될 수 있다. 하지만 이에 제한되지 않는다. 도 14b의 동작들이 수행된 후, 도 14a의 동작들이 수행될 수 있다. 도 14a의 동작들이 수행된 후, 도 14b의 동작들이 수행될 수 있다.The operations of FIG. 14b may be performed in parallel with the operations of FIG. 14a, but are not limited thereto. After the operations of FIG. 14b are performed, the operations of FIG. 14a may be performed. After the operations of FIG. 14a are performed, the operations of FIG. 14b may be performed.
도 14b를 참조하면, 동작 1440에서, 전자 장치(101)는, 전자 장치(101)의 종횡비 정보 및 전자 장치(303)의 종횡비 정보를 획득할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(303)로부터 전자 장치(303)의 종횡비 정보를 획득할 수 있다. 예를 들어, 전자 장치(101)는 전자 장치(303)로 종횡비 정보를 요청하여 획득하거나, 또는 전자 장치(303)의 오리엔테이션이 변경됨에 기반하여 전자 장치(303)의 종횡비를 획득할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)에서 표시되는 영역의 종횡비와 전자 장치(303)의 카메라를 통해 촬영되는 이미지의 종횡비에 대한 정보를 획득할 수 있다. Referring to FIG. 14B, in operation 1440, the electronic device (101) may obtain aspect ratio information of the electronic device (101) and aspect ratio information of the electronic device (303). In one embodiment, the electronic device (101) may obtain aspect ratio information of the electronic device (303) from the electronic device (303). For example, the electronic device (101) may request and obtain aspect ratio information from the electronic device (303), or may obtain the aspect ratio of the electronic device (303) based on a change in orientation of the electronic device (303). In one embodiment, the electronic device (101) may obtain information about an aspect ratio of an area displayed on the electronic device (101) and an aspect ratio of an image captured through a camera of the electronic device (303).
동작 1450에서, 전자 장치(101)는, 종횡비가 상이한지를 판별할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)에서 표시되는 영역의 종횡비와 전자 장치(303)의 카메라를 통해 촬영되는 이미지의 종횡비가 서로 상이한지를 판별할 수 있다.In operation 1450, the electronic device (101) can determine whether the aspect ratios are different. In one embodiment, the electronic device (101) can determine whether the aspect ratio of an area displayed on the electronic device (101) and the aspect ratio of an image captured by a camera of the electronic device (303) are different from each other.
동작 1450에서, 종횡비가 상이한 것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1460을 수행할 수 있다. 동작 1450에서, 종횡비가 동일한 것으로 판별됨에 기반하여, 전자 장치(101)는, 도 14b의 동작을 종료할 수 있다. At operation 1450, based on the determination that the aspect ratios are different, the electronic device (101) may perform operation 1460. At operation 1450, based on the determination that the aspect ratios are the same, the electronic device (101) may terminate the operation of FIG. 14b.
동작 1460에서, 전자 장치(101)는, 이미지를 크롭할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(303)의 카메라를 통해 촬영되는 이미지에서 전자 장치(101)에서 표시되는 영역만큼 크롭할 수 있다. In operation 1460, the electronic device (101) may crop the image. In one embodiment, the electronic device (101) may crop the image captured by the camera of the electronic device (303) to an area displayed on the electronic device (101).
도 15a는 일 실시 예에 따른, 전자 장치가 이미지를 처리하는 동작들을 예시하는 도면이다.FIG. 15A is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
도 15a의 동작들에서, 전자 장치(303)는, 카메라를 전자 장치(101)에게 공유하는 공유자 장치이고, 전자 장치(101)는, 전자 장치(303)의 카메라를 이용하는 수용자 장치일 수 있다. 도 15a의 동작들과 실질적으로 동시에 전자 장치(303)는, 카메라를 통해 획득되는 원본 이미지를 전자 장치(101)에게 공유하고 있을 수 있다. In the operations of FIG. 15a, the electronic device (303) may be a sharer device that shares a camera with the electronic device (101), and the electronic device (101) may be a receiver device that uses the camera of the electronic device (303). Substantially simultaneously with the operations of FIG. 15a, the electronic device (303) may be sharing an original image acquired through the camera with the electronic device (101).
도 15a를 참조하면, 동작 1510에서, 전자 장치(303)는, 카메라 관련 정보를 식별할 수 있다. Referring to FIG. 15A, in operation 1510, the electronic device (303) can identify camera-related information.
일 실시 예에서, 카메라 관련 정보는, 전자 장치(303)의 오리엔테이션 정보를 포함할 수 있다. 일 실시 예에서, 오리엔테이선 정보는, 전자 장치(303)(또는, 전자 장치(303)의 카메라)가 정상 상태(예: 포트레잇 상태)에서, 지정된 방향(예: 시계 방향, 또는 반시계 방향)으로 어느정도로 회전되었는지를 나타낼 수 있다. 예를 들면, 전자 장치(303)는, 전자 장치(303)의 센서(예: 도 1의 센서 모듈(176))(예: 가속도 센서)에 기반하여, 전자 장치(303)의 오리엔테이션을 식별할 수 있다. In one embodiment, the camera-related information may include orientation information of the electronic device (303). In one embodiment, the orientation information may indicate how much the electronic device (303) (or the camera of the electronic device (303)) is rotated in a specified direction (e.g., clockwise or counterclockwise) from a normal state (e.g., portrait state). For example, the electronic device (303) may identify the orientation of the electronic device (303) based on a sensor of the electronic device (303) (e.g., the sensor module (176) of FIG. 1) (e.g., an acceleration sensor).
일 실시 예에서, 카메라 관련 정보는, 전자 장치(303)의 카메라가 촬영하는 이미지의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 포함할 수 있다.In one embodiment, the camera-related information may include size information (or resolution information) (or aspect ratio information) of an image captured by the camera of the electronic device (303).
동작 1520에서, 전자 장치(303)는, 전자 장치(101)에게 카메라 관련 정보를 송신할 수 있다. 전자 장치(303)는, 전자 장치(303)의 카메라 관련 정보가 변경됨에 기반하여, 전자 장치(101)에게 카메라 관련 정보를 송신할 수 있다. 예를 들면, 전자 장치(303)는, 전자 장치(303)의 오리엔테이션이 변경됨에 기반하여, 전자 장치(101)에게 오리엔테이션 정보를 송신할 수 있다. 예를 들면, 전자 장치(303)는, 전자 장치(303)의 카메라가 촬영하는 이미지의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)가 변경됨에 기반하여, 전자 장치(101)에게 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 송신할 수 있다.In operation 1520, the electronic device (303) may transmit camera-related information to the electronic device (101). The electronic device (303) may transmit camera-related information to the electronic device (101) based on a change in the camera-related information of the electronic device (303). For example, the electronic device (303) may transmit orientation information to the electronic device (101) based on a change in the orientation of the electronic device (303). For example, the electronic device (303) may transmit size information (or resolution information) (or aspect ratio information) to the electronic device (101) based on a change in the size information (or resolution information) (or aspect ratio information) of an image captured by a camera of the electronic device (303).
동작 1530에서, 전자 장치(101)는, 카메라 관련 정보를 비교할 수 있다. At operation 1530, the electronic device (101) can compare camera-related information.
일 실시 예에서, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션을 비교할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치(예: 전자 장치(101))에서 표시되는 영역의 오리엔테이션과 공유자 장치(예: 전자 장치(303))의 카메라를 통해 촬영되는 이미지의 오리엔테이션을 비교할 수 있다.In one embodiment, the electronic device (101) can compare the orientation of the electronic device (101) with the orientation of the electronic device (303). In one embodiment, the electronic device (101) can compare the orientation of an area displayed on a recipient device (e.g., electronic device (101)) with the orientation of an image captured through a camera of a sharer device (e.g., electronic device (303)).
일 실시 예에서, 전자 장치(101)는, 전자 장치(101)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)와 전자 장치(303)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 비교할 수 있다. 일 실시 예에서, 전자 장치(101)는, 수용자 장치에서 표시되는 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)와 공유자 장치의 카메라를 통해 촬영되는 이미지의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 비교할 수 있다.In one embodiment, the electronic device (101) can compare the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) with the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303). In one embodiment, the electronic device (101) can compare the size information (or resolution information) (or aspect ratio information) of the area displayed on the recipient device with the size information (or resolution information) (or aspect ratio information) of an image captured through a camera of the sharer device.
동작 1540에서, 전자 장치(101)는, 이미지 처리가 필요한지를 판별할 수 있다. At operation 1540, the electronic device (101) can determine whether image processing is required.
예를 들면, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 상이한 경우, 이미지 처리가 필요한 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)와 전자 장치(303)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)가 서로 상이한 경우, 이미지 처리가 필요한 것으로 판별할 수 있다.For example, the electronic device (101) can determine that image processing is required when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other. For example, the electronic device (101) can determine that image processing is required when the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) and the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303) are different from each other.
동작 1540에서, 이미지 처리가 필요한것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1550을 수행할 수 있다. 동작 1540에서, 이미지 처리가 필요하지 않은 것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1560을 수행할 수 있다.In operation 1540, based on determining that image processing is required, the electronic device (101) may perform operation 1550. In operation 1540, based on determining that image processing is not required, the electronic device (101) may perform operation 1560.
동작 1550에서, 전자 장치(101)는, 이미지를 처리할 수 있다. 일 실시 예에서, 이미지 처리는, 이미지의 크롭, 및/또는 이미지의 회전을 포함할 수 있다. In operation 1550, the electronic device (101) may process an image. In one embodiment, the image processing may include cropping the image and/or rotating the image.
예를 들면, 전자 장치(101)는, 공유자 장치의 카메라가 획득하는 이미지를 수용자 장치가 요청한 카메라의 종횡비에 기반하여 크롭할 수 있다. 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 다른 경우, 전자 장치(101)가 요청한 카메라의 역종횡비에 기반하여 전자 장치(303)의 카메라가 획득하는 이미지를 크롭할 수 있다.For example, the electronic device (101) can crop the image acquired by the camera of the sharer device based on the aspect ratio of the camera requested by the receiver device. If the orientations of the electronic device (101) and the orientations of the electronic device (303) are different, the electronic device (101) can crop the image acquired by the camera of the electronic device (303) based on the inverse aspect ratio of the camera requested by the electronic device (101).
예를 들면, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 다른 경우, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 대응되기 위한 회전량(예: 90도, -90도, 또는 180도)만큼, 크롭된 이미지를 회전할 수 있다.For example, when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other, the electronic device (101) may rotate the cropped image by an amount of rotation (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other.
동작 1560에서, 전자 장치(101)는, 이미지를 표시할 수 있다. 예를 들면, 전자 장치(101)가 수용자 장치인 경우, 전자 장치(101)는 이미지를 표시할 수 있다. In operation 1560, the electronic device (101) can display an image. For example, if the electronic device (101) is a receiver device, the electronic device (101) can display an image.
도 15b는 일 실시 예에 따른, 전자 장치가 이미지를 처리하는 동작들을 예시하는 도면이다.FIG. 15b is a diagram illustrating operations of an electronic device for processing an image, according to one embodiment.
도 15b의 동작들에서, 전자 장치(101)는, 카메라를 전자 장치(303)에게 공유하는 공유자 장치이고, 전자 장치(303)는, 전자 장치(101)의 카메라를 이용하는 수용자 장치일 수 있다. 도 15b의 동작들과 실질적으로 동시에 전자 장치(101)는, 카메라를 통해 원본 이미지를 획득할 수 있다. In the operations of FIG. 15b, the electronic device (101) may be a sharer device that shares a camera with the electronic device (303), and the electronic device (303) may be a receiver device that uses the camera of the electronic device (101). Substantially simultaneously with the operations of FIG. 15b, the electronic device (101) may acquire an original image through the camera.
도 15b를 참조하면, 동작 1515에서, 전자 장치(303)는, 카메라 관련 정보를 식별할 수 있다. 일 실시 예에서, 카메라 관련 정보는, 전자 장치(303)의 오리엔테이션 정보, 및/또는 전자 장치(303)의 카메라가 촬영하는 이미지의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 포함할 수 있다.Referring to FIG. 15B, in operation 1515, the electronic device (303) may identify camera-related information. In one embodiment, the camera-related information may include orientation information of the electronic device (303) and/or size information (or resolution information) (or aspect ratio information) of an image captured by the camera of the electronic device (303).
동작 1525에서, 전자 장치(303)는, 전자 장치(101)에게 카메라 관련 정보를 송신할 수 있다. 전자 장치(303)는, 전자 장치(303)의 카메라 관련 정보가 변경됨에 기반하여, 전자 장치(101)에게 카메라 관련 정보를 송신할 수 있다. In operation 1525, the electronic device (303) may transmit camera-related information to the electronic device (101). The electronic device (303) may transmit camera-related information to the electronic device (101) based on a change in the camera-related information of the electronic device (303).
동작 1535에서, 전자 장치(101)는, 카메라 관련 정보를 비교할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션을 비교할 수 있다. 일 실시 예에서, 전자 장치(101)는, 전자 장치(101)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)와 전자 장치(303)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)를 비교할 수 있다. In operation 1535, the electronic device (101) may compare camera-related information. In one embodiment, the electronic device (101) may compare the orientation of the electronic device (101) with the orientation of the electronic device (303). In one embodiment, the electronic device (101) may compare the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) with the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303).
동작 1545에서, 전자 장치(101)는, 이미지 처리가 필요한지를 판별할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 상이한 경우, 이미지 처리가 필요한 것으로 판별할 수 있다. 예를 들면, 전자 장치(101)는, 전자 장치(101)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)와 전자 장치(303)의 표시 영역의 크기 정보(또는, 해상도 정보)(또는, 종횡비 정보)가 서로 상이한 경우, 이미지 처리가 필요한 것으로 판별할 수 있다.In operation 1545, the electronic device (101) can determine whether image processing is required. For example, the electronic device (101) can determine that image processing is required when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other. For example, the electronic device (101) can determine that image processing is required when the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (101) and the size information (or resolution information) (or aspect ratio information) of the display area of the electronic device (303) are different from each other.
동작 1545에서, 이미지 처리가 필요한것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1555을 수행할 수 있다. 동작 1545에서, 이미지 처리가 필요하지 않은 것으로 판별됨에 기반하여, 전자 장치(101)는, 동작 1570을 수행할 수 있다.In operation 1545, based on determining that image processing is required, the electronic device (101) may perform operation 1555. In operation 1545, based on determining that image processing is not required, the electronic device (101) may perform operation 1570.
동작 1555에서, 전자 장치(101)는, 이미지를 처리할 수 있다. 일 실시 예에서, 이미지 처리는, 이미지의 크롭, 및/또는 이미지의 회전을 포함할 수 있다. In operation 1555, the electronic device (101) may process an image. In one embodiment, the image processing may include cropping the image and/or rotating the image.
예를 들면, 전자 장치(101)는, 공유자 장치인 전자 장치(101)의 카메라가 획득하는 이미지를 수용자 장치인 전자 장치(303)가 요청한 카메라의 종횡비에 기반하여 크롭할 수 있다. 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 다른 경우, 전자 장치(303)가 요청한 카메라의 역종횡비에 기반하여 전자 장치(101)의 카메라가 획득하는 이미지를 크롭할 수 있다.For example, the electronic device (101) can crop an image acquired by the camera of the electronic device (101), which is a sharer device, based on the aspect ratio of the camera requested by the electronic device (303), which is a receiver device. If the orientations of the electronic device (101) and the orientations of the electronic device (303) are different, the electronic device (101) can crop an image acquired by the camera of the electronic device (101) based on the inverse aspect ratio of the camera requested by the electronic device (303).
예를 들면, 전자 장치(101)는, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 다른 경우, 전자 장치(101)의 오리엔테이션과 전자 장치(303)의 오리엔테이션이 서로 대응되기 위한 회전량(예: 90도, -90도, 또는 180도)만큼, 크롭된 이미지를 회전할 수 있다.For example, when the orientation of the electronic device (101) and the orientation of the electronic device (303) are different from each other, the electronic device (101) may rotate the cropped image by an amount of rotation (e.g., 90 degrees, -90 degrees, or 180 degrees) so that the orientation of the electronic device (101) and the orientation of the electronic device (303) correspond to each other.
동작 1570에서, 전자 장치(101)는, 처리된 이미지를 수용자 장치인 전자 장치(303)에게 송신할 수 있다. In operation 1570, the electronic device (101) can transmit the processed image to the electronic device (303), which is a receiver device.
동작 1580에서, 전자 장치(303)는, 이미지를 표시할 수 있다. In operation 1580, the electronic device (303) can display an image.
상술한 바와 같은, 전자 장치(101)는, BLE(Bluetooth low energy)를 위한 통신 회로(391)를 포함할 수 있다. 상기 전자 장치(101)는, 처리 회로를 포함하는 적어도 하나의 프로세서(120)를 포함할 수 있다. 전자 장치(101)는, 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(130)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 전자 장치(101)의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버(919)를 활성화하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버(919)를 비활성화된 상태로 유지하도록 야기할 수 있다. As described above, the electronic device (101) may include a communication circuit (391) for BLE (Bluetooth low energy). The electronic device (101) may include at least one processor (120) including a processing circuit. The electronic device (101) may include a memory (130) that stores instructions and includes one or more storage media. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive an advertising packet for sharing a hardware component of the other electronic device (303) from another electronic device (303) through the communication circuit (391). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to activate a driver (919) for access to the hardware component indicated by the advertising packet based on the advertising packet being received while the sharing of the hardware component of the electronic device (101) is enabled. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to keep the driver (919) in a disabled state based on the advertising packet being received while the sharing of the hardware component of the electronic device (101) is disabled.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 드라이버(919)가 활성화된 동안, 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소의 공유가 비활성화됨을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소의 공유가 비활성화됨을 식별함에 응답하여, 상기 드라이버(919)를 비활성화된 상태로 변경하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify that sharing of the hardware component of the other electronic device (303) is disabled while the driver (919) is activated. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to change the driver (919) to a disabled state in response to identifying that sharing of the hardware component of the other electronic device (303) is disabled.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 하드웨어 구성요소의 공유가 활성화된 동안 수신됨에 기반하여, 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스(1015, 1017, 1019) 및 상기 하드웨어 구성요소와 관련된 서버 프로세스(1155, 1157, 1159) 중 상기 클라이언트 프로세스(1015, 1017, 1019)를 실행하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to execute the client process (1015, 1017, 1019) among the client processes (1015, 1017, 1019) associated with the hardware component and the server processes (1155, 1157, 1159) associated with the hardware component based on the advertisement packet being received while sharing of the hardware component is enabled.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)로부터, 상기 다른 전자 장치(303)에서 실행되는 상기 서버 프로세스(1155, 1157, 1159)가 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결됨을 나타내는 신호를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 신호를 획득함에 기반하여, 상기 하드웨어 구성요소를 상기 하드웨어 구성요소와 관련된 디바이스 매니저(935)에 등록하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain, through the communication circuit (391), from the other electronic device (303), a signal indicating that the server process (1155, 1157, 1159) executing on the other electronic device (303) is connected to the client process (1015, 1017, 1019). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to register the hardware component with a device manager (935) associated with the hardware component based on obtaining the signal.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 어플리케이션(911)으로부터 상기 하드웨어 구성요소의 종류의 목록 요청을 식별함에 기반하여, 상기 하드웨어 구성요소의 식별 정보를 포함하는 목록을 상기 어플리케이션(911)에게 제공하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to provide a list containing identification information of the hardware components to the application (911) based on identifying a request for a list of types of the hardware components from the application (911).
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 어플리케이션(911)으로부터 상기 하드웨어 구성요소의 제어 요청을 식별함에 기반하여, 상기 디바이스 매니저(935)를 통해, 상기 클라이언트 프로세스(1015, 1017, 1019)에 제어 요청을 전달하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해 상기 클라이언트 프로세스(1015, 1017, 1019)가 상기 서버 프로세스(1155, 1157, 1159)에게 상기 제어 요청을 전달하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit a control request to the client process (1015, 1017, 1019) through the device manager (935) based on identifying a control request of the hardware component from an application (911). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit the control request to the client process (1015, 1017, 1019) through the communication circuit (391) to the server process (1155, 1157, 1159).
상기 전자 장치(101)는, 상기 BLE와 다른 무선 통신 기법에 기반한 다른 통신 회로(392)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 드라이버(919)가 활성화된 동안, 상기 다른 통신 회로(392)를 통해, 상기 다른 전자 장치(303)로부터 상기 하드웨어 구성요소가 획득한 데이터를 수신하도록 야기할 수 있다. The electronic device (101) may include another communication circuit (392) based on a wireless communication technique other than the BLE. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive data acquired by the hardware component from the other electronic device (303) through the other communication circuit (392) while the driver (919) is activated.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 하드웨어 구성요소의 공유가 활성화된 동안 수신된 후, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)로부터 상기 하드웨어 구성요소의 성능과 관련된 성능 정보를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)에게 상기 성능 정보에 기반하여, 상기 하드웨어 구성요소의 설정을 위한 설정 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 다른 통신 회로(392)를 통해, 상기 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 수신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain performance information related to the performance of the hardware component from the other electronic device (303) via the communication circuit (391) after the advertisement packet is received while sharing of the hardware component is activated. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), to the other electronic device (303) configuration information for configuring the hardware component based on the performance information. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on the configuration information.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)에게 상기 데이터의 수신 상태를 나타내는 수신 상태 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 다른 통신 회로(392)를 통해, 상기 수신 상태 정보에 기반하여 변경된 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 수신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), reception status information indicating a reception status of the data to the other electronic device (303). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on setting information changed based on the reception status information.
상기 전자 장치(101)는, 디스플레이를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터가 나타내는 이미지의 제1 종횡비가, 상기 전자 장치(101)에서 상기 이미지가 표시되는 상기 디스플레이 상의 영역의 제2 종횡비와 상이함에 기반하여, 상기 제2 종횡비에 상응하도록 크롭된, 상기 이미지의 일부를 상기 영역에 표시하도록 야기할 수 있다. The electronic device (101) may include a display. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display a portion of the image, cropped to correspond to a second aspect ratio, in the area on the display where the image is displayed on the electronic device (101), based on a difference between a first aspect ratio of the image represented by the data and a second aspect ratio of the area on the display where the image is displayed.
상기 전자 장치(101)는, 디스플레이를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 데이터가 나타내는 이미지의 제1 지향이, 상기 전자 장치(101)에서 상기 이미지가 표시되는 상기 디스플레이 상의 영역의 제2 지향과 상이함에 기반하여, 상기 제2 지향에 상응하도록 회전된, 상기 이미지의 일부를 상기 영역에 표시하도록 야기할 수 있다. The electronic device (101) may include a display. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display a portion of the image in an area, wherein the portion is rotated to correspond to a second orientation of the image represented by the data, based on a difference between a first orientation of the image and a second orientation of an area on the display in which the image is displayed in the electronic device (101).
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 전자 장치(101)의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안, 상기 통신 회로(391)를 통해 수신되는 복수의 전자 장치들의 광고 패킷에 기반하여, 지정된 종류의 복수의 하드웨어 구성요소들을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 지정된 종류의 상기 복수의 하드웨어 구성요소들 중 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소를 선택하기 위한 입력에 기반하여, 상기 하드웨어 구성요소에 대한 접근을 위한 상기 드라이버(919)를 활성화하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify a plurality of hardware components of a specified type based on advertising packets of a plurality of electronic devices received via the communication circuit (391) while the sharing of the hardware components of the electronic device (101) is activated. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to activate the driver (919) for access to the hardware component based on an input for selecting the hardware component of the other electronic device (303) from among the plurality of hardware components of the specified type.
상기 전자 장치(101)는, 상기 BLE와 다른 무선 통신 기법에 기반한 다른 통신 회로(392)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 드라이버(919)가 활성화된 동안, 상기 다른 통신 회로(392)를 통해, 상기 하드웨어 구성요소에 출력될 데이터를 송신하도록 야기할 수 있다. The electronic device (101) may include other communication circuits (392) based on a wireless communication technique other than the BLE. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit data to be output to the hardware component through the other communication circuits (392) while the driver (919) is activated.
상술한 바와 같은, 전자 장치(303)는, BLE(Bluetooth low energy)를 위한 통신 회로(393)를 포함할 수 있다. 전자 장치(303)는, 처리 회로를 포함하는 적어도 하나의 프로세서(311)를 포함할 수 있다. 전자 장치(303)는, 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(315)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 다른 전자 장치(101)에게 상기 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(101)로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스(1155, 1157, 1159)를 상기 다른 전자 장치(101)에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스(1015, 1017, 1019)에 연결하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(101)에게, 상기 서버 프로세스(1155, 1157, 1159)가 상기 다른 전자 장치(101)에서 실행되는 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결됨을 나타내는 신호를 송신하도록 야기할 수 있다. As described above, the electronic device (303) may include a communication circuit (393) for BLE (Bluetooth low energy). The electronic device (303) may include at least one processor (311) including a processing circuit. The electronic device (303) may include a memory (315) that stores instructions and includes one or more storage media. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to broadcast an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) via the communication circuit (393). The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to obtain, from the other electronic device (101) via the communication circuit (393), an access request for the hardware component indicated by the advertising packet. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to connect a server process (1155, 1157, 1159) associated with the hardware component to a client process (1015, 1017, 1019) associated with the hardware component running on the other electronic device (101), based on obtaining the access request. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), a signal to the other electronic device (101) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) executing on the other electronic device (101).
상기 전자 장치(303)는, 상기 BLE와 다른 무선 통신 기법에 기반한 다른 통신 회로(394)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 서버 프로세스(1155, 1157, 1159)가 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결된 동안, 상기 다른 통신 회로(394)를 통해, 상기 다른 전자 장치(101)에게 상기 하드웨어 구성요소가 획득한 데이터를 송신하도록 야기할 수 있다. The electronic device (303) may include another communication circuit (394) based on a wireless communication technique other than the BLE. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit data acquired by the hardware component to the other electronic device (101) through the other communication circuit (394) while the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019).
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(303)에게 상기 데이터의 수신 상태를 나타내는 수신 상태 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 다른 통신 회로(394)를 통해, 상기 수신 상태 정보에 기반하여 변경된 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 송신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), reception status information indicating a reception status of the data to the other electronic device (303). The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the other communication circuit (394), the data acquired by the hardware component based on setting information changed based on the reception status information.
상기 전자 장치(303)는, 상기 BLE와 다른 무선 통신 기법에 기반한 다른 통신 회로(394)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 서버 프로세스(1155, 1157, 1159)가 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결된 동안, 상기 다른 통신 회로(394)를 통해, 상기 하드웨어 구성요소에 출력될 데이터를 수신하도록 야기하도록 야기할 수 있다. The electronic device (303) may include other communication circuits (394) based on a wireless communication technique other than the BLE. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to receive data to be output to the hardware component through the other communication circuits (394) while the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019).
상술한 바와 같은, 방법은, BLE(Bluetooth low energy)를 위한 통신 회로(391)를 포함하는, 전자 장치(101)에서 수행될 수 있다. 상기 방법은, 상기 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 패킷이 상기 전자 장치(101)의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버(919)를 활성화하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버(919)를 비활성화된 상태로 유지하는 동작을 포함할 수 있다. As described above, the method can be performed in an electronic device (101) including a communication circuit (391) for BLE (Bluetooth low energy). The method can include an operation of receiving, from another electronic device (303), an advertisement packet for sharing a hardware component of the other electronic device (303) via the communication circuit (391). The method can include an operation of activating a driver (919) for accessing the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device (101) is activated. The method can include an operation of maintaining the driver (919) in a deactivated state based on the advertisement packet being received while the sharing is deactivated.
상기 방법은, 상기 광고 패킷이 상기 하드웨어 구성요소의 공유가 활성화된 동안 수신됨에 기반하여, 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스(1015, 1017, 1019) 및 상기 하드웨어 구성요소와 관련된 서버 프로세스(1155, 1157, 1159) 중 상기 클라이언트 프로세스(1015, 1017, 1019)를 실행하는 동작을 포함할 수 있다. The method may include an operation of executing the client process (1015, 1017, 1019) among the client processes (1015, 1017, 1019) associated with the hardware component and the server processes (1155, 1157, 1159) associated with the hardware component based on the advertisement packet being received while sharing of the hardware component is activated.
상기 방법은, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)로부터, 상기 다른 전자 장치(303)에서 실행되는 상기 서버 프로세스(1155, 1157, 1159)가 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결됨을 나타내는 신호를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 신호를 획득함에 기반하여, 상기 하드웨어 구성요소를 상기 하드웨어 구성요소와 관련된 디바이스 매니저(935)에 등록하는 동작을 포함할 수 있다. The method may include an operation of obtaining, through the communication circuit (391), from the other electronic device (303), a signal indicating that the server process (1155, 1157, 1159) running on the other electronic device (303) is connected to the client process (1015, 1017, 1019). The method may include an operation of registering the hardware component with a device manager (935) associated with the hardware component based on obtaining the signal.
상술한 바와 같은, 방법은, BLE(Bluetooth low energy)를 위한 통신 회로(393)를 포함하는, 전자 장치(303)에서 수행될 수 있다. 상기 방법은, 상기 통신 회로(392)를 통해, 다른 전자 장치(101)에게 상기 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하는 동작을 포함할 수 있다. 상기 방법은, 상기 통신 회로(392)를 통해, 상기 다른 전자 장치(101)로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스(1155, 1157, 1159)를 상기 다른 전자 장치(101)에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스(1015, 1017, 1019)에 연결하는 동작을 포함할 수 있다. 상기 방법은, 상기 통신 회로(392)를 통해, 상기 다른 전자 장치(101)에게, 상기 서버 프로세스(1155, 1157, 1159)가 상기 다른 전자 장치(101)에서 실행되는 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결됨을 나타내는 신호를 송신하는 동작을 포함할 수 있다. As described above, the method can be performed in an electronic device (303) including a communication circuit (393) for BLE (Bluetooth low energy). The method can include an operation of broadcasting an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) through the communication circuit (392). The method can include an operation of obtaining, from the other electronic device (101) through the communication circuit (392), an access request for the hardware component indicated by the advertisement packet. Based on obtaining the access request, the method can include an operation of connecting a server process (1155, 1157, 1159) related to the hardware component to a client process (1015, 1017, 1019) related to the hardware component running on the other electronic device (101). The method may include an operation of transmitting a signal to the other electronic device (101) via the communication circuit (392) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) running on the other electronic device (101).
상술한 바와 같은, 비-일시적 컴퓨터 판독 가능 기록 매체(non-transitory computer readable storage medium)는 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, BLE(Bluetooth low energy)를 위한 통신 회로(391)를 포함하는 전자 장치(101)의 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 전자 장치(101)의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안 수신됨에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근을 위한 드라이버(919)를 활성화하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷이 상기 공유가 비활성화된 동안 수신됨에 기반하여, 상기 드라이버(919)를 비활성화된 상태로 유지하도록 야기할 수 있다. A non-transitory computer readable storage medium as described above can store a program including instructions. The instructions, when individually or collectively executed by at least one processor (120) of an electronic device (101) including a communication circuit (391) for BLE (Bluetooth low energy), can cause the electronic device (101) to receive, through the communication circuit (391), an advertisement packet for sharing a hardware component of the other electronic device (303) from another electronic device (303). The instructions, when individually or collectively executed by the at least one processor (120), can cause the electronic device (101) to activate a driver (919) for access to the hardware component indicated by the advertisement packet based on the advertisement packet being received while the sharing of the hardware component of the electronic device (101) is activated. The above instructions, when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to keep the driver (919) in a disabled state based on the advertisement packet being received while the sharing is disabled.
상술한 바와 같은, 비-일시적 컴퓨터 판독 가능 기록 매체(non-transitory computer readable storage medium)는 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, BLE(Bluetooth low energy)를 위한 통신 회로(393)를 포함하는 전자 장치(303)의 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 다른 전자 장치(101)에게 상기 전자 장치(303)의 하드웨어 구성요소의 공유를 위한 광고 패킷을 방송하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(101)로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련된 서버 프로세스(1155, 1157, 1159)를 상기 다른 전자 장치(101)에서 실행되는 상기 하드웨어 구성요소와 관련된 클라이언트 프로세스(1015, 1017, 1019)에 연결하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(101)에게, 상기 서버 프로세스(1155, 1157, 1159)가 상기 다른 전자 장치(101)에서 실행되는 상기 클라이언트 프로세스(1015, 1017, 1019)에 연결됨을 나타내는 신호를 송신하도록 야기할 수 있다. As described above, a non-transitory computer readable storage medium can store a program including instructions. The instructions, when individually or collectively executed by at least one processor (311) of an electronic device (303) including a communication circuit (393) for BLE (Bluetooth low energy), can cause the electronic device (303) to broadcast an advertisement packet for sharing a hardware component of the electronic device (303) to another electronic device (101) via the communication circuit (393). The instructions, when individually or collectively executed by the at least one processor (311), can cause the electronic device (303) to obtain, from the other electronic device (101) via the communication circuit (393), an access request for the hardware component indicated by the advertisement packet. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to connect a server process (1155, 1157, 1159) associated with the hardware component to a client process (1015, 1017, 1019) associated with the hardware component running on the other electronic device (101), based on the access request being obtained. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), a signal to the other electronic device (101) indicating that the server process (1155, 1157, 1159) is connected to the client process (1015, 1017, 1019) running on the other electronic device (101).
상술한 바와 같은, 전자 장치(101)는, 무선 통신 기법에 기반한 무선 통신을 위한 통신 회로(391), 처리 회로를 포함하는 적어도 하나의 프로세서(120); 및 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(130)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 하드웨어 구성요소의 정보를 포함하는 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷에 포함된 정보의 적어도 일부에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근이 가능한 정보를 나타내는 프로그램(919)을 비활성화 상태에서 활성화 상태로 변경하도록 야기할 수 있다. As described above, the electronic device (101) may include a communication circuit (391) for wireless communication based on a wireless communication technique, at least one processor (120) including a processing circuit; and a memory (130) storing instructions and including one or more storage media. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, from another electronic device (303) via the communication circuit (391), an advertisement packet including information on a hardware component of the other electronic device (303). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to change, from a deactivated state to an activated state, a program (919) indicating information that enables access to the hardware component indicated by the advertisement packet, based on at least a portion of the information included in the advertisement packet.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 프로그램(919)이 활성화된 동안, 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소의 공유의 비활성화를 나타내는 다른 정보에 기반하여, 상기 프로그램(919)을 상기 활성화된 상태에서 상기 비활성화된 상태로 변경하도록 야기할 수 있다. The instructions, when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to change the program (919) from the activated state to the deactivated state based on other information indicating deactivation of sharing of the hardware component of the other electronic device (303) while the program (919) is activated.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 어플리케이션(911)으로부터 상기 하드웨어 구성요소의 종류의 목록 요청을 식별함에 기반하여, 상기 하드웨어 구성요소의 식별 정보를 포함하는 목록을 상기 어플리케이션(911)에게 제공하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to provide a list containing identification information of the hardware components to the application (911) based on identifying a request for a list of types of the hardware components from the application (911).
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 어플리케이션(911)으로부터 상기 하드웨어 구성요소의 제어 요청을 식별함에 기반하여, 상기 통신 회로(391)를 통해 상기 프로그램(919)을 이용하여 상기 다른 전자 장치(303)에게 상기 제어 요청을 전달하도록 야기할 수 있다. The above instructions, when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to transmit the control request to the other electronic device (303) using the program (919) through the communication circuit (391) based on identifying a control request of the hardware component from the application (911).
상술한 바와 같은, 전자 장치(101)는, 상기 무선 통신 기법과 구분되는 다른 무선 통신 기법에 기반한 다른 통신 회로(392)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 프로그램(919)이 활성화된 동안, 상기 다른 통신 회로(392)를 통해, 상기 다른 전자 장치(303)로부터 상기 하드웨어 구성요소가 획득한 데이터를 수신하도록 야기할 수 있다. As described above, the electronic device (101) may include another communication circuit (392) based on a different wireless communication technique than the wireless communication technique described above. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive data acquired by the hardware component from the other electronic device (303) through the other communication circuit (392) while the program (919) is activated.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 프로그램(919)이 활성화된 동안, 어플리케이션(911)으로부터 상기 데이터의 요청을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 요청을 식별함에 기반하여, 상기 다른 통신 회로(392)를 통해, 상기 다른 전자 장치(303)와의 무선 연결을 수립하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify a request for the data from an application (911) while the program (919) is activated. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to establish a wireless connection with the other electronic device (303) via the other communication circuit (392) based on identifying the request.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)로부터 상기 하드웨어 구성요소의 성능과 관련된 성능 정보를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)에게 상기 성능 정보에 기반하여, 상기 하드웨어 구성요소의 설정을 위한 설정 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 다른 통신 회로(392)를 통해, 상기 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 수신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain performance information related to the performance of the hardware component from the other electronic device (303) via the communication circuit (391). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), to the other electronic device (303) configuration information for configuring the hardware component based on the performance information. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on the configuration information.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(391)를 통해, 상기 다른 전자 장치(303)에게 상기 데이터의 수신 상태를 나타내는 수신 상태 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 다른 통신 회로(392)를 통해, 상기 수신 상태 정보에 기반하여 변경된 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 수신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to transmit, via the communication circuit (391), reception status information indicating a reception status of the data to the other electronic device (303). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive, via the other communication circuit (392), the data acquired by the hardware component based on setting information changed based on the reception status information.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 전자 장치(101)의 상기 하드웨어 구성요소의 상기 공유가 활성화된 동안, 상기 통신 회로(391)를 통해 수신되는 복수의 전자 장치들의 광고 패킷에 기반하여, 지정된 종류의 복수의 하드웨어 구성요소들을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 지정된 종류의 상기 복수의 하드웨어 구성요소들 중 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소를 선택하기 위한 입력에 기반하여, 상기 프로그램(919)을 활성화하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify a plurality of hardware components of a specified type based on advertising packets of a plurality of electronic devices received via the communication circuit (391) while the sharing of the hardware components of the electronic device (101) is activated. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to activate the program (919) based on an input for selecting the hardware component of the other electronic device (303) from among the plurality of hardware components of the specified type.
상술한 바와 같은, 전자 장치(101)는, 디스플레이를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 디스플레이 상에 표시되는 UI(user interface)에서, 상기 하드웨어 구성요소의 상기 공유를 활성화 또는 비활성화 하기 위한 시각적 객체에 대한 사용자 입력을 식별하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 사용자 입력에 기반하여, 상기 하드웨어 구성요소의 상기 공유가가 활성화된 동안, 상기 통신 회로(391)를 통해 상기 복수의 전자 장치들의 상기 광고 패킷을 수신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 광고 패킷에 기반하여 식별된 상기 복수의 전자 장치들의 목록(541)을 포함하는 다른 UI를 상기 디스플레이 상에 표시하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 목록(541)에 포함된 상기 복수의 전자 장치들 중 상기 다른 전자 장치(303)를 선택하는 상기 입력을 식별하도록 야기할 수 있다. As described above, the electronic device (101) may include a display. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify a user input for a visual object for activating or deactivating the sharing of the hardware component in a user interface (UI) displayed on the display. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to receive the advertising packets of the plurality of electronic devices through the communication circuit (391) while the sharing of the hardware component is activated, based on the user input. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display another UI on the display, the UI including a list (541) of the plurality of electronic devices identified based on the advertisement packet. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to identify an input for selecting the other electronic device (303) from among the plurality of electronic devices included in the list (541).
상술한 바와 같은, 전자 장치(101)는, 제1 무선 통신 기법에 기반한 제1 무선 통신을 위한 제1 통신 회로(391), 상기 제1 무선 통신 기법과 구분되는 제2 무선 통신 기법에 기반한 제2 무선 통신을 위한 제2 통신 회로(392), 디스플레이, 처리 회로를 포함하는 적어도 하나의 프로세서(120); 및 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(130)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 제1 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 카메라의 공유가 활성화된 동안, 상기 카메라와 관련된 제1 정보를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 카메라가 획득하는 이미지가 표시되는 상기 디스플레이와 관련된 제2 정보를 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보와 상기 제2 정보가 서로 대응함에 기반하여, 상기 제2 통신 회로(392)를 통해, 상기 다른 전자 장치(303)로부터 획득되는 상기 이미지를 상기 디스플레이의 영역에 표시하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보와 상기 제2 정보가 서로 상이함에 기반하여, 상기 제2 정보에 상응하도록 이미지 처리된, 상기 이미지를 상기 영역에 표시하도록 야기할 수 있다. As described above, the electronic device (101) may include at least one processor (120) including a first communication circuit (391) for a first wireless communication based on a first wireless communication technique, a second communication circuit (392) for a second wireless communication based on a second wireless communication technique that is distinct from the first wireless communication technique, a display, and a processing circuit; and a memory (130) that stores instructions and includes one or more storage media. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to obtain first information related to a camera from another electronic device (303) while sharing of the camera of the other electronic device (303) is activated through the first communication circuit (391). The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to acquire second information related to the display on which the image acquired by the camera is displayed. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display, in an area of the display, the image acquired from the other electronic device (303) via the second communication circuit (392) based on a correspondence between the first information and the second information. The instructions, when individually or collectively executed by the at least one processor (120), may cause the electronic device (101) to display, in the area, the image that has been image-processed to correspond to the second information based on a difference between the first information and the second information.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보가 나타내는 상기 이미지의 제1 지향이, 상기 제2 정보가 나타내는 상기 디스플레이 상의 영역의 제2 지향과 상이함에 기반하여, 상기 제2 지향에 상응하도록 회전된, 상기 이미지를 상기 영역에 표시하도록 야기할 수 있다. The instructions, when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to display the image in the area, rotated to correspond to the second orientation, based on a difference between the first orientation of the image represented by the first information and the second orientation of the area on the display represented by the second information.
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(120)에 의해 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보가 나타내는 상기 이미지의 제1 지향이, 상기 제2 정보가 나타내는 상기 디스플레이 상의 영역의 제2 지향과 상이함에 기반하여, 상기 제2 지향에 상응하도록 회전된, 상기 이미지를 상기 영역에 표시하도록 야기할 수 있다. The instructions, when executed individually or collectively by the at least one processor (120), may cause the electronic device (101) to display the image in the area, rotated to correspond to the second orientation, based on a difference between the first orientation of the image represented by the first information and the second orientation of the area on the display represented by the second information.
상술한 바와 같은, 전자 장치(303)는, 무선 통신 기법에 기반한 무선 통신을 위한 통신 회로(393), 처리 회로를 포함하는 적어도 하나의 프로세서(311); 및 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리(315)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 다른 전자 장치(101)에게 상기 전자 장치(303)의 하드웨어 구성요소의 정보를 포함하는 광고 패킷을 방송하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(101)로부터, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근 요청을 획득하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 접근 요청이 획득됨에 기반하여, 상기 하드웨어 구성요소와 관련되고, 상기 전자 장치(101)에서 실행되는, 상기 하드웨어 구성요소에 대한 접근이 가능한 정보를 나타내는 프로그램(919)과 연결하도록 야기할 수 있다. As described above, the electronic device (303) may include a communication circuit (393) for wireless communication based on a wireless communication technique, at least one processor (311) including a processing circuit; and a memory (315) storing instructions and including one or more storage media. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to broadcast an advertisement packet including information of a hardware component of the electronic device (303) to another electronic device (101) via the communication circuit (393). The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to obtain, from the other electronic device (101) via the communication circuit (393), an access request for the hardware component indicated by the advertisement packet. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to associate, based on the access request being obtained, with a program (919) that is associated with the hardware component and that is running on the electronic device (101) and that indicates information that enables access to the hardware component.
상술한 바와 같은, 전자 장치(303)는 상기 무선 통신 기법과 구분되는 다른 무선 통신 기법에 기반한 다른 통신 회로(394)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 프로그램(919)과 연결된 동안, 상기 다른 통신 회로(394)를 통해, 상기 다른 전자 장치(101)에게 상기 하드웨어 구성요소가 획득한 데이터를 송신하도록 야기할 수 있다. As described above, the electronic device (303) may include another communication circuit (394) based on a different wireless communication technique than the above wireless communication technique. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit data acquired by the hardware component to the other electronic device (101) through the other communication circuit (394) while connected to the program (919).
상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 통신 회로(393)를 통해, 상기 다른 전자 장치(303)에게 상기 데이터의 수신 상태를 나타내는 수신 상태 정보를 송신하도록 야기할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 다른 통신 회로(394)를 통해, 상기 수신 상태 정보에 기반하여 변경된 설정 정보에 기반하여 상기 하드웨어 구성요소가 획득한 상기 데이터를 송신하도록 야기할 수 있다. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the communication circuit (393), reception status information indicating a reception status of the data to the other electronic device (303). The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to transmit, via the other communication circuit (394), the data acquired by the hardware component based on setting information changed based on the reception status information.
상술한 바와 같은, 전자 장치(303)는, 상기 무선 통신 기법과 구분되는 다른 무선 통신 기법에 기반한 다른 통신 회로(394)를 포함할 수 있다. 상기 인스트럭션들은, 개별적으로 또는 집합적으로, 상기 적어도 하나의 프로세서(311)에 의해 실행될 시, 상기 전자 장치(303)가, 상기 프로그램(919)과 연결된 동안, 상기 다른 통신 회로(394)를 통해, 상기 하드웨어 구성요소에 출력될 데이터를 수신하도록 야기할 수 있다. As described above, the electronic device (303) may include another communication circuit (394) based on a different wireless communication technique than the wireless communication technique described above. The instructions, when individually or collectively executed by the at least one processor (311), may cause the electronic device (303) to receive data to be output to the hardware component through the other communication circuit (394) while connected to the program (919).
무선 통신 기법에 기반한 무선 통신을 위한 통신 회로(391)를 포함하는, 전자 장치(101)에서 수행되는 방법에 있어서, 상기 통신 회로(391)를 통해, 다른 전자 장치(303)로부터 상기 다른 전자 장치(303)의 하드웨어 구성요소의 정보를 포함하는 광고 패킷을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 광고 패킷에 포함된 정보의 적어도 일부에 기반하여, 상기 광고 패킷이 나타내는 상기 하드웨어 구성요소에 대한 접근이 가능한 정보를 나타내는 프로그램(919)을 비활성화 상태에서 활성화 상태로 변경하는 동작을 포함할 수 있다. A method performed in an electronic device (101) including a communication circuit (391) for wireless communication based on a wireless communication technique may include an operation of receiving, from another electronic device (303) through the communication circuit (391), an advertisement packet including information on a hardware component of the other electronic device (303). The method may include an operation of changing, from a deactivated state to an activated state, a program (919) indicating information that enables access to the hardware component indicated by the advertisement packet, based on at least a portion of the information included in the advertisement packet.
상기 방법은, 상기 프로그램(919)이 활성화된 동안, 상기 다른 전자 장치(303)의 상기 하드웨어 구성요소의 공유의 비활성화를 나타내는 다른 정보에 기반하여, 상기 프로그램(919)을 상기 활성화된 상태에서 상기 비활성화된 상태로 변경하는 동작을 포함할 수 있다. The method may include changing the program (919) from the activated state to the deactivated state based on other information indicating deactivation of sharing of the hardware component of the other electronic device (303) while the program (919) is activated.
상기 방법은, 어플리케이션(911)으로부터 상기 하드웨어 구성요소의 종류의 목록 요청을 식별함에 기반하여, 상기 하드웨어 구성요소의 식별 정보를 포함하는 목록을 상기 어플리케이션(911)에게 제공하는 동작을 포함할 수 있다. The method may include providing a list containing identification information of the hardware component to the application (911) based on identifying a request for a list of types of the hardware component from the application (911).
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another component (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., by download or upload) through an application store (e.g., Play Store ™ ) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims (15)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20240038255 | 2024-03-20 | ||
| KR10-2024-0038255 | 2024-03-20 | ||
| KR1020240042075A KR20250141564A (en) | 2024-03-20 | 2024-03-27 | Electronic device, method, and non-transitory computer readable storage medium for sharing hardware resource |
| KR10-2024-0042075 | 2024-03-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025198401A1 true WO2025198401A1 (en) | 2025-09-25 |
Family
ID=97139778
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2025/099144 Pending WO2025198401A1 (en) | 2024-03-20 | 2025-01-24 | Electronic device, method, and non-transitory computer-readable recording medium for sharing hardware resources |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025198401A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130034892A (en) * | 2011-09-29 | 2013-04-08 | 엘지전자 주식회사 | Mobile terminal and method for controlling a vehicle using the same |
| US9015295B1 (en) * | 2014-08-18 | 2015-04-21 | Obigo Inc. | Method, terminal and head unit for automatically providing application services |
| KR20180137028A (en) * | 2012-04-13 | 2018-12-26 | 소니 주식회사 | Wireless communication device, communication method and non-transitory computer-readable medium |
| KR20200039638A (en) * | 2020-04-07 | 2020-04-16 | 삼성전자주식회사 | Display apparatus and control method of the same |
| KR20220136778A (en) * | 2021-04-01 | 2022-10-11 | 삼성전자주식회사 | Electronic device for supporting audio sharing |
-
2025
- 2025-01-24 WO PCT/KR2025/099144 patent/WO2025198401A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130034892A (en) * | 2011-09-29 | 2013-04-08 | 엘지전자 주식회사 | Mobile terminal and method for controlling a vehicle using the same |
| KR20180137028A (en) * | 2012-04-13 | 2018-12-26 | 소니 주식회사 | Wireless communication device, communication method and non-transitory computer-readable medium |
| US9015295B1 (en) * | 2014-08-18 | 2015-04-21 | Obigo Inc. | Method, terminal and head unit for automatically providing application services |
| KR20200039638A (en) * | 2020-04-07 | 2020-04-16 | 삼성전자주식회사 | Display apparatus and control method of the same |
| KR20220136778A (en) * | 2021-04-01 | 2022-10-11 | 삼성전자주식회사 | Electronic device for supporting audio sharing |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2015030545A1 (en) | Method and system for presenting content | |
| WO2021085937A1 (en) | Method for performing wireless communications and electronic device thereof | |
| WO2021201620A1 (en) | Electronic device for performing edge computing service and method for the same | |
| WO2020017936A1 (en) | Electronic device and method for correcting image on basis of image transmission state | |
| WO2022119388A1 (en) | Electronic device comprising flexible display | |
| WO2024080666A1 (en) | Mirroring device and operating method thereof | |
| WO2022025463A1 (en) | Electronic device for synchronizing output timing of content output by external devices, and method for operating electronic device | |
| WO2022005149A1 (en) | Electronic device for providing call function continuity and operating method thereof | |
| WO2025198401A1 (en) | Electronic device, method, and non-transitory computer-readable recording medium for sharing hardware resources | |
| WO2024039165A1 (en) | Electronic device for determining setting information of external electronic device, and method of operating electronic device | |
| WO2022158740A1 (en) | Electronic device that carries out communication and operation method therefor | |
| WO2022186578A1 (en) | Electronic device interacting with external electronic device and interaction method thereof | |
| WO2022102946A1 (en) | Electronic device for performing edge compouting service and electronic device operating method | |
| WO2022154279A1 (en) | Electronic device for transmitting and/or receiving protocol/service information, and method for operating same | |
| WO2023090711A1 (en) | Electronic device for scanning links and operation method for same | |
| WO2025070998A1 (en) | Electronic device sharing screen with external electronic device, and control method thereof | |
| WO2025079944A1 (en) | Electronic device for determining response message transmission policy of link, and operating method of electronic device | |
| WO2025258857A1 (en) | Electronic device for transmitting information for call forking, operating method thereof, and storage medium | |
| WO2024080702A1 (en) | Electronic device that shares screen with external device and method for controlling same | |
| WO2016195433A1 (en) | Method for providing multimedia service and electronic device therefor | |
| WO2023058900A1 (en) | Electronic device for selecting channel between electronic device and external electronic device on basis of characteristics of application, and operation method thereof | |
| WO2025095370A1 (en) | Electronic device for providing audio service, and operating method thereof | |
| WO2023182660A1 (en) | Electronic device for providing discovery service and method for operating same | |
| WO2024101882A1 (en) | Electronic device for sharing screen settings, and control method therefor | |
| WO2024058375A1 (en) | Electronic device for supporting multi-sim, and electronic device operating method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25774711 Country of ref document: EP Kind code of ref document: A1 |